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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1396|回復(fù): 0
收起左側(cè)

分享一個(gè)2無(wú)線串口通訊同頻景觀燈程序

[復(fù)制鏈接]
ID:360000 發(fā)表于 2019-7-11 11:42 | 顯示全部樓層 |閱讀模式
功能描述:PIC12f1822單片機(jī),串口模塊通訊,無(wú)線控制燈具同頻閃爍。

單片機(jī)源程序如下:
  1. //同步閃爍 紅綠雙色
  2. //無(wú)線模塊每10ms開(kāi)一次,開(kāi)啟1ms
  3. //發(fā)射每10S發(fā)一個(gè)同步脈沖
  4. //紅綠切換信號(hào)每次發(fā)送1S最少1000個(gè)數(shù)據(jù),以保證都收到
  5. #include<pic.h>//12f1822
  6. #define uchar unsigned char
  7. #define uint  unsigned int
  8. #define  Led1 RA0
  9. #define  Led2 RA2
  10. #define  Com_on RA1
  11. __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_OFF & MCLRE_OFF & CP_ON & CPD_ON & BOREN_OFF & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF);
  12. __CONFIG(WRT_OFF & PLLEN_OFF & STVREN_OFF & BORV_LO & LVP_OFF);

  13. void Delay(uchar x);
  14. void init();
  15. void LED();
  16. void interrupt com();
  17. uchar M;
  18. uchar N;
  19. uchar h;
  20. //uchar k;
  21. void Delay(uchar x)
  22. {
  23.         uchar a,b;
  24.         for(a=x;a>0;a--)
  25.         for(b=100;b>0;b--);
  26. }

  27. void init()
  28. {
  29.     OSCCON=0X6A;  //1MHz(0X58)16MHz(0X78)4M(0X6A)配置字決定內(nèi)部振蕩器
  30.     OSCTUNE=0X00;  //內(nèi)部振蕩器校正
  31.     ANSELA=0X00;  //定義為數(shù)字IO口
  32.     APFCON=0XA4; //腳位復(fù)用設(shè)置RA5=RX RA4=TX
  33.     PORTA=0x00;  //端口狀態(tài)00000000
  34.         TRISA=0xF0;  //端口方向00100000 RA5必須置1
  35.         TXSTA=0x24;  //使能發(fā)送;異步模式;高速波特率
  36.         RCSTA=0x90;  //使能串口
  37.     BRG16=0;     //8位波特率發(fā)生器
  38.         SPBRGL=25;    //波特率變量,設(shè)置為9600(25)
  39.     OPTION_REG=0xC5; //定義定時(shí)器0時(shí)鐘源,分頻比1:64
  40.     GIE=1;        //總中斷開(kāi)關(guān)
  41.         PEIE=1;        //外設(shè)中斷開(kāi)啟
  42.         RCIE=1;        //接收中斷開(kāi)啟
  43.     TMR0IE=1;     //定時(shí)器中斷開(kāi)啟
  44.     TMR0IF=0;     //定時(shí)器0中斷標(biāo)志清零
  45.     TMR0=0x64;       //初值設(shè)置,10ms溢出
  46. }
  47. void main()
  48. {   
  49.    init();
  50.    while(1)
  51.   {
  52.     if(M==0X25)   //同步復(fù)位
  53.       {
  54.       TMR0IF=0;
  55.       N=0;
  56.       M=0;
  57.       TMR0=0x64;
  58.       }
  59.      
  60.     if(M==0X24||M==0X26)
  61.       {
  62.        h=M;
  63.       }
  64.     if(N>0&&N<15)  //LED置1時(shí)間0-100ms
  65.       {
  66.       if(h==0X24)   //綠燈時(shí)間
  67.        {
  68.         Led1=1;
  69.        }
  70.       if(h==0X26)   //紅燈時(shí)間
  71.        {
  72.         Led2=1;
  73.        }
  74.       }
  75.     else
  76.       {
  77.        Led1=0;
  78.        Led2=0;
  79.       }
  80.     if(N>50&&N<60)   //500ms-600ms期間紅燈亮
  81.       {
  82.        if(h==0X26)   //紅燈閃第二次
  83.        {
  84.         Led2=1;
  85.        }
  86.       }
  87.     else
  88.       {
  89.       Led1=0;
  90.       Led2=0;
  91.       }
  92.     if(N>99)    //1S后清零N
  93.       {
  94.       N=0;
  95.       PIE1&=0xdf;
  96.       RCSTA&=0x7f;//關(guān)閉   關(guān)開(kāi)一次com確保接收無(wú)誤
  97.       PIE1|=0x20;
  98.       RCSTA|=0x80;//開(kāi)啟
  99.       }
  100.    }  
  101. }  

  102. void interrupt com()       //中斷入口
  103. {
  104.         if(RCIF==1&&RCIE==1)
  105.         {
  106.         M=RCREG;
  107.         }
  108.     if(TMR0IF==1)      //每10ms一次
  109.     {
  110.         N++;
  111.         Com_on=1;         //開(kāi)啟1ms
  112.         TMR0IF=0;
  113.         TMR0=0x64;
  114.         Com_on=0;
  115.     }
  116. }
復(fù)制代碼

所有資料51hei提供下載:
12F1822OSC.rar (1.29 KB, 下載次數(shù): 5)


回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表