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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2955|回復: 1
收起左側

單片機資料多機串口通信程序下載

[復制鏈接]
ID:83240 發表于 2015-6-17 10:27 | 顯示全部樓層 |閱讀模式
單片機資料多機串口通信

多機串口雙工通信.rar

59.22 KB, 下載次數: 45, 下載積分: 黑幣 -5

單片機

評分

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

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2015-6-22 23:11 | 顯示全部樓層
  1. #include <reg52.h>
  2. #include"delay.h"
  3. unsigned char a;
  4. unsigned char flag;
  5. sbit led_open=P2^3;
  6. void initiate_RS232(void);
  7. sbit s1=P3^4;
  8. sbit s2=P3^5;
  9. unsigned short int data sta;
  10. unsigned short int data count;
  11. uchar smg[]={0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1f,0x01,0x09};
  12. unsigned char code smg_we[]={0xef,0xdf,0xbf,0x7f};
  13. //unsigned short int data second;
  14. void main()
  15. {
  16.         //led_open=0;
  17.        
  18.         initiate_RS232();
  19.         while(1)
  20.     {       
  21.                 if(sta==1)        //按鍵1,發送
  22.                 {       
  23.                         //sta1=0;
  24.                         ES=0;
  25.                         SBUF=1;         //發送
  26.                         while(!TI);        //軟件清零
  27.                         TI=0;
  28.                         ES=1;
  29.                 }
  30.                 if(sta==2)           //
  31.                 {
  32.                         //sta2=0;
  33.                         ES=0;
  34.                         SBUF=2;
  35.                         while(!TI);        //軟件清零
  36.                         TI=0;
  37.                         ES=1;
  38.                 }
  39.           }
  40.        

  41.                          
  42.                        
  43.        
  44. }
  45. void time0_isp(void)  interrupt  1       //t0,周期1ms
  46.   {
  47.       static   char  data  i=0;
  48.           static  unsigned char key[3];
  49.       TL0=TL0+0X18;
  50.       TH0=0XFC;
  51.           
  52.       key[2]=key[1];
  53.       key[1]=key[0];

  54.           if (s1==0)  key[0]=1; else key[0]=0;
  55.           if (s2==0)  key[0]=key[0]+2;
  56.           
  57.                                            //讀出當前值,如何讀,跟具體電路有關
  58.        
  59.        
  60.           if((key[0]==key[1])&&(key[0]==key[2]) )
  61.               sta=key[0];
  62.           

  63.         switch(i)
  64.         {
  65.                case 0:   P0=smg[count%10];   P2=0xef;  i=1;break;                                           //個位
  66.                 case 1:   P0=smg[count%100/10]; P2=0xdf;  i=2;break;                                   //十位
  67.                 case 2:   P0=smg[count%1000/100];P2=0xbf;i=3;break;                               //百位
  68.                 case 3:   P0=smg[count/1000];P2=0x7f;i=0;break;       
  69.         }
  70. }
  71. void initiate_RS232(void)  //串口初始化
  72. {
  73.          TH1=0xfd;
  74.          TL1=0xfd;
  75.          
  76.          TL0=0X18;
  77.      TH0=0XFC;
  78.          
  79.          TMOD=0x21;
  80.          TR1=1;//開定時器
  81.          TR0=0;

  82.          ET0=1;//開t0中斷

  83.          SM0=0;        //
  84.          SM1=1;//方式1,10位異步收發器(8 位數據)
  85.          SM2=0;//SM2=0時,均可使收到的數據進SBUF,并激活RI,在中斷服務中將數據從SBUF讀走
  86.          
  87.          REN=1;//允許串口接收
  88.          EA=1;
  89.          ES=1;
  90. }
  91. void serial() interrupt 4
  92. {
  93.         if(RI==1)         //接收完畢
  94.         {
  95.                 count=SBUF*256;           //先  接收 高位
  96.                
  97.                 RI=0;                          //清0
  98.                                                                   
  99.                    while(RI==0);         //等待
  100.    
  101.                    RI=0;                //清0
  102.                 count=count+SBUF;        //
  103.         }
  104.         if(TI==1)                  //發送完畢
  105.         {
  106.                 TI=0;                  //0
  107.         }
  108. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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