久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7778|回復: 6
打印 上一主題 下一主題
收起左側

兩片單片機的串行通信 仿真與程序原理圖

[復制鏈接]
跳轉到指定樓層
樓主
兩片單片機的串行通信仿真原理圖


單片機雙機通信的所有資料下載:
兩片單片機的串行通信.rar (48.98 KB, 下載次數: 58)


程序1:
  1. #include <reg51.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit K0=P1^0;
  6. sbit K1=P1^1;
  7. sbit K2=P1^2;
  8. sbit K3=P1^3;
  9. sbit K4=P1^4;
  10. sbit K5=P1^5;
  11. sbit K6=P1^6;
  12. sbit K7=P1^7;
  13. uchar i();  
  14. uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,  
  15.                   0x6d,0x7d,0x07,0x7f,0x6f,
  16.                                   0x77,0x7c,0x39,0x5e,0x79,0x71};

  17. void delay(uint z)
  18. { uint x,y;
  19. for(x=z;x>0;x--)  
  20. for(y=110;y<0;y--);
  21. }   
  22. void send(uchar c)   //向串口發送字符
  23. { SBUF=c;   
  24.   while(TI==0);   
  25.         TI=0;
  26. }  
  27. void main()
  28. {
  29. uchar i;
  30. P2=0x00;   
  31. SCON=0x50;      //串口模式1      
  32. TMOD=0x20;      //T1工作模式2     
  33. PCON=0x00;      //波特率不倍增   
  34. TH1=0xfd;       //波特率設定6900     
  35. TL1=0xfd;     
  36. TI=RI=0;   
  37. TR1=1;   //啟動定時器T1  
  38. IE=0x90;     //允許串口中斷
  39. while(1)  
  40. {  
  41. if(K0==0) send('0'); else  send('A');     
  42. if(K1==0) send('1'); else  send('B');     
  43. if(K2==0) send('2'); else  send('C');
  44. if(K3==0) send('3'); else  send('D');     
  45. if(K4==0) send('4'); else  send('E');     
  46. if(K5==0) send('5'); else  send('F');     
  47. if(K6==0) send('6'); else  send('G');     
  48. if(K7==0) send('7'); else  send('H');
  49.    }  
  50. }   
  51. void serial_int() interrupt 4  //甲機串口接收中斷函數
  52. { if(RI)
  53.   { RI=0;  
  54.      if(SBUF>=0 &&SBUF<=15)
  55.         P2=tab[SBUF];   
  56.       else      
  57.       P2=0x00;     
  58. if(SBUF=='x')     
  59. if(i>=0&&i<9)      
  60. {      
  61.   i=i+1;   
  62.   P2=tab[i];   
  63.   }   
  64.   if(i==9) i=0;   
  65.   if(SBUF=='y')  
  66. {  
  67.   P2=0x00;  
  68.   i=0;  
  69.       }  
  70.    }
  71. }
復制代碼


程序2:
  1. #include <reg51.h> #include<intrins.h>  
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit L0=P1^0;
  5. sbit L1=P1^1;
  6. sbit L2=P1^2;
  7. sbit L3=P1^3;
  8. sbit L4=P1^4;
  9. sbit L5=P1^5;
  10. sbit L6=P1^6;
  11. sbit L7=P1^7;  
  12. sbit KEY2=P0^2;
  13. void delay(uint z)
  14. { uint x,y;
  15.   for(x=z;x>0;x--)  
  16.      for(y=110;y<0;y--);
  17. }   
  18. void send(uchar c)   //向串口發送字符
  19.    { SBUF=c;   
  20.      while(TI==0);   
  21.      TI=0;
  22. }   
  23.    uchar key()        //按鍵掃描
  24. { uchar keyon,temp;
  25.   P2=0x0f;  delay(1);
  26. temp=P2^0x0f;
  27. switch(temp)  
  28. { case 1:keyon=3;break;   
  29. case 2:keyon=2;break;   
  30. case 4:keyon=1;break;   
  31. case 8:keyon=0;break;      
  32. default:keyon=16;  
  33. }  
  34. P2=0xf0;
  35. delay(1);
  36. temp=P2>>4^0x0f;
  37. switch(temp)
  38. { case 1:keyon+=0;break;
  39.   case 2:keyon+=4;break;
  40.   case 4:keyon+=8;break;   
  41.      case 8:keyon+=12;break;
  42. }  
  43. return keyon;
  44. }  
  45. void main()
  46. { SCON=0x50;   //串口模式 1,允許接收   
  47. TMOD=0x20;  //T1 工作模式2     
  48. PCON=0x00;   //波特率不倍增   
  49. TH1=0xfd;     //波特率設定: 9600   
  50. TL1=0xfd;
  51.     TI=RI=0;  
  52.    TR1=1;   //啟動定時器T1
  53. IE=0x90;     //允許串口中斷
  54.   delay(100);
  55.   while(1)  
  56. { P2=0xf0;    //矩陣鍵盤  
  57. if(P2!=0xf0)  
  58.   send(key());  
  59. if(KEY2==0)    //清零
  60.       send('y');
  61.   }  
  62. }   
  63. void serial_int() interrupt 4  //乙機串口接收中斷函數
  64. { if(RI)
  65.   { RI=0;
  66.    switch(SBUF)
  67.    { case '0':L0=0;break;
  68.     case '1':L1=0;break;
  69.     case '2':L2=0;break;
  70.     case '3':L3=0;break;
  71.     case '4':L4=0;break;
  72.     case '5':L5=0;break;
  73.     case '6':L6=0;break;
  74.     case '7':L7=0;break;
  75.     case 'A':L0=1;break;
  76.     case 'B':L1=1;break;
  77.     case 'C':L2=1;break;
  78.     case 'D':L3=1;break;
  79.     case 'E':L4=1;break;
  80.     case 'F':L5=1;break;
  81.     case 'G':L6=1;break;
  82.     case 'H':L7=1;break;
  83.    }
  84. }
  85. }
  86.    
復制代碼



評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:120646 發表于 2016-5-13 23:47 | 只看該作者
51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:120661 發表于 2016-5-14 07:28 | 只看該作者
如果給百度云連接就好了
回復

使用道具 舉報

地板
ID:99525 發表于 2016-5-14 12:14 | 只看該作者
樓上廣告發錯地方了,發到STM那邊去
回復

使用道具 舉報

5#
ID:88498 發表于 2016-6-13 17:53 | 只看該作者
51黑有你更精彩!!!
回復

使用道具 舉報

6#
ID:146892 發表于 2016-11-8 20:04 | 只看該作者
謝謝樓主分享!
回復

使用道具 舉報

7#
ID:379864 發表于 2018-7-27 16:07 | 只看該作者
51有你更精彩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线日韩精品视频 | 欧美一区二区在线 | 日韩成人免费视频 | 国产精品一区二区av | 国产欧美精品一区 | 亚洲免费观看视频网站 | 亚洲91av| 色综合天天综合网国产成人网 | 久久精品国产久精国产 | 欧美国产免费 | 久草新视频 | 国产精品免费在线 | 日韩和的一区二区 | 午夜精品久久久久久久久久久久久 | 午夜免费福利影院 | 日本在线一二 | 一区二区三区在线观看视频 | 国产精品一区二区免费 | 欧美在线成人影院 | 在线看av的网址 | 久久精品国产99国产精品 | 成人欧美一区二区三区黑人孕妇 | 中文字幕日本一区二区 | 日韩小视频在线 | 麻豆毛片| 久久精品国产一区二区三区 | 亚洲国产免费 | 亚洲国产精品区 | 国产精产国品一二三产区视频 | 午夜影院在线观看免费 | 成人福利网 | 精品国产一区二区三区成人影院 | 精品欧美乱码久久久久久 | 久久综合伊人 | 亚洲a人| 欧美美女爱爱 | 欧美日韩国产中文 | 久久婷婷国产 | 久久久久久久久久久久久九 | 一区二区三区国产 | 激情小说综合网 |