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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC89C52單片機串口通迅程序+3個定時器 合適新手學習

[復制鏈接]
跳轉到指定樓層
樓主
ID:424598 發(fā)表于 2019-3-19 19:43 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
合適新手學習的51單片機串口收發(fā)及定時器, 多文件結構, 我盡量備注詳細
方便在此基礎上開發(fā)跟串口相關的應用




單片機源程序:
  1. /***********************************
  2. *       STC89/90 系列              *
  3. ***********************************/
  4. //定時器相當于電腦的多任務,多線程

  5. #include "config.h"        //公共變量
  6. #include "command.h" //公共函數(shù)
  7. #include "UART.h" //串口文件

  8. //****************** 主程序 *******************
  9. void main()
  10. {
  11.         //打開串口
  12.         SCON  = 0x50;        // SCON: 模式 1, 8-bit UART, 使能接收         
  13.         
  14.         //定時器0 對應interrupt 1
  15.         TMOD |= 0x01;          //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響                     
  16.         TH0=0x00;              //給定初值,這里使用定時器最大值從0開始計數(shù)一直到65535溢出        
  17.         ET0=1;           //定時器0中斷打開
  18.         TR0=1;           //定時器0開關打開
  19.         
  20.         //定時器1 對應interrupt 4
  21.     TMOD |= 0x20;               // TMOD: timer 1, mode 2, 8-bit reload        
  22.     TH1 = 0xFD;                                        // TH1:  reload value for 9600 baud @ 11.0592MHz        
  23.     TR1 = 1;                                        //定時器1開關打開

  24.         //定時器2 對應interrupt 5
  25.         RCAP2H = (65536-50000)/256;
  26.         RCAP2L = (65536-50000)%256;
  27.         ET2 = 1;                                        //定時器2中斷打開
  28.         TR2 = 1;                                        //定時器2開關打開
  29.         
  30.         EA = 1;                                                //打開總中斷
  31.     ES = 1;                                                //打開串口中斷
  32.         
  33.    
  34.         i1=0,i2=0;i3=0;cmd1=0;

  35.     while (1) {                                                        //無限循環(huán)
  36.         UART_main();                                        //串口接收發(fā)送
  37.     }
  38. }
  39. //********** 定時器0 ***********
  40. void time0() interrupt 1
  41. {
  42.         TH0=0x00;TL0=0x00;                        //重新賦值,必需

  43.         /*i3++;
  44.         if(i3>20){
  45.                 LED1=~LED1;
  46.                 i3=0;
  47.         }*/      
  48. }

  49. //********** UART的定時器1中斷程序 ***********
  50. void time1() interrupt 4
  51. {   
  52.         if(RI) {                                                //判斷是接收中斷產(chǎn)生
  53.                 RI=0;                                                //標志位清零               
  54.                 if(SBUF!='~'){                                //如果結尾不是~符號
  55.                         Tbuf1[i1]=SBUF;                        //值存到數(shù)組
  56.                 }
  57.                 i1++;                                                //累加
  58.                 if(SBUF=='~'){                                //如果值為~符號         
  59.                         cmd1=1;                                        //設結束標志
  60.                 }
  61.         }
  62.         if(TI) {                        //如果是發(fā)送標志位,清零
  63.                 TI=0;
  64.         }
  65. }

  66. //********** 定時器2 ***********
  67. void time2() interrupt 5
  68. {
  69.         TF2=0;

  70.         i3++;
  71.         if(i3>10){
  72.                 LED1=~LED1;
  73.                 i3=0;
  74.         }      
  75. }



復制代碼

全部資料51hei下載地址:
STC89C52串口通迅+3個定時器.zip (29.36 KB, 下載次數(shù): 52)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

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