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

標題: 單片機定時控制系統,繼電器到設定時間亮起來后,時鐘停了,八位數碼管不顯示 [打印本頁]

作者: 厄舍    時間: 2023-3-26 16:10
標題: 單片機定時控制系統,繼電器到設定時間亮起來后,時鐘停了,八位數碼管不顯示

定時控制系統可以顯示時間,并獨立控制兩組繼電器的開關狀態,具體功能如下:

(1)顯示時間,包括星期,小時,分鐘;

(2)分別間歇控制2個繼電器的開關,各繼電器的導通時間和斷開時間可以獨立設置,以分鐘為單位。例如間歇繼電器A導通n分鐘,關閉m分鐘,如此循壞。


求教各位幫忙看下單片機程序問題在哪里。多謝了。
  1. #include<reg51.h>
  2. #define uChar unsigned char
  3. #define uInt unsigned int
  4. uChar a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};  //段選0-9
  5. uChar b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};                           //位選
  6. uChar second=50,minute=59,hour=23,day=07,count;
  7. sbit Key1 = P3^0; //繼電器確認設置
  8. sbit Key2 = P3^1; //調位
  9. sbit Key3 = P3^2; //加一
  10. sbit Key4 = P3^3; //切換

  11. sbit L1=P1^0;                //繼電器控制口
  12. sbit L2=P1^1;
  13. uChar a1=01,a2=01;        //間歇繼電器1的休息時間a1與工作時間a2
  14. uChar b1=01,b2=01;        //間歇繼電器2的休息時間b1與工作時間b2
  15. uChar a11=01,a21=01,b11=01,b21=01;        //記錄間歇繼電器組設置后的狀態
  16. /*********************延遲函數********************/
  17. void Delay(uInt t)
  18. {
  19. while(t)
  20. {
  21. t--;
  22. }
  23. }
  24. /*********************時分秒顯示函數*******************/
  25. void Dispaly1(uChar day,uChar hour,uChar minute)
  26. {
  27. /*********************第一位數碼管*********************/
  28. P2=b[0];
  29. P0=a[day/10];
  30. Delay(10);
  31. /*********************第二位數碼管*********************/
  32. P2=b[1];
  33. P0=a[day%10];
  34. Delay(10);
  35. /*********************第三位數碼管*********************/
  36. P2=b[2];
  37. P0=0x40;
  38. Delay(10);
  39. /*********************第四位數碼管*********************/
  40. P2=b[3];
  41. P0=a[hour/10];
  42. Delay(10);
  43. /*********************第五位數碼管*********************/
  44. P2=b[4];
  45. P0=a[hour%10];
  46. Delay(10);
  47. /*********************第六位數碼管*********************/
  48. P2=b[5];
  49. P0=0x40;
  50. Delay(10);
  51. /*********************第七位數碼管*********************/
  52. P2=b[6];
  53. P0=a[minute/10];
  54. Delay(10);
  55. /*********************第八位數碼管*********************/
  56. P2=b[7];;
  57. P0=a[minute%10];
  58. Delay(10);
  59. }
  60. /*********************繼電器狀態顯示函數********************/
  61. void Dispaly2(uChar a1,uChar a2,uChar b1,uChar b2)
  62. {
  63. P2=b[0];
  64. P0=a[a1/10];
  65. Delay(10);

  66. P2=b[1];
  67. P0=a[a1%10];
  68. Delay(10);

  69. P2=b[2];
  70. P0=a[a2/10];
  71. Delay(10);

  72. P2=b[3];
  73. P0=a[a2%10];
  74. Delay(10);

  75. P2=b[4];
  76. P0=a[b1/10];
  77. Delay(10);

  78. P2=b[5];
  79. P0=a[b1%10];
  80. Delay(10);

  81. P2=b[6];
  82. P0=a[b2/10];
  83. Delay(10);

  84. P2=b[7];
  85. P0=a[b2%10];
  86. Delay(10);
  87. }
  88. /*********************時鐘按鍵掃描函數*********************/
  89. void Keyscan1()
  90. {
  91. static uChar j=0;
  92. /*時鐘調位和數值加一功能*/
  93. if(Key2==0)
  94. {
  95. Delay(10);
  96. if(Key2==0)
  97. while(!Key2);
  98. j++;
  99. }
  100. if(j%4==1)
  101. {
  102. if(Key3==0)
  103. {
  104. Delay(10);
  105. if(Key3==0)
  106. while(!Key3);
  107. day++;
  108. if(day==8)
  109. day=1;
  110. }
  111. }
  112. if(j%4==2)
  113. {
  114. if(Key3==0)
  115. {
  116. Delay(10);
  117. if(Key3==0)
  118. while(!Key3);
  119. hour++;
  120. if(hour==24)
  121. hour=0;
  122. }
  123. }
  124. if(j%4==3)
  125. {
  126. if(Key3==0)
  127. {
  128. Delay(10);
  129. if(Key3==0)
  130. while(!Key3);
  131. minute++;
  132. if(minute==60)
  133. minute=0;
  134. }
  135. }
  136. }

  137. /*間歇繼電器掃描函數*/
  138. void Keyscan2()
  139. {
  140. static uChar n=0;
  141. /*調位和加一功能*/
  142. if(n%4==1)         
  143. {
  144. if(Key3==0)
  145. {
  146. Delay(10);
  147. if(Key3==0)
  148. while(!Key3);
  149. a1++;
  150. if(a1==10)          //繼電器1休息時間不超過10分鐘
  151. a1=1;
  152. }
  153. }
  154. if(n%4==2)
  155. {
  156. if(Key3==0)
  157. {
  158. Delay(10);
  159. if(Key3==0)
  160. while(!Key3);
  161. a2++;
  162. if(a2==10)           //繼電器1工作時間不超過10分鐘
  163. a2=1;
  164. }
  165. }
  166. if(n%4==3)
  167. {
  168. if(Key3==0)
  169. {
  170. Delay(10);
  171. if(Key3==0)
  172. while(!Key3);
  173. b1++;
  174. if(b1==10)                //繼電器2休息時間不超過10分鐘
  175. b1=1;
  176. }
  177. }
  178. if(n%4==0)
  179. {
  180. if(Key3==0)
  181. {
  182. Delay(10);
  183. if(Key3==0)
  184. while(!Key3);
  185. b2++;
  186. if(b2==10)                //繼電器2工作時間不超過10分鐘
  187. b2=1;
  188. }
  189. }
  190. }

  191. /************************************************/
  192. /***************主函數***************************/
  193. /************************************************/
  194. void main()
  195. {                                                
  196. TMOD=0x01;          /*定時器以方式一工作*/
  197. TH0=(65536-10000)/256;
  198. TL0=(65536-10000)%256;/*10ms計時*/
  199. EA=1;
  200. ET0=1;/*允許定時器0中斷*/
  201. TR0=1;/*打開定時器0*/
  202. while(1)
  203. {
  204. static uChar h=0;
  205. /*時鐘和繼電器切換功能*/
  206. if(Key4==0)
  207. {
  208. Delay(10);
  209. if(Key4==0)
  210. while(!Key4);
  211. h++;
  212. }
  213. if(h%2==0)/*如果按鍵偶數次則顯示時鐘*/
  214. {
  215. Dispaly1(day,hour,minute);
  216. Keyscan1();
  217. }

  218. if(h%2==1)/*如果按鍵奇數次則顯示日期*/
  219. {
  220. Dispaly2(a1,a2,b1,b2);

  221. Keyscan2();
  222. Delay(10);
  223. if(Key1==0)                                //按鍵K4按下確定設置并退出
  224.         {
  225.                 Delay(10);
  226.                 a11=a1;
  227.                 a21=a2;
  228.                 b11=b1;
  229.                 b21=b2;
  230.                 break;
  231.                
  232.         }
  233. }
  234. }
  235. }
  236. /**********************中斷函數**************************/
  237. void time0_int(void) interrupt 1
  238. {
  239. TH0=(65536-10000)/256;
  240. TL0=(65536-10000)%256;
  241. count++;
  242. if(count==100)/*10ms??ê±£???100′??ò??o?1s*/
  243. {
  244. count=0;
  245. second++;
  246. if(second==60)
  247. {
  248. second=0;
  249. minute++;
  250. if(L1==1)
  251.                         {
  252.                                 a11--;
  253.                                 if(a11==0)
  254.                                 {
  255.                                         L1=0;
  256.                                         a11=a1;
  257.                                 }
  258.                         }
  259.                
  260.                         if(a21==0)
  261.                         {
  262.                                 L1=1;
  263.                                 a21=a2;
  264.                         }
  265.                         else if(L1==0)
  266.                         {
  267.                                 a21--;
  268.                         }
  269.                         if(L2==1)
  270.                         {
  271.                                 b11--;
  272.                                 if(b11==0)
  273.                                 {
  274.                                         L2=0;
  275.                                         b11=b1;
  276.                                 }
  277.                         }

  278.                         if(b21==0)
  279.                         {
  280.                                 L2=1;
  281.                                 b21=b2;
  282.                         }
  283.                         else if(L2==0)
  284.                         {
  285.                                 b21--;
  286.                         }
  287. if(minute==60)
  288. {
  289. minute=0;
  290. hour++;
  291. if(hour==24)
  292. {
  293. day++;
  294. hour=0;
  295. minute=0;
  296. second=0;
  297. if(day==7)
  298. {
  299. day=01;
  300. hour=0;
  301. minute=0;
  302. second=0;
  303. }
  304. }
  305. }
  306. }
  307. }
復制代碼

2.png (133.04 KB, 下載次數: 68)

2.png

1.png (136.02 KB, 下載次數: 67)

1.png





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 精品美女 | 黄色毛片免费看 | 亚洲精品99 | 久久久久免费精品国产小说色大师 | 国产精品国产三级国产a | a黄毛片| 台湾佬久久 | 国产一区二区三区久久久久久久久 | 久久国产亚洲 | 97av视频在线观看 | 亚洲视频在线一区 | 欧美一区二区三区久久精品 | 欧美激情一区 | 国产精品一区二区免费看 | 国产成人精品久久二区二区91 | 一区二区三区免费 | 91精品国产综合久久婷婷香蕉 | 国产在线播 | 成人免费福利 | 久久久久无码国产精品一区 | 久久av资源网 | 日日骚av | 精品亚洲一区二区三区 | 亚洲精品亚洲人成人网 | 在线观看av网站永久 | 我我色综合 | 欧美综合在线视频 | 中文字幕国产精品 | 羞羞视频在线观看 | 国产精品福利视频 | 欧美一区二区免费 | 在线播放精品视频 | h视频免费观看 | 国产精品国产三级国产播12软件 | 国产视频第一页 | 精品国产一区二区三区久久久蜜月 | 天天拍天天操 | 成年男女免费视频网站 | 日日夜精品视频 | 久久久久国产一区二区三区 | 久久久入口 |