基于單片機的數字秒表設計
2.4 數碼管顯示電路
本系統(tǒng)使用了6個共陽極數碼管、設計LED顯示驅動是一個非常重要的問題,顯示電路由LED顯示器、段驅動電路和位驅動電路組成。由于單片機的并行口驅動電流太小,不能直接驅動LED顯示器,段驅動電路通過74LS245雙向總線收發(fā)器使P0口與數碼管的八段相連,可增加P0的驅動能力。位驅動電路通過六只NPN三極管驅動使P2口的低六位作為位選信號,使之產生足夠大的電流,來驅動LED達到足夠的亮度,顯示器才能正常工作。如果驅動電路能力差,即驅動電流過小,數碼管顯示亮度不夠,而驅動電路驅動電流太大容易損壞數碼管。
LED顯示器顯示控制方式有兩種:靜態(tài)和動態(tài)。本設計方案選擇的是動態(tài)控制方式。由于一位數據的顯示是由段碼和位碼信號共同配合完成的,因此,要同時考慮段和位的驅動能力,而且段的驅動能力決定位的驅動能力。
2.5 按鍵電路
本系統(tǒng)設置3個功能按鍵分別為KEY1、KEY2和KEY3,其中KEY1是開始按鍵,與P3.0相連,按下時數碼管開始計時;KEY2是停止按鍵,與P3.1相連,按下時數碼管停止計時:KEY3是清零按鍵,與P3.2相連,按下時數碼管全部清零。當數碼管計時時,不能直接按清零按鍵,只能按停止按鍵才能停止,再按清零按鍵全部顯示初始化0。
3 系統(tǒng)軟件設計
系統(tǒng)軟件由主程序模塊、延時模塊、鍵盤掃描程序模塊以及數碼管驅動程序模塊組成。
本設計中,計時采用定時器T0中斷完成,其余狀態(tài)循環(huán)調用顯示子程序,當功能按鍵按下時,轉入相應功能程序。其主程序流程圖如圖4所示。本文引用地址:http://www.ex-cimer.com/article/171931.htm
4 仿真結果
程序在Keil uVision3環(huán)境下編寫,編譯通過后生成.hex文件加載到Proteus下可正常運行。程序剛運行前數碼管顯示初值為0000.0 0,按下鍵KEY1系統(tǒng)開始計時,程序中每0.01s進入一次定時中斷。在程序運行過程中若按下鍵KEY2系統(tǒng)暫停計時,數碼管顯示計時截至狀態(tài);若按下鍵KEY3,數碼管清零。圖5為鍵KEY1抬起、鍵KEY2按下的狀態(tài)。
5 結束語
本文利用AT89C52單片機設計了具有計時開始、暫停及清零功能的數字秒表,計時最大值為59分59.99秒,計時精度為0.01秒。利用Proteus和Keil軟件進行了仿真,達到了預期的效果。整體電路的計時精度高,電路結構簡單,抗干擾能力強,具有廣泛的應用前景。
評論