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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2592|回復: 6
打印 上一主題 下一主題
收起左側

請問單片機讓交通燈閃爍5s的思路是什么?定時器還是設置空程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:897410 發表于 2021-4-12 16:57 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
是讓信號通1s斷1s嗎?這個1s是用定時器 還是 直接設置空程序
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:716656 發表于 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. 簡單的這樣寫就可以
復制代碼
回復

使用道具 舉報

板凳
ID:476215 發表于 2021-4-12 23:25 | 只看該作者
從穩定性來看一定是使用定時器,然后在定時器里面加計數判斷是否到了時間。
回復

使用道具 舉報

地板
ID:894154 發表于 2021-4-13 07:57 | 只看該作者
通一斷一閃的太慢了 通0.5斷0.5吧
0.5s進一次定時器對IO進行一次取反就可以實現閃爍了
回復

使用道具 舉報

5#
ID:897410 發表于 2021-4-13 14:08 | 只看該作者
ANT1987 發表于 2021-4-13 07:57
通一斷一閃的太慢了 通0.5斷0.5吧
0.5s進一次定時器對IO進行一次取反就可以實現閃爍了

感謝, 已經寫好了 就是用的 取反
回復

使用道具 舉報

6#
ID:900662 發表于 2021-4-13 17:07 | 只看該作者
定時器定5毫秒進中斷取反就可以了,程序的話太麻煩了吧。我覺得你可以設置一個標志位,計數器進一次中斷,標志位改變一次,對應你的各種燈,用循環通過你進中斷的次數控制換燈。
回復

使用道具 舉報

7#
ID:897410 發表于 2021-4-13 17:32 | 只看該作者

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表