• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于Proteus仿真的AVR單片機(jī)串口程序

    基于Proteus仿真的AVR單片機(jī)串口程序

    作者: 時(shí)間:2016-10-19 來源:網(wǎng)絡(luò) 收藏

      以前在上做過51的串口仿真沒有成功,昨天再次嘗試atmega16的串口仿真居然成功了;當(dāng)然仿真是最簡單的,實(shí)際做事的時(shí)候需要加上max232芯片,但仿真時(shí)就不需要了,

    本文引用地址:http://www.czjhyjcfj.com/article/201610/311532.htm

      程序功能:由串口助手向單片機(jī)發(fā)送一組數(shù)據(jù)“I LOVE YOU-----SBILY1988”,單片機(jī)收到數(shù)據(jù)后發(fā)送回串口助手,

      數(shù)據(jù)傳輸方向:計(jì)算機(jī)——>單片機(jī); 單片機(jī)——>計(jì)算機(jī);

      現(xiàn)送上仿真圖和程序:

      

     

      #include

      #include

      void init();

      void send(unsigned char);

      unsigned char receive();

      void main()

      {unsigned char i=0,a=300;

      init();

      while(1)

      {

      i=receive();

      send(i);

      }

      }

      void init() //初始化函數(shù)

      {

      UCSRB=BIT(4)|BIT(3); //使能發(fā)送和接收器

      UCSRC=BIT(7)|(3<<1); //設(shè)置數(shù)據(jù)幀格式(8數(shù)據(jù)位)

      UBRRH=0; //設(shè)置波特率為8MHZ晶振下 9600bps

      UBRRL=51;

      }

      void send(unsigned char data) //數(shù)據(jù)發(fā)送

      {

      while(!(UCSRA&BIT(5))); //等待發(fā)送緩沖器準(zhǔn)備完畢

      UDR=data;

      while(!(UCSRA&BIT(6))); //等待發(fā)送結(jié)束

      UCSRA&=BIT(6);

      }

      unsigned char receive() //數(shù)據(jù)接收

      {unsigned char data=0;

      while(!(UCSRA&BIT(7))); //等待數(shù)據(jù)接收完畢

      data=UDR;

      return data;

      }



    關(guān)鍵詞: Proteus AVR

    評論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 安泽县| 花莲县| 孝昌县| 富平县| 阳东县| 石泉县| 阿合奇县| 山东| 石柱| 西平县| 靖远县| 宝丰县| 杭锦后旗| 柯坪县| 连城县| 金华市| 博客| 洪泽县| 沙雅县| 临海市| 沙田区| 朝阳县| 崇义县| 襄城县| 达孜县| 荣昌县| 中西区| 乌恰县| 买车| 南木林县| 右玉县| 洛川县| 阿拉尔市| 那坡县| 纳雍县| 方正县| 平江县| 雅江县| 罗山县| 扶沟县| 郁南县|