找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

帖子
查看: 2841|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)定時(shí)器實(shí)驗(yàn)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:577468 發(fā)表于 2019-7-3 22:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
定時(shí)器計(jì)數(shù)器綜合實(shí)驗(yàn)

P1接8個(gè)LED燈,P3.7接1個(gè)LED燈,點(diǎn)動(dòng)開關(guān)接P3.2 (INT0),負(fù)跳變產(chǎn)生中斷,P3.3 (INT1)用低電平觸發(fā)中斷。系統(tǒng)時(shí)鐘6M。

編寫程序?qū)崿F(xiàn)如下功能:

① 主程序9只LED燈上電全滅。

② INT0中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T0,再按一次停止。停止后恢復(fù)到上電狀態(tài)。

③ INT1中斷程序?qū)崿F(xiàn):按一次啟動(dòng)定時(shí)器T1,再按一次停止。停止后恢復(fù)到上電狀態(tài)。

④ 定時(shí)器T0實(shí)現(xiàn):P3.7所接1個(gè)LED燈亮滅閃爍,亮滅時(shí)間各為1S。

⑤ 計(jì)數(shù)器T1實(shí)現(xiàn):記錄由T1口所輸入脈沖個(gè)數(shù),以二進(jìn)制形式在P1口連接的8只LED燈上顯示出來(lái)。

(提示:低電平觸發(fā)及時(shí)恢復(fù)高電平,以免中斷重入)

程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. sbit p3_7=P3^7;
  4. char t;
  5. char k=0;
  6. void main()
  7. {
  8.          TMOD=0x51;
  9.          EA=1;
  10.          EX0=1;
  11.          EX1=1;
  12.          ET0=1;
  13.          ET1=1;
  14.          IT0=1;
  15.          IT1=1;
  16.          TR0=0;
  17.          TR1=0;
  18.          TL0=(65536-15536)%256;
  19.          TH0=(65536-15536)/256;
  20.          TL1=0;
  21.          TH1=0;
  22.          p3_7=0;
  23.          P1=0;
  24.          while(1);
  25. }
  26. void key0()interrupt 0
  27. {
  28.          TR0=!TR0;
  29.          if(TR0==0)
  30.          {
  31.                   TR1=0;
  32.                   k=0;
  33.                   P1=0;
  34.                   p3_7=0;
  35.          }
  36. }
  37. void time0()interrupt 1
  38. {
  39.          TL0=(65536-15536)%256;
  40.          TH0=(65536-15536)/256;
  41.          t++;
  42.          if(t==10)
  43.          {
  44.                   p3_7=!p3_7;
  45.                   t=0;
  46.          }
  47. }
  48. void key1()interrupt 2
  49. {
  50.          TR1=!TR1;
  51.          TH1=0xff;
  52.          TL1=0xff;
  53.          if(TR1==0)
  54.          {
  55.                   TR0=0;
  56.                   k=0;
  57.                   P1=0;
  58.                   p3_7=0;
  59.          }
  60. }
  61. void time1()interrupt 3
  62. {
  63.          TH1=0xff;
  64.          TL1=0xff;
  65.          k++;
  66.          P1=k;
  67. }
復(fù)制代碼


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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2019-7-4 23:10 | 只看該作者
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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