


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