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

標(biāo)題: 51單片機(jī)數(shù)碼管無線調(diào)時(shí)萬年歷程序 [打印本頁]

作者: 二師兄    時(shí)間: 2019-4-21 17:27
標(biāo)題: 51單片機(jī)數(shù)碼管無線調(diào)時(shí)萬年歷程序
51數(shù)碼管無線調(diào)時(shí)萬年歷

單片機(jī)源程序如下:
  1. #include "STC15Wxx.h"
  2. #include <intrins.h>
  3. #include "string.h"
  4. //#include "sys/mcuinit.h"

  5. #include "sys/delay.h"
  6. #include "enc28j60/enc28j60.h"
  7. #include "fu_ip/fu_config.h"
  8. #include "fu_ip/fu_send.h"
  9. /*TCP UDP NTP協(xié)議*/

  10. #include "DS3232/DS3232.H"

  11. #include "led/led.h"
  12. #include "code/currency.h"
  13. #include "code/wireless.h"
  14. #include "code/network.h"
  15. #include "code/school.h"
  16. #include "led/led.h"
  17. #include "key/key.h"
  18. #include "main.h"







  19. /************年月日定義************/
  20. unsigned int year=2017;                        //年
  21. unsigned char mon=7;
  22. unsigned char day=12;
  23. unsigned char hour=17;
  24. unsigned char min=10;
  25. unsigned char sec=10;
  26. unsigned char _state;        //亮燈狀態(tài)
  27. unsigned char week;                //星期
  28. /*************************************/
  29. unsigned char  receiveData;                //北斗串口接受的數(shù)據(jù)
  30. unsigned char  RX2_Buffer;                //無線串口接受數(shù)據(jù)標(biāo)志
  31. bit B_TX2_Busy;                                //串口2標(biāo)志
  32. bit B_TX1_Busy;                                //串口1標(biāo)志
  33. bit B_1ms;                                                //1毫秒標(biāo)記位
  34. unsigned int  count_1ms;                                //1毫秒計(jì)數(shù)
  35. unsigned int  light_time=0;                        //亮燈時(shí)間
  36. unsigned char xdata key_event;                        //按鍵事件
  37. unsigned char keyevent_add =0;                                        //按鍵事件
  38. unsigned char getevent = 0;                                        //獲取按鍵

  39. unsigned char  do_success=0; //接受成功之后的亮燈標(biāo)志

  40. unsigned char st;

  41. unsigned char  cmd3[7]= {0xc0,0x20,0x15,0x50,0x98,0x00};



  42. void PrintString3(unsigned char *puts);        //發(fā)送一個(gè)字符串

  43. /**********函數(shù)********************/
  44. void init();
  45. void geiDS3232TIMES();
  46. void PrintString1(unsigned char *puts);
  47. /**********************************/
  48. void main(){
  49.         init();
  50.         AUX=1;                                                                                        //AUX 先上電
  51.         //WX_POWER=0;                                //開啟無線   無線上電
  52.         init_DS3231(0x1C);                          //初始化   守時(shí)芯片
  53.         //delayms(200);
  54.         if(Get_YEAR()==0)Set_time(12,0,0,17,1,1);
  55.         getevent=0;
  56.         keyevent_add=0;
  57.         PrintString3(cmd3);       
  58.         while(1){
  59.                         if(B_1ms){                                //1毫秒到
  60.                                         B_1ms=0;
  61.                                         if(beginwire==1)lcawire++;
  62.                                         if(beginnet==1)lcanet++;
  63.                                         if(count_1ms>980){                //1秒到了
  64.                                                 count_1ms=0;
  65.                                                  if(do_success !=0)light_time++;
  66.                                                 if(keyevent_add==1)sec++;
  67.                                                 //sec++;
  68.                                                 if(NETSORT==2){                                                                                //1秒一刷  
  69.                                                                 memcpy(DATA,"",1);
  70.                                                                 Send_UDP_Data_Bag(1);
  71.                                                         }
  72.                                                         press_time();                                                                                                                                        //按鍵時(shí)長(zhǎng)
  73.                                                        
  74.                                                 }
  75.                         }
  76.                 press_key();                                //按鍵
  77.                 change_mode();                                                                                                                                                                        //改變模式
  78.                 DateTest();               
  79.                 WDT_CONTR |=0x10;                                                                                                                                                                                 //喂狗
  80.                 if(keyevent_add==0 && getevent !=6)geiDS3232TIMES();                                                                                                                                                                //實(shí)時(shí)讀取守時(shí)芯片時(shí)間
  81.                 sendbyte_H(year,mon,day,hour,min,sec);                                        //顯示程序         
  82.         }
  83. }

  84. //初始化
  85. void init(){
  86.         P0M0=0X00;
  87.         P0M1=0X00;
  88.         P4M0=0X00;
  89.         P4M1=0X00;
  90.         P2M0 = 0X00;
  91.         P2M1 = 0X00;
  92.         P1M0 = 0;
  93.         P1M1 = 0;
  94.         P3M1 = 0;        P3M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  95.         P5M0 = 0X00;P5M1 = 0X00;
  96. //        AUX = 1;                                                //AUX高電平 進(jìn)入命令模式 7-21
  97.         AUXR |= 0x80;                                                                                                                                        //設(shè)置為1T
  98.         TMOD = 0x00;                                                                            //計(jì)數(shù)器 16位自動(dòng)重裝模式
  99.         EX1=0;                                //禁止外部中斷 0  1
  100.         EX0=0;
  101.   TL0 = (65536-MAIN_Fosc/1000);                 //1T模式  速度為12T模式的12倍
  102.   TH0 = (65536-MAIN_Fosc/1000) >> 8;
  103.         TF0 = 0;                                                                                                                                                //計(jì)數(shù)器中斷
  104.         ET0 = 1;        //Timer0 interrupt enable
  105.         TR0 = 1;        //Tiner0 run                                                                                        //串口一
  106.         PT0 = 1; //設(shè)置中斷優(yōu)先級(jí)  提升精確度

  107.         // 串口4
  108.        

  109.         P_SW2 = 0x00;                                //串口2在 P1.0 P1.1
  110.         AUXR &= ~(1<<4);        //Timer stop
  111.         AUXR &= ~(1<<3);        //Timer2 set As Timer
  112.         AUXR |=  (1<<2);        //Timer2 set as 1T mode
  113.         T2H = (65536UL - (MAIN_Fosc / 4) / 9600)/ 256;
  114.         T2L = (65536UL - (MAIN_Fosc / 4) / 9600)% 256;
  115.         IE2  &= ~(1<<2);        //禁止中斷
  116.         AUXR |=  (1<<4);        //Timer run enable
  117.         S2CON &= ~(1<<7);        // 8位數(shù)據(jù), 1位起始位, 1位停止位, 無校驗(yàn)
  118.         IE2   |= 1;                        //允許中斷
  119.         S2CON ^= 0xef ;
  120.         S2CON =~S2CON;                //不允許接受
  121.         EA = 1;                //打開總中斷
  122.        
  123.         WDT_CONTR=0x07;                 //        設(shè)置看門狗位 256分屏
  124.         WDT_CONTR |= 0x20; //啟動(dòng)看們狗

  125. }

  126. /*-----內(nèi)部中斷 計(jì)時(shí)器1------*/
  127. void init_time0 (void) interrupt 1 using 1  {
  128.                 B_1ms =1;                                        //1毫秒標(biāo)記位
  129.                 count_1ms++;

  130. }
  131. /*-----內(nèi)部中斷 計(jì)時(shí)器2------*/
  132. /*   $GNRMC,084032.007,A,2813.0983,N,11253.1384,E,0.39,0.00,270916,,,A* 7B     */
  133. void init_time1(void) interrupt 4 using 1 {
  134. if(RI)
  135.         {
  136.                 RI = 0;
  137.                 receiveData = SBUF;
  138.                 if(get_times<4)BDTIME=1;
  139.         }
  140.         if(TI)
  141.         {
  142.                 TI = 0;
  143.                 B_TX1_Busy = 0;
  144.         }
  145. }
  146. void PrintString1(unsigned char *puts)        //發(fā)送一個(gè)字符串
  147. {
  148.     for (; *puts != 0;        puts++)           //遇到停止符0結(jié)束
  149.         {
  150.                 SBUF = *puts;
  151.                 B_TX1_Busy = 1;
  152.                 while(B_TX1_Busy);
  153.         }
  154. }
  155. /**********************************************************************/
  156. /******************        串口2中斷     ******************************/
  157. /* ?4@2015$GNZDA,004827.000,14,10,2016,08,48*0119000173 */
  158. /**********************************************************************/
  159. void UART2_int (void) interrupt 8 using 2
  160. {
  161.         if((S2CON & 1) != 0)
  162.         {
  163.                 S2CON &= ~1;        //Clear Rx flag
  164.                 RX2_Buffer= S2BUF;
  165.                 WX_FLAG=1;
  166.                        
  167.         }

  168.         if((S2CON & 2) != 0)
  169. ……………………

  170. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
51數(shù)碼管無線調(diào)時(shí)萬年歷.zip (597.96 KB, 下載次數(shù): 9)


圖片.png (93.05 KB, 下載次數(shù): 29)

圖片.png





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1