基于单片机的秒表计时器系统设计(#0400)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                基于单片机的秒表计时器系统设计(#0400)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                
                            
                            
                            當今社會在很多比賽中,都要用到時間的長短來衡量比賽的結果。本設計是一個利用單片機控制的多功能秒表系統。
 
 
                        
                        
                        功能描述
1、采用51單片機作為控制芯片;
2、數碼管前兩位顯示分鐘,后兩位顯示秒;
2、正計時、倒計時可以切換;
3、倒計時時間可設置,計時結束蜂鳴器報警;
4、計時過程中最多可記錄10個時刻點,過后可翻閱記錄的數據;
按鍵說明
K1:開始/停止計時;倒計時設置模式下,設置位加1;
K2:計時進行中按下,記錄時間點;倒計時設置模式下,設置位切換;
K3:計時值歸零;
K4:正/倒計時模式切換(計時停止狀態下操作);
K5:進入/退出倒計時設置模式(計時停止狀態下操作);
電路設計
采用Altium Designer作為電路設計工具。Altium Designer通過把原理圖設計、PCB繪制編輯、拓撲邏輯自動布線、信號完整性分析和設計輸出等技術的完美融合,為設計者提供了全新的設計解決方案,使設計者可以輕松進行設計,熟練使用這一軟件必將使電路設計的質量和效率大大提高。
仿真設計
采用Proteus作為仿真設計工具。Proteus是一款著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。
主程序設計
void main() {uc h,g,k;init();clr();while(1) {display(); //刷屏顯示數碼管 alarm();if(key1==0) //開始/暫停按鈕 {delay(5);if(key1==0){TR0=~TR0;while(!key1) display();}}if(key2==0) //記錄按鈕 {delay(5);if(key2==0){if(TR0==1)//當在運行中按下記錄鍵則存儲記錄 {for(g=1;g<10;g++){for(k=0;k<4;k++){val[g-1][k]=val[g][k]; //低位存儲的數據向高位移一位}}for(h=0;h<4;h++){val[9][h]=num[h];//將當前時間存儲 }}else//在停止狀態下按下記錄鍵查看記錄,按動一次序列遞減一次,即查看上一次記錄 {for(h=0;h<4;h++)num[h]=val[val_index][h];//將當前時間存儲 val_index--;if(val_index<0)val_index=9;}while(!key2) display(); //按鍵釋放}}if(key3==0) //復位按鈕{delay(5);if(key3==0){clr(); //將數據清零while(!key3) display(); //按鍵釋放} }if((key4==0)&&(TR0==0)) //模式選擇按鈕,僅在停止狀態下有效 {delay(5);if(key4==0){mode=~mode; //正計時倒計時切換while(!key4) display();} }if((key5==0)&&(TR0==0)) //時間設置,僅在停止狀態下有效{delay(5);if(key5==0){while(!key5)display();setup(); //調用設置函數}}} }源文件獲取
關注公眾號【電子開發圈】,首頁發送 “秒表” 獲取;
?
總結
以上是生活随笔為你收集整理的基于单片机的秒表计时器系统设计(#0400)的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: AdaCliP: Adaptive Cl
- 下一篇: 王元化林毓生谈话录
