一、 設計任務與要求
1、設計任務
用單片機設計一個數字電子鐘,采用LED 數碼管來顯示時間。
2、設計要求
(1)顯示格式為:XX:XX:XX, 即:時:分:秒。
(2)時間可采用12小時制顯示或24 小時制顯示,采用12 小時顯示時必須
在另外一個數碼管上顯示A(表示上午)或B(表示下午)。
(3)設置一個按鍵用于時間顯示方式的切換。
(4)系統上電后從上電時初始化顯示: 12-00-00開始計時。
(5)能進行時間的調整,可暫停時間的變動,暫停時一位數碼管上顯示字母H
可按自己的要求設置擴展的小鍵盤個數。
二、 方案設計與論證
file:///D:/Temp/msohtmlclip1/01/clip_image001.giffile:///D:/Temp/msohtmlclip1/01/clip_image002.giffile:///D:/Temp/msohtmlclip1/01/clip_image002.gif
圖1 系統整體框圖
整個系統用單片機作為中央控制器,由單片機執行采集芯片內部時鐘信號,時鐘信號通過單片機I/O口傳給單片機,單片機模塊控制驅動模塊驅動顯示模塊,通過顯示模塊來實現信號的輸出、LED的顯示及相關的控制功能。系統設有按鍵模塊用于對時間進行調整及擴展多個小鍵盤,系統整體框圖如圖1所示。
1、單片機芯片選擇方案
方案一:AT89S52是一個低功耗,高性能CMOS 8位單片機,片內含4k Bytes ISP(In-systemprogrammable)的可反復擦寫1000次的Flash只讀程序存儲器。主要性能有:與MCS-51單片機產品兼容、全靜態操作:0Hz~33Hz、 三級加密程序存儲器、32個可編程I/O口線、三個16位定時器/計數器、八個中斷源、全雙工UART串行通道、掉電后中斷可喚醒、看門狗定時器、雙數據指針、掉電標識符、易編程。
方案二:AT89C52是一個低電壓,高性能CMOS 8位單片機,片內含8k bytes的可反復擦寫的Flash只讀程序存儲器和256 bytes的隨機存取數據存儲器(RAM)。主要性能有:兼容MCS51指令系統、32個雙向I/O口、256x8bit內部RAM、3個16位可編程定時/計數器中斷、時鐘頻率0-24MHz、2個串行中斷、可編程UART串行通道、2個外部中斷源、6個中斷源、2個讀寫中斷口線、3級加密位、低功耗空閑和掉電模式、軟件設置睡眠和喚醒功能。
從單片機芯片主要性能角度出發,本數字電子鐘單片機芯片選擇設計采用方案一。
2、數碼管顯示選擇方案
方案一:靜態顯示。靜態顯示,即當顯示器顯示某一字符時,相應的發光二極管恒定導通或截止。該方式每一位都需要一個8 位輸出口控制。靜態顯示時較小電流能獲得較高的亮度,且字符不閃爍。但因當所需顯示的位數較多時,靜態顯示所需的I/O口數較大,造成資源的浪費。
方案二:動態顯示。動態顯示,即各位數碼管輪流點亮,對于顯示器各位數碼管,每隔一段延時時間循環點亮一次。利用人的視覺暫留功能可以看到整個顯示,但須保證掃描速度足夠快,人的視覺暫留功能才可察覺不到字符閃爍。顯示器的亮度與導通電流、點亮時間及間隔時間的比例有關。調整參數可以實現較高穩定度的顯示。動態顯示節省了I/O口,降低了能耗。
從節省單片機芯片I/O口和降低能耗角度出發,本數字電子鐘數碼管顯示選擇設計采用方案二。
3、數碼管驅動選擇方案
方案一:上拉電阻驅動方式。數碼管段碼與接有上拉電阻的單片機芯片I/O口相連,通過編程,單片機芯片即控制段碼電平的高低。該方式經費低,但實物制作較復雜。
方案二:74LS245芯片驅動方式。數碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機芯片I/O口,通過編程,單片機芯片即可控制段碼電平的高低。該方式實物制作簡單,增強驅動數碼管段碼能力。
從實物制作簡易程度與驅動數碼管段碼能力角度出發,本數字電子鐘數碼管驅動選擇設計采用方案二。
三、 硬件單元電路設計與參數計算
1、電源電路
本數字電子鐘設計所需電源電壓為直流、電壓值大小5V的電壓源 。從硬件實物設計簡易程度與經費方面考慮,用兩節電壓值大小2.5V干電池與電路電壓源引腳相連接即可達到硬件設計要求。即本數字電子鐘設計用兩節電壓值大小2.5V干電池做硬件電路電壓源。
2、按鍵電路
本數字電子鐘設計所需按鍵用于進行顯示時間的調整與設置擴展的小鍵盤。
單片機芯片4個I/O口可與按鍵直接相連,通過編程,單片機芯片即可控制按鍵接口電平的高低,即按鍵的開與關,以達到用按鍵進行顯示時間的調整與設置擴展的小鍵盤的設計要求。
3、時鐘電路
單片機芯片可使用內部時鐘電路和外部時鐘電路兩種方式產生電路所需的時鐘脈沖,內部時鐘電路實現可用石英晶體和微調電容外接即可達到,外部時鐘電路實現需要一個外部脈沖源引入脈沖信號以保證個單片機之間時鐘信號的同步。從硬件實現難易角度考慮,內部時鐘電路的實現比外部時鐘電路的實現更簡易。既本數字電子鐘設計所需的時鐘源采用內部時鐘電路實現。所用定時方式為工作方式1,石英晶振為12M,即最小定時時間為1us,最大定時時間約為65.5ms,其電路圖如下圖2所示。
|
| file:///D:/Temp/msohtmlclip1/01/clip_image004.jpg |
圖2 時鐘電路圖
4、驅動電路
從實物制作簡易程度與驅動數碼管段碼能力角度出發,本數字電子鐘設計采用數碼管段碼與74LS245芯片B口相連,74LS245芯片A口與單片機芯片I/O口,通過編程,單片機芯片即可控制段碼電平的高低的方式實現數碼管段碼控制,74LS245芯片圖如下圖3所示。
file:///D:/Temp/msohtmlclip1/01/clip_image006.jpg
圖3 74LS245芯片圖
5、LED顯示電路
數字電子鐘設計的顯示模塊用8個一位數碼管實現,也可用兩個四位一體數碼管實現。兩種實現方式實現效果一樣。從實物制作的難易程度出,本數字電子鐘設計采用兩個四位一體數碼管實現。即數碼管引腳與單片機芯片和74LS245對應引腳相連接。
單片機電路
本數字電子鐘設計采用AT89S52單片機芯片作為中央控制器,實現信號的輸出、LED的顯示及相關的控制功能。
四、 軟件設計與流程圖
1、數字電子時鐘主程序流程圖
主程序流程圖如下圖圖4所示。
file:///D:/Temp/msohtmlclip1/01/clip_image007.gif
圖4 數字電子時鐘主程序流程圖
2、中斷服務程序流程圖
中斷服務程序流程圖如下圖圖5所示。
file:///D:/Temp/msohtmlclip1/01/clip_image011.gif
圖5 中斷服務程序流程圖
3、顯示子程序流程圖
顯示子程序流程圖如下圖圖6所示。
file:///D:/Temp/msohtmlclip1/01/clip_image012.gif
圖6 顯示子程序流程圖