標(biāo)題: 單片機(jī)與單片機(jī)通信仿真與源程序 [打印本頁(yè)]

作者: 簡(jiǎn)單字體    時(shí)間: 2018-6-28 12:31
標(biāo)題: 單片機(jī)與單片機(jī)通信仿真與源程序
這是一個(gè)單片機(jī)與單片機(jī)通信的

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)源程序如下:
  1. /*發(fā)送程序*/
  2. #include<reg52.h>
  3. #define uchar unsigned char
  4. void initUart(void);                  //初始化串口波特率
  5. void time(unsigned int ucMs); //延時(shí)單位:毫秒


  6. void main(void){
  7.            uchar counter=0;                //定義計(jì)數(shù)器
  8.            initUart();  
  9.         while(1){          
  10.        SBUF = counter;                //發(fā)送聯(lián)絡(luò)信號(hào)
  11.        while(!TI);                //等待發(fā)送完成
  12.        TI = 0;                                //清TI標(biāo)志位
  13.        while(!RI);                //等待乙機(jī)回答
  14.        RI = 0;
  15.            if(SBUF ==counter){  //若返回值與發(fā)送值相同,組織新數(shù)據(jù)
  16.               P2 = counter;            //顯示已發(fā)送值
  17.               if(++counter>15) counter=0;//修正計(jì)數(shù)器值
  18.               time(500);
  19. }}}

  20. void time(unsigned int ucMs)//延時(shí)單位:ms
  21. {
  22. #define DELAYTIMES 239
  23. unsigned char  ucCounter;  // 延時(shí)設(shè)定的循環(huán)次數(shù)
  24.         while (ucMs!=0) {
  25.                 for (ucCounter=0; ucCounter<DELAYTIMES; ucCounter++){}//延時(shí)
  26.                 ucMs--;
  27.           }
  28. }
  29. /********** 初始化串口波特率 ************/
  30. void initUart(void)
  31. {                SCON=0X50;                //串口工作在方式1
  32.                 PCON=0;                  
  33.                 TMOD=0X20;
  34.                 TH1=0XF4;                //2400bps
  35.                 TL1=0XF4;
  36.                 TCON=0X40;
  37. }
復(fù)制代碼

所有資料51hei提供下載:
串口雙機(jī)通信.zip (129.73 KB, 下載次數(shù): 22)



作者: 陌棄    時(shí)間: 2018-11-16 15:21
感謝樓主分享




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1