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

QQ登錄

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

搜索

高三內(nèi)宿輔助工具制作 附單片機(jī)代碼

查看數(shù): 2855 | 評(píng)論數(shù): 1 | 收藏 0
關(guān)燈 | 提示:支持鍵盤(pán)翻頁(yè)<-左 右->
    組圖打開(kāi)中,請(qǐng)稍候......
發(fā)布時(shí)間: 2020-2-20 18:15

正文摘要:

高二后的暑假做了一個(gè)輔助內(nèi)宿的東西,用了半年非常穩(wěn)定,充一次電正常用一星期完全沒(méi)問(wèn)題發(fā)出來(lái)分享一下 主要功能: 看/改時(shí)間,做題計(jì)時(shí),考試倒計(jì)時(shí),打電話,高考倒計(jì)時(shí) 但當(dāng)電量低于70%時(shí)不建議打電話 兩 ...

回復(fù)

ID:183450 發(fā)表于 2020-2-20 18:19
狀態(tài)欄下面的計(jì)時(shí)是按學(xué)校時(shí)刻表下一個(gè)節(jié)點(diǎn)倒計(jì)時(shí),比如下課倒計(jì)時(shí),上課倒計(jì)時(shí),起床倒計(jì)時(shí),晚飯倒計(jì)時(shí)等

單片機(jī)源程序如下:
  1. #include"head.h"

  2. main()
  3. {
  4. oled_init1();//初始化OLED屏
  5. //oled_dis2(32,0,16,2,4073);
  6. //oled_dis2(48,0,16,2,4105);
  7. //oled_dis2(64,0,16,2,4137);
  8. //oled_dis2(80,0,16,2,4169);
  9. while(!P36);//等待射頻芯片初始化
  10. uart_init1();//初始化串口通訊
  11. ds1302_init();//初始化實(shí)時(shí)時(shí)鐘
  12. key_init();//使能按鍵
  13. adc_get2();//獲取電源電壓
  14. //if(adc_c<20)//低電量處理
  15. //{
  16. //ES=0;
  17. //IT0 = 1;                    //設(shè)置INT0的中斷類(lèi)型:僅下降沿
  18. //EX0 = 1;                    //使能INT0中斷
  19. //while(adc_c<30)
  20. //{
  21. //gsm_off();
  22. //EX0 = 1;                    //使能INT0中斷
  23. //oled_off();
  24. //PCON = 0x02;
  25. //oled_on();
  26. //adc_get2();
  27. //}
  28. //ES=1;
  29. //}
  30. gsm_init();//移動(dòng)電話初始化
  31. oled_fill1(0x00);//清屏
  32. ds1302_read();//讀取時(shí)間
  33. down_time();//高考倒計(jì)時(shí)計(jì)算

  34. while(1)
  35. {          


  36. //if((!ring)&&(fun!=10))//有電話打入時(shí)
  37. //{
  38. //cfun=fun;
  39. //fun=10;
  40. //enter1(fun);
  41. //}

  42. if(lock)
  43. {
  44. if(enter){PCON |= 0x02;delayms(1);}
  45. else
  46. {
  47. enter=1;
  48. IT0 = 1;                    //設(shè)置INT0的中斷類(lèi)型:僅下降沿
  49. EX0 = 1;                    //使能INT0中斷
  50. EA=1;
  51. oled_off();
  52. ES=0;
  53. kp=1;
  54. //PCON |= 0x02;
  55. delayms(1);
  56. }
  57. }
  58. else
  59. {
  60. if(enter)
  61. {
  62. ds1302_work();//時(shí)鐘驅(qū)動(dòng)
  63. uart_work();//串口驅(qū)動(dòng)
  64. key_scan();//按鍵驅(qū)動(dòng)
  65. if(time5)
  66. {
  67. mark_tim();//學(xué)校時(shí)刻表計(jì)算
  68. adc_get2();//刷新電量
  69. oled_dis8();//狀態(tài)欄
  70. if(flag_h) //我的計(jì)時(shí)
  71. {time_h++;}
  72. if(flag_w)        //同桌計(jì)時(shí)
  73. {time_w++;}
  74. if(flag_h||flag_w)//計(jì)時(shí)時(shí)防止關(guān)機(jī)
  75. {offt=0;}

  76. }
  77. if(time8){down_time();}//高考倒計(jì)時(shí)更新

  78. if(close_time==5)//關(guān)機(jī)時(shí)間延長(zhǎng)
  79. {
  80. if(k01||k11||k21)
  81. {close_time=60;}
  82. }
  83. switch(fun)
  84. {
  85. case 0:fun0();break;
  86. case 1:fun1();break;
  87. case 2:fun2();break;
  88. case 3:fun3();break;
  89. case 4:fun4();break;
  90. case 5:fun5();break;
  91. case 10:fun10();break;
  92. default :fun=0;break;
  93. }
  94. //if(fun==0){fun0();}
  95. //else if(fun==1){fun1();}
  96. //else if(fun==2){fun2();}
  97. //else if(fun==3){fun3();}
  98. //else if(fun==4){fun4();}
  99. //else if(fun==5){fun5();}
  100. //else if(fun==10){fun10();}
  101. if(kp){sys_lock();}
  102. }
  103. else
  104. {oled_init1();oled_fill1(0x00);enter=1;EX0 = 0;ds1302_read();down_time();adc_get2();mark_tim();oled_dis8();enter1(fun);close_time=5;offt=0;ES=1;}
  105. if(time5)
  106. {
  107. offt++;
  108. if(ring==0)
  109. {
  110. offt=0;
  111. }
  112. if(offt>close_time)
  113. {
  114. offt=0;
  115. sys_lock();
  116. }
  117. }
  118. }

  119. if(com&&(fun!=10))
  120. {
  121. cfun=fun;
  122. fun=10;
  123. enter1(fun);
  124. }



  125. //結(jié)尾游歷/////////////////////////////////////////////////////////////////////////////////////////////////////////////
  126. if(k01){k01=0;}
  127. if(k11){k11=0;}
  128. if(k21){k21=0;}
  129. if(k02){k02=0;}
  130. if(k12){k12=0;}
  131. if(k22){k22=0;}
  132. if(k03){k03=0;}
  133. if(k13){k13=0;}
  134. if(k23){k23=0;}

  135. if(!P30){IAP_CONTR = 0x60;}
  136. if(time5){time5=0;}
  137. if(time8){time8=0;}
  138. }
  139. }
復(fù)制代碼


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

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

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