找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2101|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

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

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:878420 發(fā)表于 2021-3-6 14:28 來自手機(jī) | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
單位電腦無法上網(wǎng),只能手機(jī)拍照發(fā)帖。工程師們幫我看看練習(xí)程序,能不能用T0定時10秒 15秒

IMG_20210306_142301_edit_1431476013640948.jpg (563.76 KB, 下載次數(shù): 147)

IMG_20210306_142301_edit_1431476013640948.jpg

IMG_20210306_142010.jpg (628.18 KB, 下載次數(shù): 127)

IMG_20210306_142010.jpg

IMG_20210306_141806.jpg (1.23 MB, 下載次數(shù): 131)

IMG_20210306_141806.jpg

IMG_20210306_141509.jpg (1.52 MB, 下載次數(shù): 109)

IMG_20210306_141509.jpg

IMG_20210306_141500.jpg (1.51 MB, 下載次數(shù): 111)

IMG_20210306_141500.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:332444 發(fā)表于 2021-3-6 17:22 | 只看該作者
數(shù)值計算不用懷疑,仿真時間非實際時間,不過仿真時間可以通過監(jiān)視變量波形測得準(zhǔn)確時間。
回復(fù)

使用道具 舉報

板凳
ID:213173 發(fā)表于 2021-3-6 17:43 | 只看該作者
一個定時器可以輸出N個定時時間,方法有多種。舉個比較簡單的示例:取所有定時時間的共倍數(shù)30秒做計數(shù)周期。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. }
復(fù)制代碼
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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