51單片機(jī)DS1302時(shí)鐘報(bào)告
?


第1章?單片機(jī)系統(tǒng)硬件電路
1.1?實(shí)習(xí)目的
????????了解單片機(jī)最小系統(tǒng);
????????了解keil軟件操作,程序下載及調(diào)試方法;
????????掌握單片機(jī)外部電路使用;
????????掌握鍵盤(pán)和數(shù)碼管顯示編程方法;
????????應(yīng)用單片機(jī)開(kāi)發(fā)板進(jìn)行實(shí)驗(yàn)開(kāi)發(fā);
1.2?單片機(jī)型號(hào)及特性
1、AT89S51單片機(jī)功能及特點(diǎn)
????????AT89S51采用40引腳雙列直插封裝(DIP)形式,內(nèi)部由CPU,4kB的ROM,256 B的RAM,2個(gè)16b的定時(shí)/計(jì)數(shù)器TO和T1,4個(gè)8 b的工/O端I:IP0,P1,P2,P3,一個(gè)全雙功串行通信口等組成。特別是該系列單片機(jī)片內(nèi)的Flash可編程、可擦除只讀存儲(chǔ)器(E~PROM),使其在實(shí)際中有著十分廣泛的用途,在便攜式、省電及特殊信息保存的儀器和系統(tǒng)中更為有用。AT89S51提供了高度靈活和低成本的解決辦法。充分利用他的片內(nèi)資源,即可在較少外圍電路的情況下構(gòu)成功能完善的超聲波測(cè)距系統(tǒng)。
?2、STC89C52單片機(jī)功能及特點(diǎn)
????????STC89C52是由8K可反復(fù)擦寫(xiě)Flash ROM,32個(gè)雙向I/O口,256x8bit內(nèi)部RAM,3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷,時(shí)鐘頻率0-24MHz,2個(gè)串行中斷,可編程UART串行通道,2個(gè)外部中斷源,共6個(gè)中斷源,2個(gè)讀寫(xiě)中斷口線,3級(jí)加密位,低功耗空閑和掉電模式,軟件設(shè)置睡眠和喚醒功能。該器件采用ATMEL搞密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。
1.3?單片機(jī)開(kāi)發(fā)板
1、復(fù)位電路
????????在電路中,使用電阻給電容充電,使電容的電壓緩慢上升一直到VCC,在還沒(méi)有到VCC時(shí),芯片復(fù)位腳近似低電平,但是芯片復(fù)位,接近VCC時(shí),芯片復(fù)位腳近高電平,導(dǎo)致芯片停止復(fù)位,此時(shí)復(fù)位完成,整個(gè)電路循環(huán)運(yùn)行.這個(gè)電路就叫做復(fù)位電路。開(kāi)關(guān)復(fù)位電路如上圖所示。在電路上電時(shí)候或電壓波動(dòng)不穩(wěn)定的時(shí)候,當(dāng)給單片機(jī)上電那一瞬間,電壓有在幾微秒內(nèi)(有的是幾毫秒內(nèi))不是直接跳變到5V的而是一個(gè)直線上升的階段,這時(shí)候,單片機(jī)不能正常工作,需要復(fù)位電路給它延時(shí)以等到電壓穩(wěn)定。這叫上電復(fù)位。
?

2、晶振電路
????????晶振使用12MHZ。時(shí)鐘周期是機(jī)器周期的12倍,機(jī)器周期是晶振頻率的倒數(shù),1/12MHz = 1/12us那么時(shí)鐘周期就是12*(1/12us)=1us。單片機(jī)晶振提供的時(shí)鐘頻率越高,那么單片機(jī)運(yùn)行速度就越快,單片機(jī)的一切指令的執(zhí)行都是建立在單片機(jī)晶振提供的時(shí)鐘頻率。晶振的兩端并聯(lián)上合適的電容它就會(huì)組成并聯(lián)諧振電路。這個(gè)并聯(lián)諧振電路加到一個(gè)負(fù)反饋電路中就可以構(gòu)成正弦波振蕩電路,也就是晶振電路。

3、鍵盤(pán)和中斷
鍵盤(pán)掃描原理:
????????檢測(cè)時(shí),先送一列為低電平,其余幾列全為高電平,然后立即輪流檢測(cè)一次各行是否有低電平,若檢測(cè)到某一行為低電平,則我們便可確認(rèn)當(dāng)前被按下的鍵是哪一行哪一列的,用同樣的方法輪流送各列一次低電平,輪流檢測(cè)一次各行是否變成低電平,這樣即可檢測(cè)完所有的按鍵,當(dāng)有鍵被按下時(shí)便可判斷出按下的鍵是哪一個(gè)鍵。

中斷原理:
????????⑴?當(dāng)單片微機(jī)內(nèi)部或外部有中斷申請(qǐng)時(shí),CPU能及時(shí)響應(yīng)中斷,停下正在執(zhí)行的任務(wù),轉(zhuǎn)去處理中斷服務(wù)子程序,中斷服務(wù)處理后能回到原斷點(diǎn)處繼續(xù)處理原先的任務(wù);
????????⑵?當(dāng)有多個(gè)中斷源同時(shí)申請(qǐng)中斷時(shí),應(yīng)能先響應(yīng)優(yōu)先級(jí)高的中斷源,實(shí)現(xiàn)中斷優(yōu)先級(jí)的控制;
????????⑶?當(dāng)?shù)蛢?yōu)先級(jí)中斷源正在享用中斷服務(wù)時(shí),若這時(shí)優(yōu)先級(jí)比它高的中斷源也申請(qǐng)中斷,要求能停下低優(yōu)先級(jí)中斷源的服務(wù)程序轉(zhuǎn)去執(zhí)行更高優(yōu)先級(jí)中斷源的服務(wù)程序,實(shí)現(xiàn)中斷嵌套,并能逐級(jí)正確返回原斷點(diǎn)處。
4、數(shù)碼管
????????靜態(tài)顯示驅(qū)動(dòng)原理:
????????靜態(tài)驅(qū)動(dòng)也稱(chēng)直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O口進(jìn)行驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)就是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O口多。實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)行驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。
????????動(dòng)態(tài)顯示驅(qū)動(dòng)原理:
????????數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到相同的字形碼,但究竟是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開(kāi),該位就顯示出字形,沒(méi)有選通的數(shù)碼管就不會(huì)亮。通過(guò)分時(shí)輪流控制各個(gè)數(shù)碼管的的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過(guò)程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺(jué)暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。
?

第2章?單片機(jī)應(yīng)用系統(tǒng)軟件
2.1?STC下載軟件

????????本軟件不需要安裝,只要直接點(diǎn)擊這個(gè)圖標(biāo)即可。
????????MCU Type 選擇STC89C52RC 將生成的文件Open File ?然后我的電腦點(diǎn)擊右鍵找到管理設(shè)備管理器端口然后看顯示的是哪個(gè)COM口。最后點(diǎn)擊Download 單片機(jī)的開(kāi)關(guān)在顯示連接時(shí)再打開(kāi)。

?
2.2Keil軟件
點(diǎn)開(kāi)圖標(biāo)UV3;
?





?
點(diǎn)擊add close即可在界面上編譯即可。?
2.3?外部電路驅(qū)動(dòng)
1、串口
????????串行接口是一種可以將接受來(lái)自CPU的并行數(shù)據(jù)字符轉(zhuǎn)換為連續(xù)的串行數(shù)據(jù)流發(fā)送出去,同時(shí)可將接受的串行數(shù)據(jù)流轉(zhuǎn)換為并行的數(shù)據(jù)字符供給CPU的器件。一般完成這種功能的電路,我們成為串行接口電路。計(jì)算機(jī)通信是將計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換 ??梢苑譃閮纱箢?lèi):并行通信與串行通信。
????????并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送 。

?
????????并行通信控制簡(jiǎn)單、傳輸速度快;由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。 串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。
?

????????串行通信的特點(diǎn):傳輸線少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。 ?異步通信是指通信的發(fā)送與接收設(shè)備使用各自的時(shí)鐘控制數(shù)據(jù)的發(fā)送和接收過(guò)程。為使雙方的收發(fā)協(xié)調(diào),要求發(fā)送和接收設(shè)備的時(shí)鐘盡可能一致。?異步通信的數(shù)據(jù)格式 :
?

????????異步通信的特點(diǎn):不要求收發(fā)雙方時(shí)鐘的嚴(yán)格一致,實(shí)現(xiàn)容易,設(shè)備開(kāi)銷(xiāo)較小,但每個(gè)字符要附加2~3位用于起止位,各幀之間還有間隔,因此傳輸效率不高。
????????同步通信時(shí)要建立發(fā)送方時(shí)鐘對(duì)接收方時(shí)鐘的直接控制,使雙方達(dá)到完全同步。此時(shí),傳輸數(shù)據(jù)的位之間的距離均為“位間隔”的整數(shù)倍,同時(shí)傳送的字符間不留間隙,即保持位同步關(guān)系,也保持字符同步關(guān)系。
2、定時(shí)器
????????定時(shí)/計(jì)數(shù)器的工作原理:
????????加1計(jì)數(shù)器輸入的計(jì)數(shù)脈沖有兩個(gè)來(lái)源,一個(gè)是由系統(tǒng)的時(shí)鐘振蕩器輸出脈沖經(jīng)12分頻后送來(lái);一個(gè)是T0或T1引腳輸入的外部脈沖源。每來(lái)一個(gè)脈沖計(jì)數(shù)器加1,當(dāng)加到計(jì)數(shù)器為全1時(shí),再輸入一個(gè)脈沖就使計(jì)數(shù)器回零,且計(jì)數(shù)器的溢出使TCON中TF0或TF1置1,向CPU發(fā)出中斷請(qǐng)求(定時(shí)/計(jì)數(shù)器中斷允許時(shí))。如果定時(shí)/計(jì)數(shù)器工作于定時(shí)模式,則表示定時(shí)時(shí)間已到;
????????如果工作于計(jì)數(shù)模式,則表示計(jì)數(shù)值已滿??梢?jiàn),由溢出時(shí)計(jì)數(shù)器的值減去計(jì)數(shù)初值才是加1計(jì)數(shù)器的計(jì)數(shù)值。工作方式寄存器TMOD用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低四位用于T0,高四位用于T1。其格式如下:????

?
GATE:門(mén)控位。
C/T:定時(shí)/計(jì)數(shù)模式選擇位。?????
M1M0:工作方式設(shè)置位。


?
?
TF1(TCON.7):T1溢出中斷請(qǐng)求標(biāo)志位。
TR1(TCON.6):T1運(yùn)行控制位。
TF0(TCON.5):T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類(lèi)同。
TR0(TCON.4):T0運(yùn)行控制位,其功能與TR1類(lèi)同。
3、中斷
一、中斷的概念
????????CPU在處理某一事件A時(shí),發(fā)生了另一事件B請(qǐng)求CPU迅速去處理(中斷發(fā)生);CPU暫時(shí)中斷當(dāng)前的工作,轉(zhuǎn)去處理事件B(中斷響應(yīng)和中斷服務(wù));待CPU將事件B處理完畢后,再回到原來(lái)事件A被中斷的地方繼續(xù)處理事件A(中斷返回),這一過(guò)程稱(chēng)為中斷 。MCS-51單片機(jī)的中斷系統(tǒng)結(jié)構(gòu)

?
????????引起CPU中斷的根源,稱(chēng)為中斷源。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來(lái)的事務(wù)A,轉(zhuǎn)去處理事件B。對(duì)事件B處理完畢后,再回到原來(lái)被中斷的地方(即斷點(diǎn)),稱(chēng)為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱(chēng)為中斷系統(tǒng)(中斷機(jī)構(gòu))。80C51的中斷系統(tǒng)有5個(gè)中斷源(8052有 6個(gè)) ,2個(gè)優(yōu)先級(jí),可實(shí)現(xiàn)二級(jí)中斷嵌套?。TCON的中斷標(biāo)志

?
????????IT0(TCON.0),外部中斷0觸發(fā)方式控制位。當(dāng)IT0=0時(shí),為電平觸發(fā)方式。當(dāng)IT0=1時(shí),為邊沿觸發(fā)方式(下降沿有效)。IE0(TCON.1),外部中斷0中斷請(qǐng)求標(biāo)志位。IT1(TCON.2),外部中斷1觸發(fā)方式控制位。IE1(TCON.3),外部中斷1中斷請(qǐng)求標(biāo)志位。TF0(TCON.5),定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位。TF1(TCON.7),定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位。??????
????????SCON的中斷標(biāo)志

?
????????RI(SCON.0),串行口接收中斷標(biāo)志位。TI(SCON.1),串行口發(fā)送中斷標(biāo)志位。中斷允許控制

????????EX0(IE.0),外部中斷0允許位;ET0(IE.1),定時(shí)/計(jì)數(shù)器T0中斷允許位;EX1(IE.2),外部中斷0允許位;ET1(IE.3),定時(shí)/計(jì)數(shù)器T1中斷允許位;ES(IE.4),串行口中斷允許位;EA (IE.7), CPU中斷允許(總允許)位。中斷優(yōu)先級(jí)控制

?
????????PX0(IP.0),外部中斷0優(yōu)先級(jí)設(shè)定位;PT0(IP.1),定時(shí)/計(jì)數(shù)器T0優(yōu)先級(jí)設(shè)定位;PX1(IP.2),外部中斷0優(yōu)先級(jí)設(shè)定位;PT1(IP.3),定時(shí)/計(jì)數(shù)器T1優(yōu)先級(jí)設(shè)定位;PS (IP.4),串行口優(yōu)先級(jí)設(shè)定位;PT2 (IP.5) ,定時(shí)/計(jì)數(shù)器T2優(yōu)先級(jí)設(shè)定位。
?

第3章?電子時(shí)鐘設(shè)計(jì)
3.1?基本電路 ??????????????????
數(shù)碼管
????????所謂的八段就是指數(shù)碼管里有八個(gè)小LED發(fā)光二極管,通過(guò)控制不同的LED的亮滅來(lái)顯示出不同的字形。數(shù)碼管又分為共陰極和共陽(yáng)極兩種類(lèi)型,其實(shí)共陰極就是將八個(gè)LED的陰極連在一起,讓其接地,這樣給任何一個(gè)LED的另一端高電平,它便能點(diǎn)亮。而共陽(yáng)極就是將八個(gè)LED的陽(yáng)極連在一起。其原理圖如下。

????????其中引腳圖的兩個(gè)COM端連在一起,是公共端,共陰數(shù)碼管要將其接地,共陽(yáng)數(shù)碼管將其接正5伏電源。一個(gè)八段數(shù)碼管稱(chēng)為一位,多個(gè)數(shù)碼管并列在一起可構(gòu)成多位數(shù)碼管,它們的段選線(即a,b,c,d,e,f,g,dp)連在一起,而各自的公共端稱(chēng)為位選線。顯示時(shí),都從段選線送入字符編碼,而選中哪個(gè)位選線,那個(gè)數(shù)碼管便會(huì)被點(diǎn)亮。數(shù)碼管的8段,對(duì)應(yīng)一個(gè)字節(jié)的8位,a對(duì)應(yīng)最低位,dp對(duì)應(yīng)最高位。所以如果想讓數(shù)碼管顯示數(shù)字0,那么共陰數(shù)碼管的字符編碼為00111111,即0x3f;共陽(yáng)數(shù)碼管的字符編碼為11000000,即0xc0??梢钥闯鰞蓚€(gè)編碼的各位正好相反。
2.DS1302的結(jié)構(gòu)和工作原理
????????DS1302是美國(guó)DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或RAM數(shù)據(jù)。DS1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級(jí)產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。
2.1 引腳功能及結(jié)構(gòu)
????????DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過(guò)把RST輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)DS1302進(jìn)行操作。如果在傳送過(guò)程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細(xì)說(shuō)明。SCLK始終是輸入端。
2.2數(shù)據(jù)輸入輸出(I/O)
????????在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫(xiě)入DS1302,數(shù)據(jù)輸入從低位即位0開(kāi)始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。
2.4 DS1302的寄存器
????????DS1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時(shí)間寄存器及其控制字見(jiàn)表1。此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫(xiě)除充電寄存器外的所有寄存器內(nèi)容。DS1302與RAM相關(guān)的寄存器分為兩類(lèi):一類(lèi)是單個(gè)RAM單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫(xiě)操作;另一類(lèi)為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫(xiě)所有的RAM的31個(gè)字節(jié),命令控制字為FEH(寫(xiě))、FFH(讀)。
3.2?設(shè)計(jì)原理
編程思想
1.數(shù)據(jù)輸出
????????從P0口輸出段選碼,從P1口輸出位選碼,數(shù)碼管就會(huì)顯示出數(shù)字來(lái)。
2.計(jì)時(shí)功能的實(shí)現(xiàn)與中斷服務(wù)程序
????????時(shí)間的運(yùn)行依靠定時(shí)中斷子程序?qū)r(shí)鐘單元數(shù)值為進(jìn)行進(jìn)位調(diào)整來(lái)實(shí)現(xiàn)的。計(jì)數(shù)器T0打開(kāi)后,進(jìn)入計(jì)時(shí),滿50ms后,重裝定時(shí),中斷一次。中斷二十次后,滿一秒進(jìn)位,滿60秒后即為1分鐘,分鐘單位進(jìn)位,60分到了后,時(shí)單位進(jìn)位,24小時(shí)滿后,清0;通過(guò)掃描程序送數(shù)碼管顯示出來(lái),實(shí)現(xiàn)時(shí)鐘計(jì)時(shí)功能。

3.3實(shí)現(xiàn)方法????????????????????????????????????????
????????本實(shí)驗(yàn)完全使用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。系統(tǒng)以AT89C52為核心,具有時(shí)間顯示功能。硬件電路包括AT89C52單片機(jī)最小系統(tǒng)電路,數(shù)碼管模塊。采用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合50ms秒定時(shí)中斷,產(chǎn)生二十次中斷,達(dá)到一秒,秒計(jì)算到60時(shí),要軟件清零并向分進(jìn)1;分計(jì)算到60時(shí),要自己清零并向時(shí)進(jìn)1;時(shí)計(jì)算到24時(shí),要清零。這樣才能循環(huán)計(jì)時(shí)。該方案具有硬件電路簡(jiǎn)單,性能可靠,實(shí)時(shí)性好,操作簡(jiǎn)單,編程容易的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。??????
3.4(1)數(shù)碼管的動(dòng)態(tài)顯示?
????????顯示格式如10-45-10.在多位LED顯示時(shí),為了降低成本和功耗,將所有位的段選線并聯(lián)起來(lái),由一個(gè)8位口控制,由另一個(gè)端口進(jìn)行顯示位的控制。但是,由于段選是公用的,要讓各位數(shù)碼管顯示不同的字符,就必須采用掃描方式,即動(dòng)態(tài)掃描顯示方式。首先從段選線上送出字段碼,再控制位選線,字符就顯示在指定位置上,持續(xù)1~5ms時(shí)間;接下來(lái)又送出新的字段碼,按照上述過(guò)程又顯示在新的位置上,直到每一位數(shù)碼管都掃描完為止,即為一個(gè)掃描周期。由于人的視覺(jué)停留效應(yīng),因此當(dāng)掃描周期小到一定程度時(shí),人就感覺(jué)不出字符的移動(dòng)或閃爍,覺(jué)得每位數(shù)碼管到一直在顯示,達(dá)到一種穩(wěn)定的視覺(jué)效果。
3.5?動(dòng)態(tài)掃描顯示的掃描方式有程序控制和定時(shí)中斷掃描兩種。
????????程序控制掃描方式要占用許多CPU時(shí)間,在計(jì)算機(jī)的任務(wù)較重時(shí),難以得到好的效果,所以在實(shí)際中常采用定時(shí)中斷掃描方式,這種方式是每隔一定時(shí)間(如1ms)顯示一位數(shù)碼管,假設(shè)有8位數(shù)碼管,顯示掃描周期為8ms,顯示效果十分良好。本次設(shè)計(jì)采用這種方法。
3.6?(2)數(shù)碼管的字型碼設(shè)計(jì)
3.7八段LED顯示器由8個(gè)發(fā)光二極管組成。
????????基中7個(gè)長(zhǎng)條形的發(fā)光管排列成"日"字形,另一個(gè)賀點(diǎn)形的發(fā)光管在顯示器的右下角作為顯示小數(shù)點(diǎn)用,它能顯示各種數(shù)字及部份英文字母。LED顯示器有兩種不同的形式:一種是8個(gè)發(fā)光二極管的陽(yáng)極都連在一起的,稱(chēng)之為共陽(yáng)極LED顯示器;另一種是8個(gè)發(fā)光二極管的陽(yáng)極都連在一起的,稱(chēng)之為共陽(yáng)極LED顯示器。共陰和共陽(yáng)結(jié)構(gòu)的LED顯示器各筆劃段名和安排位置是相同的。當(dāng)二極管導(dǎo)通時(shí),相應(yīng)的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。這里必須注意的是:很多產(chǎn)品為方便接線,常不按規(guī)則的方法去對(duì)應(yīng)字段與位的關(guān)系,這時(shí)字形碼就必須根據(jù)接線來(lái)自行設(shè)計(jì)了。單片機(jī)上數(shù)碼管接法為共陽(yáng)型,也就是相應(yīng)的輸出位為0時(shí)筆段亮,則字型碼為:
第4章?實(shí)習(xí)總結(jié)
4.1?實(shí)習(xí)體會(huì)
????????這幾天的實(shí)習(xí)分為兩大部分,前幾天進(jìn)行單片機(jī)的焊接,之后老師布置作業(yè),進(jìn)行編程調(diào)試,最后進(jìn)行檢查。在對(duì)AT89C52單片機(jī)焊接和調(diào)試過(guò)程中,我學(xué)到了很多東西,無(wú)論是在單片機(jī)理論方面還是在電子器件焊接方面都取得了很大的進(jìn)步。在單片機(jī)焊接過(guò)程中注意以下幾點(diǎn):
????????1、注意電解電容、發(fā)光二極管、蜂鳴器的正負(fù)極性不能接反、三者均是長(zhǎng)的管腳接正極、短的管腳接負(fù)極,如接反輕則燒毀元?dú)饧?,重則發(fā)生輕微爆炸。
????????2、三極管8550的E、B、C、注意接法,板子上面有相應(yīng)的圖形形狀。按照那個(gè)圖形焊接。
????????3、焊接元?dú)饧倪^(guò)程之中焊接時(shí)間應(yīng)在2-4秒。焊接時(shí)間不宜過(guò)長(zhǎng),否則不僅會(huì)燒毀元?dú)饧?、而且易使焊點(diǎn)容易脆裂
????????4、電阻焊接過(guò)程中注意相應(yīng)的阻值對(duì)應(yīng),不要焊錯(cuò)。否則影響相應(yīng)的電流大小。
????????5、排阻焊接過(guò)程之中公共端應(yīng)該接VCC、其余管腳為相應(yīng)的獨(dú)立端。
????????6、ISP插槽應(yīng)該注意方向。缺口對(duì)應(yīng)板子的外面、如果接反下載線將不能接好。
????????7、數(shù)碼管的焊接應(yīng)該是有小數(shù)點(diǎn)的一側(cè)在下面、接反影響數(shù)碼管的顯示。
????????焊接的順序如下:應(yīng)該先焊器件高度小的,再焊高度大的。
????????單片機(jī)主要包括AT89C52芯片,數(shù)碼管,蜂鳴器,發(fā)光二極管,按鍵,12864,1206,紅外接收,24c04,18b20溫度傳感器。在實(shí)現(xiàn)某些功能時(shí)要對(duì)單片機(jī)引腳,內(nèi)部結(jié)構(gòu),寄存器和原理有一定的了解和感官認(rèn)識(shí),它是怎樣工作的,能干什么?單片機(jī)是一門(mén)應(yīng)用性和實(shí)踐性很強(qiáng)的學(xué)科,要是一段時(shí)間不接觸就會(huì)把學(xué)會(huì)的東西忘記,因此要經(jīng)常制作一些小東西,鞏固單片機(jī)的一些知識(shí)點(diǎn)。
4.2設(shè)計(jì)硬件體會(huì)
????????雖然硬件部分有的硬件比較少,做出來(lái)的時(shí)間比較少,但在制作這些硬件的過(guò)程中仍然從某種意義上遵循著硬件開(kāi)發(fā)的一些既定的程序。在設(shè)計(jì)硬件時(shí),先將各部分硬件用PTOTEL畫(huà)出來(lái),然后最后根據(jù)總的要求將各個(gè)部件連接在一起。硬件最好使用覆銅板將電路焊出來(lái),最好不要使用萬(wàn)用板焊接,這樣誤差比較大。在制作過(guò)程中必須注意比較細(xì)致的分析。在使用軟件進(jìn)行編程時(shí),必須結(jié)合硬件。
????????在元器件的布局方面,應(yīng)該把相互有關(guān)的元件盡量放得靠近一些,對(duì)于那些易產(chǎn)生噪聲的器件、小電流電路、大電流電路開(kāi)關(guān)電路等,應(yīng)盡量使其遠(yuǎn)離單片機(jī)的邏輯控制電路和儲(chǔ)存電路,如果可能的話,可能將這些電路另外制成電路板,這樣有利于抗干擾,提高電路工作的可靠性。
????????盡量在關(guān)鍵元件,如ROM、RAM等芯片旁邊安裝去耦電容。實(shí)際上,印制電路板走線、引腳連線等都可能含有較大的電感效應(yīng)。大的電感可能會(huì)在VCC走線上引起嚴(yán)重的開(kāi)關(guān)噪聲尖峰。防止VCC走線上開(kāi)關(guān)噪聲尖峰的唯一方法,是在VCC與電源地之間安防一個(gè)合適大小的去耦電容。最好使用瓷片電容,因?yàn)檫@種電容具有較低的高頻阻抗,另外這種電容溫度和時(shí)間上的介質(zhì)穩(wěn)定性也很不錯(cuò)。如果不會(huì)設(shè)計(jì)硬件電路,可以根據(jù)典型電路進(jìn)行設(shè)計(jì),然后再根據(jù)實(shí)際情況進(jìn)行加各種電容、電阻等元器件。
參考文獻(xiàn)
[1]郭天祥 51單片機(jī)C語(yǔ)言教程2009
[2]?華成英,童詩(shī)白?模擬電子技術(shù)基礎(chǔ)?2006
[3] 閆石 數(shù)字電子技術(shù)基礎(chǔ) 2006
[4] 謝自美 電子線路設(shè)計(jì) 1992
[5] 何利民 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) 1993
[6] 付家才 單片機(jī)工程時(shí)間技術(shù) 2004.3
[7] 朱定華 單片機(jī)原理及接口技術(shù) 2002.11
[8] 劉湘濤 江世明 單片機(jī)原理與應(yīng)用 2006
附錄2系統(tǒng)主要程序
?