一、設(shè)計任務(wù)
綜合中斷、定時器、LED數(shù)碼管等完成一精度為0.01秒的秒表。
相關(guān)要求:
1.輸入:K1(啟動/暫停)、K2(清零);(利用外部中斷)
2.輸出:4為數(shù)碼管(顯示格式:06.78)
二、系統(tǒng)框圖
三、程序設(shè)計分析
(一)流程圖
(二)程序分析:
1.定時器:系統(tǒng)中所采用的晶振頻率是12MHz,其機器周期=1us,秒表的精度是0.01s=1us*10000,給定時器設(shè)定一個初值(65536-10000=55536)采用十六進制可得出D8F0即TH0=0xd8;TL0=0xf0。若計數(shù)小于6000則一直加1,若計數(shù)等于6000時則重新計數(shù)。
2.綜合中斷:根據(jù)題目要求,秒表應(yīng)具有兩個按鍵,那么兩個按鍵分別對應(yīng)兩個外部中斷,分別使當按下按鍵后中斷請求源發(fā)出中斷請求,使程序執(zhí)行中斷處理程序,當中斷服務(wù)請求處理完后再回到原來被中止的程序之處,繼續(xù)執(zhí)行。
3.按鍵控制:根據(jù)題目要求,秒表應(yīng)具有兩個按鍵,按鍵一控制秒表的啟動或暫停,按鍵二控制秒表的清零。按鍵一利用外部中斷,當按下按鍵一時中斷請求源發(fā)出中斷請求,程序中將定時器0關(guān)閉,計數(shù)器則停止工作;當按下按鍵一之后按下按鍵二,將定時器取反,則計數(shù)器重新工作以此達到清零的功能。
4.數(shù)碼管顯示:將計數(shù)器的計數(shù)結(jié)果通過將4位數(shù)字分解,通過一個循環(huán)(因為有四位數(shù)所以循環(huán)4次)先選位碼以此決定數(shù)字顯示在哪一個數(shù)碼管中,再根據(jù)分解結(jié)果選取該數(shù)碼管所需要顯示的段碼;最后再加一個延時函數(shù)以此讓數(shù)字在數(shù)碼管上顯示的時候讓我們的眼睛所能觀察到。
四、電路原理圖
作者簡介:陳藝元(1998.07——)女,漢族,廣西桂林,廣西師范大學(xué)本科在讀