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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2296|回復: 2
收起左側

多次使用單片機定時器程序,幫我看看有沒有問題

[復制鏈接]
ID:878420 發表于 2021-3-6 14:28 來自觸屏版 | 顯示全部樓層 |閱讀模式
單位電腦無法上網,只能手機拍照發帖。工程師們幫我看看練習程序,能不能用T0定時10秒 15秒
IMG_20210306_142301_edit_1431476013640948.jpg
IMG_20210306_142010.jpg
IMG_20210306_141806.jpg
IMG_20210306_141509.jpg
IMG_20210306_141500.jpg
回復

使用道具 舉報

ID:332444 發表于 2021-3-6 17:22 | 顯示全部樓層
數值計算不用懷疑,仿真時間非實際時間,不過仿真時間可以通過監視變量波形測得準確時間。
回復

使用道具 舉報

ID:213173 發表于 2021-3-6 17:43 | 顯示全部樓層
一個定時器可以輸出N個定時時間,方法有多種。舉個比較簡單的示例:取所有定時時間的共倍數30秒做計數周期。3個LED分別以5、10、15秒周期閃爍。
  1. #include <STC8.H>
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. sbit led1 = P3^0;
  5. sbit led2 = P3^1;
  6. sbit led3 = P3^2;

  7. uchar num,t1s;
  8. bit t5s,t10s,t15s;

  9. void InitTimer0()//@11.0592MHz
  10. {
  11.         TMOD = 0x01;
  12.         TH0 = 0x4C;
  13.         TL0 = 0x00;
  14.         EA = 1;
  15.         ET0 = 1;
  16.         TR0 = 1;
  17. }

  18. void main(void)
  19. {
  20.     InitTimer0();
  21.         while(1)
  22.         {
  23.                 if(t5s==1)
  24.                 {
  25.                         t5s=0;
  26.                         led1=~led1;
  27.                 }
  28.                 if(t10s==1)
  29.                 {
  30.                         t10s=0;
  31.                         led2=~led2;
  32.                 }
  33.                 if(t15s==1)
  34.                 {
  35.                         t15s=0;
  36.                         led3=~led3;
  37.                 }
  38.         }
  39. }

  40. void Timer0Interrupt(void) interrupt 1
  41. {
  42.         TH0 = 0x4C;
  43.         TL0 = 0x00;
  44.         num++;
  45.         if(num>=20)//1秒
  46.         {
  47.                 num=0;
  48.                 t1s++;
  49.                 if(t1s%5==0)//5秒
  50.                 {
  51.                         t5s=1;
  52.                 }
  53.                 if(t1s%10==0)//10秒
  54.                 {
  55.                         t10s=1;
  56.                 }
  57.                 if(t1s%15==0)//15秒
  58.                 {
  59.                         t15s=1;
  60.                 }
  61.                 if(t1s==30)//30秒
  62.                 {
  63.                         t1s=0;
  64.                 }
  65.         }
  66. }
復制代碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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