用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器_第1頁(yè)
用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器_第2頁(yè)
用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器_第3頁(yè)
用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器_第4頁(yè)
用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、用DTMF編解碼芯片實(shí)現(xiàn)的單片機(jī)遙控器1 緒論1.1 課題的背景及意義 進(jìn)入21世紀(jì),各種電子產(chǎn)品層出不窮,計(jì)算機(jī)技術(shù)、通信技術(shù)和傳感器技術(shù)可謂是電子信息技術(shù)的三大組成部分。遙控器也成為了控制領(lǐng)域的一大新興產(chǎn)業(yè),為了能適應(yīng)各種產(chǎn)品的需求,遙控器也是種類繁多。 本系統(tǒng)是集單片機(jī)技術(shù)、雙音多頻技術(shù)、無(wú)線傳輸技術(shù)于一體的多功能遙控器。本系統(tǒng)的最主要的特色是利用雙音多頻信號(hào)來(lái)作為遙控信號(hào)發(fā)送出去。是一次雙音多頻技術(shù)的有益應(yīng)用。以往的遙控器都是通過(guò)簡(jiǎn)單的將數(shù)字信號(hào)通過(guò)紅外發(fā)射管發(fā)送出去,這種設(shè)計(jì)具有一定的局限性,首先,該設(shè)計(jì)方法的抗干擾能力很弱,如果壞境中存在較強(qiáng)的紅外信號(hào)會(huì)使得控制信號(hào)產(chǎn)生錯(cuò)誤。第二,

2、該設(shè)計(jì)使遙控器在使用時(shí)要對(duì)準(zhǔn)受控方,否則受控方接收不到遙控信號(hào)。第三,其功能比較單一,在功能需求比較高時(shí)該種設(shè)計(jì)方法將不能滿足要求。第四,其遙控距離比較近,當(dāng)遙控距離比較遠(yuǎn)的時(shí)候比較困難。當(dāng)今社會(huì),單片機(jī)技術(shù)已普及到各個(gè)領(lǐng)域當(dāng)中,單片機(jī)的使用給人們的工作、生活提供了極大的便利。利用單片機(jī)技術(shù)來(lái)實(shí)現(xiàn)遙控器簡(jiǎn)化了電路,信號(hào)處理更加方便,功能更加豐富。同時(shí)利用雙音多頻作為遙控信號(hào)使得抗干擾能力更加強(qiáng),遙控性能更加穩(wěn)定。1.2 國(guó)內(nèi)外發(fā)展現(xiàn)狀民用產(chǎn)品的遙控技術(shù)在60年代時(shí),在一部分發(fā)達(dá)國(guó)家就開始研發(fā),但是由于當(dāng)時(shí)技術(shù)的限制,發(fā)展很緩慢。70年代末,隨著大規(guī)模集成電路和計(jì)算機(jī)應(yīng)用技術(shù)發(fā)展,遙控技迎來(lái)了快

3、速發(fā)展時(shí)期。遙控方式經(jīng)歷了從有線到無(wú)線的超聲波、從振動(dòng)子到紅外線、再到使用總線的微機(jī)紅外遙控三個(gè)歷史性階段。電磁波來(lái)傳輸信號(hào)是最開始的時(shí)無(wú)線遙控裝置所采用的,它具有的最大缺點(diǎn),科技總是不斷地進(jìn)步,后來(lái)以紅外線和超聲波為媒介進(jìn)行信號(hào)傳輸就慢慢被采用。雖然這樣在很大程度上避免了電磁波容易被干擾的缺陷,但相比紅外線,由于超聲波傳感器頻帶很窄,所以只能攜帶很少的信息量,容易被干擾而產(chǎn)生錯(cuò)誤。慢慢的紅外線的遙控應(yīng)運(yùn)而生,當(dāng)今時(shí)代的主流也即是紅外線多功能遙控器。1.3 本文的主要研究?jī)?nèi)容應(yīng)用單片機(jī)技術(shù)、雙音多頻技術(shù)、無(wú)線技術(shù),設(shè)計(jì)一個(gè)基于雙音多頻的單片機(jī)遙控器。通過(guò)鍵盤發(fā)送遙控指令,然后經(jīng)過(guò)雙音多頻編碼后

4、由無(wú)線模塊發(fā)送出去,受控方接收遙控信號(hào)后執(zhí)行相應(yīng)的功能。2 系統(tǒng)總體設(shè)計(jì)2.1、設(shè)計(jì)要求: a設(shè)計(jì)一基于DTMF技術(shù)的單片機(jī)遙控器。 b利用89C51單片機(jī)控制MT8880的數(shù)據(jù)發(fā)送,并且實(shí)現(xiàn)任一遙控指令的發(fā)送與接收。2.2、系統(tǒng)的功能分析:在單片機(jī)的控制下,通過(guò)HD7279模塊以及MT8880模塊以及無(wú)線發(fā)送模塊實(shí)現(xiàn)數(shù)據(jù)的顯示以及指令的發(fā)送,在發(fā)送端,當(dāng)有遙控信號(hào)需要發(fā)送時(shí),將遙控信號(hào)發(fā)送到MT8880芯片,芯片進(jìn)行自動(dòng)的編碼后送到無(wú)線發(fā)送模塊。在接收端,當(dāng)無(wú)線模塊接收到遙控信號(hào)時(shí)將雙音多頻信號(hào)發(fā)到MT8880芯片,芯片將自動(dòng)解碼信號(hào),然后將解碼的信號(hào)發(fā)送到單片機(jī),單片機(jī)通過(guò)HD7279顯示

5、出來(lái)。2.3、系統(tǒng)的原理框圖圖 2.1 總體框圖3 硬件電路方案設(shè)計(jì)3.1 硬件電路的方案設(shè)計(jì) 通過(guò)功能需求的分析以及模塊的分析,硬件電路主要包括了單片機(jī)最小系統(tǒng)、HD7279芯片的鍵盤顯示部分、以及MT8880芯片編解碼模塊,無(wú)線發(fā)送接收模塊硬件電路。3.2 單片機(jī)最小系統(tǒng)5l系列單片機(jī)中典型芯片(AT89C51)采用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ǔ)器(EPROM),使其在實(shí)

6、際中有著十分廣泛的用途,在便攜式、省電及特殊信息保存的儀器和系統(tǒng)中更為有用。51單片機(jī)的最小系統(tǒng)主要包括時(shí)鐘電路和復(fù)位電路,時(shí)鐘電路是計(jì)算機(jī)的心臟,它是控制著計(jì)算機(jī)的工作節(jié)奏。MCS-51 內(nèi)部都有一個(gè)反相放大器,XTAL1 、XTAL2 分別是反相放大器輸入和輸出端,外接定時(shí)反饋元件就組成震蕩器產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。如下圖2.2 所示,片內(nèi)電路與片外器件構(gòu)成一個(gè)時(shí)鐘發(fā)生電路,CPU 的所有操作均在時(shí)鐘脈沖同步下進(jìn)行。片內(nèi)振蕩器的震蕩頻率fOSC 非常接近晶振頻率,一般多在1.2MHz12MHz 之間選取,這次課設(shè)用的時(shí)鐘頻率是11.0592MHz。圖2.2 中C1、C2 是反饋電

7、容,其值在5pF30pF 之間選擇,其典型值是30Pf。作用有兩個(gè):其一是使振蕩器起振,其二是對(duì)振蕩器的頻率f 起微調(diào)作用(C1、C2 大,f 變?。﹩纹瑱C(jī)剛接上電源時(shí),其內(nèi)部各寄存器處于隨機(jī)狀態(tài),復(fù)位可以使CPU和系統(tǒng)中其他部件處于一個(gè)確定的初始狀態(tài),并以此初始狀態(tài)開始工作。RST為外部復(fù)位信號(hào)的輸入腳,當(dāng)在該引腳上保持兩個(gè)機(jī)器周期以上的高電平,單片機(jī)就會(huì)被夫復(fù)位。單片機(jī)的復(fù)位電路有很兩種:系統(tǒng)上電自動(dòng)復(fù)位和系統(tǒng)上電自動(dòng)復(fù)位加系統(tǒng)手動(dòng)復(fù)位,系統(tǒng)上電自動(dòng)復(fù)位只在上電時(shí)進(jìn)行復(fù)位,如果單片機(jī)中途需要復(fù)位的話需要重新把電源關(guān)掉,這樣非常不方便,通常的做法是使用第二種方法實(shí)現(xiàn),在單片機(jī)上電后自動(dòng)復(fù)位后

8、如果中途需要進(jìn)行復(fù)位后可以通過(guò)按鍵來(lái)實(shí)現(xiàn):在正確選擇單片機(jī)復(fù)位電路和時(shí)鐘電路后,單片機(jī)最小系統(tǒng)如下圖所示:圖 3.1 單片機(jī)最小系統(tǒng)3.3 鍵盤顯示由于單片機(jī)的I/O口有限,如果直接用于鍵盤和數(shù)碼管的管理會(huì)消耗很多I/O口,本系統(tǒng)中采用具有串行接口的HD7279,HD7279是專門用于管理鍵盤和數(shù)碼管的芯片,該芯片最多可以管理64個(gè)鍵盤和8個(gè)數(shù)碼管。并且采用串行接口,無(wú)需外圍元件可直接驅(qū)動(dòng)LED,所以單片機(jī)只要控制其四個(gè)端口即可,這樣可以節(jié)省單片機(jī)的很多的I/O口。HD7279內(nèi)部含有譯碼器可直接接受BCD碼或十六進(jìn)制碼并同時(shí)具有兩種譯碼方式,其各個(gè)位的譯碼是相互獨(dú)立的,指令有兩種模式:純指令

9、模式和帶有數(shù)據(jù)指令模式。此外還具有多種控制指令如消隱、閃爍、左移、右移、段尋址等。HD7279具有片選信號(hào)可方便的實(shí)現(xiàn)8位的顯示或多于64鍵的鍵盤接口。讀鍵盤的指令時(shí)序圖如下:圖 3.2 HD72729讀鍵盤時(shí)序圖 在進(jìn)行本進(jìn)行系統(tǒng)設(shè)計(jì)時(shí)有兩種方案:方案一:本方案中采用12個(gè)鍵盤和1個(gè)數(shù)碼管,在當(dāng)鍵盤按下時(shí)單片機(jī)接受數(shù)據(jù),并且將鍵盤值送給HD7279進(jìn)行顯示,每次只能顯示一位數(shù)據(jù)。本方案的優(yōu)點(diǎn)是硬件比較簡(jiǎn)單,但是缺陷是上次發(fā)送的數(shù)據(jù)不能顯示,在連續(xù)發(fā)送數(shù)據(jù)時(shí)接收端判斷數(shù)據(jù)的正確性帶來(lái)困難。方案二:本方案中采用12個(gè)鍵盤和8個(gè)數(shù)碼管,當(dāng)鍵盤按下時(shí)單片機(jī)接收數(shù)據(jù)并判斷鍵值后發(fā)送到7279芯片里面去

10、進(jìn)行顯示,按下多少個(gè)數(shù)據(jù)數(shù)碼管顯示多少數(shù)據(jù),次方案能方便的顯示按下的數(shù)據(jù),在接收數(shù)據(jù)時(shí)能方便的判斷出接收的數(shù)據(jù)是否正確。缺點(diǎn)是硬件電路比較復(fù)雜。經(jīng)過(guò)以上方案比較,方案二雖然比較復(fù)雜,但是HD7279最多能控制64個(gè)鍵盤,增加的只是軟件部分,所以采用方案二作為鍵盤顯示模塊。方案硬件電路圖: 圖 3.3 HD7279模塊3.4 MT8880數(shù)據(jù)編編解碼模塊3.4.1 MT8880芯片的特點(diǎn)MITEL公司生產(chǎn)的MT8880是一種常用的雙音多頻信號(hào)解碼芯片。圖1為MT8880芯片引腳圖,該器件有20個(gè)引腳:引腳0SC2和OSCl引入時(shí)鐘脈沖,通常外接358 MH晶振;引腳IN+、IN-為運(yùn)放的同相和反

11、相輸入;GS為增益選擇端;VREF是基準(zhǔn)電壓輸出端;DTMF端輸出DTMF信號(hào);引腳RW為讀寫控制信號(hào)輸入;引腳CS輸入片選信號(hào),低電平有效;引腳ItSI為寄存器選擇輸入;引腳CP為系統(tǒng)時(shí)鐘輸入;D。D,為控制DTMF信號(hào)發(fā)送和DTMF譯碼的四位,引腳0SC2和OSCl引入時(shí)鐘脈沖,通常外接數(shù)據(jù)輸入輸出端口;引腳IRQCALL處理中斷請(qǐng)求信號(hào),為開漏輸出。其內(nèi)部框圖如下:MT8880共有6種工作模式: 圖 3.4 MT8880內(nèi)部框圖MT8880總共有六種工作模式,他們分別如下:一:DTMF模式:電路發(fā)送或接收DTMF信號(hào)。數(shù)據(jù)通過(guò)TDR、RDR以及狀態(tài)寄存器SR,可以完成DTMF信號(hào)的發(fā)送與

12、接收。二:呼叫處理(CALL)模式:電路可以從輸入信號(hào)中檢測(cè)電話呼叫過(guò)程中的各種信號(hào)音,并由IRQCALL端方波輸出。三:突發(fā)(BuRsT)模式:該模式下只能發(fā)送DTMF信號(hào)而不能接收。四:?jiǎn)坞p(S,D)音產(chǎn)生模式:電路可產(chǎn)生單音或DTMF信號(hào),用于測(cè)試和監(jiān)測(cè)。五:測(cè)試(TEST)模式:使電路從DTMF接收部分得到延遲監(jiān)測(cè)信號(hào),并從IRQCALL端輸出。六:中斷模式:該模式可工作在DTMF狀態(tài)條件下或BURST模式條件下,一旦有信號(hào)出現(xiàn),則IRQ,CALL端輸出低電平。3.4.2 MT8880數(shù)據(jù)編碼模塊設(shè)計(jì)由于MT8880已經(jīng)廣泛應(yīng)用于個(gè)行各業(yè),所以它有典型的應(yīng)用電路,只需要按照典型電路來(lái)設(shè)

13、計(jì)即可。典型電路如下:圖 3.5 MT8880引腳圖3.4.3 MT8880數(shù)據(jù)解碼模塊 當(dāng)MT8880作為DTMF接收器的時(shí)候,DTMF信號(hào)經(jīng)由IN和IN輸入,經(jīng)過(guò)運(yùn)算放大濾除信號(hào)中的撥號(hào)音頻率,然后發(fā)送到雙音頻濾波器,分離出低頻組和高頻組信號(hào),通過(guò)數(shù)字計(jì)數(shù)的方式檢出DTMF信號(hào)的頻率,并且通過(guò)譯碼器譯成4位二進(jìn)制碼。4 位二進(jìn)制編碼被鎖存在接收數(shù)據(jù)寄存器中,此時(shí)狀態(tài)寄存器中的延時(shí)控制識(shí)別位復(fù)位,狀態(tài)寄存器中的接收數(shù)據(jù)寄存器滿標(biāo)識(shí)位置位,對(duì)外而言,當(dāng)寄存器中的延時(shí)控制識(shí)別位復(fù)位時(shí),IRQCP由高電平變?yōu)榈碗娖?。在中斷模式下,若芯片同時(shí)被設(shè)置為接收 DTMF信號(hào)模式,那么當(dāng)收到有效 DTMF信

14、號(hào)并譯碼后,IRQ 端變?yōu)榈碗娖?。所以可用IRQCP作為單片機(jī)的中斷信號(hào),當(dāng)IRQ由高電平變?yōu)榈碗娖綍r(shí)向CPU發(fā)出中斷請(qǐng)求,當(dāng) 單片機(jī)響應(yīng)中斷,讀出寄存器中的數(shù)據(jù)后,IRQ返回高電平。所以在電路中IRQ端與單片機(jī)的P3.2連接,并與一高電平并連,可以實(shí)現(xiàn)中斷請(qǐng)求功能。MT8880的D0D3與單片機(jī)的P0.0P0.3相連,CP端與P3.4相連,RSO與P1.0相連,R/W與P1.5相連。電路圖如3.3所示。圖3.6 單片機(jī)與MT8880的連接圖3.5 無(wú)線發(fā)送接收模塊設(shè)計(jì)3.5.1 發(fā)送接收模塊設(shè)計(jì) 由于MT8880芯片輸出的是一個(gè)高頻與一低頻信號(hào)疊加的模擬信號(hào),所以發(fā)送模塊需要直接調(diào)制模擬信號(hào)

15、。所以發(fā)送接收模塊采用的是深圳極限電子科技有限公司生產(chǎn)的5.8G無(wú)線影音模塊/無(wú)線音視頻模塊/無(wú)線收發(fā)模塊,該發(fā)送接收模塊連接簡(jiǎn)單,電源提供5V即可,與其他模塊的供電一致,可以用同一電源供電。該模塊包括無(wú)線接收以及發(fā)送模塊。發(fā)送模塊的工作頻段:5725-5865MHz。其中有2組頻率8個(gè)信道可選,輕松避開干擾頻率:Ch1 5865MHz Ch2 5845MHz Ch3 5825MHz Ch4 5805MHz Ch5 5785 MHz Ch6 5765 MHz Ch7 5745MHz Ch8 5725MHz 。發(fā)送模塊的調(diào)制方式是FM寬頻調(diào)頻。功率為100mW。工作電壓為5V,電流消耗大概在25

16、0mA,無(wú)線通信距離在300-500米。3.5.2 發(fā)送接收模塊連接圖圖 3.7 無(wú)線發(fā)送模塊圖 3.8 無(wú)線接收模塊 在發(fā)射模塊中,總共有9個(gè)接口,包括BX、CH3、CH2、CH1、VCC、GND、VIDE0、A6.5、A6.8。其中CH3、CH2、CH1是三個(gè)通道的選擇,與接收端一一對(duì)應(yīng),左音頻輸入端即A6.5作為雙音多頻信號(hào)的輸入端,把雙音多頻信號(hào)輸入左音頻端后,模塊會(huì)對(duì)雙音多頻信號(hào)進(jìn)行FM調(diào)制,最后從天線將信號(hào)發(fā)送出去。 在接收模塊中公共有9個(gè)接口,包括GND、VIDE0、A6.5、A6.8、VCC、CH1、CH2、CH3、BX。它們一一對(duì)應(yīng)于發(fā)送端的各個(gè)接口,即發(fā)送端的A6.5端口的

17、數(shù)據(jù)只能在接收端的A6.5的端口接收,在其他端口是無(wú)法接收的。本系統(tǒng)中雙音多頻信號(hào)從無(wú)線發(fā)射模塊的A6.5端口輸入并編碼發(fā)送出來(lái)后,無(wú)線接收端會(huì)接收信號(hào)并進(jìn)行編碼,然后根據(jù)相應(yīng)的通道將解調(diào)后的信號(hào)送到相應(yīng)的輸出端A6.5,即左音頻信號(hào)輸出端,無(wú)線接收模塊的左音頻輸出端連接到MT8880芯片的信號(hào)輸入端,芯片將對(duì)信號(hào)進(jìn)行解碼后送到單片機(jī)。單片機(jī)根據(jù)相應(yīng)的信號(hào)換算成十進(jìn)制數(shù)據(jù)。4 系統(tǒng)軟件的設(shè)計(jì)4.1 系統(tǒng)的總體軟件設(shè)計(jì)4.1.1 遙控信號(hào)發(fā)送端軟件設(shè)計(jì)由于本系統(tǒng)包括了四個(gè)模塊,HD7279的鍵盤顯示模塊,單片機(jī)最小系統(tǒng)模塊和MT8880數(shù)據(jù)編解碼模塊以及無(wú)線發(fā)送接收模塊,在設(shè)計(jì)軟件時(shí)要恰當(dāng)?shù)膶⑷?/p>

18、者結(jié)合起來(lái),單片機(jī)最小模塊是整個(gè)的控制中心,主要由它來(lái)實(shí)現(xiàn)鍵盤顯示模塊和MT8880數(shù)據(jù)發(fā)送模塊的連接。系統(tǒng)的發(fā)送模塊框圖如下:N 開始系統(tǒng)初始化 有鍵按下?Y 顯示數(shù)據(jù) 發(fā)送數(shù)據(jù)據(jù)圖 4.1 發(fā)送模塊框圖 在主程序開始后,首先對(duì)各個(gè)芯片進(jìn)行相應(yīng)的初始化,對(duì)HD7279芯片的譯碼方式,顯示模式進(jìn)行設(shè)置,對(duì)MT8880芯片的工作模式,寄存器進(jìn)行相應(yīng)的控制。對(duì)系統(tǒng)初始化以后就進(jìn)入循環(huán),判斷是否有鍵按下,并且判斷出相應(yīng)的鍵功能。執(zhí)行相應(yīng)的功能之后返回程序開始進(jìn)行下次的工作。這樣系統(tǒng)就實(shí)現(xiàn)了實(shí)時(shí)的工作。只要有相應(yīng)的操作,系統(tǒng)就能反應(yīng)出來(lái)。完成系統(tǒng)的預(yù)定功能。4.1.2 遙控信號(hào)接收端軟件總體設(shè)計(jì) HD

19、7279復(fù)位 開始數(shù)碼管顯示復(fù)位 延時(shí)時(shí)MT8880接收初始化開外部中斷等待信號(hào)圖 4.2 接收端流程圖 主程序開始后對(duì)HD7279模塊進(jìn)行初始化以及MT8880芯片初始化后進(jìn)入中斷等待,對(duì)MT8880進(jìn)行發(fā)送前必須進(jìn)行初始化后,才能進(jìn)行收發(fā)數(shù)據(jù)。開始工作時(shí)需要對(duì)HD7279進(jìn)行復(fù)位,數(shù)碼管會(huì)顯示最初設(shè)置的值。然后要一個(gè)等待時(shí)間在對(duì)MT8880進(jìn)行接收初始化,并且MT8880以中斷模式工作。4.2 遙控信號(hào)編碼解碼子程序4.2.1 MT8880編程介紹本系統(tǒng)采用的是兼信號(hào)收、發(fā)于一體的雙音多頻芯片MT8880。此芯片可以通過(guò)不同的命令控制線來(lái)選擇不同的狀態(tài),主要有接收狀態(tài)和發(fā)送狀態(tài)。芯片里有五

20、個(gè)寄存器,可歸為三類:數(shù)據(jù)轉(zhuǎn)移寄存器、收發(fā)控制寄存器和收發(fā)狀態(tài)寄存器。軟件程序設(shè)計(jì)必須考慮的是寄存器的工作時(shí)序和控制信號(hào)的電平。這些寄存器都是由MT8880的三個(gè)控制腳進(jìn)行控制的,它們分別為RS0、R/W和IRQ/CP腳,如表4.1所示為控制腳取不同的值時(shí)對(duì)應(yīng)不同的寄存器,而IRQ/CP是讀寫有效位,高電平有效,低電平無(wú)效。表4.1 內(nèi)部寄存器功能RS0R/W功能00寫發(fā)送數(shù)據(jù)寄存器01讀接收數(shù)據(jù)寄存器10寫控制寄存器11讀狀態(tài)寄存器每寫入一個(gè)控制指令時(shí),程序都必須設(shè)有一定的延時(shí),因?yàn)樾酒瑢?shí)現(xiàn)每一個(gè)功能都需要時(shí)間處理,所以在給IRQ/CP高電平后要有一個(gè)延時(shí)時(shí)間。收發(fā)控制由兩個(gè)控制寄存器共同完

21、成,它們分別是CRA和CRB,它們都是四位寄存器,如表4.2和表4.3所示,CRA的最低位(B0位)控制DTMF芯片是否允許輸出雙音多頻信號(hào);而控制芯片是接收信號(hào)還是發(fā)送信號(hào)功能是由第二位(B1位)控制,此位為1時(shí)是CP模式,當(dāng)芯片處于CP模式時(shí),可以進(jìn)行對(duì)信號(hào)音的檢測(cè),此時(shí)在芯片MT8880的IRQ腳會(huì)輸出一個(gè)方波,當(dāng)?shù)诙皇?時(shí),就選擇了DTMF模式,也就是進(jìn)行接收號(hào)碼或是發(fā)送號(hào)碼;第三位(B2位)是要配合第二位來(lái)實(shí)現(xiàn)的,當(dāng)?shù)诙贿x擇CP模式時(shí),只有第三位為1時(shí)在IRQ腳才會(huì)有方波輸出;寫是否寫CRB寄存器就是通過(guò)CRA的最高位(B3位)來(lái)控制,為1時(shí)是選擇寫CRB寄存器。當(dāng)加電后,必須使

22、CRA和CRB初始化,使兩者清零。以下兩表詳細(xì)列出以上兩寄存器各位的功能。表 4.2 控制寄存器(CRA)功能控制位 名稱與功能 說(shuō)明 b0 Tout音調(diào)輸出 邏輯“1”使能音調(diào)輸出 b1 CP/DTMF模式??刂?邏輯“1”為CP模式。當(dāng)b2=1時(shí),例如輸入電話忙音,此腳輸出忙音方波 b2 IRQ中斷使能 邏輯“1”使能中斷模式。當(dāng)b1=0時(shí),接收到DTMF信號(hào)或準(zhǔn)備發(fā)送新的雙音信號(hào),DTMF/CP引腳電平由高變低。 b3 RSEL寄存器選擇 邏輯“1”允許選擇CRB 表4.3 控制寄存器(CRB)功能控制位名稱與功能說(shuō) 明b0BURST雙音群模式邏輯“0”使能雙音群模式b1TEST實(shí)驗(yàn)?zāi)J?/p>

23、邏輯“1”使能實(shí)驗(yàn)?zāi)J?。該模式時(shí),IRQ/CP引腳輸出延遲控制信號(hào)(CRA b1=0)b2S/D單雙音產(chǎn)生邏輯“0”允許產(chǎn)生DTMF,否則,輸出單音頻b3C/R列/行音選擇b2=1,”邏輯“使能產(chǎn)生單音信號(hào)本設(shè)計(jì)應(yīng)用到的CRA的各控制位為b3b2b1b0=1000,有一點(diǎn)必須要注意那就是CRA的b3控制位一定要為高,否則對(duì)CRB的寫操作將無(wú)法進(jìn)行。而設(shè)計(jì)中應(yīng)用到的CRB的各控制位為b3b2b1b=0000,其中控制位b2和控制位b3是配合在一起使用的,并且在此次設(shè)計(jì)中用不到TEST實(shí)驗(yàn)?zāi)J?,所以控制位b1為低電平。另外,狀態(tài)寄存器的功能如下表4.4所示表4.4 狀態(tài)寄存器(SR)功能狀態(tài)位 名

24、稱 狀態(tài)標(biāo)志置位 狀態(tài)標(biāo)志清除 b0 IRQ 發(fā)生中斷;b1或b2=0 讀狀態(tài)寄存器清除 b1 突發(fā)模式下TDR為空 暫停結(jié)束:準(zhǔn)備發(fā)送新數(shù)據(jù) 同上 b2 接收寄存器滿 接收寄存器的數(shù)據(jù)有效 同上 b3 延遲控制檢測(cè)不到DTMF信號(hào)時(shí)置位 檢測(cè)DTMF信號(hào)時(shí)清除 狀態(tài)寄存器的讀取也是很關(guān)鍵的,如何才能得知MT8880是否撥號(hào)出去,或是MT8880是否收到號(hào)了,這些都可以從狀態(tài)寄存器獲知,判斷是否撥完號(hào)或是收完號(hào),有三種方法:一是延時(shí)法,二是查詢法,三是中斷法,本設(shè)計(jì)在MT8880撥號(hào)的過(guò)程中用到延時(shí)法,而在MT8880收號(hào)的過(guò)程中用到查詢法,也是查詢狀態(tài)寄存器的狀態(tài)位b2位是否為高電平,如果是

25、高電平那就說(shuō)明已經(jīng)收到一位號(hào)了,只所以MT8880撥號(hào)的過(guò)程中用到延時(shí)法是因?yàn)槿绻麚芴?hào)時(shí)間間隔太短,就不能完全收到號(hào),這也是本設(shè)計(jì)采取這種方案的主要原因。DTMF芯片的寫入和讀出功能均由芯片四個(gè)控制腳來(lái)決定的:CS: 片選信號(hào)輸入,若CS為低電平時(shí)為選通MT8880芯片RS0:寄存器選擇輸入R/W: 讀寫控制信號(hào)輸入CP:系統(tǒng)時(shí)鐘輸入,TTL電平下面就列出編寫MT8880撥號(hào)收號(hào)程序時(shí)必須要弄清的時(shí)序圖。圖4.3 寫CRA、CRB的時(shí)序圖圖4.4 讀狀態(tài)寄存器時(shí)序圖圖4.5 發(fā)送DTMF時(shí)序圖 圖4.6 接收DTMF時(shí)序圖 4.2.2 編碼程序框圖圖 4.7 MT8880軟件框圖在主程序判斷出

26、有數(shù)據(jù)需要發(fā)送時(shí),將數(shù)據(jù)發(fā)送到MT8880芯片上,芯片在接收到數(shù)據(jù)時(shí)會(huì)進(jìn)行自動(dòng)的編碼成DTMF信號(hào)發(fā)送出去。發(fā)送的時(shí)間大約要0.5秒,發(fā)送完了以后判斷是否將數(shù)據(jù)全部發(fā)送完成,如果完成了就返回主程序,沒(méi)有發(fā)完就繼續(xù)下個(gè)數(shù)據(jù)的發(fā)送直到把全部數(shù)據(jù)發(fā)送完成。4.2.3 解碼程序框圖下圖為MT8880的詳細(xì)工作的程序流程圖。開始時(shí)設(shè)置為一共可接收8個(gè)DTMF信號(hào),當(dāng)大于8個(gè)時(shí)再重新接收。接收的數(shù)據(jù)會(huì)存在鎖存器,然后讀MT8880的狀態(tài)需設(shè)置狀態(tài)使其進(jìn)行譯碼工作。判斷接收的數(shù)據(jù),由于0根據(jù)MT8880譯碼規(guī)則是對(duì)應(yīng)1010,而對(duì)應(yīng)HD7279的規(guī)則1010對(duì)應(yīng)為負(fù)號(hào),所以當(dāng)接收到10時(shí)要將其判斷為0。將譯

27、碼后的數(shù)字送到HD7279中譯碼顯示,顯示的方式為逐個(gè)顯示。NYN Y開 始count=8?令count=0讀MT8880狀態(tài)寄存器延 時(shí)接收譯碼數(shù)據(jù)receive=10?令receive=0接收數(shù)據(jù)送HD7279顯示中斷返回圖4.8 控制MT8880接收工作流程圖4.3 HD7279模塊框圖圖 4.9 HD7279鍵盤顯示流程圖HD7279芯片主要完成數(shù)據(jù)的譯碼以及顯示,單片機(jī)控制4個(gè)端口即可。如果有按鍵按下則7279的KEY端口的電平會(huì)由高變?yōu)榈停匀绻娖阶優(yōu)榈蛣t把DATA端口的數(shù)據(jù)讀進(jìn)單片機(jī),判斷出相應(yīng)的鍵值,并進(jìn)行相應(yīng)的操作。如果是數(shù)據(jù)需要顯示則將數(shù)據(jù)進(jìn)行顯示,如果是功能鍵則執(zhí)行相

28、應(yīng)的功能。5 系統(tǒng)調(diào)試及結(jié)果5.1 調(diào)試儀器萬(wàn)用表 一臺(tái)直流電源 一臺(tái)示波器 一臺(tái)電腦 一臺(tái)5.2 調(diào)試方法其實(shí)基于雙音頻編碼信號(hào)的單片機(jī)的設(shè)計(jì)可分為遙控信號(hào)發(fā)送端的設(shè)計(jì)和遙控信號(hào)接收端的設(shè)計(jì)。由于要實(shí)現(xiàn)無(wú)線發(fā)送,所以模塊再調(diào)試的時(shí)候先有線調(diào)試再無(wú)線調(diào)試。先調(diào)試單片機(jī)程序,找出程序的錯(cuò)誤并修改至完全正確,而后將程序下載到單片機(jī)中。在發(fā)送電路發(fā)送遙控信號(hào)時(shí)可以看見發(fā)送電路上的數(shù)碼管顯示出對(duì)應(yīng)發(fā)送的數(shù)字信息,再看接收端的數(shù)碼管的顯示信息是否和發(fā)送的一致,觀察接收電路中的二極管是否在一閃一閃的發(fā)亮(MT8880在進(jìn)行解碼工作)。在觀察發(fā)送與接收效果時(shí)若效果不理想可不停修改程序并下載直至達(dá)到最好的效果

29、。5.3 HD7279模塊調(diào)試本模塊的調(diào)試在硬件調(diào)試前,因?yàn)楸驹O(shè)計(jì)只采用到了12個(gè)鍵盤所以要重新測(cè)試各個(gè)鍵盤所對(duì)應(yīng)的兩位十六進(jìn)制代碼,然后才能進(jìn)行系統(tǒng)的整體調(diào)試。主要是通過(guò)編寫軟件來(lái)實(shí)現(xiàn)代碼的測(cè)定,將代碼顯示在數(shù)碼管上來(lái),從而測(cè)定了12個(gè)鍵盤的代碼值。測(cè)試完代碼值后進(jìn)行本模塊的調(diào)試,本模塊要達(dá)到的要求是當(dāng)按鍵按下時(shí)數(shù)碼管會(huì)顯示相應(yīng)按鍵的值,數(shù)碼管最多可以顯示8個(gè)按鍵值。把寫好的程序?qū)懭雴纹瑱C(jī)后,當(dāng)按下一個(gè)鍵時(shí),數(shù)碼管的八段全部顯示改按鍵值。這也要求不相符合,檢查程序后發(fā)現(xiàn)在讀鍵盤后并沒(méi)有判斷鍵盤鍵是否彈起,雖然按鍵的時(shí)間只有幾百毫秒,但是單片機(jī)的讀取速度很快,所以相當(dāng)于按下了很多次按鍵,故數(shù)碼

30、管會(huì)全部顯示。找到原因后在程序里加入判斷按鍵彈起的程序后再進(jìn)行調(diào)試能達(dá)到要求。5.4 MT8880數(shù)據(jù)接收發(fā)送模塊在焊接好MT8880數(shù)據(jù)發(fā)送模塊后,進(jìn)行相應(yīng)的調(diào)試,首先按照按下一個(gè)數(shù)據(jù)發(fā)送一個(gè)數(shù)據(jù)進(jìn)行調(diào)試。因?yàn)镸T8880發(fā)送出去的是兩個(gè)音頻的組合,所以通過(guò)示波器的觀察可以確定芯片是否正常工作。調(diào)試開始后發(fā)現(xiàn)不論發(fā)送什么數(shù)據(jù)都沒(méi)有反應(yīng),發(fā)送的波形并不是正常的波形疊加信號(hào)。奸檢查電路時(shí)發(fā)現(xiàn)MT8880芯片并沒(méi)有正常工作,換一塊芯片后每發(fā)一個(gè)數(shù)據(jù)時(shí)示波器有正常的兩個(gè)音頻信號(hào)的疊加。達(dá)到了工作要求,完成了本模塊的調(diào)試。5.6 無(wú)線模塊的調(diào)試 由于本模塊是使用深圳極限電子科技有限公司的無(wú)線發(fā)送接收模

31、塊,調(diào)試比較簡(jiǎn)單,只需要發(fā)送一個(gè)正弦波看接收端能否接收一個(gè)正弦波接可以看出模塊是否起作用。使用信號(hào)源產(chǎn)生一個(gè)1KHz的正弦波連接到發(fā)送模塊的左聲道輸入端,在接收模塊的左聲道輸出端連接示波器,發(fā)現(xiàn)示波器輸出一個(gè)1KHz的正弦波,說(shuō)明系統(tǒng)正常工作。6 設(shè)計(jì)總結(jié)在這次畢業(yè)設(shè)計(jì)制作中,從方案論證、硬件電路設(shè)計(jì)到軟件設(shè)計(jì),工作量都非常大。而時(shí)間也非常的緊,如果不能很好的掌握時(shí)間,是不能完成的。通過(guò)請(qǐng)教老師,商定最終方案,確定硬件電路、軟件編程。由于在此之前都沒(méi)有實(shí)際工程設(shè)計(jì)經(jīng)驗(yàn),在調(diào)試過(guò)程中設(shè)計(jì)中的一些不合理因素就表現(xiàn)出來(lái)了。調(diào)試過(guò)程更是對(duì)我們耐力的考驗(yàn),許多問(wèn)題莫名其妙地發(fā)生了。這使得沮喪過(guò),懊惱過(guò),

32、但沒(méi)有被失敗嚇倒,繼續(xù)保持著高度的熱情,共同奮斗,認(rèn)真地找出錯(cuò)誤、不足之處,并一一進(jìn)行了改正,不斷提高。就這樣,各項(xiàng)功能一點(diǎn)點(diǎn)地被實(shí)現(xiàn),我們也一步步地向前進(jìn),最終迎來(lái)了勝利的曙光。 通過(guò)這次畢業(yè)設(shè)計(jì)制作活動(dòng),拓寬了思路,開闊了視野,從中學(xué)到了很多課本上學(xué)不到的東西。在完成課題的過(guò)程中,使得有更多的機(jī)會(huì)和博士生、研究生、教授們接觸,學(xué)到了很多解決實(shí)際問(wèn)題的方法。這次畢業(yè)設(shè)計(jì)鞏固了我的基礎(chǔ)知識(shí),培養(yǎng)了我的實(shí)踐動(dòng)手能力,這其中更大的收獲就是將書本死的知識(shí)和實(shí)踐活動(dòng)結(jié)合起來(lái),并在實(shí)踐中有的放矢的深入學(xué)習(xí),提高了學(xué)習(xí)效率。而最重要的是鍛煉了團(tuán)隊(duì)合作的能力,培養(yǎng)了團(tuán)隊(duì)合作的精神,鍛煉了樂(lè)觀、敬業(yè)、堅(jiān)持不懈

33、的優(yōu)秀品質(zhì),這是收獲的一筆無(wú)形財(cái)富。有這樣的機(jī)會(huì)、這樣的成功,得益于學(xué)校的大力支持和老師對(duì)我們的不倦指導(dǎo)。經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),自己學(xué)到了不少東西。歸納起來(lái),主要有以下幾點(diǎn):1、大學(xué)三年多的時(shí)間都是在學(xué)習(xí)通信理論基礎(chǔ)知識(shí),并未真正地去應(yīng)用和實(shí)踐。由于我平常參加電子制作比較多點(diǎn),平時(shí)已經(jīng)掌握了一定的基礎(chǔ),動(dòng)手能力也還可以。但是經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),我接觸到了更多平時(shí)沒(méi)有接觸到的儀器設(shè)備、元器件以及相關(guān)的使用調(diào)試經(jīng)驗(yàn),發(fā)現(xiàn)了自己很多不足之處。我還體會(huì)到了所學(xué)理論知識(shí)的重要性:知識(shí)掌握得越多,設(shè)計(jì)得就更全面、更順利、更好。2、了解進(jìn)行一項(xiàng)相對(duì)比較大型的科技設(shè)計(jì)所必不可少的幾個(gè)階段。畢業(yè)設(shè)計(jì)能夠從理論設(shè)計(jì)和工

34、程實(shí)踐相結(jié)合、鞏固基礎(chǔ)知識(shí)與培養(yǎng)創(chuàng)新意識(shí)相結(jié)合、個(gè)人作用和集體協(xié)作相結(jié)合等方面全面的培養(yǎng)學(xué)生的全面素質(zhì)。我經(jīng)過(guò)這次系統(tǒng)的畢業(yè)設(shè)計(jì),熟悉了對(duì)一項(xiàng)課題進(jìn)行研究、設(shè)計(jì)和實(shí)驗(yàn)的詳細(xì)過(guò)程。這些在我們?cè)趯?lái)的工作和學(xué)習(xí)當(dāng)中都會(huì)有很大的幫助。3、學(xué)會(huì)了怎樣查閱資料和利用工具書。平時(shí)課堂上所學(xué)習(xí)的知識(shí)大多比較陳舊,作為通信工程的學(xué)生,由于專業(yè)特點(diǎn)自己更要積極查閱當(dāng)前的最新通信資料。一個(gè)人不可能什么都學(xué)過(guò),什么都懂,因此,當(dāng)你在設(shè)計(jì)過(guò)程中需要用一些不曾學(xué)過(guò)的東西時(shí),就要去有針對(duì)性地查找資料,然后加以吸收利用,以提高自己的應(yīng)用能力,而且還能增長(zhǎng)自己見識(shí),補(bǔ)充最新的專業(yè)知識(shí)。 4、實(shí)踐能力得到了進(jìn)一步提高,在調(diào)試過(guò)

35、程中積累了一些經(jīng)驗(yàn)。 5、畢業(yè)設(shè)計(jì)對(duì)以前學(xué)過(guò)的理論知識(shí)起到了回顧作用,并對(duì)其加以進(jìn)一步的消化和鞏固。 6、畢業(yè)設(shè)計(jì)培養(yǎng)了嚴(yán)肅認(rèn)真和實(shí)事求是的科學(xué)態(tài)度。而且培養(yǎng)了吃苦耐勞的精神以及相對(duì)應(yīng)的工程意識(shí),同學(xué)之間的友誼互助也充分的在畢業(yè)設(shè)計(jì)當(dāng)中體現(xiàn)出來(lái)了。致謝非常感謝程宜凡老師、付崇芳老師在我大學(xué)的最后學(xué)習(xí)階段畢業(yè)設(shè)計(jì)階段給自己的指導(dǎo),從最初的定題,到資料收集,到寫作、修改,到論文定稿,她們給了我耐心的指導(dǎo)和無(wú)私的幫助。為了指導(dǎo)我們的畢業(yè)論文,她們放棄了自己的休息時(shí)間,她們的這種無(wú)私奉獻(xiàn)的敬業(yè)精神令人欽佩,在此我向她們表示我誠(chéng)摯的謝意。同時(shí),感謝所有任課老師和所有同學(xué)在這四年來(lái)給自己的指導(dǎo)和幫助,是他

36、們教會(huì)了我專業(yè)知識(shí),教會(huì)了我如何學(xué)習(xí),教會(huì)了我如何做人。正是由于他們,我才能在各方面取得顯著的進(jìn)步,在此向他們表示我由衷的謝意,并祝所有的老師培養(yǎng)出越來(lái)越多的優(yōu)秀人才,桃李滿天下!通過(guò)這一階段的努力,我的畢業(yè)論文基于雙音多頻信號(hào)的單片機(jī)遙控器終于完成了,這意味著大學(xué)生活即將結(jié)束。在大學(xué)階段,我在學(xué)習(xí)上和思想上都受益非淺,這除了自身的努力外,與各位老師、同學(xué)和朋友的關(guān)心、支持和鼓勵(lì)是分不開的。參考文獻(xiàn)1 王福瑞等.單片微機(jī)測(cè)控系統(tǒng)設(shè)計(jì)大全.北京:北京航空航天大學(xué)出版社,20022 何希才.傳感器及應(yīng)用.北京:國(guó)防工業(yè)出版社,20033 趙艷.DSC中PID參數(shù)整定技巧.氯緘工業(yè),2001,6(6

37、):P43-45.4 姚磊等.一種改進(jìn)的PID參數(shù)整定方法.空軍雷達(dá)學(xué)院學(xué)報(bào),2001,6(2):P59-60.5 夏紅等.PID參數(shù)自整定方法綜述.浙江科技學(xué)院學(xué)報(bào),2003,12(4):P236-240.6 何克忠.計(jì)算機(jī)控制系統(tǒng).北京:清華大學(xué)出版社,20027 范冰彥.家庭無(wú)線智能防盜報(bào)警系統(tǒng)J.安防科技.2003,3:70-718 李令辛,郭繼紅.自動(dòng)電話報(bào)警接收系統(tǒng)的設(shè)計(jì)J.遼寧大學(xué)學(xué)報(bào),2000,27(3):227-2299 路增立,高紅偉,張華沖. 電話防盜報(bào)警器J.江蘇電器,2004,1:29-3010 楊漢華,凌福玲. 一種新型的家用防盜報(bào)警系統(tǒng)J.信息技術(shù),2002,1:

38、24-2811 劉洪志用AVR單片機(jī)實(shí)現(xiàn)DTMF信號(hào)世界電子元器件2004年第七期12 黃葆華,楊曉靜,牟華坤.通信原理【2007年2月第一版】.西安:西安電子科技大學(xué)出版社,2007,P19119313 高如云,陸曼如,張企民,孫萬(wàn)蓉.通信電子線路【第二版】西安:西安電子科技大學(xué)出版社,2007,P281-28214 MITEL Corporation. MT8880C Integrated DTMF Transceiver with Intel Micro Interface, 199915 ISO2-CMOS MT8880D/MT8870D-1 INTEGRATED DTMF RECEI

39、VERM.ISSUE5 199716 G.S.Cheung, J.Y.M,Azzi.D.Intelligence in buildingM:the protential of advanced modeling Loveday.D.L.Virk.Automation in Construction.1997.447-46117.Steven J. Merrield and Dr. Chris Dick. DTMF Encoding & Decoding. Electronics IV (Honours) Project 1994附錄一:程序清單發(fā)送程序#include unsigned cha

40、r key_number13, j, k,count=1,number13,m,n,ff;unsigned char TAB16=0x1c,0x1d,0x1e,0x1f,0x14,0x15,0x16,0x17,0x0c,0x0d,0x0e,0x0f,0x04,0x05,0x06,0x07;unsigned int tmr;unsigned long wait_cnter;sbit cs=P14; /定義片選端口sbit clk=P13; /定義時(shí)鐘信號(hào)sbit dat=P12; /數(shù)據(jù)端口sbit key=P11; /按鍵端口sbit CLK1=P34;sbit redled=P35; /三盞

41、指示燈sbit greenled=P16;sbit yellowled=P17;sbit RS=P15; sbit RW=P10;#define CMD_RESET 0xa4 /純指令,HD279復(fù)位指令#define CMD_TEST 0xbf /測(cè)試指令,全部的燈亮,并閃爍#define DECODE0 0x80 /下載數(shù)據(jù)按方式0譯碼,小數(shù)點(diǎn)關(guān)閉#define CMD_READ 0x15 /讀鍵盤指令void long_delay(void); void short_delay(void); void delay(long int);void write7279(unsigned cha

42、r, unsigned char);unsigned char read7279(unsigned char);unsigned char judge(unsigned char);void send_byte(unsigned char); unsigned char receive_byte(void); void system_init(void);void MT8880init(void);void MT8880tran_init(void);void MT8880send(void);void main() system_init(); while (1) redled=1; gre

43、enled=0; yellowled=0; if (!key) /判斷是否有鍵按下 long_delay(); /消抖動(dòng) if(!key) key_numbercount=read7279(CMD_READ); /讀取鍵值 numbercount=judge(key_numbercount); while(!key)=1); /等待放鍵 count=count+1; /if(numbercount-1=10) /如果是刪除鍵,執(zhí)行刪除功能 /* numbercount-2=numbercount-1=15; */if(numbercount-1=11) numbercount-1=15; MT

44、8880tran_init(); MT8880send(); greenled=1;yellowled=0; delay(10000); for(ff=1;ff8;ff+) numberff=15; count=1; for(m=1;m=(count-1);m+) write7279(DECODE0+m-1,numberm); /* if(numbercount-1=15) count=count-2; */ void system_init(void) P3=0xff; P0=0xff; /delay(60000); redled=greenled=yellowled=1; MT8880tr

45、an_init();for (tmr=0;tmr0x2000;tmr+); send_byte(CMD_RESET); void write7279(unsigned char cmd, unsigned char dta) /讀取鍵值子程序 send_byte (cmd); send_byte (dta); unsigned char read7279(unsigned char command) /寫7279子程序 send_byte(command); return(receive_byte();void send_byte( unsigned char out_byte)unsigne

46、d char i;cs=0;for (i=0;i8;i+) if (out_byte&0x80) dat=1; else dat=0; clk=1; short_delay(); clk=0; short_delay(); out_byte=out_byte*2; dat=0;unsigned char receive_byte(void) unsigned char i, in_byte;dat=1; long_delay();for (i=0;i8;i+)clk=1;short_delay();in_byte=in_byte*2;if (dat)in_byte=in_byte|0x01;

47、clk=0;short_delay();dat=0;return (in_byte);void long_delay(void)unsigned char i;for (i=0;i100;i+);void short_delay(void)unsigned char i;for (i=0;i8;i+);void delay(long int I)long int i; for(i=0;iI;i+);unsigned char judge(unsigned char num) /把鍵值轉(zhuǎn)換成十進(jìn)制 unsigned char i,number_; for(i=0;i13;i+) if(num=T

48、ABi) number_=i; break; return(number_);void MT8880send() /MT8880的發(fā)送程序 unsigned char k; RS=0;RW=0;for(k=1;k=count-2;k+) RS=0;RW=0; redled=0; yellowled=0;CLK1=1; /時(shí)序的操作 高電平delay(100);if(numberk=0) numberk=10; P0=(numberk&0x0f);delay(100);CLK1=0; /時(shí)序的操作 低電平RW=RS=1;do n=P0; while(n&0x02=0); delay(1000);

49、 yellowled=1;numberk=15; for(m=1;m=(count-1);m+) write7279(DECODE0+m-1,numberm); delay(600); void MT8880tran_init(void) /數(shù)據(jù)發(fā)送子程序 RS=1;RW=0;CLK1=1;delay(100);P0=0x0d; delay(100);CLK1=0;CLK1=1;delay(100);P0=0x00; delay(100);CLK1=0;接收程序#include unsigned char count=0,number10,m,n=0;unsigned int tmr; unsigned char ff;sbit key=P11; /7279鍵位sbit dat=P12; /7279數(shù)據(jù)端sbit

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論