本文主要以“加、減計時器的設計和實現”為例,詳細介紹了單片機的設計和制作。
一、設計要求
該設計即可做日常用的鬧表,又可做體育比賽中的計時器。其設計時間達到23:59:59。設計功能要求如下:
(一)、設置在任意時刻開始加計時或減計時的控制開關;
(二)、設置可設定初值開關:設置秒初值開關、設置分初值開關、設置時初值開關;
(三)、設置定時鬧鈴開關;
(四)、設置在任意時刻人為暫停開關,并使鬧鈴有鈴聲;
控制部分用單片機AT89C51來實現。
顯示部分用共陰極8段數碼管,其中時、分、秒的分段“:”,將分、秒的十位數碼管倒置與時、分個位的點組合而成。用AT89C51的P0.0~P0.7并接6個數碼管做時、分、秒的顯示。
選擇7個按鈕開關分別做:
1、加、減控制開關SW1,接單片機AT89C51的1.4口;2、定時開關:S(調秒)、M(調分)、H(調時)分別接單片機AT89C51的P1.0、P1.1、P1.2口。
3、定時鬧鈴開關SW3接單片機AT89C51的P1.6口與蜂鳴器的“+”連接;
4、暫停開關SW2接單片機AT89C51的P1.4口;
5、關閉顯示開關SW4接6個數碼管的供電端。
電路原理圖如下圖所示:
三、軟件編程
程序由五部分組成:
(1)主程序START:用于初始化,流程圖如下圖;
(2)調試功能程序NK1用于判斷按鍵S、M、H是否按下,若有按下則調整計時器初值。當S按下一次則秒增加1秒,按下的次數與秒增加值一樣;同樣的M、H按下的次數與其增加值都對應。流程圖如下圖。
(3)取時、分、秒BCD碼程序DISP
用于取出時、分、秒的BCD碼,并把秒的BCD碼存放于40H、41H單元,分的BCD碼存放于42H、43H單元,時的BCD碼存放于44H、45H單元。
(4)顯示子程序INT_T0用于把時、分、秒送到數碼管顯示,并當SW1未按下時,實現加計時。流程圖如下圖。
(5)減計時子程序JIANJISHU當SW1按下時實現減計時。流程圖如下圖。
(6)INU1用于整點和暫停時響鈴。流程圖如下圖。
四、程序仿真調試和燒錄
單片機軟件很多,其中可以軟件仿真的軟件如Keil C51(3)。該設計中的程序可以通過Keil C51中的Dpj8.dll仿真。仿真的時候,把程序中的S、M、H分別用P3.2、P3.3、P3.4代替,仿真以下程序,可以看到時鐘的加計時功能和時、分、秒的調節功能的實現。再把SW1、SW2分別用P3.3、P3.4代替,仿真以下程序,可以看到減計時和暫停功能的實現。
當仿真無誤后,用對應的燒錄器把程序燒錄到單片機中,然后插到電路板上進行調試。
五、安裝與調試
1、AT89C51最好不要直接焊接在電路板內,應先用一個與之對應的插座焊接,以方便修改調試程序。
2、數碼管要先用萬用表測量各個引腳,且判斷出是共陰還是共陽的數碼管。把兩個數碼管倒裝(如附圖把數碼觀的小數點用于顯示時與分、分與秒之問的“:“。
3、全部焊接好后,就對單片機編程調試;31腳()接高電平即VCC。
-
單片機
+關注
關注
6043文章
44621瀏覽量
638567 -
計時器
+關注
關注
1文章
426瀏覽量
32861
發布評論請先 登錄
相關推薦
51單片機的倒計時器程序
基于單片機技術的機械設備計時器的研制
![基于<b class='flag-5'>單片機</b>技術的機械設備<b class='flag-5'>計時器</b>的研制](https://file1.elecfans.com//web2/M00/A5/51/wKgZomUMN-KAFeJ5AABLtgHBqac881.jpg)
單片機計時器的設計分析
![<b class='flag-5'>單片機</b><b class='flag-5'>計時器</b>的設計分析](https://file.elecfans.com/web2/M00/4A/0D/pYYBAGKhvI-AB_QjAABblqCTAM0430.png)
51單片機計時器中斷
基于單片機系統的籃球計分計時器的設計
![基于<b class='flag-5'>單片機</b>系統的籃球計分<b class='flag-5'>計時器</b>的設計](https://file.elecfans.com/web2/M00/49/69/poYBAGKhwK-AH1UXAAAgrT_lPV0123.png)
采用Proteus與Keil軟件實現基于單片機的計時器系統設計
![采用Proteus與Keil軟件實現基于<b class='flag-5'>單片機</b>的<b class='flag-5'>計時器</b>系統設計](https://file.elecfans.com/web1/M00/62/24/pIYBAFuHibOAFXjWAAA9PsrvVm4804.jpg)
基于51單片機的計時器設計
![基于<b class='flag-5'>51</b><b class='flag-5'>單片機</b>的<b class='flag-5'>計時器</b>設計](https://file.elecfans.com/web1/M00/AB/62/pIYBAF2yq5yALzMXAADLmwvddnU156.png)
單片機怎么通過按鍵控制計時器的開始和停止_超詳細!51單片機寄存器功能一覽表...
![<b class='flag-5'>單片機</b>怎么通過按鍵控制<b class='flag-5'>計時器</b>的開始和停止_超詳細!<b class='flag-5'>51</b><b class='flag-5'>單片機</b>寄存<b class='flag-5'>器</b>功能一覽表...](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
單片機計時器
![<b class='flag-5'>單片機</b><b class='flag-5'>計時器</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用51單片機開發板制作60秒時鐘計時器
![使用<b class='flag-5'>51</b><b class='flag-5'>單片機</b>開發板<b class='flag-5'>制作</b>60秒時鐘<b class='flag-5'>計時器</b>](https://file1.elecfans.com/web2/M00/AD/47/wKgZomVApuaAc-e5AAFICXzLLrQ941.jpg)
評論