新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于Proteus仿真的AVR單片機串口程序

        基于Proteus仿真的AVR單片機串口程序

        作者: 時間:2016-10-19 來源:網絡 收藏

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

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

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

          數據傳輸方向:計算機——>單片機; 單片機——>計算機;

          現送上仿真圖和程序:

          

         

          #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() //初始化函數

          {

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

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

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

          UBRRL=51;

          }

          void send(unsigned char data) //數據發送

          {

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

          UDR=data;

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

          UCSRA&=BIT(6);

          }

          unsigned char receive() //數據接收

          {unsigned char data=0;

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

          data=UDR;

          return data;

          }



        關鍵詞: Proteus AVR

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宜川县| 揭东县| 德化县| 色达县| 苗栗市| 菏泽市| 高雄市| 乳山市| 景泰县| 安义县| 墨脱县| 安阳县| 湟中县| 南和县| 肇州县| 开封县| 苍溪县| 海原县| 社会| 漳州市| 合江县| 察隅县| 雷波县| 渑池县| 辽源市| 前郭尔| 平乐县| 淳安县| 青龙| 社旗县| 龙胜| 南华县| 新河县| 镇远县| 鹤壁市| 苗栗县| 和林格尔县| 涡阳县| 鄂温| 永吉县| 淳安县|