當前位置:
首頁 >
《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)
發布時間:2023/12/29
42
豆豆
生活随笔
收集整理的這篇文章主要介紹了
《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《單片機》實驗——實驗4 MCS-51內部定時/計數器實驗(2)
- 一、實驗目的
- 二、知識要點
- 三、實驗內容
實驗一至實驗七配套源代碼、電路圖、hex文件、實驗報告,請點擊此處
一、實驗目的
二、知識要點
(1)8051內部有兩個定時/計數器T0和T1,均可對系統內部的機器周期計數(定時模式)和芯片之外的脈沖信號計數(計數模式);都有4種工作方式,其不同之處在于計數值寬度不一樣(13位/16位/8位)以及計數初值是否能自動重裝。
(2)與定時/計數器相關的控制字及控制位主要有TMOD,TH0/TH1,TL0/TL1,TCON
三、實驗內容
(1)通過并行口P1實現十字路口交通燈的模擬控制。
關于交通路燈的亮滅規律說明:設有一個十字路口分為南北方向和東西方向,初始狀態為紅燈全亮,之后,南北綠燈亮,東西紅燈亮,南北方向通車。延時一段時間后,南北綠燈熄滅,而南北黃燈開始閃爍,閃爍若干次以后,南北紅燈亮,而同時東西的綠燈亮,東西方向通車,延時一段時間后,東西綠燈熄滅,而東西黃燈開始閃爍,閃爍若干次以后,再切換到南北方向,之后,重復上述過程。
編程提示:(實現6個燈按交通變化規律亮、滅或閃爍)
通過定時器實現精準定時,用較短的定時控制黃燈的閃爍(如0.5s或1s),較長的定時控制通行(如5s或10s)。
(2)(選做題)利用8051的定時/計數器控制4個發光二極管循環閃爍,要求點亮時間為1S,采用方式3的TH0與TL0聯合實現,TH0用于定時,TL0用于對TH0溢出次數的計數。
#include<reg51.h> char t; char i=0; char num=0; char a=0; char led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main(){TMOD=0x07;TH0=0x06;TL0=0x38;TR1=1;TR0=1;EA=1;ET0=1;while(1){while(TF1==0);TF1=0;P3=0;P3=0x10;TH0=0x06;} } timer() interrupt 1{TF0=0;num++;a=i%8;if(num%20==0){P1=led[a];i++;}TL0=0x38; }總結
以上是生活随笔為你收集整理的《单片机》实验——实验4 MCS-51内部定时/计数器实验(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: json转excel_Excel如何制作
- 下一篇: 【无标题】新冠病毒变异株检测——荧光定量