本文主要以“加、減計(jì)時(shí)器的設(shè)計(jì)和實(shí)現(xiàn)”為例,詳細(xì)介紹了單片機(jī)的設(shè)計(jì)和制作。
一、設(shè)計(jì)要求
該設(shè)計(jì)即可做日常用的鬧表,又可做體育比賽中的計(jì)時(shí)器。其設(shè)計(jì)時(shí)間達(dá)到23:59:59。設(shè)計(jì)功能要求如下:
(一)、設(shè)置在任意時(shí)刻開(kāi)始加計(jì)時(shí)或減計(jì)時(shí)的控制開(kāi)關(guān);
(二)、設(shè)置可設(shè)定初值開(kāi)關(guān):設(shè)置秒初值開(kāi)關(guān)、設(shè)置分初值開(kāi)關(guān)、設(shè)置時(shí)初值開(kāi)關(guān);
(三)、設(shè)置定時(shí)鬧鈴開(kāi)關(guān);
(四)、設(shè)置在任意時(shí)刻人為暫停開(kāi)關(guān),并使鬧鈴有鈴聲;
(五)、用數(shù)碼管顯示,設(shè)數(shù)碼管關(guān)閉顯示,但不影響計(jì)時(shí)。
控制部分用單片機(jī)AT89C51來(lái)實(shí)現(xiàn)。
顯示部分用共陰極8段數(shù)碼管,其中時(shí)、分、秒的分段“:”,將分、秒的十位數(shù)碼管倒置與時(shí)、分個(gè)位的點(diǎn)組合而成。用AT89C51的P0.0~P0.7并接6個(gè)數(shù)碼管做時(shí)、分、秒的顯示。
選擇7個(gè)按鈕開(kāi)關(guān)分別做:
1、加、減控制開(kāi)關(guān)SW1,接單片機(jī)AT89C51的1.4口;2、定時(shí)開(kāi)關(guān):S(調(diào)秒)、M(調(diào)分)、H(調(diào)時(shí))分別接單片機(jī)AT89C51的P1.0、P1.1、P1.2口。
3、定時(shí)鬧鈴開(kāi)關(guān)SW3接單片機(jī)AT89C51的P1.6口與蜂鳴器的“+”連接;
4、暫停開(kāi)關(guān)SW2接單片機(jī)AT89C51的P1.4口;
5、關(guān)閉顯示開(kāi)關(guān)SW4接6個(gè)數(shù)碼管的供電端。
電路原理圖如下圖所示:
三、軟件編程
程序由五部分組成:
(1)主程序START:用于初始化,流程圖如下圖;
(2)調(diào)試功能程序NK1用于判斷按鍵S、M、H是否按下,若有按下則調(diào)整計(jì)時(shí)器初值。當(dāng)S按下一次則秒增加1秒,按下的次數(shù)與秒增加值一樣;同樣的M、H按下的次數(shù)與其增加值都對(duì)應(yīng)。流程圖如下圖。
(3)取時(shí)、分、秒BCD碼程序DISP
用于取出時(shí)、分、秒的BCD碼,并把秒的BCD碼存放于40H、41H單元,分的BCD碼存放于42H、43H單元,時(shí)的BCD碼存放于44H、45H單元。
(4)顯示子程序INT_T0用于把時(shí)、分、秒送到數(shù)碼管顯示,并當(dāng)SW1未按下時(shí),實(shí)現(xiàn)加計(jì)時(shí)。流程圖如下圖。
(5)減計(jì)時(shí)子程序JIANJISHU當(dāng)SW1按下時(shí)實(shí)現(xiàn)減計(jì)時(shí)。流程圖如下圖。
(6)INU1用于整點(diǎn)和暫停時(shí)響鈴。流程圖如下圖。
四、程序仿真調(diào)試和燒錄
單片機(jī)軟件很多,其中可以軟件仿真的軟件如Keil C51(3)。該設(shè)計(jì)中的程序可以通過(guò)Keil C51中的Dpj8.dll仿真。仿真的時(shí)候,把程序中的S、M、H分別用P3.2、P3.3、P3.4代替,仿真以下程序,可以看到時(shí)鐘的加計(jì)時(shí)功能和時(shí)、分、秒的調(diào)節(jié)功能的實(shí)現(xiàn)。再把SW1、SW2分別用P3.3、P3.4代替,仿真以下程序,可以看到減計(jì)時(shí)和暫停功能的實(shí)現(xiàn)。
當(dāng)仿真無(wú)誤后,用對(duì)應(yīng)的燒錄器把程序燒錄到單片機(jī)中,然后插到電路板上進(jìn)行調(diào)試。
五、安裝與調(diào)試
1、AT89C51最好不要直接焊接在電路板內(nèi),應(yīng)先用一個(gè)與之對(duì)應(yīng)的插座焊接,以方便修改調(diào)試程序。
2、數(shù)碼管要先用萬(wàn)用表測(cè)量各個(gè)引腳,且判斷出是共陰還是共陽(yáng)的數(shù)碼管。把兩個(gè)數(shù)碼管倒裝(如附圖把數(shù)碼觀的小數(shù)點(diǎn)用于顯示時(shí)與分、分與秒之問(wèn)的“:“。
3、全部焊接好后,就對(duì)單片機(jī)編程調(diào)試;31腳()接高電平即VCC。
-
單片機(jī)
+關(guān)注
關(guān)注
6023文章
44376瀏覽量
628381 -
計(jì)時(shí)器
+關(guān)注
關(guān)注
1文章
414瀏覽量
32486
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論