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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16654|回復: 8
收起左側

單片機之間的串口通信實例 proteus仿真及源碼

[復制鏈接]
ID:137190 發表于 2016-10-10 13:22 | 顯示全部樓層 |閱讀模式
給51黑電子論壇的朋友們分享一個單片機之間的串口通信實例。下面是仿真原理圖:
0.png 0.png

單片機串口通信仿真工程文件及所有完整程序等資料下載地址(壓縮包一共有45個單片機仿真,全部下載后找到這個項目即可):
http://www.zg4o1577.cn/bbs/dpj-56298-1.html

單片機主機程序:
  1. /********************************************************************
  2.                             天馬電子
  3. *********************************************************************/
  4. #include <reg52.h>
  5. #define uchar unsigned char
  6. #define uint  unsigned  int        
  7. uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         //所需的段的位碼
  8. //uchar wei[4]={0XEf,0XDf,0XBf,0X7f};                                 //位的控制端        (開發板)
  9. uchar wei[4]={0X80,0X40,0X20,0X10};                                 //位的控制端        (仿真)
  10. uint z,x,c,v, date;        //定義數據類型

  11. sbit P2_0=P2^0;
  12. sbit P2_1=P2^1;
  13. sbit P2_2=P2^2;
  14. sbit P2_3=P2^3;
  15. /******************************************************************

  16. 延時函數

  17. ******************************************************************/
  18. void delay(uchar t)
  19. {
  20.   uchar i,j;
  21.    for(i=0;i<t;i++)
  22.    {
  23.             for(j=13;j>0;j--);
  24.          { ;
  25.          }
  26.    }
  27. }

  28. /**********************************************************************
  29.                 數碼管動態掃描
  30. *********************************************************************/
  31. void xianshi()
  32. {
  33. /*****************數據轉換*****************************/
  34.   z=date/1000;                         //求千位
  35.   x=date%1000/100;                 //求百位
  36.   c=date%100/10;                 //求十位
  37.   v=date%10;                         //求個位

  38.       P2=wei[0];
  39.           P0=duan[z];
  40.           delay(50);  
  41.             P2=wei[1];
  42.       P0=duan[x];
  43.           delay(50);  
  44.              P2=wei[2];
  45.       P0=duan[c];
  46.           delay(50);  
  47.       P2=wei[3];
  48.       P0=duan[v];
  49.           delay(50);  
  50.                                        

  51. }
  52. /*************************************************************************
  53.                      串口初始化,波特率9600,方式1
  54. **************************************************************************/
  55. void Init_Com(void)
  56. {
  57. TMOD = 0x20;  //16位定時計數器
  58. PCON = 0x00;  //電源控制寄存器
  59. SCON = 0x50;  //串口寄存器
  60. TH1 = 0xFd;
  61. TL1 = 0xFd;
  62. TR1 = 1;
  63. }

  64. /*************************************************************************
  65.                                 主函數        
  66. **************************************************************************/
  67. void main()
  68. {
  69.    Init_Com();//串口初始化
  70.   // date=1234;
  71.   P1=0X0A;
  72.         while(1)
  73.    {
  74.    if(P2_0==0)P1=0XAA;
  75.    if(P2_1==0)P1=0X55;
  76.    if(P2_2==0)P1=0X0F;
  77.    if(P2_3==0)P1=0XF0;
  78.    SBUF=P1;
  79.    while(!TI);
  80.    TI=0;
  81.    }
  82. }
  83.                                                                                             
復制代碼



單片機從機程序:
  1. /********************************************************************
  2.                             天馬電子
  3. *********************************************************************/
  4. #include <reg52.h>
  5. #define uchar unsigned char
  6. #define uint  unsigned  int        
  7. uchar duan[10]={0xc0,0Xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};         //所需的段的位碼
  8. //uchar wei[4]={0XEf,0XDf,0XBf,0X7f};                                 //位的控制端        (開發板)
  9. uchar wei[4]={0X80,0X40,0X20,0X10};                                 //位的控制端        (仿真)
  10. uint z,x,c,v, date;        //定義數據類型
  11. /******************************************************************

  12. 延時函數

  13. ******************************************************************/
  14. void delay(uchar t)
  15. {
  16.   uchar i,j;
  17.    for(i=0;i<t;i++)
  18.    {
  19.             for(j=13;j>0;j--);
  20.          { ;
  21.          }
  22.    }
  23. }

  24. /**********************************************************************
  25.                 數碼管動態掃描
  26. *********************************************************************/
  27. void xianshi()
  28. {
  29. /*****************數據轉換*****************************/
  30.   z=date/1000;                         //求千位
  31.   x=date%1000/100;                 //求百位
  32.   c=date%100/10;                 //求十位
  33.   v=date%10;                         //求個位

  34.       P2=wei[0];
  35.           P0=duan[z];
  36.           delay(50);  
  37.             P2=wei[1];
  38.       P0=duan[x];
  39.           delay(50);  
  40.              P2=wei[2];
  41.       P0=duan[c];
  42.           delay(50);  
  43.       P2=wei[3];
  44.       P0=duan[v];
  45.           delay(50);  
  46.                                        

  47. }
  48. /*************************************************************************
  49.                      串口初始化,波特率9600,方式1
  50. **************************************************************************/
  51. void Init_Com(void)
  52. {
  53. TMOD = 0x20;
  54. PCON = 0x00;
  55. SCON = 0x50;
  56. TH1 = 0xFd;
  57. TL1 = 0xFd;
  58. TR1 = 1;
  59. }

  60. /*************************************************************************
  61.                                 主函數        
  62. **************************************************************************/
  63. void main()
  64. {
  65.    Init_Com();//串口初始化
  66.   // date=1234;
  67.         while(1)
  68.    {   
  69.    while(!RI);
  70.    P1=~SBUF;
  71.    RI=0;                  
  72.    
  73.    }
  74. }
復制代碼

回復

使用道具 舉報

ID:325667 發表于 2018-5-9 09:14 | 顯示全部樓層
感覺很有用
回復

使用道具 舉報

ID:325714 發表于 2018-5-9 10:05 | 顯示全部樓層
牛,學習了
回復

使用道具 舉報

ID:353118 發表于 2018-6-20 11:00 | 顯示全部樓層
牛逼  很有用
回復

使用道具 舉報

ID:383856 發表于 2018-12-8 16:40 | 顯示全部樓層
正在查這類的程序,剛好可以參考,感謝分享.
回復

使用道具 舉報

ID:325667 發表于 2019-1-4 10:10 | 顯示全部樓層
你好  為什么顯示器上只顯示U呢?
回復

使用道具 舉報

ID:727740 發表于 2020-4-27 08:43 | 顯示全部樓層
你好,請問為什么我開始運行之后會很卡,并且界面找不到鼠標呢
回復

使用道具 舉報

ID:594633 發表于 2020-5-6 22:34 | 顯示全部樓層
感謝樓主分享,學習了
回復

使用道具 舉報

ID:105782 發表于 2021-3-18 23:13 | 顯示全部樓層
試一下,不知道好不好
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品毛片一区二区三区 | 久久免费视频观看 | 日本亚洲精品 | 久久久精 | 国产一级免费视频 | 亚洲欧美日韩电影 | 1000部精品久久久久久久久 | 不卡一区 | 久草免费在线视频 | 欧美国产日本一区 | 免费精品久久久久久中文字幕 | 国产精品免费视频一区 | 国产成人精品视频 | 日韩在线观看一区 | 黄免费观看 | 中文字幕亚洲视频 | 日本一区二区三区免费观看 | 国产精品久久久久久久7电影 | 91成人在线 | 欧美成人精品一区二区男人看 | 午夜av毛片 | www.久久.com | 爱爱综合网 | www四虎com| 成人在线观看免费视频 | www.99re| 国产精品欧美精品 | 亚洲精品www | 男女免费观看在线爽爽爽视频 | 亚洲网在线 | 亚洲精品在线视频 | 一级做a | 成人在线免费视频 | 欧美黄色网 | av毛片在线免费观看 | 国产精品美女视频 | 在线综合视频 | 欧美国产日韩一区二区三区 | 日韩视频免费看 | 国产在线一区二区三区 | 在线一区二区三区 |