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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口通信發送PC機學號與實時時間的proteus仿真與源碼

[復制鏈接]
跳轉到指定樓層
樓主
壓縮包內含源程序與仿真圖


單片機源程序如下:
  1. #include <reg51.h>
  2. #include "intrins.h"
  3. #define SEG P1
  4. void Delay1ms(unsigned int N);
  5. unsigned char code DIG_CODE[10]={0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極
  6. void SendChar(unsigned char c);
  7. void SendString(unsigned char *s);
  8. unsigned char Num;
  9. unsigned char Sec,Secs,Secg;        //Secg代表個位,Secs代表十位,下面Min、Hour同上
  10. unsigned char Min=14,Mins,Ming;
  11. unsigned char Hour=8,Hours,Hourg;
  12. unsigned char RcvStr[2];
  13. unsigned int NumRcv=0;
  14. bit FlagRcv=0;
  15. unsigned char Str[]="學號:160805101";
  16. void  main(  )                                        /*主程序*/
  17. {               
  18.         //初始化
  19.         TMOD=0x21;
  20.         TH1=0xf3;//2400bps
  21.         TL1=0xf3;
  22.         TR1=1;
  23.         SCON=0x50;//方式1允許接收
  24.         IE=0x92;//EA=1 ES=1        
  25.         IP=0x10;//PS=1
  26.         TH0=(65536-50000)/256;//定時50ms
  27.         TL0=(65536-50000)%256;//定時50ms
  28.         TR0=1;
  29.         ET0=1;        
  30.         while (1)
  31.         {        
  32.             if(FlagRcv==1)
  33.             {
  34.                          FlagRcv=0;
  35.                                 if(RcvStr[0]=='S' && (RcvStr[1]=='J'))
  36.                        {
  37.                                     SendChar(Hours+0x30);
  38.                                     SendChar(Hourg+0x30);
  39.                                         SendChar(':');
  40.                                         SendChar(Mins+0x30);
  41.                                     SendChar(Ming+0x30);
  42.                                         SendChar(':');
  43.                                         SendChar(Secs+0x30);
  44.                                     SendChar(Secg+0x30);               
  45.                                         SendString(Str);
  46.                                         SendChar(0x0D);//發送回車
  47.                                         SendChar(0x0A);//發送換行
  48.                                         Delay1ms(1000);
  49.                            }
  50.                         else
  51.                         SendString("ERR");
  52.                 }        
  53.                
  54.         }
  55. }

  56. void ISRUSART() interrupt 4
  57. {  
  58.         if(RI==1)
  59.         {
  60.             RcvStr[NumRcv]=SBUF;
  61.                 NumRcv++;
  62.                 RI=0;
  63.                 if(NumRcv==2)
  64.                 {        
  65.                         NumRcv=0;
  66.                         FlagRcv=1;
  67.                 }
  68.         }
  69. }        

  70. void ISRTimer0() interrupt 1
  71. {
  72.         TH0=(65536-50000)/256;//定時50ms
  73.         TL0=(65536-50000)%256;//定時50ms
  74.              Num++;
  75.                 if(Num==20)
  76.                 {
  77.                         Sec++;
  78.                         Num=0;        
  79.                   Secs=Sec/10;
  80.                   Secg=Sec%10;
  81.                 }
  82.                   
  83.                   if(Sec==60)
  84.                 {
  85.                   Sec=0;
  86.                   Secs=Sec/10;
  87.                   Secg=Sec%10;
  88.                   Min++;
  89.                   Mins=Min/10;
  90.                   Ming=Min%10;
  91.                   }

  92.                   if(Min==17)
  93.                 {  
  94.                   Min=0;
  95.                   Mins=Min/10;
  96.                   Ming=Min%10;
  97.                   Hour++;
  98.                   Hours=Hour/10;
  99.                   Hourg=Hour%10;
  100.                 }
  101.                  if(Hour==24)  
  102.                   Hour=0;
  103.                  
  104. }

  105. void SendChar(unsigned char c)
  106. {
  107.         SBUF=c;
  108.         while(TI==0);
  109.         TI=0;
  110. }
  111. void SendString(unsigned char *s)
  112. {
  113.         while(*s!='\0')
  114.         {
  115.                 SendChar(*s);
  116.                 s++;
  117.         
  118.         }
  119. }



  120. void Delay1ms(unsigned int N)                //@12.000MHz
  121. {
  122.         unsigned char i, j;
  123.         while(N--)
  124.         {
  125.                 i = 2;
  126.                 j = 239;
  127.                 do
  128.                 {
  129.                         while (--j);
  130.                 } while (--i);
  131.         }
  132. }
復制代碼

所有資料51hei提供下載:
實驗9 串行通信實驗.zip (123.85 KB, 下載次數: 51)


評分

參與人數 2黑幣 +52 收起 理由
不負時光~田 + 2 贊一個!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久久久青草 | 91视频在线 | 黄色播放 | 欧美一区二区三区,视频 | 久久久精品影院 | 99久久免费观看 | 成人在线不卡 | 国产精品久久99 | 久久久久综合 | 日本黄色影片在线观看 | 天天综合成人网 | 91社区在线观看播放 | 特黄特黄a级毛片免费专区 av网站免费在线观看 | 成人欧美一区二区三区黑人孕妇 | av资源中文在线天堂 | 精品国产精品国产偷麻豆 | 国产精品国产成人国产三级 | 日韩福利 | 色婷婷亚洲一区二区三区 | 毛色毛片免费看 | 亚洲欧美日韩国产综合 | 在线亚洲欧美 | 日韩亚洲一区二区 | 久久综合一区二区三区 | 亚洲视频三区 | 久久免费香蕉视频 | 盗摄精品av一区二区三区 | 国产精品久久久久久久久久了 | 免费在线黄 | 国产高清性xxxxxxxx | 围产精品久久久久久久 | 国产精品国产a级 | 最新国产精品视频 | 国内久久 | 欧美日韩18 | 日日夜夜精品 | 99免费在线视频 | 日韩精品视频中文字幕 | 91精品久久久| 亚洲一区二区三区在线免费观看 | 久综合|