發布日期:2022-04-17 點擊率:110
通過實例,對涉及到的相關知識點進行回顧,同時學習體會定時器/計數器應用的基本方法。
AT89S52單片機的LED控制。利用定時器/計數器控制端口P1或者P2引腳相連的LED以1s為間隔循環閃亮。
圖2 LED原理
(2)設定初值和工作方式
CS-III外部時鐘采用24MHz,每定時1s時間需要計系統內部時鐘12000000個,即為2000000個機器周期。可選用定時器0的工作方式1,定義初值為(65536-50000)=15536,即從15536開始計數,共50000次,重復40次可以達到50000*40=2000000個機器周期,即1s。
因此:M1M0=01;TH0=3CH,TL0=B0H
初始化程序段:
mov TL0, #0B0H ; 置定時器初值
mov TH0, #03CH ; 初值為0x3caf
mov TMOD, #01H ; 設定定時器/計數器0工作方式為1
setb EA ; 允許中斷
setb ET0 ; 允許定時器/計數器0溢出中斷
setb TR0 ; 啟動定時器/計數器0
(3) 總體程序設計
單片機控制LED閃亮的程序流程圖如圖3和4所示。
圖3 總程序流程 圖4 溢出中斷服務程序流程
(4)程序運行的效果
通過定時器計數器的設置和編寫相應的程序,還可以在LED上實現高低交替閃爍、循環點亮的流水燈、逐位間隔點亮等效果。
通過實例,對涉及到的相關知識點進行回顧,同時學習體會定時器/計數器應用的基本方法。
AT89S52單片機的LED控制。利用定時器/計數器控制端口P1或者P2引腳相連的LED以1s為間隔循環閃亮。
圖2 LED原理
(2)設定初值和工作方式
CS-III外部時鐘采用24MHz,每定時1s時間需要計系統內部時鐘12000000個,即為2000000個機器周期。可選用定時器0的工作方式1,定義初值為(65536-50000)=15536,即從15536開始計數,共50000次,重復40次可以達到50000*40=2000000個機器周期,即1s。
因此:M1M0=01;TH0=3CH,TL0=B0H
初始化程序段:
mov TL0, #0B0H ; 置定時器初值
mov TH0, #03CH ; 初值為0x3caf
mov TMOD, #01H ; 設定定時器/計數器0工作方式為1
setb EA ; 允許中斷
setb ET0 ; 允許定時器/計數器0溢出中斷
setb TR0 ; 啟動定時器/計數器0
(3) 總體程序設計
單片機控制LED閃亮的程序流程圖如圖3和4所示。
圖3 總程序流程 圖4 溢出中斷服務程序流程
(4)程序運行的效果
通過定時器計數器的設置和編寫相應的程序,還可以在LED上實現高低交替閃爍、循環點亮的流水燈、逐位間隔點亮等效果。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV