通信技術專業畢業設計

(1)選用電子數字秒表晶片時,應重點考慮功能實在、使用方便、單片存儲、低功耗、抗斷電的器件。

(2)根據選用的電子數字秒表歷晶片設計外圍電路和單片機的接口電路。

(3)在硬體設計時,結構要儘量簡單實用、易於實現,使系統電路儘量簡單。

(4)根據硬體電路圖,在開發板上完成器件的焊接。

(5)根據設計的硬體電路,編寫控制at89s51晶片的單片機程式。

(6)通過編程、編譯、調試,把程式下載到單片機上運行,並實現本設計的功能。

(7)在硬體電路和軟體程式設計時,主要考慮提高人機界面的友好性,方便用戶操作等因素。

設計任務:掌握單片機程式設計、調試和套用電路設計、分析及調試檢測。

基本要求:設計一按鍵控制數碼管顯示的電子數字秒表,能實現存儲十組數據,數碼管前兩位顯示分鐘,後兩位顯示秒,可完成正計時、倒計時可以切換。在倒計時結束時蜂鳴器報警,同時倒計時時間可自行設定。還可以查看記錄的數據,具備暫停,清零等功能。

1.4系統硬體設計

1.4.1 電路設計框圖

本設計通過at89s51單片機以及單片機最小系統和三極體驅動以及外圍的按鍵和數碼管顯示等部件,設計一個基於單片機的簡易計時器。設計通過四位一體共陽極數碼管顯示,並能通過按鍵對秒進行設定,對數據進行存儲和查看。

圖1 電路設計框圖

1.4.2 功能實現

系統在正常工作時,led液晶上分和秒都顯示為零,當按下k1鍵時,電子數字秒表開始計時,如果想要對時間進行調整,可以通過調整設定模組來實現。當按下k2鍵時,可以存儲數據,每按一次存儲一組數據,能存儲最近十組數據。如想要倒計時可以按下k5鍵來調節倒計時的秒數,倒計時結束時蜂鳴器響五聲後停止。如想要切換到正計時可以按下k4鍵,同時k5鍵還可以調鬧鐘,鬧鐘時間到時,蜂鳴器響五聲數碼管閃五下停止。如果想要退出重新計時就再按一下k6即可復位。

系統原理圖如圖2: 

圖2原理圖 

2軟體設計

時間被認為是最寶貴的資源,為了對時間有更深刻的了解,同時也在電子方面有更深刻的認識,通過學習,選擇做一個通過按鍵控制數碼管的電子數字秒表設計,電子數字秒表的核心部件單片機at89s51,它在整個人類史上的地位已經不容置疑地確立了,相信它會越來越深入地浸透到人們的生活中,並且將在一定程度上影響人們對生活的理解和詮釋。用單片機製作電子產品也會越來越多,也是眾多領域實施編程開發不可缺少的一部分,這將必然成為一種趨勢。為更多的了解單片機的原理和套用,故做此設計來進行鞏固。

本電路以at89s51單片機最小系統為控制核心,數碼管顯示由三極體8550驅動,輸入部分採用五個獨立式按鍵k1、k2、k3、k4、k5。顯示部分的型與單片機p0口相連,數碼管的的位由單片機的p2口控制。對於不同型號的單片機只需要相應的改變一下地址即可。該軟、硬體系統具有很好的通用性,很高的實際使用價值。

2.1 軟體系統框圖

系統設計圖如圖2所示。

圖3 軟體設計圖

2.2 程式流程圖

圖4程式流程圖

2.3 程式編寫

#include <reg52.h>

#define uc unsigned char

#define ui unsigned int

void display();

char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; //數字對應顯示碼錶

char code tab1[]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};//小數點

char code index[]={0xf7,0xfb,0xfd,0xfe};  //每位數字對應數碼管顯示位置

uc num[8]; //每位數字存放數組

uc val[10][4];//存儲的記錄 [10]為記錄序列,[8]為每組記錄中的數字

char val_index;//記錄序列標誌位 

uc set_index,ok_flag,timing;

bit mode=1;//運行模式,1為正向計數,0為反向計數。

bit fin_flag=0;//完成標誌位,當反向計數結束時,此位為高電平,觸發蜂鳴器

bit set_shan;

sbit beep=p3^6; sbit key1=p1^0; sbit key2=p1^1;  sbit  key3=p1^2;  sbit key4=p1^3; sbit key5=p1^4;