單片機(jī)與PC機(jī)串行通信的畢業(yè)論文設(shè)計(jì)_第1頁
單片機(jī)與PC機(jī)串行通信的畢業(yè)論文設(shè)計(jì)_第2頁
單片機(jī)與PC機(jī)串行通信的畢業(yè)論文設(shè)計(jì)_第3頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.安徽礦業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)課題(設(shè)計(jì))題 目單片機(jī)與PC串行通信設(shè)計(jì)指導(dǎo)教師 陳玉寶院 系 自動(dòng)化與信息工程系班 級 電氣自動(dòng)化1201學(xué) 號 0姓 名 吳科良二一五年六月二日安徽礦業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)課題(設(shè)計(jì))任務(wù)書(2012屆)題 目單片機(jī)與PC串行通信設(shè)計(jì)指導(dǎo)教師陳玉寶院 系 自動(dòng)化與信息工程系專 業(yè)電氣自動(dòng)化專業(yè)班 級 電氣自動(dòng)化1201學(xué) 號 0姓 名吳科良2014年10月1日至2015年6月3日論文(設(shè)計(jì))方向:一、主要參考資料王福瑞單片微機(jī)測控系統(tǒng)設(shè)計(jì)大全M:北京航空航天大學(xué)出版社,199806李華MCS一51系列單片機(jī)實(shí)用接口技術(shù)M:北京航空航天大學(xué)出版社,199307李朝青P

2、C機(jī)與單片機(jī)&DSP數(shù)據(jù)通信技術(shù)選編(1)M:北京航空航天大學(xué)出版社,200312劉金伍單片機(jī)應(yīng)用與實(shí)踐M:北京航空航天大學(xué)出版社,199508二、 課題的內(nèi)容和任務(wù)要求:主要內(nèi)容:該設(shè)計(jì)主要采用了AT89C51單片機(jī)與PC機(jī)的控制系統(tǒng)的基本知識,來完成單片機(jī)與PC機(jī)的串行通信原理。任務(wù)要求:具體可實(shí)現(xiàn)由AT89C51單片機(jī)發(fā)送數(shù)據(jù)(由LCD顯示),PC做接收且屏幕顯示;也可由PC發(fā)送數(shù)據(jù),由8051接收并顯示至LCD三、畢業(yè)論文(設(shè)計(jì))進(jìn)度安排:起 訖 日 期工 作 容備 注101-10.20查閱資料,完成開題報(bào)告10.25-11.20調(diào)查并完成畢業(yè)設(shè)計(jì)課題設(shè)計(jì)任務(wù)前期檢查11.22

3、-12.30熟悉系統(tǒng)軟件的環(huán)境1.1-1.20控制平臺的建立,分析和實(shí)驗(yàn)及程序調(diào)試2.1-5.22與同學(xué)討論并請教專業(yè)人員中期檢查6.1-6.3完成畢業(yè)設(shè)計(jì)請指導(dǎo)老師點(diǎn)評學(xué)生(簽名): 年 月 日指導(dǎo)教師(簽名): 年 月 日系畢業(yè)設(shè)計(jì)(論文)工作指導(dǎo)小組意見:組長(簽名) 年 月 日 系畢業(yè)論文工作領(lǐng)導(dǎo)小組審核意見:主管領(lǐng)導(dǎo)(簽名) 年 月 日 注:1.指導(dǎo)教師填寫,任務(wù)下達(dá)人為指導(dǎo)教師,指導(dǎo)教師和接受任務(wù)的學(xué)生均應(yīng)簽字。2.此任務(wù)書最遲必須在學(xué)生畢業(yè)設(shè)計(jì)(論文)開始前下達(dá)給學(xué)生。安徽礦業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)課題(設(shè)計(jì))開 題 報(bào) 告 (2012屆)題 目單片機(jī)與PC串行通信設(shè)計(jì)指導(dǎo)教師陳玉寶院

4、 系自動(dòng)化與信息工程系班 級 電氣自動(dòng)化1201學(xué) 號 0姓 名吳科良二一五年六月二日一、選題的意義目前,隨著集成電路集成度的增加,電子計(jì)算機(jī)向微型化和超微型化方向發(fā)展,為了提高系統(tǒng)管理的先進(jìn)性和安全性,計(jì)算機(jī)工業(yè)自動(dòng)控制和監(jiān)測系統(tǒng)越來越多地采用集總分算系統(tǒng)。較為常見的形式是由一臺做管理用的上位主計(jì)算機(jī)(主機(jī))和一臺直接參與控制檢測的下位機(jī)(單片機(jī))構(gòu)成的主從式系統(tǒng),主機(jī)和從機(jī)之間以通訊的方式來協(xié)調(diào)工作。主機(jī)的作用一是要向從機(jī)發(fā)送各種命令及參數(shù):二是要及時(shí)收集、整理和分析從機(jī)發(fā)回的數(shù)據(jù),供進(jìn)一步的決策和報(bào)表。從機(jī)被動(dòng)地接受、執(zhí)行主機(jī)發(fā)來的命令,并且根據(jù)主機(jī)的要求向主機(jī)回傳相應(yīng)煩人實(shí)時(shí)數(shù)據(jù),報(bào)告

5、其運(yùn)行狀態(tài)。二、研究的主要內(nèi)容,擬解決的主要問題(闡述的主要觀點(diǎn))用串行總線技術(shù)可以使系統(tǒng)的硬件設(shè)計(jì)大大簡化、系統(tǒng)的體積減小、可靠性提高。同時(shí),系統(tǒng)的更改和擴(kuò)充極為容易。提高工作的效率。三、 畢業(yè)論文(設(shè)計(jì))思路系統(tǒng)結(jié)構(gòu)圖單片機(jī)鍵盤LCD串行通信電平轉(zhuǎn)換接口PC發(fā)聲電路四、畢業(yè)論文(設(shè)計(jì))提綱1、總體設(shè)計(jì)方案2、器件原理3、控制系統(tǒng)設(shè)計(jì)原則和設(shè)計(jì)步驟/4、結(jié)論與結(jié)果五、主要參考文獻(xiàn)1王福瑞單片微機(jī)測控系統(tǒng)設(shè)計(jì)大全M:北京航空航天大學(xué)出版社,1998062李華MCS一51系列單片機(jī)實(shí)用接口技術(shù)M:北京航空航天大學(xué)出版社,1993073李朝青PC機(jī)與單片機(jī)&DSP數(shù)據(jù)通信技術(shù)選編(1)M:

6、北京航空航天大學(xué)出版社,2003124劉金伍單片機(jī)應(yīng)用與實(shí)踐M:北京航空航天大學(xué)出版社,1995085劉大茂智能儀器:單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)M:機(jī)械工業(yè)出版社,1998046萬福君,潘松峰單片微機(jī)原理系統(tǒng)設(shè)計(jì)與應(yīng)用M:中國科學(xué)技術(shù)大學(xué)出版社,2001017美安格斯生串行端口大全M精英科技譯:中國電力出版社,200101指導(dǎo)教師意見:簽名: 年 月 日系畢業(yè)設(shè)計(jì)(論文)工作指導(dǎo)小組意見: 簽名:年 月 日系畢業(yè)設(shè)計(jì)(論文)工作領(lǐng)導(dǎo)小組意見:簽名:年 月 日摘要AT89C51是一款高性能的8位單片微型計(jì)算機(jī),它采用了CMOS工藝和ATMEL公司的高密度NVRAMUII(易失性隨機(jī)存儲器)技術(shù),片內(nèi)帶有

7、一個(gè)4KB的FLASH FPROM(可擦除、可編程只讀存儲器),作為INTEL8051的換代產(chǎn)品,其輸出引腳和指令系統(tǒng)與MCS一51完全兼容。由于AT89C51 單片機(jī)具有集成度高、面向控制、系統(tǒng)結(jié)構(gòu)簡單、價(jià)格便宜等諸多優(yōu)點(diǎn),因而在智能化儀器儀表、數(shù)據(jù)采集、數(shù)據(jù)測量等方面有著廣泛的應(yīng)用。但是,實(shí)際應(yīng)用中單片機(jī)在數(shù)據(jù)處理能力、人機(jī)交互等方面往往不能滿足要求,因而通常用PC來彌補(bǔ)單片機(jī)的這些不足。例如,在工程應(yīng)用中,常常由一臺PC機(jī)和一臺單片機(jī)構(gòu)成主從式計(jì)算機(jī)測控系統(tǒng)。在這樣的系統(tǒng)中,以單片機(jī)為核心的智能測控儀表(從機(jī))作為現(xiàn)場測控設(shè)備,完成數(shù)據(jù)的采集、處理和控制各種任務(wù),同時(shí)將數(shù)據(jù)傳給PC機(jī)(主

8、機(jī)),PC機(jī)將這些數(shù)據(jù)加工處理后,進(jìn)行顯示、打印報(bào)表等,PC機(jī)也可以將各種控制命令傳送給單片機(jī),干預(yù)單片機(jī)系統(tǒng)的運(yùn)行,從而發(fā)揮PC機(jī)的優(yōu)勢。隨著單片機(jī)和微機(jī)技術(shù)的不斷發(fā)展,特別是網(wǎng)絡(luò)技術(shù)在測控領(lǐng)域的廣泛應(yīng)用,由PC機(jī)和多臺單片機(jī)構(gòu)成的多機(jī)網(wǎng)絡(luò)測控系統(tǒng)已成為單片機(jī)技術(shù)發(fā)展的一個(gè)方向。它結(jié)合了單片機(jī)在實(shí)時(shí)數(shù)據(jù)采集和微機(jī)對圖形處理、顯示的優(yōu)點(diǎn)。同時(shí),windows環(huán)境下后臺微機(jī)在數(shù)據(jù)庫管理上具有明顯的優(yōu)勢。二者結(jié)合,使得單片機(jī)的應(yīng)用已不僅僅局限于傳統(tǒng)意義上的自動(dòng)監(jiān)測或控制,而形成了向以網(wǎng)絡(luò)為核心的分布式多點(diǎn)系統(tǒng)發(fā)展的趨勢。關(guān)鍵詞:LED PC 單片機(jī)AT89C51 串行通信 串行口目 錄1、本文的設(shè)

9、計(jì)目標(biāo).111.1總體方案設(shè)計(jì)112、硬件電路設(shè)計(jì).112.1 單片機(jī)AT89C51122.2 LCM1601原理172.3 4×4行列式掃描鍵盤182.4 音頻功率放大器件LM38618 2.5 RS-232電平轉(zhuǎn)換器件Max232183部分器件的原理分析193.1 鍵盤掃描的工作原理 193.2 按鍵發(fā)聲原理204單片機(jī)軟件設(shè)計(jì)214.1 CM1601軟件子程序設(shè)計(jì)214.2串口通信子程序設(shè)計(jì)224.3 鍵盤掃描子程序設(shè)計(jì) 264.4 按鍵發(fā)聲子程序的設(shè)計(jì) 275軟硬件調(diào)試及結(jié)果 295.1 軟件仿真 295.2調(diào)試 295.3結(jié)果 296、結(jié)論30參考文獻(xiàn)31致謝321、本文的

10、設(shè)計(jì)目標(biāo)本設(shè)計(jì)是基于MSP430F149和PC機(jī)串口通訊。在硬件上要想與PC 串口或者其它帶有串口的終端設(shè)備相連接,必須要進(jìn)行EIA-RS-232-C 與MSP430 電平和邏輯關(guān)系的轉(zhuǎn)換,本設(shè)計(jì)采用MAX3232芯片,完成3V5V 電平與串口電平的雙向轉(zhuǎn)換;本設(shè)計(jì)依據(jù)MSP430F149的串行通信模塊的構(gòu)成,利用其異步通信模式的特點(diǎn),按照位尋址的方式設(shè)計(jì)的通信協(xié)議11總體方案設(shè)計(jì)單片機(jī)鍵盤LCD串行通信電平轉(zhuǎn)換接口PC發(fā)聲電路硬件由單片機(jī)89C51、11.059M晶振,30PF電容、22uf/25V電容、10uf/25V電容10K電阻、LCM1601、4×4鍵盤、LM386、蜂鳴器

11、、按鍵、Max232組成。具體可實(shí)現(xiàn)由AT89C51鍵盤(P1)發(fā)送數(shù)據(jù)(由LCD顯示),PC做接收且屏幕顯示該值;也可由PC鍵盤發(fā)送數(shù)據(jù),由8051接收并顯示至LCD。系統(tǒng)結(jié)構(gòu)如圖1-1所示。圖1-1 系統(tǒng)結(jié)構(gòu)圖LCD:系統(tǒng)顯示界面采用LCM1601,一行16字符的液晶顯示模塊,顯示AT89C51接收或PC發(fā)來的數(shù)據(jù)。鍵盤:輸入按鍵采用4行4列非編碼矩陣鍵盤,配合液晶界面用于和PC機(jī)通信。發(fā)聲電路:發(fā)聲電路采用LM386作為音頻放大電路,在有按鍵按下的時(shí)候會發(fā)出相應(yīng)的按鍵音。串行通信電平轉(zhuǎn)換接口:AT89C51與PC間的串行數(shù)據(jù)通信采用的是最簡單的TxD,RxD,GND三線制連接,從單片機(jī)T

12、X和RX端CMOS電平到PC的標(biāo)準(zhǔn)RS-232電平的轉(zhuǎn)換器件選用Maxim的Max232。2硬件電路設(shè)計(jì)總電路圖見附錄C。2.1 單片機(jī)AT89C51AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活

13、性高且價(jià)廉的方案。AT89C51的管腳圖如圖2-1所示。 圖2-1 AT89C51的管腳圖主要特性:. v.·與MCS-51 兼容 ·4K字節(jié)可編程閃爍存儲器 ·壽命:1000寫/擦循環(huán)·數(shù)據(jù)保留時(shí)間:10年·全靜態(tài)工作:0Hz-24Hz·三級程序存儲器鎖定·128*8位內(nèi)部RAM·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器·5個(gè)中斷源·可編程串行通道·低功耗的閑置和掉電模式·片內(nèi)振蕩器和時(shí)鐘電路 . v.管腳說明:VCC:供電電壓。 GND:接地。P0口:P0口

14、為一個(gè)8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。 P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器

15、可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時(shí),P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號和控制信號。P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,

16、P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口,如表2-1所示:表2-1 P3口的一些特殊功能口口管腳 備選功能P3.0 RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時(shí)器0外部輸入)P3.5T1(記時(shí)器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。ALE/PROG:當(dāng)訪問外部存儲器時(shí),地址鎖存

17、允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時(shí),將跳過一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時(shí), ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時(shí),這兩次有效的/PSEN信

18、號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。AT89C51的時(shí)序:AT89C51的振蕩器輸入分別有引腳19(XTAL1)和引腳18(XTAL2)來完成。只要將這兩個(gè)引腳接石英晶體和陶瓷電容,如圖圖2-2所示,就可以與CPU內(nèi)部組成完整的振蕩電路。AT89C51的一個(gè)機(jī)

19、器周期含有6個(gè)狀態(tài)周期,而每個(gè)狀態(tài)周期為2個(gè)振蕩周期,因此一個(gè)機(jī)器周期共有12個(gè)振蕩周期,如振蕩器的頻率為12MHZ,一個(gè)振蕩器周期為1/12微秒,而一個(gè)機(jī)器周期為1微秒。CXTAL11918石英晶體XTAL2AT89C51C圖2-2 AT89C51的振蕩電路在本設(shè)計(jì)中石英晶體的頻率為11.0592MHZ,陶瓷電容的取值為30PF。AT89C51的復(fù)位:單片機(jī)微處理器的復(fù)位都是以外部電路來執(zhí)行的,在CLOCK工作后,只要在RESET引腳上接上10MS以上的高電平,單片機(jī)微處理器便執(zhí)行狀態(tài)復(fù)位。一、 寄存器的復(fù)位單片機(jī)在RESET為高電平控制下,程序計(jì)數(shù)器(PC)和特殊功能寄存器的復(fù)位如表2-2

20、所示。單片機(jī)的復(fù)位并不影響芯片內(nèi)部RAM狀態(tài),只要RESET引腳保持高電平,單片機(jī)將循環(huán)復(fù)位。在復(fù)位有效期內(nèi),ALE,PSEN將輸出高電平。表2-2寄存器復(fù)位后的狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0P3FFHSCON00HIP(×××00000)SBUF(××××××××)IE(0××00000)PCON(0×

21、;××0000)二、復(fù)位電路簡單復(fù)位電路中,干擾易串入復(fù)位端,在大多數(shù)情況下不會造成單片機(jī)的錯(cuò)誤復(fù)位,但會引起內(nèi)部某些寄存器的錯(cuò)誤復(fù)位,可以在RESET引腳上接上一個(gè)去耦電容。為了保證復(fù)位電路的可靠性,常將RC電路接斯密特電路后再接入單片機(jī)和外圍IC的RESET引腳,如圖2-3所示。圖2-3 AT89C51的復(fù)位電路AT89C51的串行口:(1)基本概念數(shù)據(jù)通信的傳輸方式:常用于數(shù)據(jù)通信的傳輸方式有單工、半雙工、全雙工和多工方式。A單工方式:數(shù)據(jù)僅按一個(gè)固定的方向傳送。因?yàn)檫@種傳輸方式的用途有限,常用于串行口的打印數(shù)據(jù)傳輸與簡單系統(tǒng)間的數(shù)據(jù)采集。B雙工方式:數(shù)據(jù)可以實(shí)現(xiàn)雙向

22、傳送,但不能同時(shí)進(jìn)行,實(shí)際的應(yīng)用采用某種協(xié)議實(shí)現(xiàn)收發(fā)開關(guān)轉(zhuǎn)換。C全雙工方式:允許雙方同時(shí)進(jìn)行數(shù)據(jù)雙向傳送,但一般全雙工電路的線路和設(shè)備比較復(fù)雜。D多工方式:以上三種傳輸方式都是同一線路傳輸一種頻率信號,為了充分的利用線路資源,可通過使用多路復(fù)用器或多路集線器,采用頻分、時(shí)分、或碼分復(fù)用技術(shù),即可實(shí)現(xiàn)在同一線路上資源共享功能,我們稱之為多工傳輸方式。串行通信的兩種通信形式A. 異步通信 在這種通信方式中,接收器和發(fā)射器有各自的時(shí)鐘,他們的工作是非同步的,異步通信用一幀來表示一個(gè)字符,其內(nèi)容如下:一個(gè)起始位,緊接著是若干個(gè)數(shù)據(jù)位,圖 是傳輸45H的數(shù)據(jù)格式。B.同步通信 同步通信格式中,發(fā)送器和接

23、收器由同一個(gè)時(shí)鐘源控制,為了克服在異步傳輸中,每傳輸一幀字符都必須加上起始位和停止位,占用了傳輸時(shí)間,在要求傳送的數(shù)據(jù)量較大的(2)MCS-51的串行和控制寄存器MCS-51單片機(jī)串行口專用寄存器的SBUF為串行口的收發(fā)緩沖器,它是一個(gè)可尋址的專用寄存器,其中包含了接收器和發(fā)射器寄存器,可以實(shí)現(xiàn)全雙工通信。但這兩個(gè)寄存器具有同一地址(99H)。MCS-51的串行數(shù)據(jù)傳輸很簡單,只要向緩沖器寫入數(shù)據(jù)就可發(fā)送數(shù)據(jù)。而從接收緩沖器讀出數(shù)據(jù)既可接收數(shù)據(jù)。此外,接收緩沖器前還加上一級輸入移位寄存器,MCS-51這種結(jié)構(gòu)的目的在于接收數(shù)據(jù)時(shí)避免發(fā)生重疊現(xiàn)象,文獻(xiàn)稱這種結(jié)構(gòu)為雙緩沖結(jié)構(gòu)。而發(fā)送數(shù)據(jù)就不需要這

24、樣設(shè)計(jì),因?yàn)榘l(fā)送時(shí),CPU是主動(dòng)的,不可能出現(xiàn)這種情況。串行通信控制寄存器(SCON),它是一個(gè)可尋址的專用寄存器,用于串行數(shù)據(jù)通信的控制,單元地址是98H,其結(jié)構(gòu)格式如表2-3所示。表2-3 SCON寄存器結(jié)構(gòu)SCOND7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH8DH9CH9BH9AH99H98H下面我們對SCON控制位功能介紹如表2-4所示。1)SM0、SM1:串行口工作方式控制位表2-4 SCON控制位功能介紹SM0SM1工作方式功能說明00方式0移位寄存器方式(用于I/O擴(kuò)展)01方式18位UART,波特率可變(T1溢出率/n)10方式

25、29位UART,波特率為fosc/64或fosc/3211方式39位UART,波特率可變(T1溢出率/ n)2)SM2:多機(jī)通信控制位多機(jī)通信是工作方式2和方式3,SM2位主要用于方式2和方式3。接收狀態(tài),當(dāng)串行口工作方式2或3,以及SM2=1時(shí),只有當(dāng)接收到第9位數(shù)據(jù)(RB8)為1時(shí),才把接收的前8位數(shù)據(jù)送入SBUF,且置位RI發(fā)出中斷申請,否則會將收到的數(shù)據(jù)放棄。當(dāng)SM2=0時(shí),只有在接收到有效停止位時(shí)才啟動(dòng)RI,若沒接收到有效停止位,則RI清“0”。在方式0中SM2應(yīng)該為“0”。REN:允許接收控制位。由軟件置“1”時(shí),允許接收;軟件置“0”時(shí),不許接收。TB8:在方式3和方式3中要發(fā)送

26、的第9位數(shù)據(jù),需要時(shí)用軟件置位和清零。TB8:在方式2和方式3中是接收到的第9位數(shù)據(jù)。在方式1時(shí),如SM2=0,RB8接收到的停止位。在方式0中,不使用RB8。TI:發(fā)送中斷標(biāo)志。由硬件在方式0發(fā)送完第8位時(shí)置“1”,或在其它方式中串行發(fā)送停止位的開始時(shí)置“1”。必須由軟件清“0”。RI:接收中斷標(biāo)志。由硬件在方式0串行發(fā)射第8位結(jié)束時(shí)置“1”B:特殊功能寄存器PCONPCON:主要是是CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,單元地址為87H其機(jī)構(gòu)格式如表2-5所示。表2-5特殊功能寄存器PCONPCOND7D6D5D4D3D2D1D0位符號SMODGF1GF0PDIDL在CHMOS型

27、單片機(jī)中,除SMOD位外其它位均為虛設(shè)的,SMOD是串行波特率倍增位,當(dāng)SMOD=1時(shí)串行口波特率加倍,系統(tǒng)復(fù)位默認(rèn)為SMOD=0。這里重述一下中斷允許寄存器IE對串行口有影響的位ES。ES為串行中斷允許控制位,ES=1允許串行中斷,ES=0,禁止串行中斷。如表2-6所示。表2-6 中斷允許寄存器符號EAESET1EX1ETOEX0位地址AFHAEHADHACHABHAAHA8HA8H(3)串行口工作方式串行口具有4種工作方式,我從應(yīng)用和畢業(yè)設(shè)計(jì)的角度,重點(diǎn)討論方式1發(fā)送。串行口定義為方式1時(shí)傳送1幀數(shù)據(jù)為10位,其中1位起始地址、8位數(shù)據(jù)位(先低位后高位)、1位停止位方式1的波特率可變,波特

28、率=(T1的溢出率)2.2 LCM1601原理LCM1601是一款兼容的液晶顯示模塊,支持5×7點(diǎn)陣和16字×2行符兩種模式,背光亮度和顯示對比度可調(diào),是一種功能較簡易、價(jià)格較便宜的液晶顯示器件。它由液晶顯示屏和驅(qū)動(dòng)器兩部分組成,單片機(jī)通過寫控制字方式訪問它的驅(qū)動(dòng)器來實(shí)現(xiàn)對顯示屏的控制。圖2-4所示為LCM1601封裝圖。圖2-4 LCM1601封裝圖器件封裝為單列DIP16,引腳定義如表2-7所示。表2-7 LCM1601引腳說明編號標(biāo)示引腳說明1VSS電源地2VDD電源正極3V0液晶顯示偏壓4RS指令/數(shù)據(jù)選擇端(H/L)5R/W讀/寫選擇端6E使能信號7D08位數(shù)據(jù)總

29、線8D19D210D311D412D513D614D715LED+背光源正極16LED-背光源負(fù)極2.3 4×4行列式掃描鍵盤簡易的行列式鍵盤不需要借助其他的I/O擴(kuò)展芯片,直接占用P1的8條口線,再利用單片機(jī)內(nèi)部的軟件來配合實(shí)現(xiàn)4 ×4掃描鍵盤,其特點(diǎn)是簡單且不增加成本,通常在系統(tǒng)I/O線充裕的情況下采用。2.4 音頻功率放大器件LM386LM386的接腳圖如圖2-8所示。LM386是專為低損耗電源所設(shè)計(jì)的功率放大器。它的內(nèi)建增益為20,透過pin 1 和pin8腳位間電容的搭配,增益最高可達(dá)200。LM386輸入電壓范圍可由4V12V,無作動(dòng)時(shí)僅消耗4mA電流,且失真低

30、。圖2-8接腳圖2.5 RS-232電平轉(zhuǎn)換器件Max232MAX232芯片是MAXIM 公司生產(chǎn)的,包含兩路接收器和驅(qū)動(dòng)器的IC芯片。MAX232芯片內(nèi)部有一個(gè)電源電壓轉(zhuǎn)換器,可以把輸入的+5V 電壓變換為RS-232輸出電平所需的一1O+ 10V 電壓。所以采用此芯片接口串行通信系統(tǒng)只需單一的+5V電源就可以了。其價(jià)格適中,硬件接口簡單,所以被廣泛采用。圖2-9所示為Max232的封裝圖。圖 2-9Max232封裝圖引腳說明如表2-8所示。表2-8 Max232引腳說明VCC供電電壓GND地C+、C-外圍電容T1IN第一路TTL/CMOS驅(qū)動(dòng)電平輸入T1OUT第一路RS-232電平輸出R1

31、IN第一路RS-232電平輸入R1OUT第一路TTL/CMOS驅(qū)動(dòng)電平輸出T2IN第二路TTL/CMOS驅(qū)動(dòng)電平輸入T2OUT第二路RS-232電平輸出R2IN第二路RS-232電平輸入R2OUT第二路TTL/CMOS驅(qū)動(dòng)電平輸出3部分器件的原理分析3.1 鍵盤掃描的工作原理簡易的行列式鍵盤不需要借助其他的I/O擴(kuò)展芯片,直接占用P1的8條口線,再利用單片機(jī)內(nèi)部的軟件來配合實(shí)現(xiàn)4行4列的掃描鍵盤,其特點(diǎn)是簡單且不增加成本,通常在系統(tǒng)I/O線充裕的情況下采用。其原理圖如圖3-1所示。圖3-1原理圖工作原理:I/O口P2.7P2.1充當(dāng)列選線,P2.3P2.1充當(dāng)行選線。在鍵盤開始掃描的時(shí)候,首先

32、向P2口賦行掃描初值7FH,令第一行(P2.3)為0,從第一行開始檢測。接下來檢測第一行的第一列是否鍵按下.沒有按下,則檢測第二列,如果4列掃描完畢,沒有鍵按下,則掃描下一行,如此往復(fù),直至4行4列檢測完畢。當(dāng)有鍵按下時(shí),相應(yīng)的列選線電平被拉低,首先掃描行選線,確定按鍵的行號,然后掃描列選線,確定列號,則按鍵的編號即可確定。3.2 按鍵發(fā)聲原理要產(chǎn)生音頻脈沖,只要算出某一音頻的周期,然后將此周期除以2,即為半周期的時(shí)間,利用定時(shí)器計(jì)時(shí)這個(gè)半周期時(shí)間,每當(dāng)計(jì)時(shí)到后就將輸出脈沖的I/O反相,然后重復(fù)計(jì)時(shí)此半周期時(shí)間再對I/O反相,就可在I/O引腳上得到此頻率的脈沖。計(jì)數(shù)脈沖值與頻率的關(guān)系公式如下:

33、N=Fi÷2÷FrN:計(jì)數(shù)值;Fi:內(nèi)部計(jì)時(shí)一次為1us,故其頻率為1MHZ;Fr:要產(chǎn)生的頻率。其計(jì)數(shù)值的求法如下:T=65536-N=65536-Fi÷2÷Fr表3-1是各按鍵音符的頻率與計(jì)數(shù)值T的對照表。表3-1 各按鍵音符頻率與計(jì)數(shù)值T的對照表鍵值音符頻率(HZ)簡譜碼(T值)鍵值音符頻率(HZ)簡譜碼(T值)0低3M330640218中4FA698648201低4FA349641039中5SO784648982低5SO39264260A中6LA880649683低6LA44064400B中7SI988650304低7SI49464524C高1D

34、0946650585中1D052364580D高2RE1175651106中2RE58764684E高3M1318651577中3M65964777F高4FA1397651784單片機(jī)軟件設(shè)計(jì)程序流程圖是編寫軟件的重要前提,它是在圖表上直觀的體現(xiàn)擬設(shè)計(jì)的目的及過程。也是編譯的重要依據(jù),按照流程圖一步一步編寫程序,單片機(jī)軟件主程序流程圖如圖4-1所示。是否否是開始LCD初始化設(shè)置串口初始化收到數(shù)據(jù).檢測按鍵輸入讀入鍵值轉(zhuǎn)換成鍵碼串口發(fā)送鍵碼LCD顯示并發(fā)聲接收數(shù)據(jù)送LCD顯示圖4-1主程序流程圖4.1CM1601軟件子程序設(shè)計(jì)LCD1601是通用的點(diǎn)陣型液晶模塊,分4位和8位數(shù)據(jù)傳輸方式。提供5

35、X7點(diǎn)陣光標(biāo)和5X10點(diǎn)陣光標(biāo)的顯示模式。除帶有驅(qū)動(dòng)IC外,還自帶液晶顯示控制IC,其本身就是一個(gè)能夠接受指令,自動(dòng)控制液晶顯示的單片微機(jī)子系統(tǒng)。因此,通過軟件編程,就可以實(shí)現(xiàn)對LCM1601的操作。編程時(shí)要求CPU每一次訪問都要先對忙標(biāo)志BF進(jìn)行識別,當(dāng)BF=0時(shí),即LDC允許CPU訪問時(shí),再進(jìn)行下一步的操作。操作程序如下:4.2.1寫指令ENABLE: MOVP1,*0FFH;令P1=FFHCLRRS;RS=0,R/W=1,讀BUSY FLAG地址計(jì)數(shù)器SETBRWCLRENOPSETBEJBP1.7,ENABLE;BUSY FLAG=0"CLRRS;RS=0,R/W=0寫入指令

36、組CLRRWCLRECALLDELAYSETBERET4.2.2寫數(shù)據(jù)WRITE1:MOVR1,*00H;顯示TABLE表的值 A3:MOVA,R1;至TABLE取碼MOVCA,A+DPTRCALLWRITE2;顯示至LCDINCR1CJNEA,*00H,A3;是否取到“00H”結(jié)束碼.RETWRITE2:MOVP1,A;顯示數(shù)據(jù)送至P1SETBRS;RS=1,R/W=0寫入數(shù)據(jù)寄存器顯示CLRRWCLRECALLDELAYSETBERET4.2.3 LCD1601初始化MOVP1,*01H;清除屏幕CALLENABLEMOVP1,*38H;功能設(shè)定(8位,2行,5×7點(diǎn)矩陣)CAL

37、LENABLEMOVP1,*08H;顯示器ON,光標(biāo)ON,閃爍ONCALLENABLEMOVP1,*06H;光標(biāo)右移CALLENABLEMOVP1,*80H ;令光標(biāo)回到第一行第一個(gè)字位置CALLENABLE4.2串口通信子程序設(shè)計(jì)AT89C51的串行口是全雙工的UART,它可同時(shí)發(fā)送和接收數(shù)據(jù),是使用特殊寄存器內(nèi)的SBUF寄存器及SCON串行控制寄存器,如表4-1所示。表4-1 SCON串行控制寄存器RI:接收中斷標(biāo)志位。在模式0下,當(dāng)?shù)?位結(jié)束時(shí),硬件會將其設(shè)為1;在其他模式下,在停止位的開始時(shí)有硬件設(shè)定,次位必須由軟件清除。TI:發(fā)送中斷標(biāo)志位。在模式0下,當(dāng)?shù)?位結(jié)束時(shí),硬件會將其設(shè)為

38、1;在其他模式下,在停止位的開始時(shí)由硬件設(shè)定,次位必由軟件清除。RB8:在模式2或3時(shí),發(fā)送的第9位放入次位。在模式1時(shí),若SM2=0,則RB8為接收到的停止位。模式0時(shí),RB8沒作用。TB8:在模式2或3時(shí),發(fā)送時(shí)的第9位數(shù)據(jù)位由軟件控制。REN:由軟件設(shè)定或清除,以決定是否接收串行輸入數(shù)據(jù),REN=1,接收;REN=0,發(fā)送。SM2:當(dāng)串行口為模式2或3時(shí),使能多處理器通信的功能。在模式2或3時(shí),如果SM2=1,則當(dāng)接收到第9位數(shù)據(jù)為0時(shí),RI不動(dòng)作。在模式1時(shí),若SM2=1,當(dāng)接收到的停止位不正確時(shí),RI也不動(dòng)作。在模式0時(shí),SM2必須為0。SM1:串行口模式選擇。SM0:串行口模式選擇

39、。UART共有四種工作方式,MODE0可發(fā)送或接收8位的數(shù)據(jù);MODE1可發(fā)送或接收10的數(shù)據(jù);MODE2K可發(fā)送或接收11的數(shù)據(jù);MODE3與 MODE2的功能幾乎完全一樣,不同的是MODE2的發(fā)送速率固定,而MODE3是可變的?,F(xiàn)在就本文中用到的MODE1作一重點(diǎn)介紹。MODE1其設(shè)定如下:MOVSCON,*00000000B;發(fā)送數(shù)據(jù)工作方式JBCTI,LOOP;發(fā)送是否完畢.是則跳至LOOP,并清除TI=0MOVSCON,*00010000B;接收數(shù)據(jù)工作方式JBCRI,LOOP;接收是否完畢.是則跳至LOOP,并清除RI=0MODE0KE可發(fā)送或接收11位的數(shù)據(jù),此10個(gè)位分別是1個(gè)

40、起始位、8個(gè)數(shù)據(jù)位和1個(gè)停止位。MODE1發(fā)送數(shù)據(jù)的速度(稱為波特率)是可變的,由TIMER1或TIMER2控制且最好工作在MODE2(自動(dòng)載入模式),這樣只要設(shè)定TH1一次即可。當(dāng)UART接收(RXD引腳)到一個(gè)字節(jié)的數(shù)據(jù)后,會使SCON寄存器內(nèi)的RI位設(shè)定為1,CPU只要檢查RI=1就可知道UART已接收到數(shù)據(jù)。若數(shù)據(jù)通過UART輸出時(shí)(TXD引腳),在8個(gè)位輸出完畢后,SCON寄存器內(nèi)的TI位會被設(shè)為1,CPU只要檢查到TI=1就可知道可以再發(fā)送下一個(gè)字節(jié)。控制波特率的寄存器為PCON,如表4-2所示。說明如下:PCON:電源控制寄存器(POWER CONTROL REGISTER)。表

41、 4-2 電源控制寄存器SOMD:雙倍波特率位。當(dāng)串行工作于模式1、2或3時(shí),如使用TIMER1做波特率發(fā)生器,且SMOD=1則波特率為雙倍。:保留位。GF1:一般用途,對于AT89系列,GF1為通用標(biāo)志位。GF0:一般用途,對于AT89系列,GF0為通用標(biāo)志位。PD:電源下降位,對于AT89系列,PD為1時(shí)進(jìn)入掉電狀態(tài)。IDL:IDLE模式位,對于AT89系列,IDL為1是進(jìn)入空閑工作方式。注意:PD和IDLE同時(shí)為1時(shí),PD較優(yōu)先。其設(shè)定方式如下:(1) 設(shè)定波特率:MOVTMOD,*00100000B;設(shè)定TIMER1的MODE2ANLPCON,*01111110B;設(shè)SMOD=0或OR

42、LPCON,*10000000B;設(shè)SMOD=1MOVTH1,*0FDH;設(shè)定TIMER1的計(jì)數(shù)值SETBTR1;啟動(dòng)TIMER1(2)設(shè)定UART工作方式MOVSCON,*01010000B;MODE1做接收,REN=1JBCRI,LOOP2或MOVSCON,*0100000B;MODE做發(fā)送,REN=0JBCTI,LOOP2波特率的計(jì)算:(1) MODE0的波特率=振蕩器頻率÷12振蕩頻率=12MHZ波特率=1MHZ(2) MODE2的波特率=(2/64)×振蕩頻率振蕩頻率=12MHZSMOD=0BAUD=187.5KHZSMOD=1BAUD=375KHZ(3) MOD

43、E1和MODE3:利用TIMER工作在MODE2模式(自動(dòng)載入)產(chǎn)生的波特率為(2/32)×振蕩頻率/(12×(256-TH1)常用的各種波特率如表4-2-3所示。表4-3 常用的各種波特率波特率(bit/s)Fosc(MHZ)SMODTimer1C/T模式自動(dòng)載入480012102F3H240012002F3H120012102F6H1920011.059102FDH960011.059002FDH480011.059002FAH240011.059002F4H120011.059002F8HUART的中斷要求:其中斷要求有兩種方式:(1)當(dāng)UART的接收器(RXD)接收

44、到一個(gè)字節(jié)的數(shù)據(jù)且將其存入SBUF寄存器后,就會將RI設(shè)定為1,而對AT89C51提出中斷要求。(2)當(dāng)UART的發(fā)送器將SBUF寄存器的8個(gè)位數(shù)據(jù)發(fā)送出去后,會將TI設(shè)定為1。UART中斷要求設(shè)定的步驟:1.設(shè)定UART中斷起始地址。ORG23HJMPUART2.設(shè)定TIMER1工作在MODE2MOVTMOD,*00100000B3.設(shè)定波特率為2400ANLPCON,*01111111BMOVTH1,*0F3H4.啟動(dòng)計(jì)時(shí)器SETBTRX5.設(shè)定UART工作方式MOVSCON,*01××0000B3.設(shè)定UART中斷功能MOVIE,*10010000B4.3 鍵盤掃描子

45、程序設(shè)計(jì)鍵盤掃描的步驟:(1)設(shè)置P1口初始值07FH;(2)P1口右移,檢測行;(3)P1口左移,檢測列;流程圖如圖4-2所示。鍵盤接口程序如下: MOVR3,*0F7H;掃描初值(P2.3=0)MOVR1,*00H;取碼指針初值D3:MOVA,R3;載入掃描指針MOVP2,A;輸出至P2,開始掃描行MOVA,P2;讀入P2CLRCCPLC;令C=1MOVR5,*04H;檢測列D4:RLCA;左移一位(P2.7P2.4)JNCKEYIN;檢測行C=0,表示被按INCR1;沒按則取碼指針加1DJNZR5,D4;4列檢測完畢了.MOVA,R3CLRCCPLC;C=1RRCA;掃描下一行,即下一行

46、為0MOVR3,A;存回R3掃描指針寄存器圖4-2 讀鍵輸入子程序框圖JCD3;C=0表示掃描完畢RETKEYIN:MOV22H,R1;取碼指針存入22H地址MOVR7,*10;消除抖動(dòng)D5:MOVR6,*248DJNZR6,$DJNZR7,D5D6:MOVA,P2;按鈕放開否.XRLA,R44.4 按鍵發(fā)聲子程序的設(shè)計(jì)按鍵發(fā)聲子程序框圖如圖4-3所示。圖4-3按鍵發(fā)聲子程序框圖程序如下:ORG00H;主程序其始地址JMPSTART;跳至主程序ORG0BH;TIMER0中斷其始地址JMPTIM0;跳至TIMER0中斷子程序START:MOVTMOD,*00000001B;設(shè)定TIMER0工作在

47、MODE1MOVIE,*10000010B;中斷使能SETBTR0;啟動(dòng)TIMER0D1:CALLKEY;調(diào)用KEY,判斷是否有按下.CLREA;中斷屏蔽 JBF0,D1;沒按則F0=1,沒按則F0=0MOVA,22H;有按則將取碼指針暫存地址的值載入ARLA;乘2MOVDPTR,*TABLE;至TABLE取碼,取T的值MOVCA,A+DPTR;MOVTH0,A;取到的高位字節(jié)存入TH0MOV21H,A;取到的高位字節(jié)存入(21H)MOVA,22H;再載入取碼指針RLA;乘2INCA;加1MOVCA,A+DPTR;至TABLE取相對的低位字節(jié)計(jì)數(shù)值 MOVTL0,A;取到的高位字節(jié)存入TL0M

48、OV20H,A;取到的高位字節(jié)存入(20H)D2:CALLKEY;調(diào)用KEY,判斷是否有鍵按下SETBEA;中斷使能JBF0,D1;有按否.JMPD2;;有則跳至D2KEY:SETBF0;設(shè)F0=1MOVR3,*0F7H;掃描初值(P2.3=0)MOVR1,*00H;取碼指針初值D3:MOVA,R3;載入掃描指針MOVP2,A;輸出至P2,開始掃描行MOVA,P2;讀入P2CLRCCPLC;令C=1MOVR5,*04H;檢測列D4:RLCA;左移一位(P2.7P2.4)JNCKEYIN;檢測行C=0,表示被按INCR1;沒按則取碼指針加1DJNZR5,D4;4列檢測完畢了.MOVA,R3CLRCCPLC;C=1RRCA;掃描下一行,即下一行為0MOVR3,A;存回R3掃描指針寄存器JCD3;C=0表示掃描完畢RETKEYIN:MOV22H,R1;取碼指針存入22H地址CLRF0;令F0=0RETTIM0:PUSHACC;將A的值暫存于堆棧PUSHPSW;將PSW的值暫存于堆棧MOVTL0,20H;重設(shè)計(jì)數(shù)值MOVTH0,21HCPLP3.4;將P3.4反相POPPSW;至堆

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論