登錄|立即注冊|使用QQ帳號登錄
論壇 > 資料共享
發(fā)帖|
看2831|回1|收藏
樓主 ID:577468 只看他
2019-7-3 22:20
定時器計數(shù)器綜合實驗

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

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

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

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

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

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

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

(提示:低電平觸發(fā)及時恢復(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ā) ID:1 只看他
2019-7-4 23:10
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)

51黑電子論壇

Powered by Discuz! X3.1

首頁|標準版|觸屏版|電腦版