版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于AT89S51單片機(jī)的秒表設(shè)計(jì)第十一組組長(zhǎng):韓潤(rùn)澤組員:黃磊劉軒宇何維楊俊生王順志基于AT89S51單片機(jī)的秒表設(shè)計(jì)1AT89S51單片機(jī)簡(jiǎn)介單片機(jī)最小系統(tǒng),無(wú)論對(duì)單片機(jī)初學(xué)人員還是開發(fā)人員都具有十分重要的意義,可以利用最小系統(tǒng)進(jìn)行編程實(shí)現(xiàn)工業(yè)控制。其靈活的硬件電路的設(shè)計(jì)和軟件的設(shè)計(jì),使單片機(jī)得到了廣泛的應(yīng)用,單片機(jī)最小系統(tǒng)結(jié)構(gòu)可謂是具有可編程硬件的一個(gè)縮影,對(duì)我們學(xué)習(xí)和研究微機(jī)系統(tǒng)具有重大意義。單片機(jī)最小系統(tǒng)電路板在單片機(jī)開發(fā)市場(chǎng)和大學(xué)生電子設(shè)計(jì)方面十分流行。本次課程設(shè)計(jì)包括AT89S51單片機(jī)最小系統(tǒng)(包括復(fù)位和時(shí)鐘電路)及供電系統(tǒng)、LED數(shù)碼管顯示電路。采用AT89S51單片機(jī)實(shí)現(xiàn)數(shù)字秒表的設(shè)計(jì)。主要以AT89S51單片機(jī)為核心,采用4位LED數(shù)碼管顯示以及外部中斷電路來(lái)實(shí)現(xiàn)數(shù)字秒表的基本功能。本文簡(jiǎn)單介紹了其系統(tǒng)組成,重點(diǎn)討論了其硬軟件的實(shí)現(xiàn)過(guò)程,并對(duì)其計(jì)時(shí)精度進(jìn)行了確定,使其達(dá)到1秒,并能實(shí)現(xiàn)0~60秒的計(jì)時(shí)。利用Protel電路設(shè)計(jì)軟件進(jìn)行原理圖設(shè)計(jì),PCB布線,最后通過(guò)對(duì)硬件系統(tǒng)的仿真觀察其實(shí)際運(yùn)行情況,給我們以直觀的認(rèn)識(shí)。借此鞏固單片機(jī)應(yīng)用、模擬電路、數(shù)字電路課程及學(xué)會(huì)工程軟件protel的使用AT89S51單片機(jī)簡(jiǎn)介單片機(jī)最小系統(tǒng),無(wú)論對(duì)單2隨著電子技術(shù)的發(fā)展,電子技術(shù)在各個(gè)領(lǐng)域的運(yùn)用也越來(lái)越廣泛,人對(duì)它的認(rèn)識(shí)也逐步加深。秒表計(jì)時(shí)器常常用于體育競(jìng)賽及各種其他要求有較精確時(shí)間的各領(lǐng)域中。其中啟/停開關(guān)的使用方法與傳統(tǒng)的機(jī)械計(jì)時(shí)器相同,即按一下啟/停開關(guān),啟動(dòng)計(jì)時(shí)器開始計(jì)時(shí),再按一下啟/停開關(guān)計(jì)時(shí)終止。而復(fù)位開關(guān)可以在任何情況下使用,即使在計(jì)時(shí)過(guò)程中,只要按一下復(fù)位開關(guān),計(jì)時(shí)應(yīng)立即終止,并對(duì)計(jì)時(shí)器清零。本設(shè)計(jì)就是利用所學(xué)到的電子元器件將脈沖源用數(shù)碼管顯示出來(lái),以制成簡(jiǎn)易的秒表。秒表是由單片機(jī)的P0口和P2口分別控制兩個(gè)數(shù)碼管使數(shù)碼管工作,循環(huán)顯示從00—59。同時(shí)用一個(gè)開關(guān)控制數(shù)碼管的啟動(dòng)與停止,另外加上一個(gè)復(fù)位電路使其能正常復(fù)位,通常還使用石英晶體振蕩器電路構(gòu)成整個(gè)秒表的結(jié)構(gòu)電路。隨著電子技術(shù)的發(fā)展,電子技術(shù)在各個(gè)領(lǐng)域的運(yùn)用也越來(lái)越廣泛,人3方案設(shè)計(jì)1.1硬件選擇以及電路的設(shè)計(jì)應(yīng)遵循的原則:(1)在性價(jià)比滿足應(yīng)用系統(tǒng)要求的基礎(chǔ)上,選擇更可靠、更熟悉的單片機(jī),縮短研制周期。(2)盡可能選擇較成熟的典型應(yīng)用電路,以提高系統(tǒng)的可靠性。(3)單片機(jī)內(nèi)部的資源與外部擴(kuò)展資源應(yīng)在滿足應(yīng)用系統(tǒng)設(shè)計(jì)要求的基礎(chǔ)上留有余地,為進(jìn)一步升級(jí)和擴(kuò)展其功能提供方便。(4)應(yīng)充分結(jié)合軟件方案統(tǒng)籌考慮硬件結(jié)構(gòu),通常硬件功能較完善,其相應(yīng)的軟件就簡(jiǎn)單,但硬件成本較高;而硬件功能略低,其相應(yīng)的軟件就復(fù)雜。實(shí)際中應(yīng)盡量以軟件替代硬件來(lái)降低成本。(5)整個(gè)系統(tǒng)的相關(guān)器件應(yīng)盡可能做到性能匹配,如電平、速度的匹配等。(6)充分考慮整個(gè)系統(tǒng)的抗干擾設(shè)計(jì),如選擇具有抗干擾設(shè)計(jì)的單片機(jī)并充分篩選芯片與器件,在電路中采取隔離和屏蔽措施等。方案設(shè)計(jì)1.1硬件選擇以及電路的設(shè)計(jì)應(yīng)遵循的原則:41.2秒表計(jì)時(shí)器的原理圖利用單片機(jī)作為主控電路,選用四位共陽(yáng)極的數(shù)碼管作為顯示電路以及位控制和控制開關(guān)來(lái)組成硬件電路。其基本原理圖
AT89S51單片機(jī)控制開關(guān)四位數(shù)碼管位控制1.2秒表計(jì)時(shí)器的原理圖控制開關(guān)四位數(shù)碼管位控制5在硬件電路中,利用AT89S51單片機(jī)的定時(shí)器作精確的定時(shí),利用數(shù)碼管對(duì)其進(jìn)行顯示;控制按鈕利用外部中斷0使其實(shí)現(xiàn)啟動(dòng)、外部中斷1使其實(shí)現(xiàn)暫停的功能,設(shè)置中斷為邊沿觸發(fā)方式,P0口輸出段碼數(shù)據(jù),P2.0~P2.1連上譯碼器作為位選;計(jì)時(shí)器采用T0中斷實(shí)現(xiàn),定時(shí)溢出中斷周期為20ms,當(dāng)溢出中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出5次中斷請(qǐng)求就對(duì)20ms位(即最后一位)加一。
在硬件電路中,利用AT89S51單片機(jī)的定時(shí)器作精確的定時(shí),6硬件的選擇以及設(shè)計(jì)本設(shè)計(jì)在選取單片機(jī)時(shí),在充分查閱資料并對(duì)各種單片機(jī)有一個(gè)初步了解的基礎(chǔ)上選用了ATMEL公司的AT89S51。AT89S51是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S51具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,p0口定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,它支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。AT89S51單片機(jī)采用40腳的DIP封裝,其引腳圖如下所示:硬件的選擇以及設(shè)計(jì)本設(shè)計(jì)在選取單片機(jī)時(shí),在充分查閱資料并對(duì)各7P1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RST/VPDP0.7P3.0RXDEA/VPPP3.1TXDALE/PROGP3.2INT0PSENP3.3INT1P2.7P3.4T0P2.6P3.5T1P2.5P3.6WRP2.4P3.7RDP2.3P2.2XTAL2XTAL1P2.1VSSP2.0P1.0VCC8顯示電路選擇以及設(shè)計(jì)
對(duì)于數(shù)字顯示電路而言,通常采用LCD顯示或LED顯示。對(duì)于一般的段式LCD,需要專門的驅(qū)動(dòng)電路,而且可視性差;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的LCD顯示模塊,一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,AT89S51單片機(jī)本身沒有專門的LCD驅(qū)動(dòng)接口。而LED數(shù)碼管作為一種主動(dòng)顯示器件,具有結(jié)構(gòu)簡(jiǎn)單、亮度高、響應(yīng)速度快、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或者遠(yuǎn)距離操作。因此在本設(shè)計(jì)中,我們采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用四位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動(dòng)態(tài)顯示。動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時(shí)刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。顯示電路選擇以及設(shè)計(jì)
對(duì)于數(shù)字顯示電路而言,通常采用LCD顯9顯示電路如圖AT89S51段驅(qū)動(dòng)位驅(qū)動(dòng)四位數(shù)碼管顯示電路如圖段位驅(qū)動(dòng)10系統(tǒng)總體電路的設(shè)計(jì)
系統(tǒng)采用AT89S51單片機(jī)為主電路的核心部分,各個(gè)電路均與單片機(jī)相連,由單片機(jī)統(tǒng)籌協(xié)調(diào)各個(gè)電路的運(yùn)行工作。開始鍵和暫停鍵使用了外部中斷,所以需要連到單片機(jī)的P3.2和P3.3引腳上,這兩個(gè)I/O口的第二功能是單片機(jī)的外部中斷0端口和外部中斷1端口。顯示電路由四位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因此有8位段控制和4位位控制,8位段控制接P0口,P0.0~P0.7分別控制數(shù)碼管的abcdefgdp顯示,位控制接在P2.0和P2.1兩個(gè)口,再通過(guò)一個(gè)2—4譯碼器實(shí)現(xiàn)位控制。系統(tǒng)總體電路的設(shè)計(jì)
系統(tǒng)采用AT89S51單片機(jī)為主電路的核11系統(tǒng)總體電路圖系統(tǒng)總體電路圖12系統(tǒng)總體電路PCB圖系統(tǒng)總體電路PCB圖13軟件設(shè)計(jì)
本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的關(guān)系。主程序主要是設(shè)置定時(shí)器的工作模式,對(duì)定時(shí)器賦初值,開總中斷、兩個(gè)外部中斷以及定時(shí)器溢出中斷。并設(shè)置外部中斷為脈沖邊沿觸發(fā)方式。軟件設(shè)計(jì)
本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部14中斷程序設(shè)計(jì)
中斷是通過(guò)硬件來(lái)改變CPU的運(yùn)行方向的。計(jì)算機(jī)在執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)CPU以外的某種情況時(shí),由服務(wù)對(duì)象向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來(lái)被中斷的程序。中斷之后所執(zhí)行的相應(yīng)的處理程序通常稱之為中斷服務(wù)或中斷處理子程序,原來(lái)正常運(yùn)行的程序稱為主程序。調(diào)用中斷服務(wù)程序的過(guò)程類似于調(diào)用子程序,其區(qū)別在于調(diào)用子程序在程序中是事先安排好的,而何時(shí)調(diào)用中斷服務(wù)程序事先卻無(wú)法確定,因?yàn)橹袛嗟陌l(fā)生是由外部因素決定的,程序中無(wú)法事先安排調(diào)用指令,因此,調(diào)用中斷服務(wù)程序的過(guò)程是由硬件自動(dòng)完成的。本方案中用到了三個(gè)中斷:外部中斷0、外部中斷1和定時(shí)器T0溢出中斷。按CPU在響應(yīng)中斷時(shí)的處理順序,先處理高級(jí)中斷,后處理低級(jí)中斷,若有多個(gè)同級(jí)中斷時(shí),則應(yīng)按自然優(yōu)先順序處理。中斷程序設(shè)計(jì)
中斷是通過(guò)硬件來(lái)改變CPU的運(yùn)行方向的。計(jì)算機(jī)15(1)外部中斷0服務(wù)程序外部中斷0服務(wù)程序結(jié)合外部P1.0鍵實(shí)現(xiàn)數(shù)字秒表的啟動(dòng)功能。啟動(dòng)定時(shí)器T0,TR0=1外部中斷1入口啟動(dòng)定時(shí)器T0,TR0=1中斷返回(1)外部中斷0服務(wù)程序外部中斷1入口啟動(dòng)定時(shí)器T0,TR016(2)外部中斷1服務(wù)程序外部中斷1服務(wù)程序結(jié)合外部P1.0鍵實(shí)現(xiàn)數(shù)字秒表的停止功能。外部中斷1入口停止計(jì)時(shí),TR1=0中斷返回(2)外部中斷1服務(wù)程序外部中斷1入口停止計(jì)時(shí),TR1=0中17(3)定時(shí)器T0中斷服務(wù)程序當(dāng)T0溢出后,向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU跳轉(zhuǎn)到定時(shí)中斷程序執(zhí)行,具體流程圖如圖T0中斷T0中斷保護(hù)現(xiàn)場(chǎng)加20ms處理恢復(fù)現(xiàn)場(chǎng),中斷返回(3)定時(shí)器T0中斷服務(wù)程序T0中斷保護(hù)現(xiàn)場(chǎng)加20ms處理18系統(tǒng)調(diào)試
(1)輸入源程序
打開keil軟件,輸入源程序,輸入時(shí)應(yīng)以英文方式輸入字母和符號(hào),且中文注釋前要加分號(hào)。(2)對(duì)源程序進(jìn)行編譯和糾錯(cuò)
根據(jù)自動(dòng)編譯提供的錯(cuò)誤信息逐條糾正錯(cuò)誤,直至編譯信息提示“錯(cuò)誤(0)”,編譯結(jié)束。(3)確定調(diào)試方案
在調(diào)試程序前一定要認(rèn)真分析源程序,明確各功能程序運(yùn)行的預(yù)期結(jié)果。然后結(jié)合源程序應(yīng)達(dá)到的結(jié)果,確定出如何通過(guò)某些關(guān)鍵參數(shù)和實(shí)驗(yàn)現(xiàn)象檢驗(yàn)程序運(yùn)行結(jié)果正確與否。(4)調(diào)試程序
調(diào)試程序時(shí)首先要明確程序的具體功能,對(duì)程序做認(rèn)真分析。程序運(yùn)行后,觀察有無(wú)顯示,時(shí)鐘是否工作,運(yùn)行結(jié)果是否正確。若運(yùn)行結(jié)果不正確,首先應(yīng)根據(jù)程序運(yùn)行的實(shí)際現(xiàn)象分析判斷哪些因素可引起相關(guān)故障,再通過(guò)調(diào)試方法逐一認(rèn)證和排除。通過(guò)反復(fù)調(diào)試,發(fā)現(xiàn)并排除軟件與硬件存在的各類問題,以滿足系統(tǒng)設(shè)計(jì)的預(yù)期目的。在編譯調(diào)試通過(guò)以后,生成hex文件以待仿真之用。系統(tǒng)調(diào)試
(1)輸入源程序19程序清單:
#include<reg52.h>//包含51單片機(jī)寄存器定義的頭文件unsignedcharcodeTab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//數(shù)碼管顯示0~9的段碼表unsignedcharint_time;//記錄中斷次數(shù)unsignedcharsecond;//儲(chǔ)存秒/***********************************************************************函數(shù)功能:快速動(dòng)態(tài)掃描延時(shí),延時(shí)約0.6毫秒************************************************************************/voiddelay(void){unsignedchari;for(i=0;i<200;i++);}/***********************************************************************函數(shù)功能:顯示秒入口參數(shù):k出口參數(shù):無(wú)************************************************************************/程序清單:
#include<reg52.h>//包20voidDisplaySecond(unsignedchark){P2=0xfd;//P2.1引腳輸出低電平P0=Tab[k/10];//顯示十位delay();delay();delay();delay();delay();delay();delay();delay();P2=0xf7;//P2.0引腳輸出低電平P0=Tab[k%10];//顯示個(gè)位delay();delay();voidDisplaySecond(unsignedch21delay();delay();delay();delay();delay();delay();P2=0xff;//關(guān)閉所有數(shù)碼管P0=0xff;//顯示個(gè)位delay();delay();delay();delay();delay();delay();delay();delay();} voidmain(void)//主函數(shù)delay();22TMOD=0x01;//使用定時(shí)器T0 TH0=(65536-46083)/256;//將定時(shí)器計(jì)時(shí)時(shí)間設(shè)定為46083×1.085微秒//=50000微秒=50毫秒TL0=(65536-46083)%256; EA=1;//開啟總中斷 ET0=1;//定時(shí)器T0中斷允許 TR0=1;//啟動(dòng)定時(shí)器T0開始運(yùn)行int_time=0;//中斷次數(shù)初始化second=0; //秒初始化
while(1){ DisplaySecond(second); //調(diào)用秒的顯示子程序 }}//********************************************************//函數(shù)功能:定時(shí)器T0的中斷服務(wù)程序//*******************************************************TMOD=0x01;//23voidinterserve(void)interrupt1using1{TR0=0;//關(guān)閉定時(shí)器T0int_time++;//每來(lái)一次中斷,中斷次數(shù)int_time自加1 if(int_time==20)//夠20次中斷,即1秒鐘進(jìn)行一次檢測(cè)結(jié)果采樣 {int_time=0;//中斷次數(shù)清0second++;//秒加1if(second==60) second=0;//秒等于60就返回0 } TH0=(65536-46083)/256;//重新給計(jì)數(shù)器T0賦初值TL0=(65536-46083)%256; TR0=1;//啟動(dòng)定時(shí)器T0}voidinterserve(void)interru24
???????
??????
秒表時(shí)鐘單片機(jī)課件25基于AT89S51單片機(jī)的秒表設(shè)計(jì)第十一組組長(zhǎng):韓潤(rùn)澤組員:黃磊劉軒宇何維楊俊生王順志基于AT89S51單片機(jī)的秒表設(shè)計(jì)26AT89S51單片機(jī)簡(jiǎn)介單片機(jī)最小系統(tǒng),無(wú)論對(duì)單片機(jī)初學(xué)人員還是開發(fā)人員都具有十分重要的意義,可以利用最小系統(tǒng)進(jìn)行編程實(shí)現(xiàn)工業(yè)控制。其靈活的硬件電路的設(shè)計(jì)和軟件的設(shè)計(jì),使單片機(jī)得到了廣泛的應(yīng)用,單片機(jī)最小系統(tǒng)結(jié)構(gòu)可謂是具有可編程硬件的一個(gè)縮影,對(duì)我們學(xué)習(xí)和研究微機(jī)系統(tǒng)具有重大意義。單片機(jī)最小系統(tǒng)電路板在單片機(jī)開發(fā)市場(chǎng)和大學(xué)生電子設(shè)計(jì)方面十分流行。本次課程設(shè)計(jì)包括AT89S51單片機(jī)最小系統(tǒng)(包括復(fù)位和時(shí)鐘電路)及供電系統(tǒng)、LED數(shù)碼管顯示電路。采用AT89S51單片機(jī)實(shí)現(xiàn)數(shù)字秒表的設(shè)計(jì)。主要以AT89S51單片機(jī)為核心,采用4位LED數(shù)碼管顯示以及外部中斷電路來(lái)實(shí)現(xiàn)數(shù)字秒表的基本功能。本文簡(jiǎn)單介紹了其系統(tǒng)組成,重點(diǎn)討論了其硬軟件的實(shí)現(xiàn)過(guò)程,并對(duì)其計(jì)時(shí)精度進(jìn)行了確定,使其達(dá)到1秒,并能實(shí)現(xiàn)0~60秒的計(jì)時(shí)。利用Protel電路設(shè)計(jì)軟件進(jìn)行原理圖設(shè)計(jì),PCB布線,最后通過(guò)對(duì)硬件系統(tǒng)的仿真觀察其實(shí)際運(yùn)行情況,給我們以直觀的認(rèn)識(shí)。借此鞏固單片機(jī)應(yīng)用、模擬電路、數(shù)字電路課程及學(xué)會(huì)工程軟件protel的使用AT89S51單片機(jī)簡(jiǎn)介單片機(jī)最小系統(tǒng),無(wú)論對(duì)單27隨著電子技術(shù)的發(fā)展,電子技術(shù)在各個(gè)領(lǐng)域的運(yùn)用也越來(lái)越廣泛,人對(duì)它的認(rèn)識(shí)也逐步加深。秒表計(jì)時(shí)器常常用于體育競(jìng)賽及各種其他要求有較精確時(shí)間的各領(lǐng)域中。其中啟/停開關(guān)的使用方法與傳統(tǒng)的機(jī)械計(jì)時(shí)器相同,即按一下啟/停開關(guān),啟動(dòng)計(jì)時(shí)器開始計(jì)時(shí),再按一下啟/停開關(guān)計(jì)時(shí)終止。而復(fù)位開關(guān)可以在任何情況下使用,即使在計(jì)時(shí)過(guò)程中,只要按一下復(fù)位開關(guān),計(jì)時(shí)應(yīng)立即終止,并對(duì)計(jì)時(shí)器清零。本設(shè)計(jì)就是利用所學(xué)到的電子元器件將脈沖源用數(shù)碼管顯示出來(lái),以制成簡(jiǎn)易的秒表。秒表是由單片機(jī)的P0口和P2口分別控制兩個(gè)數(shù)碼管使數(shù)碼管工作,循環(huán)顯示從00—59。同時(shí)用一個(gè)開關(guān)控制數(shù)碼管的啟動(dòng)與停止,另外加上一個(gè)復(fù)位電路使其能正常復(fù)位,通常還使用石英晶體振蕩器電路構(gòu)成整個(gè)秒表的結(jié)構(gòu)電路。隨著電子技術(shù)的發(fā)展,電子技術(shù)在各個(gè)領(lǐng)域的運(yùn)用也越來(lái)越廣泛,人28方案設(shè)計(jì)1.1硬件選擇以及電路的設(shè)計(jì)應(yīng)遵循的原則:(1)在性價(jià)比滿足應(yīng)用系統(tǒng)要求的基礎(chǔ)上,選擇更可靠、更熟悉的單片機(jī),縮短研制周期。(2)盡可能選擇較成熟的典型應(yīng)用電路,以提高系統(tǒng)的可靠性。(3)單片機(jī)內(nèi)部的資源與外部擴(kuò)展資源應(yīng)在滿足應(yīng)用系統(tǒng)設(shè)計(jì)要求的基礎(chǔ)上留有余地,為進(jìn)一步升級(jí)和擴(kuò)展其功能提供方便。(4)應(yīng)充分結(jié)合軟件方案統(tǒng)籌考慮硬件結(jié)構(gòu),通常硬件功能較完善,其相應(yīng)的軟件就簡(jiǎn)單,但硬件成本較高;而硬件功能略低,其相應(yīng)的軟件就復(fù)雜。實(shí)際中應(yīng)盡量以軟件替代硬件來(lái)降低成本。(5)整個(gè)系統(tǒng)的相關(guān)器件應(yīng)盡可能做到性能匹配,如電平、速度的匹配等。(6)充分考慮整個(gè)系統(tǒng)的抗干擾設(shè)計(jì),如選擇具有抗干擾設(shè)計(jì)的單片機(jī)并充分篩選芯片與器件,在電路中采取隔離和屏蔽措施等。方案設(shè)計(jì)1.1硬件選擇以及電路的設(shè)計(jì)應(yīng)遵循的原則:291.2秒表計(jì)時(shí)器的原理圖利用單片機(jī)作為主控電路,選用四位共陽(yáng)極的數(shù)碼管作為顯示電路以及位控制和控制開關(guān)來(lái)組成硬件電路。其基本原理圖
AT89S51單片機(jī)控制開關(guān)四位數(shù)碼管位控制1.2秒表計(jì)時(shí)器的原理圖控制開關(guān)四位數(shù)碼管位控制30在硬件電路中,利用AT89S51單片機(jī)的定時(shí)器作精確的定時(shí),利用數(shù)碼管對(duì)其進(jìn)行顯示;控制按鈕利用外部中斷0使其實(shí)現(xiàn)啟動(dòng)、外部中斷1使其實(shí)現(xiàn)暫停的功能,設(shè)置中斷為邊沿觸發(fā)方式,P0口輸出段碼數(shù)據(jù),P2.0~P2.1連上譯碼器作為位選;計(jì)時(shí)器采用T0中斷實(shí)現(xiàn),定時(shí)溢出中斷周期為20ms,當(dāng)溢出中斷后向CPU發(fā)出溢出中斷請(qǐng)求,每發(fā)出5次中斷請(qǐng)求就對(duì)20ms位(即最后一位)加一。
在硬件電路中,利用AT89S51單片機(jī)的定時(shí)器作精確的定時(shí),31硬件的選擇以及設(shè)計(jì)本設(shè)計(jì)在選取單片機(jī)時(shí),在充分查閱資料并對(duì)各種單片機(jī)有一個(gè)初步了解的基礎(chǔ)上選用了ATMEL公司的AT89S51。AT89S51是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S51具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,p0口定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,它支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。AT89S51單片機(jī)采用40腳的DIP封裝,其引腳圖如下所示:硬件的選擇以及設(shè)計(jì)本設(shè)計(jì)在選取單片機(jī)時(shí),在充分查閱資料并對(duì)各32P1.0VCCP1.1P0.0P1.2P0.1P1.3P0.2P1.4P0.3P1.5P0.4P1.6P0.5P1.7P0.6RST/VPDP0.7P3.0RXDEA/VPPP3.1TXDALE/PROGP3.2INT0PSENP3.3INT1P2.7P3.4T0P2.6P3.5T1P2.5P3.6WRP2.4P3.7RDP2.3P2.2XTAL2XTAL1P2.1VSSP2.0P1.0VCC33顯示電路選擇以及設(shè)計(jì)
對(duì)于數(shù)字顯示電路而言,通常采用LCD顯示或LED顯示。對(duì)于一般的段式LCD,需要專門的驅(qū)動(dòng)電路,而且可視性差;對(duì)于具有驅(qū)動(dòng)電路和單片機(jī)接口的LCD顯示模塊,一般多采用并行接口,對(duì)單片機(jī)的接口要求較高,占用資源多;另外,AT89S51單片機(jī)本身沒有專門的LCD驅(qū)動(dòng)接口。而LED數(shù)碼管作為一種主動(dòng)顯示器件,具有結(jié)構(gòu)簡(jiǎn)單、亮度高、響應(yīng)速度快、價(jià)格便宜、易于購(gòu)買等優(yōu)點(diǎn),而且有遠(yuǎn)距離視覺效果,很適合夜間或者遠(yuǎn)距離操作。因此在本設(shè)計(jì)中,我們采用7段數(shù)碼管作為顯示介質(zhì)。數(shù)碼管顯示可以分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。由于本設(shè)計(jì)需要采用四位數(shù)碼管顯示時(shí)間,如果靜態(tài)顯示則占用的口線多,硬件電路復(fù)雜,所以采用動(dòng)態(tài)顯示。動(dòng)態(tài)顯示是一位一位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱為位掃描。通常各位數(shù)碼管的段選線相應(yīng)并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的公共陰極位選線由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管并送出相應(yīng)的段碼,在另一時(shí)刻選通另一數(shù)碼管,并送出相應(yīng)的段碼,依次規(guī)律循環(huán),即可以使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同時(shí)刻分別顯示,但由于人眼存在視覺暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺。顯示電路選擇以及設(shè)計(jì)
對(duì)于數(shù)字顯示電路而言,通常采用LCD顯34顯示電路如圖AT89S51段驅(qū)動(dòng)位驅(qū)動(dòng)四位數(shù)碼管顯示電路如圖段位驅(qū)動(dòng)35系統(tǒng)總體電路的設(shè)計(jì)
系統(tǒng)采用AT89S51單片機(jī)為主電路的核心部分,各個(gè)電路均與單片機(jī)相連,由單片機(jī)統(tǒng)籌協(xié)調(diào)各個(gè)電路的運(yùn)行工作。開始鍵和暫停鍵使用了外部中斷,所以需要連到單片機(jī)的P3.2和P3.3引腳上,這兩個(gè)I/O口的第二功能是單片機(jī)的外部中斷0端口和外部中斷1端口。顯示電路由四位數(shù)碼管組成,采用動(dòng)態(tài)顯示方式,因此有8位段控制和4位位控制,8位段控制接P0口,P0.0~P0.7分別控制數(shù)碼管的abcdefgdp顯示,位控制接在P2.0和P2.1兩個(gè)口,再通過(guò)一個(gè)2—4譯碼器實(shí)現(xiàn)位控制。系統(tǒng)總體電路的設(shè)計(jì)
系統(tǒng)采用AT89S51單片機(jī)為主電路的核36系統(tǒng)總體電路圖系統(tǒng)總體電路圖37系統(tǒng)總體電路PCB圖系統(tǒng)總體電路PCB圖38軟件設(shè)計(jì)
本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部中斷0服務(wù)程序和外部中斷1服務(wù)程序組成。其中主程序是整個(gè)程序的主體??梢詫?duì)各個(gè)中斷程序進(jìn)行調(diào)用。協(xié)調(diào)各個(gè)子程序之間的關(guān)系。主程序主要是設(shè)置定時(shí)器的工作模式,對(duì)定時(shí)器賦初值,開總中斷、兩個(gè)外部中斷以及定時(shí)器溢出中斷。并設(shè)置外部中斷為脈沖邊沿觸發(fā)方式。軟件設(shè)計(jì)
本系統(tǒng)程序主要模塊由主程序、定時(shí)中斷服務(wù)程序、外部39中斷程序設(shè)計(jì)
中斷是通過(guò)硬件來(lái)改變CPU的運(yùn)行方向的。計(jì)算機(jī)在執(zhí)行程序的過(guò)程中,當(dāng)出現(xiàn)CPU以外的某種情況時(shí),由服務(wù)對(duì)象向CPU發(fā)出中斷請(qǐng)求信號(hào),要求CPU暫時(shí)中斷當(dāng)前程序的執(zhí)行而轉(zhuǎn)去執(zhí)行相應(yīng)的處理程序,待處理程序執(zhí)行完畢后,再繼續(xù)執(zhí)行原來(lái)被中斷的程序。中斷之后所執(zhí)行的相應(yīng)的處理程序通常稱之為中斷服務(wù)或中斷處理子程序,原來(lái)正常運(yùn)行的程序稱為主程序。調(diào)用中斷服務(wù)程序的過(guò)程類似于調(diào)用子程序,其區(qū)別在于調(diào)用子程序在程序中是事先安排好的,而何時(shí)調(diào)用中斷服務(wù)程序事先卻無(wú)法確定,因?yàn)橹袛嗟陌l(fā)生是由外部因素決定的,程序中無(wú)法事先安排調(diào)用指令,因此,調(diào)用中斷服務(wù)程序的過(guò)程是由硬件自動(dòng)完成的。本方案中用到了三個(gè)中斷:外部中斷0、外部中斷1和定時(shí)器T0溢出中斷。按CPU在響應(yīng)中斷時(shí)的處理順序,先處理高級(jí)中斷,后處理低級(jí)中斷,若有多個(gè)同級(jí)中斷時(shí),則應(yīng)按自然優(yōu)先順序處理。中斷程序設(shè)計(jì)
中斷是通過(guò)硬件來(lái)改變CPU的運(yùn)行方向的。計(jì)算機(jī)40(1)外部中斷0服務(wù)程序外部中斷0服務(wù)程序結(jié)合外部P1.0鍵實(shí)現(xiàn)數(shù)字秒表的啟動(dòng)功能。啟動(dòng)定時(shí)器T0,TR0=1外部中斷1入口啟動(dòng)定時(shí)器T0,TR0=1中斷返回(1)外部中斷0服務(wù)程序外部中斷1入口啟動(dòng)定時(shí)器T0,TR041(2)外部中斷1服務(wù)程序外部中斷1服務(wù)程序結(jié)合外部P1.0鍵實(shí)現(xiàn)數(shù)字秒表的停止功能。外部中斷1入口停止計(jì)時(shí),TR1=0中斷返回(2)外部中斷1服務(wù)程序外部中斷1入口停止計(jì)時(shí),TR1=0中42(3)定時(shí)器T0中斷服務(wù)程序當(dāng)T0溢出后,向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU跳轉(zhuǎn)到定時(shí)中斷程序執(zhí)行,具體流程圖如圖T0中斷T0中斷保護(hù)現(xiàn)場(chǎng)加20ms處理恢復(fù)現(xiàn)場(chǎng),中斷返回(3)定時(shí)器T0中斷服務(wù)程序T0中斷保護(hù)現(xiàn)場(chǎng)加20ms處理43系統(tǒng)調(diào)試
(1)輸入源程序
打開keil軟件,輸入源程序,輸入時(shí)應(yīng)以英文方式輸入字母和符號(hào),且中文注釋前要加分號(hào)。(2)對(duì)源程序進(jìn)行編譯和糾錯(cuò)
根據(jù)自動(dòng)編譯提供的錯(cuò)誤信息逐條糾正錯(cuò)誤,直至編譯信息提示“錯(cuò)誤(0)”,編譯結(jié)束。(3)確定調(diào)試方案
在調(diào)試程序前一定要認(rèn)真分析源程序,明確各功能程序運(yùn)行的預(yù)期結(jié)果。然后結(jié)合源程序應(yīng)達(dá)到的結(jié)果,確定出如何通過(guò)某些關(guān)鍵參數(shù)和實(shí)驗(yàn)現(xiàn)象檢驗(yàn)程序運(yùn)行結(jié)果正確與否。(4)調(diào)試程序
調(diào)試程序時(shí)首先要明確程序的具體功能,對(duì)程序做認(rèn)真分析。程序運(yùn)行后,觀察有無(wú)顯示,時(shí)鐘是否工作,運(yùn)行結(jié)果是否正確。若運(yùn)行結(jié)果不正確,首先應(yīng)根據(jù)程序運(yùn)行的實(shí)際現(xiàn)象分析判斷哪些因素可引起相關(guān)故障,再通過(guò)調(diào)試方法逐一認(rèn)證和排除。通過(guò)反復(fù)調(diào)試,發(fā)現(xiàn)并排除軟件與硬件存在的各類問題,以滿足系統(tǒng)設(shè)計(jì)的預(yù)期目的。在編譯調(diào)試通過(guò)以后,生成hex文件以待仿真之用。系統(tǒng)調(diào)試
(1)輸入源程序44程序清單:
#include<reg52.h>//包含51單片機(jī)寄存器定義的頭文件unsignedcharcodeTab[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//數(shù)碼管顯示0~9的段碼表unsignedcharint_time;//記錄中斷次數(shù)unsignedcharsecond;//儲(chǔ)存秒/***********************************************************************函數(shù)功能:快速動(dòng)態(tài)掃描延時(shí),延時(shí)約0.6毫秒************************************************************************/voiddelay(void){unsignedchari;for(i=0;i<200;i++);}/***********************************************************************函數(shù)功能:顯示秒入口參數(shù):k出口參數(shù):無(wú)************************************************************************/程序清單:
#include<reg52.h>//包45voidDisplaySecond(unsigned
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畫展活動(dòng)策劃書
- 網(wǎng)絡(luò)安全意識(shí)培訓(xùn)總結(jié)(3篇)
- 麻醉設(shè)備學(xué)試題-各章練習(xí)題
- 電商頂崗實(shí)習(xí)報(bào)告總結(jié)
- 開學(xué)第一天心得體會(huì)范文(34篇)
- 遼寧省沈陽(yáng)市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版綜合練習(xí)(上學(xué)期)試卷及答案
- 安徽省銅陵市(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)人教版期中考試((上下)學(xué)期)試卷及答案
- 反三角函數(shù)反余弦反正切函數(shù)教案
- 民用建筑修繕工程設(shè)計(jì)與施工質(zhì)量控制規(guī)程編制說(shuō)明
- 上海市市轄區(qū)(2024年-2025年小學(xué)五年級(jí)語(yǔ)文)統(tǒng)編版摸底考試(下學(xué)期)試卷及答案
- 在役聚乙烯燃?xì)夤艿里L(fēng)險(xiǎn)評(píng)估實(shí)施導(dǎo)則
- 鐵的氫氧化物課件
- 鞋業(yè)調(diào)查報(bào)告
- 華潤(rùn)深圳萬(wàn)象食家項(xiàng)目招商手冊(cè)
- 顱內(nèi)壓監(jiān)護(hù)在顱腦損傷中的應(yīng)用-課件
- 《依法行政講義》課件
- 國(guó)家文化安全教育課件
- 鋼化玻璃中空廠管理制度
- 山東省汽車維修工時(shí)定額(T-SDAMTIA 0001-2023)
- 電腦故障檢測(cè)報(bào)告
- 行為金融學(xué)課后答案匯總版
評(píng)論
0/150
提交評(píng)論