欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機和單片機之間通信仿真 含主機與叢機的源程序

[復制鏈接]
跳轉到指定樓層
樓主
使用中斷方式C51程序設計_單片機與一個單片機串口通信仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機與1個單片機串口通信設計任務:
1個單片機(主機)通過串行口將十六進制數發送給另一個單片機(從機),驅動從機繼電器動作,并在數碼管顯示接收到的數。從機接收到數據后,返回原數據給主機并在數碼管顯示。



手動輸入:通過開發板上的數字量輸入撥動開關來實現數據輸入(00 01 10 11)

單片機源程序如下:
  1. #include<reg51.h>
  2. #include<string.h>

  3. #define        uint        unsigned int
  4. #define uchar        unsigned char

  5. /****************************開關端口定義*********************************************/   
  6. sbit sw_0=P3^3;   
  7. sbit sw_1=P3^4;   

  8. /****************************數碼顯示 鍵盤接口定義****************************************/   
  9. sbit PS0=P2^4;//數碼管個位   
  10. sbit PS1=P2^5;//數碼管十位               
  11. sfr  P_data=0x80;//P0口為顯示數據輸出口
  12. sbit P_K_L=P2^2;//鍵盤列
  13.    
  14. uchar tab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e};//字段轉換表
  15. uchar temp=0; //存放數據區
  16. uint a;        
  17. uint sw_in(void);//開關量輸入采集
  18. void display(uint a);//顯示函數
  19. void delay(uint delay_time);//延時函數     
  20. void init_serial(void);

  21. void main(void)
  22. {         
  23.         init_serial();

  24.         temp=sw_in();
  25.         TI=0;
  26.         SBUF=temp;
  27.         
  28.         while(1);
  29. }
  30. /**************************串口初始化函數**************************/
  31. /*函數原型:void init_serial(void)
  32. /*函數功能:設置串口通信參數及方式
  33. /*輸入參數:無
  34. /*輸出參數:無
  35. /*調用模塊:無
  36. /******************************************************************/
  37. void init_serial(void)
  38. {        TMOD=0X20;//定時器1方式2
  39.         TH1=0XFA;
  40.         TL1=0XFA;
  41.         PCON=0X80;
  42.         SCON=0X50;//串口方式1,允許接收,波特率9600bit/s
  43.         TR1=1;        //開始計時
  44.         ES=1;
  45.         EA=1;
  46. }
  47. //串口中斷處理函數
  48. void serial_int() interrupt 4
  49. {        
  50.         if(RI==1)
  51.         {        RI=0;
  52.                 temp=SBUF;        //接收數據
  53.                 for(a=0;a<200;a++)//顯示,兼有延時的作用
  54.                 display(temp);
  55.         }
  56.         if(TI==1)
  57.         {        temp=sw_in();
  58.                 SBUF=temp;
  59.                 TI=0;
  60.         }
  61. }
  62. /**************************數據采集函數**************************/
  63. /*函數原型:unsigned int sw_in(void)
  64. /*函數功能:數據采集
  65. /*輸入參數:無
  66. /*輸出參數:a
  67. /*調用模塊:無
  68. /******************************************************************/
  69. uint sw_in(void)
  70. {
  71.    unsigned int a=0;
  72.         if(sw_0)
  73.           {  a=a+1;}
  74.         if(sw_1)
  75.             {a=a+0x10;}
  76.     return a;
  77. }
  78. /**************************數碼管顯示函數**************************/
  79. /*函數原型:void display(void)
  80. /*函數功能:數碼管顯示
  81. /*輸入參數:無
  82. /*輸出參數:無
  83. /*調用模塊:delay()
  84. /******************************************************************/
  85. void display(unsigned int a)
  86. {        
  87.     bit b=P_K_L;
  88.         P_K_L=1;//防止按鍵干擾顯示
  89.    
  90.     P_data=tab[a&0x0f];//顯示個1位
  91.     PS0=0;                 
  92.         PS1=1;
  93.         delay(200);
  94.    
  95.          P_data=tab[(a>>4)&0x0f]; //顯示十位
  96.     PS0=1;                 
  97.         PS1=0;
  98.         delay(200);        

  99.     P_K_L=b;//恢復按鍵
  100.         P_data=0xff;//恢復數據口
  101. }
  102. /*******************************延時函數*********************************/
  103. /*函數原型:delay(unsigned int delay_time)
  104. /*函數功能:延時函數
  105. /*輸入參數:delay_time (輸入要延時的時間)
  106. /*輸出參數:無
  107. /*調用模塊:無
  108. /**********************************************************************/
  109. void delay(unsigned int delay_time)   //延時子程序
  110. {for(;delay_time>0;delay_time--)
  111. {}
  112.   }
復制代碼

所有資料51hei提供下載:
單片機通信.zip (150.55 KB, 下載次數: 30)


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

使用道具 舉報

沙發
ID:1 發表于 2018-11-14 02:44 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:46999 發表于 2018-11-14 09:18 | 只看該作者
好資料,謝謝樓主的分享!
回復

使用道具 舉報

地板
ID:426839 發表于 2018-11-15 09:10 | 只看該作者
厲害
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表