倒計時鬧鐘。(主要定時器、外部中斷和外部電路)
有源蜂鳴器鳴響,4位數(shù)碼管倒計時顯示剩余時間。 可以直接使用shumaguan_c電路圖 要求: 1. 每2分鐘蜂鳴8秒。(包含長時間定時和蜂鳴器鳴響控制) 2.開機后數(shù)碼管顯示0200 (分鐘 秒數(shù)),并開始倒計時每秒遞減, 時間到達00 08時,鳴響8秒,直到顯示0000時,鳴響停止。 由外部中斷0實現(xiàn)按鍵,控制倒計時過程的暫停或繼續(xù)。 由外部中斷1實現(xiàn)按鍵,可以在鳴響期間停止鳴響,不影響計時。 3. 上述過程反復執(zhí)行
一、描述和設計要求
1.1 描述1、每2分鐘蜂鳴8秒。(包含長時間定時和蜂鳴器鳴響控制) 2、開機后數(shù)碼管顯示02 00 (分鐘 秒數(shù)),并開始倒計時每秒遞減, 時間到達00 08時,鳴響8秒,直到顯示00 00時,鳴響停止。 3、由外部中斷0實現(xiàn)按鍵,控制倒計時過程的暫停或繼續(xù)。 由外部中斷1實現(xiàn)按鍵,可以在鳴響期間停止鳴響,不影響計時。 4、上述過程反復執(zhí)行。 1.2 技術指標(1) 所使用的CPU引腳,中斷類型等參數(shù);
(2) 定時器時鐘周期是50毫秒,定時的周期是2分鐘; (3)其他涉及的參數(shù) 采用的是四位共陽數(shù)碼管;蜂鳴器是由三極管作為開關控制。 二、實現(xiàn)方案和可行性分析
2.1 實現(xiàn)思路和可行性分析(1) 實現(xiàn)思路: 第一步:顯示數(shù)碼管函數(shù)
voiddisplay_time(unsigned char fen,unsigned char miao)
{ unsigned char i;
unsigned char f[4];
f[0]=fen/10;
f[1]=fen%10;
f[2]=miao/10;
f[3]=miao%10;
for(i=0;i<4;i++)
{
P2=wei;
P0=~duanma[f];
delay_ms(1);
}
}
第二步:采用定時器0倒計時
void Timer0()interrupt1
{
TL0 = 0xB0;
TH0 = 0x3C;
time++;
if(time>20)
{
time=0;
miao--;
}
if(miao<0)
{
miao=59;
fen--;
}
if(fen==0&&miao==0&&time==19)
{
time=0;
miao=0;
fen=2;
}
}
第三步:采用外部中斷0和1 void key() interrupt 0 { if(key0==0) {delay_ms(1); if(key0==0) { TR0 =!TR0; } } } void key_() interrupt 2 { if(key1==0) {delay_ms(1); if(key1==0) { TR0 =1; n=1; } } } (2) 可行性分析: 1、數(shù)碼管顯示模塊: 采用的是四位共陽數(shù)碼管,其數(shù)碼管的段碼引腳接到單片機的P0^0~P0^7;數(shù)碼管的位碼則是由單片機P2^4~P2^7引腳輸出控制四個三極管的基極,當三極管的基極為低電平時,三極管導通從而控制數(shù)碼管位碼。 2、外部中斷按鍵控制模塊 采用按鍵按下使外部中斷0/1的引腳P3^3/P3^4接地,從而使單片機執(zhí)行外部中斷里面的程序,即由外部中斷0實現(xiàn)按鍵,控制倒計時過程的暫停或繼續(xù), 由外部中斷1實現(xiàn)按鍵,可以在鳴響期間停止鳴響,不影響計時。 3、蜂鳴器模塊 蜂鳴器模塊是采用單片機的P3^7引腳控制三極管的基極,當三極管的基極為低電平時,三極管導通從而控制蜂鳴器的鳴叫。 2.2 流程圖file:///C:/Users/LSC/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg 三、電路描述和程序?qū)崿F(xiàn)
3.1 電路連接圖file:///C:/Users/LSC/AppData/Local/Temp/msohtmlclip1/01/clip_image004.jpg 3.2 程序代碼void main() { Timer0Init(); EX0_Init(); n=1; while(1) { display_time(fen,miao); if(key1==1) { if(fen==0&&miao<9) { n=!n; delay_ms(1); } } } } 四、運行結果(1) 涉及的數(shù)值結果, 以圖表的形式給出
(2) 實驗板運行狀態(tài)的照片, 主要涉及LED和數(shù)碼管等顯示環(huán)節(jié)的顯示內(nèi)容的變化。 開機數(shù)碼管的初始狀態(tài) 時間到達00 08時,鳴響8秒 file:///C:/Users/LSC/AppData/Local/Temp/msohtmlclip1/01/clip_image006.jpg file:///C:/Users/LSC/AppData/Local/Temp/msohtmlclip1/01/clip_image008.jpg 時間到達00 00時,鳴響停止 到計時結束后,自動回到初始狀態(tài) |