本文介紹的用單片機AT89C2051制作的計時器,采用倒計時方式,剩余時間一目了然。時間到了還會發出報警聲。
一、硬件電路工作原理
電路見附圖,由單片機電路和數碼顯示電路等組成。使用復位和開始兩個按鈕,用三位數碼管分別顯示分和秒。
AT89C205l、TX、R1、C1等組成單片機電路。數碼管DS1~DS3、VT1~VT3、R3~R12等組成數碼顯示電路。本機采用動態顯示方式,使用共陽數碼管,P3.3~P3.5口作數碼管的位碼輸出,通過三極管驅動數碼管。P1.0~P1.6口作段碼輸出,用以驅動數碼管的各字段。BL是自帶振蕩器的訊響器。當P3.0輸出低電平時,BL發出報警聲。
二、軟件設計
程序用C語言編寫,由主程序、定時器T0中斷服務程序、定時器T1中斷服務程序、延時子程序等模塊組成。主程序主要完成程序的初始化和對開始按鍵S1的檢測。
TO中斷服務程序由動態掃描顯示等部分組成。T0的中斷時間設置為5ms。采用三位顯示,T0每中斷一次顯示一位,3次中斷,即15ms,刷新一次數據。程序中用到三個數組:DisoTab[l0]用來存放字形碼;BitTab[3]存放位驅動碼;DispBuf[3]存放待顯示的數,其中DispBuf[0]存放分鐘數,DispBuf[1]、DispBuf[2]分別存放秒的十位和個位。T1中斷服務程序用作時間計數。中斷時間設置為50ms。為了獲得1秒鐘的時間。使用了變量n,T1每中斷一次n加l。當n=20時即得到1秒的時間。程序中s作秒計數,m作分計數,它們的初始值為s=0。m=5。當n計滿20時s減l(當s為0時結果取59):當s計滿60個數時m減1:m、s均為0說明5分鐘的定時時間到。BL發出1秒鐘報警聲。
在計時過程中。如果要提前結束計時,只需按一下復位鍵S2,這時數碼顯示5:00;當按開始鍵S1后。倒計時開始。
三、元器件選擇與安裝
DS1~DS3選共陽LED數碼管,BL選用內部帶振蕩器的訊響器。其余元器件的參數見附圖。
先將C語言源程序用KEILC51編譯成目標文件。即HEX文件。再用編程器將HEX文件寫入AT89C205l中。安裝時,將表示分的數碼管DSI和表示秒的數碼管DS2、DS3分開一定的距離。
-
單片機
+關注
關注
6043文章
44619瀏覽量
638479 -
AT89C2051
+關注
關注
7文章
170瀏覽量
66407 -
計時器
+關注
關注
1文章
426瀏覽量
32861
發布評論請先 登錄
相關推薦
評論