單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程課件:數(shù)字電子鐘的設(shè)計(jì)_第1頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程課件:數(shù)字電子鐘的設(shè)計(jì)_第2頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程課件:數(shù)字電子鐘的設(shè)計(jì)_第3頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程課件:數(shù)字電子鐘的設(shè)計(jì)_第4頁(yè)
單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程課件:數(shù)字電子鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩77頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程—基于Proteus和KeilCSINGLE-CHIP

COMPUTER

APPLICATION

TECHNOLOGY

數(shù)字電子鐘的設(shè)計(jì)定時(shí)/計(jì)數(shù)器的應(yīng)用01LED數(shù)碼管結(jié)構(gòu),分類(lèi)及應(yīng)用02數(shù)字電子鐘的設(shè)計(jì)03知識(shí)要點(diǎn)05

數(shù)字電子鐘的設(shè)計(jì)

了解定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)及原理,并用C語(yǔ)言編程01掌握LED動(dòng)態(tài)掃描的編程方法02能用proteus軟件繪制仿真原理圖03能應(yīng)用C語(yǔ)言編程輸出方波和矩形波,并進(jìn)行仿真04學(xué)習(xí)要求05實(shí)現(xiàn)數(shù)字電子鐘的設(shè)計(jì)4.1定時(shí)/計(jì)數(shù)器工作原理4.1.1傳統(tǒng)MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器的基本結(jié)構(gòu)定時(shí)/計(jì)數(shù)器的基本結(jié)構(gòu)如圖4.1所示。基本部件是兩個(gè)16位寄存器T0和T1,每個(gè)寄存器分成兩個(gè)8位寄存器(T0由高8位TH0和低8位TL0組成,T1由TH1和TL1組成)。TMOD是定時(shí)/計(jì)數(shù)器的工作方式寄存器,由它確定定時(shí)/計(jì)數(shù)器的工作方式和功能;TCON是定時(shí)/計(jì)數(shù)器的控制寄存器,用于控制T0、T1的啟動(dòng)和停止,以及設(shè)置溢出標(biāo)志。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器

STC15系列單片機(jī)

定時(shí)/計(jì)數(shù)器的特殊功能

寄存器見(jiàn)表4-1。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.2.1定時(shí)/計(jì)數(shù)器T0和T1的控制寄存器控制寄存器(TCON)(88H)的低4位用于控制外部中斷,已在前面介紹TCON的高4位用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)和中斷申請(qǐng)。其格式如下:1)TF1:定時(shí)/計(jì)數(shù)器T1溢出中斷請(qǐng)求標(biāo)志位(可看作TimerFull的縮寫(xiě))。定時(shí)/計(jì)數(shù)器T1計(jì)數(shù)溢出時(shí)由硬件自動(dòng)置TF1為“1”。在進(jìn)入中斷服務(wù)程序后TF1由硬件自動(dòng)清“0”;若用于查詢(xún)方式,此位可作為狀態(tài)位供查詢(xún),但應(yīng)注意查詢(xún)后要由軟件清“0”。2)TR1:定時(shí)/計(jì)數(shù)器T1運(yùn)行控制位(可看作TimerStart的縮寫(xiě))。TR1置“1”時(shí),定時(shí)/計(jì)數(shù)器T1開(kāi)始工作;TR1置“0”時(shí),定時(shí)/計(jì)數(shù)器T1停止工作。TR1由軟件置“1”或清“0”。所以,用軟件可控制定時(shí)/計(jì)數(shù)器T1的啟動(dòng)與停止。3)TF0:定時(shí)/計(jì)數(shù)器T0溢出中斷請(qǐng)求標(biāo)志位,其功能與TF1類(lèi)同。4)TR0:定時(shí)/計(jì)數(shù)器T0運(yùn)行控制位,其功能與TR1類(lèi)同。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.2.2工作方式寄存器工作方式寄存器(TMOD)(89H)用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低4位用于T0,高4位用于T1。其格式如下:

1)GATE:門(mén)控位。GATE=0時(shí),若軟件使TCON中的TR0或TR1設(shè)置為“1”,則啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),當(dāng)軟件使TR0或TR1設(shè)置為“1”,同時(shí)外部中斷引腳INT0或INT1也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)條件,加上了INT0或INT1引腳為高電平這一條件。

2)C/T:定時(shí)/計(jì)數(shù)模式選擇位。C/T=0為定時(shí)模式,C/T=1為計(jì)數(shù)模式。

3)M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式,由M1M0進(jìn)行設(shè)置。STC15系列單片機(jī)的方式0與傳統(tǒng)MCS-51單片機(jī)不同,為16位自動(dòng)重裝定時(shí)/計(jì)數(shù)器,其他方式與傳統(tǒng)MCS-51單片機(jī)相同,具體功能見(jiàn)表4.2。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.2.2工作方式寄存器工作方式寄存器(TMOD)(89H)用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低4位用于T0,高4位用于T1。其格式如下:

1)GATE:門(mén)控位。GATE=0時(shí),若軟件使TCON中的TR0或TR1設(shè)置為“1”,則啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),當(dāng)軟件使TR0或TR1設(shè)置為“1”,同時(shí)外部中斷引腳INT0或INT1也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)條件,加上了INT0或INT1引腳為高電平這一條件。

2)C/T:定時(shí)/計(jì)數(shù)模式選擇位。C/T=0為定時(shí)模式,C/T=1為計(jì)數(shù)模式。

3)M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式,由M1M0進(jìn)行設(shè)置。STC15系列單片機(jī)的方式0與傳統(tǒng)MCS-51單片機(jī)不同,為16位自動(dòng)重裝定時(shí)/計(jì)數(shù)器,其他方式與傳統(tǒng)MCS-51單片機(jī)相同,具體功能見(jiàn)表4.2。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.2.2工作方式寄存器工作方式寄存器(TMOD)(89H)用于設(shè)置定時(shí)/計(jì)數(shù)器的工作方式,低4位用于T0,高4位用于T1。其格式如下:

1)GATE:門(mén)控位。GATE=0時(shí),若軟件使TCON中的TR0或TR1設(shè)置為“1”,則啟動(dòng)定時(shí)/計(jì)數(shù)器工作;GATE=1時(shí),當(dāng)軟件使TR0或TR1設(shè)置為“1”,同時(shí)外部中斷引腳INT0或INT1也為高電平時(shí),才能啟動(dòng)定時(shí)/計(jì)數(shù)器工作。即此時(shí)定時(shí)器的啟動(dòng)條件,加上了INT0或INT1引腳為高電平這一條件。

2)C/T:定時(shí)/計(jì)數(shù)模式選擇位。C/T=0為定時(shí)模式,C/T=1為計(jì)數(shù)模式。

3)M1M0:工作方式設(shè)置位。定時(shí)/計(jì)數(shù)器有4種工作方式,由M1M0進(jìn)行設(shè)置。由于TMOD不能進(jìn)行位尋址,因此只能用字節(jié)指令設(shè)置定時(shí)/計(jì)數(shù)器的工作方式。CPU復(fù)位時(shí)TMOD所有位清“0”,工作在非門(mén)控定時(shí)器方式0狀態(tài)。STC15系列單片機(jī)的方式0與傳統(tǒng)MCS-51單片機(jī)不同,為16位自動(dòng)重裝定時(shí)/計(jì)數(shù)器,其他方式與傳統(tǒng)MCS-51單片機(jī)相同,具體功能見(jiàn)表4.2。4.2.3輔助寄存器AUXR

STC15系列單片機(jī)是1T的8051單片機(jī),為兼容傳統(tǒng)8051單片機(jī),定時(shí)器0、定時(shí)器1和定時(shí)器2復(fù)位后是傳統(tǒng)8051的速度,即12分頻,這是為了兼容傳統(tǒng)8051單片機(jī)。但也可不進(jìn)行12分頻,通過(guò)設(shè)置新增加的特殊功能寄存器AUXR,將T0、T1、T2設(shè)置為1T。AUXR格式如下:T0x12:定時(shí)器0速度控制位。取值0時(shí)定時(shí)器0是傳統(tǒng)8051速度,即12分頻;取值1時(shí)定時(shí)器0的速度是傳統(tǒng)8051的12倍,不分頻。T1x12:定時(shí)器1速度控制位。取值0時(shí)定時(shí)器1是傳統(tǒng)8051速度,即12分頻;取值1時(shí)定時(shí)器1的速度是傳統(tǒng)8051的12倍,不分頻。UART_M0x6:串行口1模式0的通信速度設(shè)置位。取值0時(shí)串行口1模式0的速度是傳統(tǒng)8051單片機(jī)串口的速度,即12分頻;取值1時(shí)串行口1模式0的速度是傳統(tǒng)8051單片機(jī)串行口速度的6倍,2分頻。T2R:定時(shí)器2允許控制位。取值0時(shí)不允許定時(shí)器2運(yùn)行;取值1時(shí)允許定時(shí)器2運(yùn)行。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器T2_C/T:控制定時(shí)器2用作定時(shí)器或計(jì)數(shù)器。取值0時(shí)用作定時(shí)器(對(duì)內(nèi)部系統(tǒng)時(shí)鐘進(jìn)行計(jì)數(shù));取值1時(shí)用作計(jì)數(shù)器(對(duì)引腳T2/P3.1的外部脈沖進(jìn)行計(jì)數(shù))。T2x12:定時(shí)器2速度控制位。取值0時(shí)定時(shí)器2是傳統(tǒng)8051速度,即12分頻;取值1時(shí)定時(shí)器2的速度是傳統(tǒng)8051的12倍,不分頻。如果串行口1或串行口2用T2作為波特率發(fā)生器,則由T2x12決定串行口1或串行口2是12T還是1T。EXTRAM:內(nèi)部/外部RAM存取控制位。取值0時(shí)允許使用邏輯上在片外、物理上在片內(nèi)的擴(kuò)展RAM;取值1時(shí),禁止使用邏輯上在片外、物理上在片內(nèi)的擴(kuò)展RAM。S1ST2:串行口1(UART1)選擇定時(shí)器2作波特率發(fā)生器的控制位。取值0時(shí)選擇定時(shí)器1作為串行口1(UART1)的波特率發(fā)生器;取值1時(shí)選擇定時(shí)器2作為串行口1(UART1)的波特率發(fā)生器,此時(shí)定時(shí)器1得到釋放,可以作為獨(dú)立定時(shí)器使用。T0CLKO/P3.5、T1CLKO/P3.4和T2CLKO/P3.0的時(shí)鐘輸出控制由INT_CLKO(AUXR2)寄存器的T0CLKO位、T1CLKO位和T2CLKO位控制。T0CLKO的輸出時(shí)鐘頻率由定時(shí)器0控制,T1CLKO的輸出時(shí)鐘頻率由定時(shí)器1控制,相應(yīng)的定時(shí)器需要工作在定時(shí)器的模式0(16位自動(dòng)重裝載模式)或模式2(8位自動(dòng)重裝載模式),不允許相應(yīng)的定時(shí)器中斷,免得CPU反復(fù)進(jìn)中斷。T2CLKO的輸出時(shí)鐘頻率由定時(shí)器2控制,同樣不允許相應(yīng)的定時(shí)器中斷,免得CPU反復(fù)進(jìn)中斷。定時(shí)器2的工作模式固定為模式0(16位自動(dòng)重項(xiàng)目4數(shù)字電子鐘的設(shè)計(jì)117裝載模式),在此模式下定時(shí)器2可用作可編程時(shí)鐘輸出。INT_CLKO(AUXR2)格式如下:T0CLKO:是否允許將P3.5/T1引腳配置為定時(shí)器0(T0)的時(shí)鐘輸出T0CLKO1允許將P3.5/T1引腳配置為定時(shí)器0(T0)的時(shí)鐘輸出T0CLKO;0不允許將P3.5/T1引腳配置為定時(shí)器0(T0)的時(shí)鐘輸出T0CLKO.T1CLKO:是否允許將P3.4/T0引腳配置為定時(shí)器1(T1)的時(shí)鐘輸出T1CLKO1允許將P3.4/T0引腳配置為定時(shí)器1(T1)的時(shí)鐘輸出T1CLKO;0不允許將

P3.4/T0引腳配置為定時(shí)器1(T1)的時(shí)鐘輸出T1CLKO。T2CLKO:是否允許將P3.0引腳配置為定時(shí)器2(T2)的時(shí)鐘輸出T2CLKO。1允許將P3.0引腳配置為定時(shí)器2的時(shí)鐘輸出T2CLKO;0不允許將P3.0引腳配置為定時(shí)器2的時(shí)鐘輸出T2CLKO4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.2.5定時(shí)器T0和T1的中斷控制寄存器:IE和IP

1.中斷允許寄存器IE

CPU對(duì)中斷系統(tǒng)所有中斷以及某個(gè)中斷源的開(kāi)放和屏蔽是由中斷允許寄存器(IE)(A8H)控制的.IE的狀態(tài)可通過(guò)程序由軟件設(shè)定。某位設(shè)定為“1”,相應(yīng)的中斷源

中斷允許;某位設(shè)定為“0”,相應(yīng)的中斷源中斷屏蔽。CPU復(fù)位時(shí),IE各位清“0”,禁止所有中斷。IE各位的定義如下(標(biāo)注STC15系列表示傳統(tǒng)51沒(méi)有相應(yīng)功能):ET0:定時(shí)/計(jì)數(shù)器(T0)中斷允許位。ET1:定時(shí)/計(jì)數(shù)器(T1)中斷允許位。EA:CPU中斷總允許位。2.中斷優(yōu)先級(jí)寄存器IPMCS-51單片機(jī)有兩個(gè)中斷優(yōu)先級(jí),因此可實(shí)現(xiàn)二級(jí)中斷服務(wù)嵌套。每個(gè)中斷源的中斷優(yōu)先級(jí)都是由中斷優(yōu)先級(jí)寄存器(IP)(B8H)中的相應(yīng)位的狀態(tài)來(lái)規(guī)定的。IP的狀態(tài)由軟件設(shè)定,某位設(shè)定為“1”,則相應(yīng)的中斷源為高優(yōu)先級(jí)中斷;某位設(shè)定為“0”,則相應(yīng)的118單片機(jī)應(yīng)用技術(shù)項(xiàng)目式教程———基于C51+Proteus仿真中斷源為低優(yōu)先級(jí)中斷。單片機(jī)復(fù)位時(shí),IP各位清“0”,各中斷源同為低優(yōu)先級(jí)中斷。IP各位的定義如下(標(biāo)注STC15系列表示傳統(tǒng)51沒(méi)有相應(yīng)功能):PT0:定時(shí)/計(jì)數(shù)器(T0)中斷優(yōu)先級(jí)設(shè)定位。PT1:定時(shí)/計(jì)數(shù)器(T1)中斷優(yōu)先級(jí)設(shè)定位。注意:當(dāng)定時(shí)器/計(jì)數(shù)器0工作在模式3(不可屏蔽中斷的16位自動(dòng)重裝載模式)時(shí),不需要設(shè)置EA=1,只需設(shè)置ET0=1就能打開(kāi)T0的中斷,此模式下的T0中斷與總中斷使能位EA無(wú)關(guān)。一旦此模式下的定時(shí)器/計(jì)數(shù)器0中斷被打開(kāi)后,該定時(shí)器/計(jì)數(shù)器0中斷優(yōu)先級(jí)就是最高的,它不能被其他任何中斷所打斷(不管是比定時(shí)器/計(jì)數(shù)器0中斷優(yōu)先級(jí)低的中斷還是比其優(yōu)先級(jí)高的中斷,都不能打斷此時(shí)的定時(shí)器/計(jì)數(shù)器0中斷),而且該中斷打開(kāi)后既不受EA/IE7控制也不再受ET0控制,即清零EA或ET0都不能關(guān)閉此中斷。4.2定時(shí)/計(jì)數(shù)器的特殊功能寄存器4.3定時(shí)/計(jì)數(shù)器0的工作模式STC15單片機(jī)和傳統(tǒng)MCS-51單片機(jī)定時(shí)/計(jì)數(shù)器T0有4種工作方式(方式0、1、2、3),T1有3種工作方式(方式0、1、2),此外T1還可作為串行通信接口的波特率發(fā)生器,若錯(cuò)將T1設(shè)置為方式3,則T1將停止工作。下面以定時(shí)/計(jì)數(shù)器T0為例進(jìn)行介紹。1.方式0當(dāng)TMOD的M1M0為“00”時(shí),定時(shí)/計(jì)數(shù)器工作于方式0,傳統(tǒng)MCS-51單片機(jī)方式0為13位計(jì)數(shù)器,由TL0的低5位(高3位未用)和TH0的8位組成。13位定時(shí)/計(jì)數(shù)器是為了與Intel公司早期的產(chǎn)品MCS-48系列兼容,該系列已過(guò)時(shí),且計(jì)數(shù)初值裝入易出錯(cuò),所以在實(shí)際應(yīng)用已不再使用。4.3定時(shí)/計(jì)數(shù)器0的工作模式STC15系列單片機(jī)對(duì)傳統(tǒng)MCS-51單片機(jī)進(jìn)行了創(chuàng)新設(shè)計(jì),模式0下定時(shí)器/計(jì)數(shù)器作為可自動(dòng)重裝載的16位計(jì)數(shù)器,具體結(jié)構(gòu)圖如圖4.2所示。

4.3定時(shí)/計(jì)數(shù)器0的工作模式

定時(shí)器0有兩個(gè)隱藏的寄存器RL_TH0和RL_TL0。RL_TH0與TH0共用同一個(gè)地址,RL_TL0與TL0共用同一個(gè)地址。當(dāng)TR0=0即定時(shí)器/計(jì)數(shù)器0被禁止工作時(shí),對(duì)TL0寫(xiě)入的內(nèi)容會(huì)同時(shí)寫(xiě)入RL_TL0,對(duì)TH0寫(xiě)入的內(nèi)容也會(huì)同時(shí)寫(xiě)入RL_TH0。當(dāng)TR0=1即定時(shí)器/計(jì)數(shù)器0被允許工作時(shí),對(duì)TL0寫(xiě)入內(nèi)容,實(shí)際上不是寫(xiě)入當(dāng)前寄存器TL0中,而是寫(xiě)入隱藏的寄存器RL_TL0中;對(duì)TH0寫(xiě)入內(nèi)容,實(shí)際上也不是寫(xiě)入當(dāng)前寄存器TH0中,而是寫(xiě)入隱藏的寄存器RL_TH0。這樣可以巧妙地實(shí)現(xiàn)16位重裝載定時(shí)器。當(dāng)讀TH0和TL0的內(nèi)容時(shí),所讀的內(nèi)容就是TH0和TL0的內(nèi)容,而不是RL_TH0和RL_TL0的內(nèi)容。當(dāng)定時(shí)器0工作在模式0(TMOD[1∶0]/[M1,M0]=00B)時(shí),[TL0,TH0]的溢出不僅置位TF0,而且會(huì)自動(dòng)將[RL_TL0,RL_TH0]的內(nèi)容重新裝入[TL0,TH0]。當(dāng)T0CLKO/INT_CLKO0=1時(shí),P35/T1引腳配置為定時(shí)器0的時(shí)鐘輸出T0CLKO。輸出時(shí)鐘頻率=T0溢出率/2。如果C/T=0,定時(shí)器/計(jì)數(shù)器T0對(duì)內(nèi)部系統(tǒng)時(shí)鐘計(jì)數(shù),則:T0工作在1T模式(AUXR7/T0x12=1)時(shí)的輸出時(shí)鐘頻率=(SYSclk)/(65536-[RL_TH0,RL_TL0])/2;T0工作在12T模式(AUXR7/T0x12=0)時(shí)的輸出時(shí)鐘頻率=(SYSclk)/12/(65536-[RL_TH0,RL_TL0])/2。如果C/T=1,定時(shí)器/計(jì)數(shù)器T0是對(duì)外部脈沖輸入(P34/T0)計(jì)數(shù),則輸出時(shí)鐘頻率=(T0_Pin_CLK)/(65536-[RL_TH0,RL_TL0])/24.3定時(shí)/計(jì)數(shù)器0的工作模式2.方式1STC15系列單片機(jī)和傳統(tǒng)51單片機(jī)在方式1上功能基本相同,STC15系列單片機(jī)相比傳統(tǒng)51單片機(jī)主要是對(duì)系統(tǒng)時(shí)鐘,增加了1T模式。當(dāng)TMOD的M1M0為“01時(shí),定時(shí)/計(jì)數(shù)器工作于方式1,其邏輯結(jié)構(gòu)如圖4.3所示。4.3定時(shí)/計(jì)數(shù)器0的工作模式

3.方式2當(dāng)M1M0為“10”時(shí),定時(shí)/計(jì)數(shù)器工作于方式2,其邏輯結(jié)構(gòu)如圖4.4所示(STC15系列單片機(jī)和傳統(tǒng)51單片機(jī)在方式2上功能基本相同,STC15系列單片機(jī)相比傳統(tǒng)51單片機(jī)主要是對(duì)系統(tǒng)時(shí)鐘,增加了1T模式,同時(shí)增加了T0CLKO輸出)。

4.方式3本書(shū)講解STC15系列單片機(jī)的方式3,傳統(tǒng)51單片機(jī)定時(shí)器0的方式3,請(qǐng)參考相關(guān)書(shū)籍。對(duì)定時(shí)器/計(jì)數(shù)器1,在方式3時(shí),定時(shí)器1停止計(jì)數(shù),效果與將TR1設(shè)置為0相同。對(duì)定時(shí)器/計(jì)數(shù)器0,其工作方式3與工作方式0是一樣的(圖4.5是定時(shí)器方式3的原理圖,與方式0是一樣的)。唯一不同的是:當(dāng)定時(shí)器/計(jì)數(shù)器0工作在方式3時(shí),只需允許ET0/IE.1(定時(shí)器/計(jì)數(shù)器0中斷允許位),不需要允許EA/IE.7(總中斷使能位),就能打開(kāi)定時(shí)器/計(jì)數(shù)器0的中斷,此方式下的定時(shí)器/計(jì)數(shù)器0中斷與總中斷使能位EA無(wú)關(guān);一旦工作在方式3下的定時(shí)器/計(jì)數(shù)器0中斷被打開(kāi)(ET0=1),那么該中斷是不可屏蔽的,其優(yōu)先級(jí)是最高的,即該中斷不能被任何中斷所打斷,而且該中斷打開(kāi)后既不受EA/IE.7控制也不再受ET0控制,當(dāng)EA=0或ET0=0時(shí)都不能屏蔽此中斷。故將此方式稱(chēng)為不可屏蔽中斷的16位自動(dòng)重裝載模式,該方式可用于實(shí)時(shí)操作系統(tǒng)中的節(jié)拍定時(shí)器。4.4應(yīng)用定時(shí)/計(jì)數(shù)器輸出方波和矩形波MCS-51單片機(jī)的定時(shí)/計(jì)數(shù)器可以用于較精確的延時(shí)和計(jì)數(shù),對(duì)于延時(shí)的應(yīng)用,可遵循以下幾個(gè)方面進(jìn)行應(yīng)用設(shè)計(jì)。1)確定延時(shí)時(shí)間。2)定時(shí)/計(jì)數(shù)器初始化。定時(shí)/計(jì)數(shù)器初始化主要包括:1)確定定時(shí)/計(jì)數(shù)器的工作方式。

2)計(jì)算定時(shí)/計(jì)數(shù)器的初值。

3)在主程序中進(jìn)行初始化設(shè)計(jì),包括定時(shí)/計(jì)數(shù)器的初始化和中斷初始化,即對(duì)TH0、TL0或TH1、TL1,TMOD、TCON、IP、IE賦值。

4)中斷服務(wù)程序設(shè)計(jì)。下面以輸出方波和矩形波為例具體講解定時(shí)/計(jì)數(shù)器的應(yīng)用。4.4應(yīng)用定時(shí)/計(jì)數(shù)器輸出方波和矩形波

在實(shí)際應(yīng)用中,需要產(chǎn)生一定頻率的波形,在本書(shū)中,方波指占空比為50%的波形,矩形波指占空比可變的波形,本節(jié)主要講解方波的實(shí)現(xiàn)。對(duì)于方波的實(shí)現(xiàn),STC15系列單片機(jī)可以使用兩種方法實(shí)現(xiàn)。方法1是使用定時(shí)/計(jì)數(shù)器方式0或方式2的可編程分頻輸出實(shí)現(xiàn),但該方法輸出引腳固定,不適用傳統(tǒng)的MCS-51單片機(jī);方法2是應(yīng)用定時(shí)/計(jì)數(shù)器的延時(shí)實(shí)現(xiàn),輸出引腳適用于所有I/O引腳,也適用傳統(tǒng)MCS-51單片機(jī)。1.可編程分頻輸出生成的方波

對(duì)于可編程分頻輸出生成的方波,本書(shū)以定時(shí)/計(jì)數(shù)器0方式0為例,講解相關(guān)應(yīng)用方法,其他定時(shí)器(如T1~T4)的使用方法,可參考相關(guān)書(shū)籍。

定時(shí)/計(jì)數(shù)器0方式0可編程分頻輸出方波的頻率:

1T模式,輸出時(shí)鐘頻率=(SYSclk)/(65536-[RL_TH0,RL_TL0])/2;

12T模式,輸出時(shí)鐘頻率=(SYSclk)/12/(65536-[RL_TH0,RL_TL0])/2。

圖4.6為輸出方波的圖形,周期為T,每延時(shí)2/T時(shí)間輸出翻轉(zhuǎn),方波的

圖4.6周期為T的方波周期T/2=(65536-[RL_TH0,RL_TL0])?機(jī)器周期;

輸出頻率f?2=1/((65536-[RL_TH0,RL_TL0])?機(jī)器周期);

1T模式,f=(SYSclk)/(65536-[RL_TH0,RL_TL0])/2;

12T模式,f=(SYSclk)/12/(65536-[RL_TH0,RL_TL0])/2。

由于定時(shí)/計(jì)數(shù)器是16位計(jì)數(shù)器,因此對(duì)于1T模式,輸出頻率范圍為SYSclk/(65536?2)~SYSclk/2;對(duì)于12T模式,輸出頻率范圍為SYSclk/(65536?24)~SYSclk/24?!纠?1】產(chǎn)生一個(gè)50Hz的方波,此方波由P3.5引腳輸出,晶振頻率為12MHz,12T模式。解題思路:輸出引腳P3.5為可編程分頻輸出引腳,方波頻率f=50Hz,在輸出頻率范圍之內(nèi),因此可以用可編程分頻輸出實(shí)現(xiàn)。編程步驟如下:(1)確定定時(shí)器初值:f=(SYSclk)/12/(65536-[RL_TH0,RL_TL0])/2,f=50Hz,SYSclk=12MHz65536-[RL_TH0,RL_TL0]=500000/50[RL_TH0,RL_TL0]=65536-10000;在C語(yǔ)言編程中,TL0為低8位,TL0=65536-10000;TH0為高8位,TH0=(65536-10000)>>8;(2)求T0的方式控制字TMOD:GATE=0,C/T=0,M1M0=00,可取方式控制字為TMOD=00H,即T0的方式0。(3)12T模式為默認(rèn)模式(上電復(fù)位后的模式),可以不用設(shè)置。(4)INT_CLKO(AUXR2)寄存器設(shè)置。對(duì)于可編程分頻輸出,需要設(shè)置INT_CLKO(AUXR2)寄存器的D0為1,由于INT_CL?KO(AUXR2)寄存器不能位尋址,只能對(duì)字節(jié)賦值。方法1:直接對(duì)寄存器賦值,即INT_CLKO=0x1;但這種方法影響其他位的設(shè)置,因此需要對(duì)所有位都設(shè)置后統(tǒng)一賦值;方法2:使用與、和、或設(shè)置的方法,對(duì)某一位賦值,如果對(duì)n位置1,則INT_CLKO|=(1<<n);如果對(duì)n位清0,則INT_CLKO&=?。ǎ保迹迹睿槐竟?jié)中使用方法2實(shí)現(xiàn),INT_CLKO|=(1<<0);(5)啟動(dòng)計(jì)數(shù)器。TR0=1;具體程序如下:2.延時(shí)實(shí)現(xiàn)方波使用延時(shí)實(shí)現(xiàn)方波,根據(jù)圖4.7,方波的周期為T,每延時(shí)2/T時(shí)間輸出翻轉(zhuǎn),實(shí)現(xiàn)周期為T的方波。該方法同時(shí)適合傳統(tǒng)MCS-51單片機(jī)。為了兼容傳統(tǒng)MCS-51單片機(jī),實(shí)例使用定時(shí)/計(jì)數(shù)器0的方式1來(lái)實(shí)現(xiàn),即12T模式(注:如果采用STC15系列單片機(jī),推薦使用方式0實(shí)現(xiàn))。在實(shí)際應(yīng)用中,中斷方式相較于查詢(xún)方式有更高的效率,因此采用中斷方式實(shí)現(xiàn)延時(shí)?!纠?2】產(chǎn)生一個(gè)100Hz的方波(使用定時(shí)/計(jì)數(shù)器0方式1),此方波由P1.0引腳輸出,晶振頻率為12MHz。解題思路:方波頻率f=100Hz,周期T=1/100s=0.01s,如果讓定時(shí)器計(jì)滿(mǎn)0.005s,P1.0輸出“0”,再計(jì)滿(mǎn)0.005s,P1.0輸出“1”,就能滿(mǎn)足要求,此題轉(zhuǎn)化為由定時(shí)器產(chǎn)生0.005s定時(shí)的問(wèn)題。實(shí)現(xiàn)方法如下:(1)查詢(xún)方式:通過(guò)查詢(xún)T0的溢出標(biāo)志TF0是否為“1”,判斷定時(shí)時(shí)間是否已到。當(dāng)TF=1時(shí),定時(shí)時(shí)間已到,對(duì)P1.0取反操作。其缺點(diǎn)是,CPU一直忙于查詢(xún)工作,占用了CPU的有效時(shí)間。(2)中斷方式:CPU正常執(zhí)行主程序,一旦定時(shí)時(shí)間到,TF0=1向CPU申請(qǐng)中斷,CPU響應(yīng)了T0的中斷,就執(zhí)行中斷程序,在中斷程序里對(duì)P1.0進(jìn)行取反操作。

(2)中斷方式:思考:由于計(jì)數(shù)器是16位,延時(shí)時(shí)間有一定限制,如對(duì)于12MHz時(shí)鐘,在12T模式下,最大延時(shí)時(shí)間為65.536ms,那如果需要延時(shí)時(shí)間超過(guò)65.536ms,程序需要怎樣實(shí)現(xiàn)?思考:由于計(jì)數(shù)器是16位,延時(shí)時(shí)間有一定限制,如對(duì)于12MHz時(shí)鐘,在12T模式下,最大延時(shí)時(shí)間為65.536ms,那如果需要延時(shí)時(shí)間超過(guò)65.536ms,程序需要怎樣實(shí)現(xiàn)?4.4.2應(yīng)用定時(shí)/計(jì)數(shù)器輸出矩形波矩形波是占空比可變的波形,方波是特殊的矩形波,即占空比為50%的矩形波。對(duì)于矩形波,可以應(yīng)用計(jì)算值和比較值相比較的方法來(lái)實(shí)現(xiàn),具體實(shí)現(xiàn)可參考圖4.7。在圖4.7中,計(jì)數(shù)值和比較值相比較,當(dāng)計(jì)數(shù)值小于比較值時(shí),輸出為0,大于或等于比較值時(shí),輸出為1(相反也可以)。最大計(jì)數(shù)值CNT?T決定了矩形波的頻率,比較值/計(jì)數(shù)值為矩形波的占空比,其中T為計(jì)一次數(shù)的時(shí)間,可以使用定時(shí)器中斷實(shí)現(xiàn),CNT決定了占空比的精度。由于計(jì)數(shù)和比較需要在定時(shí)器中斷中實(shí)現(xiàn),因此T最好至少要大于30個(gè)機(jī)器周期。【例4.3】利用定時(shí)/計(jì)數(shù)器(T0)的方式1,產(chǎn)生一個(gè)50Hz的矩形波,由P2.0引腳輸出,12T模式,占空比20%,占空比精度到1%,晶振頻率為12MHz。解題思路:由于占空比精度到1%,最大計(jì)數(shù)值CNT=100,矩形波頻率f=50Hz,周期T=1/50s=0.02s,T=100?t延時(shí),t延時(shí)=0.02/100ms=0.2ms。程序定時(shí)器中斷延時(shí)時(shí)間0.2ms,進(jìn)一次中斷,計(jì)數(shù)器加1,P2.0口初值為0,當(dāng)計(jì)數(shù)值=比較值時(shí),P2.0輸出為1,當(dāng)計(jì)數(shù)值等于最大計(jì)數(shù)值時(shí),P2.0輸出為0。

4.5LED數(shù)碼管的結(jié)構(gòu)和分類(lèi)在單片機(jī)應(yīng)用系統(tǒng)中,鍵盤(pán)和顯示器是很關(guān)鍵的部件,是構(gòu)成人機(jī)對(duì)話(huà)的一種基本設(shè)備。鍵盤(pán)能向計(jì)算機(jī)輸入數(shù)據(jù)、傳送命令,是人工干預(yù)計(jì)算機(jī)的主要手段。顯示器則顯示控制過(guò)程或結(jié)果。本節(jié)講述顯示器的工作原理、LED顯示器的編碼顯示原理以及它們與單片機(jī)的接口技術(shù)。4.5.1顯示器及其接口顯示器是計(jì)算機(jī)的主要輸出設(shè)備,它把運(yùn)算結(jié)果、程序清單等以字符的形式顯示出來(lái),以供用戶(hù)查閱。目前常用的顯示器有數(shù)碼管顯示器(LED顯示器)、液晶顯示器(LCD顯示器)等。下面詳細(xì)介紹LED顯示器的結(jié)構(gòu)與工作原理:4.5LED數(shù)碼管的結(jié)構(gòu)和分類(lèi)LED顯示器的結(jié)構(gòu)如圖4.8a所示,由8?jìng)€(gè)發(fā)光二極管按“日”字形排列,其中7個(gè)發(fā)光二極管組成“日”字形的筆畫(huà)段,另一個(gè)發(fā)光二極管為圓點(diǎn)形狀,安裝在顯示器的右下角作為小數(shù)點(diǎn)使用,分別控制各筆畫(huà)段的LED,使其中的某些發(fā)亮,從而可以顯示出0~9的阿拉伯?dāng)?shù)字符號(hào)以及其他能由這些筆畫(huà)段構(gòu)成的各種字符。LED顯示器根據(jù)內(nèi)部結(jié)構(gòu)不同分為兩種,一種是把所有發(fā)光二極管的陽(yáng)極連在一起,稱(chēng)為共陽(yáng)極數(shù)碼管,如圖4.8b所示;另一種是8?jìng)€(gè)發(fā)光二極管的陰極連在一起,稱(chēng)為共陰極數(shù)碼管,如圖4.8所示。當(dāng)某一二極管導(dǎo)通時(shí),相應(yīng)的字段發(fā)亮。這樣,若干個(gè)二極管導(dǎo)通,就構(gòu)成了一個(gè)字符。在共陰極數(shù)碼管中,導(dǎo)通的二極管用“1”表示,其余的用“0”表示。這些“1”“0”數(shù)符按一定的順序排列,就組成了所要顯示字符的顯示代碼。例如,對(duì)于共陰極數(shù)碼管來(lái)說(shuō),陽(yáng)極排列順序?yàn)椋?、g、f、e、d、c、b、a。這樣,字符1的顯示代碼為00000110,字符F的顯示代碼為01110001,用十六進(jìn)制表示分別為06H和71H。若要顯示某一個(gè)字符,就在二極管的陽(yáng)極按顯示代碼加高電平,陰極加低電平即可。顯示七段碼表見(jiàn)表4.

3。

從前面的學(xué)習(xí)知道,單片機(jī)的P0~P3口具有輸入數(shù)據(jù)可以緩沖和輸出數(shù)據(jù)可以鎖存的功能,并且有一定的帶負(fù)載能力。但一般I/O接口芯片的驅(qū)動(dòng)能力是很有限的。在LED顯示接口電路中,若輸出口所能提供的驅(qū)動(dòng)電流或吸收電流不能滿(mǎn)足要求時(shí),就需要增加LED驅(qū)動(dòng)電路,特別是多段LED顯示器更是如此。有兩種形式的驅(qū)動(dòng)電路:低電平有效驅(qū)動(dòng)電路和高電平有效驅(qū)動(dòng)電路。在低電平有效驅(qū)動(dòng)電路中,當(dāng)驅(qū)動(dòng)管導(dǎo)通而使集電極處于低電平時(shí),LED被正向?qū)ǘl(fā)光,驅(qū)動(dòng)電路吸收LED工作電流。在高電平有效驅(qū)動(dòng)電路中,當(dāng)驅(qū)動(dòng)管截止而使集電極處于高電平時(shí),LED導(dǎo)通而發(fā)光,驅(qū)動(dòng)電路為LED提供工作電流。驅(qū)動(dòng)電路中的R為限流電阻,通常取數(shù)百歐。限流電阻R的計(jì)算公式如下:R=(????????????)/??_??式中,??_??為輸入信號(hào)電平;??_??為輸入端發(fā)光二極管的電壓降,通常是1.2~2.5V;??_????為驅(qū)動(dòng)器的電壓降,通常是0.1~0.5V;??_??為發(fā)光二極管的工作電流,通常是2~10mA。在單片機(jī)應(yīng)用系統(tǒng)中,LED顯示器的顯示方法有兩種:靜態(tài)顯示法和動(dòng)態(tài)掃描顯示法。

4.5.2數(shù)碼管的靜態(tài)顯示所謂靜態(tài)顯示,就是每一個(gè)顯示器各筆畫(huà)段都要獨(dú)占具有鎖存功能的輸出口線(xiàn),CPU把要顯示的字形代碼送到輸出口上,就可以使顯示器顯示所需的數(shù)字或符號(hào),此后,即使CPU不再去訪問(wèn)它,因?yàn)楦鞴P畫(huà)段接口具有鎖存功能,顯示的內(nèi)容也不會(huì)消失。靜態(tài)顯示法的優(yōu)點(diǎn)是顯示程序十分簡(jiǎn)單,顯示亮度大,由于CPU不必經(jīng)常掃描顯示器,因此節(jié)約了CPU的工作時(shí)間。但靜態(tài)顯示也有其缺點(diǎn),主要是占用的I/O接口線(xiàn)較多,硬件成本較高。所以靜態(tài)顯示法常用在顯示器數(shù)目較少的應(yīng)用系統(tǒng)中。LED采用靜態(tài)顯示與單片機(jī)接口時(shí),共陰極或共陽(yáng)極點(diǎn)連接在一起接地或接高電平。

每個(gè)顯示位的段選線(xiàn)與一個(gè)8位并行口線(xiàn)對(duì)應(yīng)相連,只要在顯示位上的段選線(xiàn)上保持段碼電平不變,則該位就能保持相應(yīng)的顯示字符。這里的8位并行口可以直接采用并行I/O接口芯片,也可以采用串入/并出的移位寄存器或者其他具有三態(tài)功能的鎖存器等。

考慮到若采用并行I/O接口,占用I/O資源較多,因此靜態(tài)顯示器接口中通常采用串行口,設(shè)置為方式0輸出方式,外接74HC595移位寄存器,構(gòu)成顯示器接口電路。下面介紹采用BCD/7段顯示譯碼驅(qū)動(dòng)芯片構(gòu)成的靜態(tài)顯示接口電路,其特點(diǎn)是一個(gè)LED顯示器僅占4條I/O口線(xiàn),當(dāng)一個(gè)并行I/O接口經(jīng)過(guò)該譯碼顯示驅(qū)動(dòng)器時(shí),可以連接兩個(gè)LED顯示器。

常用的BCD數(shù)碼顯示譯碼驅(qū)動(dòng)芯片有兩種類(lèi)型,一種是適用于共陽(yáng)極顯示器,如74LS47;另一種適用于共陰極顯示器,如74LS49。圖4.9是采用共陽(yáng)極顯示器的靜態(tài)顯示器接口電路。單片機(jī)輸出控制信號(hào)由P2.0和WR合成,當(dāng)二者同時(shí)為“0”時(shí),或門(mén)輸出為0,將P0口數(shù)據(jù)鎖存到74LS273中,口地址為FEFFH。輸出線(xiàn)的低4位和高4位分別接BCD/7段顯示譯碼驅(qū)動(dòng)器74LS47。74LS47能使顯示器顯示出由I/O接口送來(lái)的BCD碼數(shù)和某些符號(hào)。

具體顯示程序也非常簡(jiǎn)單,如欲在兩個(gè)顯示器上顯示兩位十進(jìn)制數(shù)35,僅需將該數(shù)送往顯示口地址即可。

【例4.4】在單片機(jī)最小系統(tǒng)的基礎(chǔ)上設(shè)計(jì)4位共陽(yáng)數(shù)碼管顯示“1、2、3、4”。程序?qū)崿F(xiàn)如下:

動(dòng)態(tài)掃描顯示法是單片機(jī)應(yīng)用系統(tǒng)中最常用的顯示方法之一。它是把所有顯示器的8?jìng)€(gè)筆畫(huà)段a~h的各段同名端互相并接在一起,并把它們接到字段輸出接口上。為了防止各個(gè)顯示器同時(shí)顯示相同的數(shù)字,各個(gè)顯示器的公共端COM還要受控制信號(hào)控制,即把它們接到位輸出接口上。這樣,對(duì)于一組LED顯示器需要有兩組信號(hào)來(lái)控制,一組是字段輸出口輸出的字形代碼,用來(lái)控制顯示的字形,稱(chēng)為段碼;另一組是輸出接口輸出的控制信號(hào),來(lái)選擇第幾位顯示器工作,稱(chēng)為位碼。在這兩組信號(hào)的控制下,可以一位一位地輪流點(diǎn)亮各個(gè)顯示器,顯示各自的數(shù)碼,以實(shí)現(xiàn)動(dòng)態(tài)掃描顯示。

由于動(dòng)態(tài)掃描方法要求每個(gè)數(shù)碼管顯示時(shí)間基本相同,每個(gè)數(shù)碼管顯示的內(nèi)容都是在中斷服務(wù)程序中實(shí)現(xiàn),中斷服務(wù)程序主要由以下程序組成:1)計(jì)數(shù)器重賦初值(對(duì)于自動(dòng)重載方式,不需要)。2)在對(duì)應(yīng)數(shù)碼管顯示相應(yīng)的數(shù)值。3)計(jì)數(shù)值+1,當(dāng)計(jì)數(shù)值=數(shù)碼管個(gè)數(shù)時(shí),計(jì)算值回0。

4.5.4基于查表法動(dòng)態(tài)顯示實(shí)例本節(jié)通過(guò)實(shí)例講解數(shù)碼管動(dòng)態(tài)掃描編程方法,實(shí)例具體要求如下:1)對(duì)4位數(shù)碼管(共陽(yáng)極)編程,實(shí)現(xiàn)從0000~9999十進(jìn)制計(jì)數(shù)器,每計(jì)一次數(shù)時(shí)間為1s。2)4位數(shù)碼管與單片機(jī)的連接如圖4.10所示,該圖用Proteus軟件所畫(huà),未考慮硬件的驅(qū)動(dòng)能力,未加限流電阻和驅(qū)動(dòng)元件,只用于驗(yàn)證程序功能正確性。

對(duì)4位數(shù)碼管實(shí)現(xiàn)從0000~9999十進(jìn)制計(jì)數(shù)器,1s延時(shí)和動(dòng)態(tài)掃描的延時(shí)都需要使用定時(shí)器實(shí)現(xiàn),整個(gè)程序的實(shí)現(xiàn)框圖包括主程序框圖和中斷服務(wù)程序框圖。(1)主程序框圖計(jì)數(shù)器的主程序框圖如圖4.11所示,其實(shí)現(xiàn)過(guò)程如下:

1)定時(shí)器初始化,實(shí)現(xiàn)1ms的延時(shí),使用定時(shí)/計(jì)數(shù)器0方式1實(shí)現(xiàn)。2)變量賦初值,計(jì)數(shù)變量清0,cnt1ms表示1ms計(jì)數(shù)一次,cnt是0~9999計(jì)數(shù)器變量,cntbit是表示數(shù)碼管個(gè)數(shù)的計(jì)數(shù)器,由于程序中使用4位數(shù)碼管,因此該變量實(shí)現(xiàn)四進(jìn)制計(jì)數(shù)器,對(duì)應(yīng)4個(gè)數(shù)碼管。cnt和cnt1ms是unsignedint類(lèi)型變量,cntbit為unsignedchar類(lèi)型變量,三個(gè)變量可以定義時(shí)直接清0;顯示緩沖區(qū)賦初值,程序上電顯示0000。3)判斷計(jì)時(shí)是否到1s,到1s繼續(xù)執(zhí)行。4)cnt1ms清0。5)cnt計(jì)數(shù)器加1,并加到10000時(shí)回0。6)?。悖睿舻膫€(gè)位、十位、百位和千位到顯示緩沖區(qū),以便在中斷服務(wù)程序中顯示。

(2)中斷服務(wù)程序框圖4位數(shù)碼管計(jì)數(shù)器的中斷服務(wù)程序框圖如圖4.12所示,其實(shí)現(xiàn)過(guò)程如下:1)重賦初值

(2)中斷服務(wù)程序框圖4位數(shù)碼管計(jì)數(shù)器的中斷服務(wù)程序框圖如圖4.12所示,其實(shí)現(xiàn)過(guò)程如下:1)重賦初值2)在對(duì)應(yīng)數(shù)碼管顯示相應(yīng)的數(shù)值,不同的計(jì)數(shù)值,表示相應(yīng)的數(shù)碼管亮,并顯示相應(yīng)的數(shù)值,如cntbit=0,表示第0個(gè)數(shù)碼管亮,顯示計(jì)數(shù)器的個(gè)位值,cntbit=1,表示第1個(gè)數(shù)碼管亮,顯示計(jì)數(shù)器的十位值,以此類(lèi)推。程序?qū)崿F(xiàn)可以采用兩種方法。方法1:

使用switchcase語(yǔ)句,根據(jù)不同的cntbit值,對(duì)相應(yīng)的數(shù)碼管賦值,這種方法由于代碼量較大,運(yùn)行時(shí)間長(zhǎng),不建議使用;方法2:采用查表法,設(shè)對(duì)應(yīng)數(shù)碼管的位碼和段碼,直接賦值,這種方法代碼量小,運(yùn)行時(shí)間短,因此一般使用該方法實(shí)現(xiàn)。具體實(shí)現(xiàn)如下

3)四進(jìn)制計(jì)數(shù)器,使用對(duì)4求余數(shù),實(shí)現(xiàn)四進(jìn)制計(jì)數(shù)器。(3)程序清單

程序代碼如下:

3)四進(jìn)制計(jì)數(shù)器,使用對(duì)4求余數(shù),實(shí)現(xiàn)四進(jìn)制計(jì)數(shù)器。(3)程序清單

程序代碼如下:

3)四進(jìn)制計(jì)數(shù)器,使用對(duì)4求余數(shù),實(shí)現(xiàn)四進(jìn)制計(jì)數(shù)器。(3)程序清單

程序代碼如下:

4.6數(shù)字電子時(shí)鐘設(shè)計(jì)4.6.1項(xiàng)目功能描述設(shè)計(jì)數(shù)字電子時(shí)鐘,具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí),并用數(shù)碼管顯示,具體要求如下:1)用8?jìng)€(gè)數(shù)碼管實(shí)現(xiàn)數(shù)字電子鐘,其中6個(gè)用于實(shí)現(xiàn)時(shí)、分、秒顯示,2個(gè)數(shù)碼管顯示“-”。2)分鐘、秒為六十進(jìn)制計(jì)數(shù),小時(shí)為二十四進(jìn)制計(jì)數(shù)。3)8?jìng)€(gè)數(shù)碼管用動(dòng)態(tài)掃描方式連接。4)單片機(jī)使用STC15W4K32S4芯片。5)用CAD軟件(AltiumDesigner)繪制硬件原理圖,并根據(jù)原理圖繪制Proteus仿真電路圖,并用Proteus仿真。

4.6.1項(xiàng)目功能描述設(shè)計(jì)數(shù)字電子時(shí)鐘,具有時(shí)、分、秒計(jì)數(shù)顯示功能,以24小時(shí)循環(huán)計(jì)時(shí),并用數(shù)碼管顯示,具體要求如下:1)用8?jìng)€(gè)數(shù)碼管實(shí)現(xiàn)數(shù)字電子鐘,其中6個(gè)用于實(shí)現(xiàn)時(shí)、分、秒顯示,2個(gè)數(shù)碼管顯示“-”。2)分鐘、秒為六十進(jìn)制計(jì)數(shù),小時(shí)為二十四進(jìn)制計(jì)數(shù)。3)8?jìng)€(gè)數(shù)碼管用動(dòng)態(tài)掃描方式連接。4)單片機(jī)使用STC15W4K32S4芯片。5)用CAD軟件(AltiumDesigner)繪制硬件原理圖,并根據(jù)原理圖繪制Proteus仿真電路圖,并用Proteus仿真。

4.6.2項(xiàng)目硬件電路設(shè)計(jì)數(shù)字電子鐘的硬件由單片機(jī)電路、電源電路、復(fù)位電路、晶振電路、數(shù)碼管顯示電路及數(shù)碼管驅(qū)動(dòng)電路組成,具體框圖如圖4.13所示。

4.數(shù)碼管顯示電驅(qū)動(dòng)電路由于傳統(tǒng)51系列單片機(jī)的灌電流能力強(qiáng),對(duì)數(shù)碼管的段選端一般為低電平有效,因此多位數(shù)碼管選擇共陽(yáng)極數(shù)碼管,由于點(diǎn)亮一位數(shù)碼管的電流較大,一般超過(guò)40mA,需要加驅(qū)動(dòng)電路,采用PNP晶體管驅(qū)動(dòng),具體電路如圖4.16所示。在Proteus仿真電路圖中,由于PNP晶體管仿真有問(wèn)題,改用74HC04代替PNP晶體管。

數(shù)字電子鐘的整體電路圖及仿真圖分別如圖4.17和圖4.18所示。

1)定時(shí)器初始化,實(shí)現(xiàn)1ms的延時(shí),使用定時(shí)/計(jì)數(shù)器0方式1實(shí)現(xiàn)。2)變量賦初值,顯示賦初值,計(jì)數(shù)變量清0,cnt1ms表示1ms一次計(jì)數(shù),sec、min、和hour分別表示秒、分鐘和小時(shí)計(jì)數(shù)器,cntbit是表示數(shù)碼管個(gè)數(shù)的計(jì)數(shù)器,由于程序中使用8位數(shù)碼管,因此該變

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論