版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、摘要近年來隨著計算機(jī)在社會領(lǐng)域的滲透和大規(guī)模集成電路的發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,由于它具有功能強(qiáng),體積小,功耗低,價格便宜,工作可靠,使用方便等特點,因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個領(lǐng)域,單片機(jī)往往是作為一個核心部件來使用,在根據(jù)具體硬件結(jié)構(gòu),以及針對具體應(yīng)用對象特點的軟件結(jié)合,以作完善。單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器cpu隨機(jī)存儲器ram、只讀存儲器rom、多種i/o口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多
2、路轉(zhuǎn)換器、a/d轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。數(shù)字時鐘是一種用單片機(jī)電路技術(shù)實現(xiàn)時、分、秒記時的裝置,與機(jī)械式時鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長的使用壽命,因此得到了廣泛的使用。本次做的數(shù)字時鐘就是以單片機(jī)(at89c52)為核心,結(jié)合相關(guān)的元器件(共陰極led數(shù)碼顯示器、555定時器、74hct138等),再配以相應(yīng)的軟件,達(dá)到制作簡易數(shù)字鐘的目的,其中利用一個at89c52單片機(jī)實現(xiàn)數(shù)字時鐘的時、分、秒的設(shè)置和調(diào)時,利用一個555定時器實現(xiàn)數(shù)字時鐘的定時功能。 關(guān)鍵字:時鐘電路 at89c52單片機(jī) 555定時器 目錄摘要第1章 555
3、定時器31.1 555定時器的發(fā)展與介紹3 1.1.1 555定時器的發(fā)展3 1.1.2 555定時器的介紹3 1.1.3 555定時器的內(nèi)部結(jié)構(gòu)及功能3 1.2 用555定時器應(yīng)用5 1.3 實例7第2章 數(shù)字時鐘92.1 數(shù)字時鐘的背景與意義 92.1.1 數(shù)字時鐘的背景92.1.2 數(shù)字時鐘的意義 92.2 數(shù)字鐘的應(yīng)用9第3章 at89c52單片機(jī)103.1單片機(jī)的選擇103.1.1 單片機(jī)的介紹103.1.2 單片機(jī)的應(yīng)用和特點113.2 at89c52單片機(jī)113.2.1 at89c52單片機(jī)的介紹113.2.2 主要功能特性12第4章 數(shù)字時鐘的硬件設(shè)計144.1 最小系統(tǒng)設(shè)計1
4、44.2 led顯示電路174.3 鍵盤控制電路19第5章 數(shù)字時鐘215.1系統(tǒng)軟件流程圖215.2 數(shù)字時鐘的程序24 5.2.1主要過程及仿真24 5.2.2 數(shù)字時鐘的程序25第6章調(diào)試與功能說明346.1硬件調(diào)試346.2系統(tǒng)性能測試與功能說明346.3系統(tǒng)誤差分析346.4軟件調(diào)試問題與解決34參考文獻(xiàn)35致謝36第1章 555定時器1.1 555定時器的發(fā)展與介紹1.1.1 555定時器電路的發(fā)展概述555定時器是美國signetics公司1972年研制的用于取代機(jī)械式定時器的中規(guī)模集成電路,因輸入端設(shè)計有三個5k的電阻而得名。此電路后來竟風(fēng)靡世界。目前,流行的產(chǎn)品主要有4個:b
5、jt兩個:555,556(含有兩個555);cmos兩個:7555,7556(含有兩個7555)。 555定時器可以說是模擬電路與數(shù)字電路結(jié)合的典范。 兩個比較器 c1和 c2各有一個輸入端連接到三個電阻r組成的分壓器上,比較器的輸出接到rs觸發(fā)器上。此外還有輸出級和放電管。輸出級的驅(qū)動電流可達(dá)200ma。 比較器c1和c2的參考電壓分別為ua和ub,根據(jù)c1和c2的另一個輸入端觸發(fā)輸入和閾值輸入,可判斷出rs觸發(fā)器的輸出狀態(tài)。當(dāng)復(fù)位端為低電平時,rs觸發(fā)器被強(qiáng)制復(fù)位。若無需復(fù)位操作,復(fù)位端應(yīng)接高電平。1.1.2 555定時器電路的介紹555 定時器成本低,性能可靠,只需要外接幾個電阻、電容,
6、就可以實現(xiàn)多諧振蕩器、單穩(wěn)態(tài)觸發(fā)器及施密特觸發(fā)器等脈沖產(chǎn)生與變換電路。它也常作為定時器廣泛應(yīng)用于儀器儀表、家用電器、電子測量及自動控制等方面。555 定時器的內(nèi)部電路框圖和外引腳排列圖分別如圖 2.9.1 和圖 2.9.2 所示。它內(nèi)部包括兩個電壓比較器,三個等值串聯(lián)電阻,一個 rs 觸發(fā)器,一個放電管 t 及功率輸出級。它提供兩個基準(zhǔn)電壓vcc /3 和 2vcc /3 555 定時器的功能主要由兩個比較器決定。兩個比較器的輸出電壓控制 rs 觸發(fā)器和放電管的狀態(tài)。在電源與地之間加上電壓,當(dāng) 5 腳懸空時,則電壓比較器 c1 的同相輸入端的電壓為 2vcc /3,c2 的反相輸入端的電壓為v
7、cc /3。若觸發(fā)輸入端 tr 的電壓小于vcc /3,則比較器 c2 的輸出為 0,可使 rs 觸發(fā)器置 1,使輸出端 out=1。如果閾值輸入端 th 的電壓大于 2vcc/3,同時 tr 端的電壓大于vcc /3,則 c1 的輸出為 0,c2 的輸出為 1,可將 rs 觸發(fā)器置 0,使輸出為 0 電平。 1.1.3 555定時器電路的內(nèi)部結(jié)構(gòu)及功能如圖為cc7555定時器內(nèi)部結(jié)構(gòu)的簡化原理圖。它包括兩個電壓比較器c1和c2、一個rs觸發(fā)器、一個放電管v、三個5k-的電阻構(gòu)成的分壓電路和由兩個反相器構(gòu)成的輸出緩沖級。r為觸發(fā)器的直接復(fù)位端。定時器的工作主要取決于比較器,比較器的輸出控制rs
8、觸發(fā)器和放電管v的狀態(tài)。當(dāng)加上電源vdd后,比較器c1的反相輸入端即控制端(co)的電壓為2vdd/3;比較器c2的同相輸入端電壓為vdd/3。當(dāng)閾值輸入端(th)即比較器c1的同相輸入端電位高于2vdd/3時,比較器c1輸出高電平,使rs觸發(fā)器置0,輸出q=0,而q=1,使放電管v導(dǎo)通。當(dāng)觸發(fā)輸入端(tr)即比較器c2的反相輸入端電位低于vdd/3時,比較器c2輸出高電平,使rs觸發(fā)器置1,輸出q=1,而q=0使放電管v截止。當(dāng)閾值輸入端th電位低于2vdd/3、觸發(fā)輸入端tr電位高于vdd3時,比較器c1、c2輸出均為0,即r、s端均為0,輸出維持不變。如果在控制端(co端)外加一控制電壓
9、,可改變電路的閾值輸入電壓和觸發(fā)輸入電壓。555定時器的功能表如圖所示1.2 555定時器的應(yīng)用1 單穩(wěn)態(tài)觸發(fā)器由cc7555構(gòu)成的單穩(wěn)態(tài)觸發(fā)器如圖所示。圖中rt、ct為外接定時元件,輸入觸發(fā)信號加在tr端。下面分析電路的工作過程。(1)穩(wěn)態(tài) 當(dāng)電源接通后,電源通過rt向ct充電,當(dāng)電容電壓上升到uc=2vdd/3時,比較器c1輸出高電平,觸發(fā)器置0,q=1放電開關(guān)v導(dǎo)通,定時電容ct通過v放電,使uc=0,電路輸出u0,電路處于穩(wěn)態(tài)狀態(tài)。(2)暫穩(wěn)態(tài) 當(dāng)觸發(fā)端tr輸入負(fù)脈沖,且幅度低于vdd/3時,比較器c2輸出高電平,rs觸發(fā)器置1,q=1,q=0,放電管v截止,定時電容ct開始充電,電路
10、處于暫穩(wěn)態(tài)。ct的充電回路為vddrtct地。充電時間常數(shù)為t=rtct。當(dāng)充電電壓uc上升到=2vdd/3時,比較器c1輸出高電平,使rs觸發(fā)器置0,q=0,q=1,放電管v導(dǎo)通,ct通過v迅速放電,電路結(jié)束暫穩(wěn)態(tài)而自動返回到觸發(fā)前的穩(wěn)態(tài),電路輸出從高電平跳變到低電平。至此完成了一次單穩(wěn)態(tài)觸發(fā)的全過程。其工作波形如圖所示。(3)輸出脈沖寬度tw 由波形可知,單穩(wěn)態(tài)電路輸出脈沖寬度,就是uc由零被充電到2vdd/3所需的時間 tw=rtctlnvdd/(vdd-2/3vdd)=rtctln3=1.1rtct2 用555定時器構(gòu)成的多謝振蕩器用555定時器構(gòu)成的多謝振蕩器電路圖如圖所示。圖中,r
11、1、r2、ct為外接定時元件。接通電源后不需外加觸發(fā)信號,在輸出端能得到連續(xù)的矩形方波。(1)第一暫穩(wěn)態(tài) 接通電源瞬間電容ct來不及充電時,uc=0比較器c2輸出為1,rs觸發(fā)置1,q=1,q=0,放電管v截止。定時電容ct被充電,充電回路為vddr1r2ct-地,充電時間常數(shù)t=(r1+r2)ct。uc按指數(shù)規(guī)律上升。電路處于第一暫穩(wěn)態(tài)。(2)第二暫穩(wěn)態(tài) 當(dāng)uc上升到2vdd/3時,比較器c1輸出1,rs觸發(fā)器置0,使q=0,q=1,第一暫穩(wěn)態(tài)結(jié)束。放電管v導(dǎo)通,電容ct放電,放電回路為ucr2v地,放電時間常數(shù)為t=r2ct。uc按指數(shù)規(guī)律下降,電路處于第二暫穩(wěn)態(tài)。當(dāng)uc下降到ucvdd/
12、3時,比較器c2輸出為1,rs觸發(fā)器置1,使輸出為q=1,q=0,第二暫穩(wěn)態(tài)結(jié)束,放電管v截止。以后電路重復(fù)上述過程,產(chǎn)生振蕩,在輸出端得到連續(xù)的矩形波。輸出波形如圖所示??梢运愠?,電容ct的充電時間t1和放電時間t2分別為 t1=(r1+r2)ctln2=0.7(r1+r2)ct (1) t2=r2ctln2=0.7r2ct (2)故電路的振蕩周期為 t=t1+t2=0.7(r1+2r2)ct (3)由式(1)和(3)可求出輸出脈沖信號的占空比 q =t1/t2=(r1+r2)/(r1+2r2) (4)上式說明,圖4電路輸出脈沖占空比始終大于50%。為了得到小于或等于50%的占空比,可采用圖
13、5所示的改進(jìn)電路。因為在電容的充電于放電過程r2上的電壓極性相反,所以利用二極管的單向?qū)щ娦允闺娙莩浞烹姇r間為不同的數(shù)值。如圖所示,電容充電時二極管vd1導(dǎo)通、vd2截止,充電時間為t1=r2ctln2=0.7r2ct電路的振蕩周期為 t=t1+t2=0.7(r1+r2)ct (5)因此,輸出脈沖的占空比為 q=r1/(r1+r2) (6)調(diào)節(jié)rw,就可得到占空比不同的矩形方波。3 用555定時器構(gòu)成的施密特觸發(fā)器用555定時器構(gòu)成的施密特觸發(fā)器如圖(6)a所示。圖中,將閾值端和觸發(fā)輸入端連接在一起作為輸入端。設(shè)輸入波形為三角波時,分析電路的工作過程。當(dāng)輸入ui=vdd/3時,電路輸出又為高電
14、平,即又回到第一穩(wěn)態(tài)。如此循環(huán)就得到圖(6)b所示波形。其回差電壓為 u=2vdd/3vdd/3=vdd/3如果在5腳即控制端接一可調(diào)的控制電壓,即可得到回差電壓可調(diào)的施密特觸發(fā)器。1.3 555定時器的定時實例利用555定時器的單穩(wěn)態(tài)功能制作一個可以在3小時內(nèi)任意定時的定時器。首先,根據(jù)公式tw =1.1rtct算出所需定時的rt值(ct=1f),其中,rt的最大值為8918.18歐姆,根據(jù)算出的阻值與rt得最大值的比值調(diào)節(jié)rt變阻器從而得到所需的定時時間,一些常用的的比值有十五分鐘占8.33%、半小時占16.67%、1小時占33. 33%、一個半小時占50%、2小時占66.67%、三小時占
15、100%,總之可以實現(xiàn)3小時內(nèi)的任意定時,誤差很小下面是3小時定時器的仿真圖通過調(diào)節(jié)rt變阻器改變定時時間,當(dāng)定時開始時燈亮鈴聲響,時間測量儀開始計時,當(dāng)定時時間到燈滅鈴聲停計時停止。通過此仿真也可實現(xiàn)24小時定時,誤差在十分鐘左右。單片機(jī)程序#include #define uint unsigned int#define uchar unsigned charsbit signal = p10;sbit beep = p37;void delay(uint x) uchar i;while(x-) for(i=0;i1000次)flash rom 32個雙向i/o口 256x8bit內(nèi)部r
16、am 3個16位可編程定時/計數(shù)器中斷 時鐘頻率0-24mhz 2個串行中斷 可編程uart串行通道 2個外部中斷源 共8個中斷源 2個讀寫中斷口線 3級加密位 低功耗空閑和掉電模式 軟件設(shè)置睡眠和喚醒功能at89c52各引腳功能概述:at89c52p為40 腳雙列直插封裝的8 位通用微處理器,采用工業(yè)標(biāo)準(zhǔn)的c51內(nèi)核,在內(nèi)部功能及管腳排布上與通用的8xc52 相同,其主要用于會聚調(diào)整時的功能控制。功能包括對會聚主ic 內(nèi)部寄存器、數(shù)據(jù)ram及外部接口等功能部件的初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號ir的接收解碼及與主板cpu通信等。主要管腳有:xtal1(19 腳)和xtal2
17、(18 腳)為振蕩器輸入輸出端口,外接12mhz 晶振。rst/vpd(9 腳)為復(fù)位輸入端口,外接電阻電容組成的復(fù)位電路。vcc(40 腳)和vss(20 腳)為供電端口,分別接+5v電源的正負(fù)端。p0p3 為可編程通用i/o 腳,其功能用途由軟件定義,在本設(shè)計中,p0 端口(3239 腳)被定義為n1 功能控制端口,分別與n1的相應(yīng)功能管腳相連接,13 腳定義為ir輸入端,10 腳和11腳定義為i2c總線控制端口,分別連接n1的sdas(18腳)和scls(19腳)端口,12 腳、27 腳及28 腳定義為握手信號功能端口,連接主板cpu 的相應(yīng)功能端,用于當(dāng)前制式的檢測及會聚調(diào)整狀態(tài)進(jìn)入的
18、控制功能。 第4章 數(shù)字時鐘的硬件設(shè)計4.1最小系統(tǒng)設(shè)計圖4-1 單片機(jī)最小系統(tǒng)的結(jié)構(gòu)圖 單片機(jī)的最小系統(tǒng)是由電源、復(fù)位、晶振、/ea=1組成,下面介紹一下每一個組成部分。1.電源引腳 vcc40電源端gnd20接地端工作電壓為5v,另有at89lv51工作電壓則是2.7-6v, 引腳功能一樣。 2.外接晶體引腳圖4-2 晶振連接的內(nèi)部、外部方式圖xtal119xtal218 xtal1是片內(nèi)振蕩器的反相放大器輸入端,xtal2則是輸出端,使用外部振蕩器時,外部振蕩信號應(yīng)直接加到xtal1,而xtal2懸空。內(nèi)部方式時,時鐘發(fā)生器對振蕩脈沖二分頻,如晶振為12mhz,時鐘頻率就為6mhz。晶振
19、的頻率可以在1mhz-24mhz內(nèi)選擇。電容取30pf左右。系統(tǒng)的時鐘電路設(shè)計是采用的內(nèi)部方式,即利用芯片內(nèi)部的振蕩電路。at89單片機(jī)內(nèi)部有一個用于構(gòu)成振蕩器的高增益反相放大器。引腳xtal1和xtal2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構(gòu)成一個自激振蕩器。外接晶體諧振器以及電容c1和c2構(gòu)成并聯(lián)諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴(yán)格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩(wěn)定性、起振的快速性和溫度的穩(wěn)定性。因此,此系統(tǒng)電路的晶體振蕩器的值為12mhz,電容應(yīng)盡可能的選擇陶瓷電容,電容值約為22f。在焊接刷電路板時,
20、晶體振蕩器和電容應(yīng)盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證震蕩器穩(wěn)定和可靠地工作。3. 復(fù)位rst9在振蕩器運行時,有兩個機(jī)器周期(24個振蕩周期)以上的高電平出現(xiàn)在此引腿時,將使單片機(jī)復(fù)位,只要這個腳保持高電平,51芯片便循環(huán)復(fù)位。復(fù)位后p0p3口均置1引腳表現(xiàn)為高電平,程序計數(shù)器和特殊功能寄存器sfr全部清零。當(dāng)復(fù)位腳由高電平變?yōu)榈碗娖綍r,芯片為rom的00h處開始運行程序。復(fù)位是由外部的復(fù)位電路來實現(xiàn)的。片內(nèi)復(fù)位電路是復(fù)位引腳rst通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,它的輸出在每個機(jī)器周期的s5p2,由復(fù)位電路采樣一次。復(fù)位電路通常采用上電自動復(fù)
21、位和按鈕復(fù)位兩種方式,此電路系統(tǒng)采用的是上電與按鈕復(fù)位電路。當(dāng)時鐘頻率選用6mhz時,c取22f,rs約為200,rk約為1k。復(fù)位操作不會對內(nèi)部ram有所影響。常用的復(fù)位電路如下圖所示:圖4-3 常用復(fù)位電路圖4.輸入輸出引腳(1) p0端口p0.0-p0.7 p0是一個8位漏極開路型雙向i/o端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅(qū)動8個ttl。對內(nèi)部flash程序存儲器編程時,接收指令字節(jié);校驗程序時輸出指令字節(jié),要求外接上拉電阻。在訪問外部程序和外部數(shù)據(jù)存儲器時,p0口是分時轉(zhuǎn)換的地址(低8位)/數(shù)據(jù)總線,訪問期間內(nèi)部的上拉電阻起作用。(2) p1端口p1.0p1
22、.7 p1是一個帶有內(nèi)部上拉電阻的8位雙向i/0端口。輸出時可驅(qū)動4個ttl。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時,接收低8位地址信息。(3) p2端口p2.0p2.7 p2是一個帶有內(nèi)部上拉電阻的8位雙向i/0端口。輸出時可驅(qū)動4個ttl。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時,接收高8位地址和控制信息。在訪問外部程序和16位外部數(shù)據(jù)存儲器時,p2口送出高8位地址。而在訪問8位地址的外部數(shù)據(jù)存儲器時其引腳上的內(nèi)容在此期間不會改變。(4) p3端口p3.0p3.7 p2是一個帶有內(nèi)部上拉電阻的8位雙向
23、i/0端口。輸出時可驅(qū)動4個ttl。端口置1時,內(nèi)部上拉電阻將端口拉到高電平,作輸入用。對內(nèi)部flash程序存儲器編程時,接控制信息。除此之外p3端口還用于一些專門功能,具體請看下表。表4-1p3端口引腳兼用功能表p3引腳兼用功能p3.0串行通訊輸入(rxd)p3.1串行通訊輸出(txd)p3.2外部中斷0( int0)p3.3外部中斷1(int1)p3.4定時器0輸入(t0)p3.5定時器1輸入(t1)p3.6外部數(shù)據(jù)存儲器寫選通wrp3.7外部數(shù)據(jù)存儲器寫選通rd4.2 led顯示電路顯示器普遍地用于直觀地顯示數(shù)字系統(tǒng)的運行狀態(tài)和工作數(shù)據(jù),按照材料及產(chǎn)品工藝,單片機(jī)應(yīng)用系統(tǒng)中常用的顯示器有
24、: 發(fā)光二極管led顯示器、液晶lcd顯示器、crt顯示器等。led顯示器是現(xiàn)在最常用的顯示器之一,如下圖所示。圖4-4 led顯示器的符號圖發(fā)光二極管(led)由特殊的半導(dǎo)體材料砷化鎵、磷砷化鎵等制成,可以單獨使用,也可以組裝成分段式或點陣式led顯示器件(半導(dǎo)體顯示器)。分段式顯示器(led數(shù)碼管)由7條線段圍成8字型,每一段包含一個發(fā)光二極管。外加正向電壓時二極管導(dǎo)通,發(fā)出清晰的光。只要按規(guī)律控制各發(fā)光段亮、滅,就可以顯示各種字形或符號。led數(shù)碼管有共陽、共陰之分。圖是共陽式、共陰式led數(shù)碼管的原理圖和符號.圖4-5 共陽式、共陰式led數(shù)碼管的原理圖和數(shù)碼管的符號圖顯示電路顯示模塊
25、需要實時顯示當(dāng)前的時間,即時、分、秒,因此需要6個數(shù)碼管,另需兩個數(shù)碼管來顯示橫。采用動態(tài)顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位分別顯示在第一個和第二個數(shù)碼管,分的十位和個位分別顯示在第四個和第五個數(shù)碼管,秒的十位和個位分別顯示在第七個和第八個數(shù)碼管,其余數(shù)碼管顯示橫線。led顯示器的顯示控制方式按驅(qū)動方式可分成靜態(tài)顯示方式和動態(tài)顯示方式兩種。對于多位led顯示器,通常都是采用動態(tài)掃描的方法進(jìn)行顯示,其硬件連接方式如下圖所示。 圖4-6 數(shù)碼管的硬件連接示意圖數(shù)碼管使用條件:a、段及小數(shù)點上加限流電阻 b、使用電壓:段:根據(jù)發(fā)光顏色決定; 小數(shù)點:根據(jù)發(fā)光顏色決定c、使用電流:靜
26、態(tài):總電流 80ma(每段 10ma);動態(tài):平均電流 4-5ma 峰值電流 100ma數(shù)碼管使用注意事項說明:()數(shù)碼管表面不要用手觸摸,不要用手去弄引角;()焊接溫度:度;焊接時間:()表面有保護(hù)膜的產(chǎn)品,可以在使用前撕下來。4.3 鍵盤控制電路該設(shè)計需要校對時間,所以用三個按鍵來實現(xiàn)。按khour來調(diào)節(jié)小時的時間,按 kmin來調(diào)節(jié)分針的時間,按 ksec來調(diào)節(jié)秒的時間。下圖是按鍵硬件連接圖。圖4-7 按鍵控制電路的硬件連接圖當(dāng)用手按下一個鍵時,往往按鍵在閉合位置和斷開位置之間跳幾下才穩(wěn)定到閉合狀態(tài)的情況;在釋放一個鍵時,也回會出現(xiàn)類似的情況。這就是抖動。抖動的持續(xù)時間隨鍵盤材料和操作員
27、而異,不過通??偸遣淮笥?0ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,在讀入鍵盤碼第5章 數(shù)字時鐘的軟件設(shè)計5.1 系統(tǒng)軟件設(shè)計流程圖系統(tǒng)的軟件設(shè)計也是工具系統(tǒng)功能的設(shè)計。單片機(jī)軟件的設(shè)計主要包括執(zhí)行軟件(完成各種實質(zhì)性功能)的設(shè)計和監(jiān)控軟件的設(shè)計。單片機(jī)的軟件設(shè)計通常要考慮以下幾個方面的問題:(1)根據(jù)軟件功能要求,將系統(tǒng)軟件劃分為若干個相對獨立的部分,設(shè)計出合理的總體結(jié)構(gòu),使軟件開發(fā)清晰、簡潔和流程合理;(2)培養(yǎng)良好的編程風(fēng)格,如考慮結(jié)構(gòu)化程序設(shè)計、實行模塊化、子程序化。既便于調(diào)試、鏈接,又便
28、于移植和修改;(3)建立正確的數(shù)學(xué)模型,通過仿真提高系統(tǒng)的性能,并選取合適的參數(shù);(4)繪制程序流程圖;(5)合理分配系統(tǒng)資源;(6)為程序加入注釋,提高可讀性,實施軟件工程;(7)注意軟件的抗干擾設(shè)計,提高系統(tǒng)的可靠性。 這次的數(shù)字電子鐘設(shè)計用到很多子程序,它們的流程圖如下所示。 主程序是先開始,然后啟動定時器,定時器啟動后在進(jìn)行按鍵檢測,檢測完后,就可以顯示時間。開始啟動定時器按鍵檢測時間顯示圖5-1 主程序流程圖按鍵處理是先檢測秒按鍵是否按下,秒按鍵如果按下,秒就加1;如果沒有按下,就檢測分按鍵是否按下,分按鍵如果按下,分就加1;如果沒有按下,就檢測時按鍵是否按下,時按鍵如果按下,時就加
29、1;如果沒有按下,就把時間顯示出來。 nynyny時加1顯示時間結(jié)束開始秒按鍵按下?秒加1分按鍵按下?分加1時按鍵按下? 圖5-2 按鍵處理流程圖定時器中斷時是先檢測1秒是否到,1秒如果到,秒單元就加1;如果沒到,就檢測1分鐘是否到,1分鐘如果到,分單元就加1;如果沒到,就檢測1小時是否到,1小時如果到,時單元就加1,如果沒到,就顯示時間。n24小時到?分單元清零,時單元加1nnnyy時單元清零時間顯示中斷返回開始一秒時間到?60秒時間到?60分鐘到?秒單元加1秒單元清零,分單元加1yy圖5-3 定時器中斷流程圖時間顯示是先秒個位計算顯示,然后是秒十位計算顯示,再是分個位計算顯示,再然后是分十
30、位顯示,再就是時個位計算顯示,最后是時十位顯示。時十位計算顯示結(jié)束開始秒個位計算顯示秒十位計算顯示分個位計算顯示分十位計算顯示時個位計算顯示圖5-4 時間顯示流程圖5.2 數(shù)字時鐘的程序5.2.1主要過程及仿真利用at89c52和555定時器制作了一個簡易的數(shù)字時鐘,可以實現(xiàn)定時、調(diào)時、整點報時的功能。其中p1.0與k0相連,p1.1與k1相連,p1.2與k2相連。第一次按下k0調(diào)時,第二次按下k0調(diào)分,第三次按下調(diào)秒,第四次按下調(diào)試完成正常顯示時間。k2是向上調(diào)試加1,k3是向下調(diào)試減1。p27接的是鬧鈴,定時時間到鬧鈴?fù)V?。p37是整點報時,幾點就響幾下,在24小時內(nèi)定時誤差要大一些,其中
31、,例如十五分鐘占1.042%。5.3 主程序#include#define uint unsigned int#define uchar unsigned charuint shi,fen,miao,z,x; uchar j;uchar code table=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f;/共陰極段選sbit naoling=p37;sbit key0=p10;sbit key1=p11;sbit key2=p12;sbit wei=p07;sbit signal = p15;sbit beep = p27;void ch
32、ushihua();uchar counter=0;/延時函數(shù)void delay(uint m) while(m-);void delayms(unsigned int x) unsigned char i; while(x-) for(i = 0;i 0;j-) p2=0; p0=tableshis; delay(50); p2=1; p0=tableshig; wei=1; delay(50); p2=2; p0=tablefens; delay(50); p2=3; p0=tablefeng; wei=1; delay(50); p2=4; p0=tablemiaos; delay(5
33、0); p2=5; p0=tablemiaog; delay(50); /鍵盤掃描函數(shù)void keyscan() if(key0=0) delay(20); if(key0=0) while(!key0); delay(20); while(!key0); j+; if(j=1) tr0=0; if(j=4) tr0=1; j=0; if(j=2) if(key1=0) delay(20); if(key1=0) while(!key1); delay(20); while(!key1); fen+; if(fen=60) fen=0; if(key2=0) delay(20); if(ke
34、y2=0) while(!key2); delay(20); while(!key2); fen-; if(fen=65535) fen=59; if(j=1) if(key1=0) delay(20); if(key1=0) while(!key1); delay(20); while(!key1); shi+; if(shi=24) shi=0; if(key2=0) delay(20); if(key2=0) while(!key2); delay(20); while(!key2); shi-; if(shi=65535) shi=23; if(j=3) if(key1=0) dela
35、y(20); if(key1=0) while(!key1); delay(20); while(!key1); miao+; if(miao=60) miao=0; if(key2=0) delay(20); if(key2=0) while(!key2); delay(20); while(!key2); miao-; if(miao=65535) miao=59; /主函數(shù)void main() chushihua(); while(1) keyscan(); show(); if(signal) /檢測555輸出的電平高低 beep = beep; delayms(3); /中斷函數(shù)v
36、oid t0() interrupt 1 ea=0; counter+; th0=(65536-46083)/256; tl0=(65536-46083)%256; if(counter=20) counter=0; miao+; if(z) naoling=1; delay(50000); naoling=0; x-; if(x=0) z=0; if(miao=60) miao=0;fen+;if(fen=60) fen=0; shi+; z=1; x=shi; if(shi=24) shi=0; ea=1; 第6章 調(diào)試與功能說明6.1硬盤調(diào)試單片機(jī)應(yīng)用系統(tǒng)的調(diào)試包括硬件和軟件兩部分,但是
37、他們并不能完全分開。一般的方法是排除明顯的硬件故障,再進(jìn)行綜合調(diào)試,排除可能的軟/硬件故障。拿到電路板后,首先要檢查加工質(zhì)量,并確保沒有任何方面的錯誤,如短路和斷路,尤其要避免電源短路;元器件在安裝前要逐一檢查,用萬用表測其數(shù)值,看是否與所用相同;完成焊接后,應(yīng)先空載上電(芯片座上不插芯片),并檢查各引腳的電位是否正確。若一切正常,方可在斷電的情況下將芯片插入,再次檢查各引腳的電位及其邏輯關(guān)系。將萬用表的探針放到單片機(jī)接電源的引腳上檢測一下,看是否符合要求。6.2系統(tǒng)性能測試與功能說明p1.0與k0相連,p1.1與k1相連,p1.2與k2相連。第一次按下k0調(diào)時,第二次按下k0調(diào)分,第三次按下調(diào)秒,第四次按下調(diào)試完成正常顯示時間。k2是向上調(diào)試加1,k3是向下調(diào)試減1。p27接的是鬧鈴,定時時間到鬧鈴?fù)V埂37是整點報時,幾點就響幾下,在24小時內(nèi)定時誤差要大一些,其中,例如十五分鐘占1.042%。6.3系統(tǒng)時鐘誤差分析時間是一個基本物理量,具有連續(xù)、自動流逝、不重復(fù)等特性。我國時間基準(zhǔn)來自國家授時中心,人們?nèi)粘J褂玫臅r鐘就是以一定的精度與該基準(zhǔn)保持同步的。結(jié)合時間概念和誤差理論,可以定義電子鐘的走時誤差s=s1-s2,s1表示程序?qū)嶋H運行計算所得的秒;s2表示客觀時間的標(biāo)準(zhǔn)秒
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年陜西客運資格證考試實際操作試題答案
- 2024年張家口客運從業(yè)資格證考試題庫
- 2024年松原客運從業(yè)資格證考試一點通
- 2024年連云港小型客運從業(yè)資格證考試培訓(xùn)試題和答案
- 2024年荷澤小型客運從業(yè)資格證考試
- 人教部編版六年級語文上冊《語文園地四》精美課件
- 玻璃采購與專業(yè)安裝一體化協(xié)議模板
- 第三章導(dǎo)數(shù)及其應(yīng)用(原題版)
- 幼兒園幼小銜接教育活動總結(jié)
- 教師資格考試高級中學(xué)音樂面試試題及解答參考
- 平臺分銷返傭合作協(xié)議
- 中國城市行政代碼
- 低纖維蛋白原血癥的護(hù)理查房
- 數(shù)學(xué)4教材介紹
- 全國大學(xué)生職業(yè)生涯規(guī)劃大賽
- 肩關(guān)節(jié)鏡術(shù)的健康宣教
- 關(guān)于學(xué)校安全保衛(wèi)工作存在的問題及對策
- 2024年廣西鋁業(yè)集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- 2024年西藏開發(fā)投資集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 愛校主題班會課件
- 黑龍江省哈爾濱市南崗區(qū)2023-2024學(xué)年九年級上學(xué)期期末語文試題
評論
0/150
提交評論