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

標題: 請問單片機讓交通燈閃爍5s的思路是什么?定時器還是設置空程序 [打印本頁]

作者: YYC7491    時間: 2021-4-12 16:57
標題: 請問單片機讓交通燈閃爍5s的思路是什么?定時器還是設置空程序
是讓信號通1s斷1s嗎?這個1s是用定時器 還是 直接設置空程序
作者: 壓著我頭發啦    時間: 2021-4-12 20:29
  1. /*******************************************************

  2. 紅綠燈//需驗證程序

  3. *******************************************************/

  4. #include "reg51.h"
  5. #define uchar unsigned char
  6. #define uint unsigned int
  7. sfr AUXR=0x8E;

  8. uchar shijian=0,aa=0,deng=3;

  9. void init()
  10. {
  11.         AUXR &= 0x7F;
  12.         TMOD &= 0xF0;
  13.         TL0 = 0x00;
  14.         TH0 = 0x4C;
  15.         TF0 = 0;
  16.         TR0 = 1;
  17.         ET0=1;
  18.         EA=1;
  19.         P0 = 0xff;
  20. }

  21. void main()
  22. {
  23.         init();
  24.         while(1)
  25.         {
  26.                 if(shijian==0)
  27.                 {
  28.                         switch(deng)
  29.                         {
  30.                                 case 0:shijian=70;deng=1;break;//綠
  31.                                 case 1:shijian=70;deng=2;break;//黃
  32.                                 case 2:shijian=70;deng=3;break;//紅
  33.                                 case 3:shijian=70;deng=0;break;//黃
  34.                         }
  35.                 }
  36.         /*時間每秒減一*/

  37.                 switch(deng)
  38.                 {
  39.                         case 0:
  40.                                                 if(shijian%2==0)
  41.                                                 P1=0x00;
  42.                                                 if(shijian%2==1)
  43.                                                 P1=0xff;
  44.                                                 break;
  45.                         case 1:P1=0xff;break;//綠
  46.                         case 2:
  47.                                                 if(shijian%2==0)
  48.                                                 P1=0x00;
  49.                                                 if(shijian%2==1)
  50.                                                 P1=0xff;
  51.                                                 break;
  52.                         case 3:P1=0x00;break;//紅
  53.                 }
  54.         }
  55. }

  56. void T0_time() interrupt 1
  57. {

  58.         aa++;
  59.                 if(aa==50)
  60.         {
  61.                 aa=0;
  62.                 shijian--;
  63.         }
  64. }
  65. 簡單的這樣寫就可以
復制代碼

作者: qee654    時間: 2021-4-12 23:25
從穩定性來看一定是使用定時器,然后在定時器里面加計數判斷是否到了時間。
作者: ANT1987    時間: 2021-4-13 07:57
通一斷一閃的太慢了 通0.5斷0.5吧
0.5s進一次定時器對IO進行一次取反就可以實現閃爍了
作者: YYC7491    時間: 2021-4-13 14:08
ANT1987 發表于 2021-4-13 07:57
通一斷一閃的太慢了 通0.5斷0.5吧
0.5s進一次定時器對IO進行一次取反就可以實現閃爍了

感謝, 已經寫好了 就是用的 取反
作者: jfmdam    時間: 2021-4-13 17:07
定時器定5毫秒進中斷取反就可以了,程序的話太麻煩了吧。我覺得你可以設置一個標志位,計數器進一次中斷,標志位改變一次,對應你的各種燈,用循環通過你進中斷的次數控制換燈。
作者: YYC7491    時間: 2021-4-13 17:32
壓著我頭發啦 發表于 2021-4-12 20:29

感謝 ,不過我沒學過C,已經用匯編寫出來了




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