單片機(jī)原理及應(yīng)用課程設(shè)計(jì)方案參考樣文_第1頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)方案參考樣文_第2頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)方案參考樣文_第3頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)方案參考樣文_第4頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)方案參考樣文_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)題目∶單片機(jī)與PC機(jī)串口通信院系∶機(jī)電工程系專業(yè)班級(jí)∶電子0814姓名∶***學(xué)號(hào)∶02指導(dǎo)教師∶祖一康成績(jī)∶2010年P(guān)AGE1單片機(jī)原理及應(yīng)用課程設(shè)計(jì)任務(wù)書學(xué)生姓名李海榮專業(yè)班級(jí)電子0814學(xué)號(hào)02課題名稱單片機(jī)與PC機(jī)串口通信電路設(shè)計(jì)指導(dǎo)教師及職稱祖一康(以下內(nèi)容指導(dǎo)教師可根據(jù)實(shí)際情況進(jìn)行調(diào)整)已知情況MAX232芯片,單片機(jī)為最小應(yīng)用系統(tǒng)。二、控制要求設(shè)計(jì)單片機(jī)與PC機(jī)串口通信電路,實(shí)現(xiàn)串行通信三、設(shè)計(jì)要求根據(jù)實(shí)際應(yīng)用的需要,本次設(shè)計(jì)要達(dá)到如下設(shè)計(jì)要求:(1)要求本次設(shè)計(jì)的控制裝置采用單片機(jī)技術(shù)實(shí)現(xiàn);(2)要能完全滿足控制要求;(3)畫出本次設(shè)計(jì)最小應(yīng)用系統(tǒng)電氣原理示意圖。(4)畫出程序流程圖并寫出相應(yīng)程序目錄第一章緒論 3第二章串口通信簡(jiǎn)介 42.1串行接口的基本特點(diǎn) 42.2串口通信原理 62.2.1波特率選擇 62.2.2通信協(xié)議的使用 6第三章硬件設(shè)計(jì) 7第四章程序設(shè)計(jì) 12第五章設(shè)計(jì)心得 13參考文獻(xiàn) 14第一章緒論一、設(shè)計(jì)的目的

1.進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理。

2.掌握單片機(jī)的接口技術(shù)及相關(guān)外圍芯片的外特性,控制方法。

3.通過課程設(shè)計(jì),掌握以單片機(jī)核心的電路設(shè)計(jì)的基本方法和技術(shù),了解有關(guān)電路參數(shù)的計(jì)算方法。

4.通過實(shí)際程序設(shè)計(jì)和調(diào)試,逐步掌握模塊化程序設(shè)計(jì)方法和調(diào)試技術(shù)。

5.通過完成一個(gè)包括電路設(shè)計(jì)和程序開發(fā)的完整過程,使學(xué)生了解開發(fā)單片機(jī)應(yīng)用系統(tǒng)的全過程,為今后從事相應(yīng)打下基礎(chǔ)。二、設(shè)計(jì)具體要求原理圖設(shè)計(jì)

1.原理圖設(shè)計(jì)要符合項(xiàng)目的工作原理,連線要正確,端了要不得有標(biāo)號(hào)。

2.圖中所使用的元器件要合理選用,電阻,電容等器件的參數(shù)要正確標(biāo)明。

3.原理圖要完整,CPU,外圍器件,擴(kuò)器接口,輸入/輸出裝置要一應(yīng)俱全。程序調(diào)試

1.根據(jù)要求,將總體功能分解成若干個(gè)子功能模塊,每個(gè)功能模塊完成一個(gè)特定的功能。

2.根據(jù)總體要求及分解的功能模塊,確定各功能模塊之間的關(guān)系,設(shè)直出完整的程序流程圖。程序調(diào)試將設(shè)計(jì)完的程序輸入,匯編,排除語法錯(cuò)誤,生成*OBJ文件

1.按所設(shè)計(jì)的原理圖,在實(shí)驗(yàn)平臺(tái)上連線,檢查無誤。

2.將匯編后生成的*OBJ文件傳送到實(shí)驗(yàn)裝置的,執(zhí)行該程序,檢查該程序、是否達(dá)到設(shè)計(jì)要求,若未達(dá)到,修改程序,直到達(dá)到要求為止,設(shè)計(jì)說明書

1.原理圖設(shè)計(jì)說明

簡(jiǎn)要說明設(shè)計(jì)目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。

2.程序設(shè)計(jì)說明

對(duì)程序設(shè)計(jì)總體功能及結(jié)構(gòu)進(jìn)行說明,對(duì)各子模塊的功能以及各子模塊之間的關(guān)系作較詳細(xì)的描述。第二章串口通信簡(jiǎn)介MCS-51系列\(zhòng)o"就是一個(gè)微型的電腦,麻雀雖小,五臟俱全"單片機(jī)上有一個(gè)通用異步接收/發(fā)送器UART,通過引腳RXD[P3.O]和TXD[P3.1]可與外音B\o"電流流過的路叫做電路"電路進(jìn)行全雙工的串行異步通信,發(fā)送數(shù)據(jù)時(shí)由TXD端送出,接收時(shí)數(shù)據(jù)由RXD端輸入。本文將具體介紹單片機(jī)串口的特點(diǎn)和編程方法,并且在最后給出一個(gè)實(shí)用的單片機(jī)與計(jì)算機(jī)通過串口通信的程序。

2.1串行接口的基本特點(diǎn)MCS-51\o"就是一個(gè)微型的電腦,麻雀雖小,五臟俱全"單片機(jī)的串行端口有4種基本工作方式,通過編程設(shè)置,可以使其工作在任一方式,以滿足不同場(chǎng)合的需要。其中,方式0主要用于外接移位寄存器,以擴(kuò)展單片機(jī)的I/O\o"電流流過的路叫做電路"電路;工作方式1多用于雙機(jī)之間或與外設(shè)電路的通信;方式2、3除有方式1的功能外,還可以作多機(jī)通信,以構(gòu)成分布式多微機(jī)系統(tǒng)。串行端口有兩個(gè)控制寄存器SCON、PCON,用于設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送波特率[每秒傳送的位數(shù)]以及作為中斷標(biāo)志等。串行端口有一個(gè)數(shù)據(jù)寄存器SBUF[在特殊功能寄存器中的字節(jié)地址為99H,該寄存器為發(fā)送和接收所共用。串行端口的波特率可以用程序來控制。在不同工作方式中,由時(shí)鐘振蕩\o"頻率"頻率的\o""分頻值或由定時(shí)器T1的定時(shí)溢出時(shí)間確定,使用十分方便靈活。

串口控制寄存器

輸入:在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。只有當(dāng)8位數(shù)據(jù)接收完,并檢測(cè)到高\(yùn)o"電平"電平停止位后,只有滿足①(R1)=0;②(SM2)=0或接收到的第9位數(shù)據(jù)為1時(shí),停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志RI;否則信息丟失。所以在方式1接收時(shí),應(yīng)先用軟件清零RI和SM2標(biāo)志。

1.方式2

方式2為固定波特率的11位uART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。

輸出:發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來自SCON寄存器的TB8位,用軟件置位或復(fù)位。它可作為多機(jī)通訊中地址/數(shù)據(jù)信息的標(biāo)志位,也可以作為數(shù)據(jù)的奇偶校驗(yàn)位。當(dāng)CPu執(zhí)行一條數(shù)據(jù)寫入SuBF的指令且TI=0時(shí),就啟動(dòng)發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標(biāo)志TI。

輸入:在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)滿足①(RI):0;②(SM2)=0或接收到的第9位數(shù)據(jù)為1時(shí),第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志Ri;否則信息丟失。且不置位RI。2.工作方式3方式3為波特率可變的11位UART方式。除波特率外,其余與方式2相同。

波特率的選擇

如前所述,在串行通訊中,收發(fā)雙方的數(shù)據(jù)傳送率(波特率)要有一定的約定。在MCS-51串行口的四種工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可變的,由定時(shí)器T1的溢出率控制。1.方式O方式0的波特率固定為主振\o"頻率"頻率

的1/12。2.方式2方式2的波特率由PCON中的選擇位SMOD來決定,可表示為:波特率=2sMoD×fosc/64也就是當(dāng)SMOD=1時(shí),波特率為1/32×fosc,當(dāng)SMOD=0時(shí),波特率為1/64×fosc。3.方式1和方式3

定時(shí)器T1作為波特率發(fā)生器,其公式如下:波特率=2SMOD/32×定時(shí)器T1溢出率T1溢出率=T1計(jì)數(shù)率/產(chǎn)生溢出所需的\o"交流電完成一次完整的變化所需要的時(shí)間叫做周期"周期數(shù)

式中T1計(jì)數(shù)率取決于它工作在定時(shí)器狀態(tài)還是計(jì)數(shù)器狀態(tài)。當(dāng)工作于定時(shí)器狀態(tài)時(shí),T1計(jì)數(shù)率為fOSC門2:當(dāng)工作于計(jì)數(shù)器狀態(tài)時(shí),T1計(jì)數(shù)率為外部輸入\o"頻率"頻率,此頻率應(yīng)小于fOSC/24。產(chǎn)生溢出所需\o"交流電完成一次完整的變化所需要的時(shí)間叫做周期"周期與定時(shí)器T1的工作方式、T1的預(yù)置值(×]有關(guān)。

定時(shí)器T1工作于方式O:溢出所需\o"交流電完成一次完整的變化所需要的時(shí)間叫做周期"周期數(shù)=8192-×

定時(shí)器T1工作于方式1:溢出所需\o"交流電完成一次完整的變化所需要的時(shí)間叫做周期"周期數(shù)=65536-X

定時(shí)器T1工作于方式2:溢出所需\o"交流電完成一次完整的變化所需要的時(shí)間叫做周期"周期數(shù)=256-X

因?yàn)榉绞?為自動(dòng)重裝入初值的8位定時(shí)器/計(jì)數(shù)器模式,所以用它來做波特率發(fā)生器最恰當(dāng)。這種方式下,T1的溢出率[次/秒]計(jì)算式可以表示為:T1溢出率=fsoc/12[256-X]2.2串口通信原理

串口通訊對(duì)單片機(jī)而言意義重大,不但可以實(shí)現(xiàn)將單片機(jī)的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)端,而且也能實(shí)現(xiàn)計(jì)算機(jī)對(duì)單片機(jī)的控制。由于其所需電纜線少,接線簡(jiǎn)單,所以在較遠(yuǎn)距離傳輸中,得到了廣泛的運(yùn)用。2.2.1波特率選擇

波特率(BoudRate)就是在串口通信中每秒能夠發(fā)送的位數(shù)(bits/second)。MCS-51串行端口在四種工作模式下有不同的波特率計(jì)算方法。其中,模式0和模式2波特率計(jì)算很簡(jiǎn)單,請(qǐng)同學(xué)們參看教科書;模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來說明串口通信波特率的選擇。

在串行端口工作于模式1,其波特率將由計(jì)時(shí)/計(jì)數(shù)器1來產(chǎn)生,通常設(shè)置定時(shí)器工作于模式2(自動(dòng)再加模式)。在此模式下波特率計(jì)算公式為:

波特率=(1+SMOD)*晶振頻率/(384*(256-TH1))

其中,SMOD——寄存器PCON的第7位,稱為波特率倍增位;

TH1——定時(shí)器的重載值。

在選擇波特率的時(shí)候需要考慮兩點(diǎn):首先,系統(tǒng)需要的通信速率。這要根據(jù)系統(tǒng)的運(yùn)作特點(diǎn),確定通信的頻率范圍。然后考慮通信時(shí)鐘誤差。使用同一晶振頻率在選擇不同的通信速率時(shí)通信時(shí)鐘誤差會(huì)有很大差別。為了通信的穩(wěn)定,我們應(yīng)該盡量選擇時(shí)鐘誤差最小的頻率進(jìn)行通信。

下面舉例說明波特率選擇過程:假設(shè)系統(tǒng)要求的通信頻率在20000bit/s以下,晶振頻率為12MHz,設(shè)置SMOD=1(即波特率倍增)。則

TH1=256-62500/波特率

根據(jù)波特率取值表,我們知道可以選取的波特率有:1200,2400,4800,9600,19200。列計(jì)數(shù)器重載值,通信誤差如下表:因此,在通信中,最好選用波特率為1200,2400,4800中的一個(gè)。2.2.2通信協(xié)議的使用通信協(xié)議是通信設(shè)備在通信前的約定。單片機(jī)、計(jì)算機(jī)有了協(xié)議這種約定,通信雙方才能明白對(duì)方的意圖,以進(jìn)行下一步動(dòng)作。假定我們需要在PC機(jī)與單片機(jī)之間進(jìn)行通信,在雙方程式設(shè)計(jì)過程中,有如下約定:

0xA1:?jiǎn)纹瑱C(jī)讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);

0xA2:?jiǎn)纹瑱C(jī)從PC機(jī)接收一段控制數(shù)據(jù);

0xA3:?jiǎn)纹瑱C(jī)操作成功信息。在系統(tǒng)工作過程中,單片機(jī)接收到PC機(jī)數(shù)據(jù)信息后,便查找協(xié)議,完成相應(yīng)的操作。當(dāng)單片機(jī)接收到0xA1時(shí),讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);當(dāng)單片機(jī)接收到0xA2時(shí),單片機(jī)等待從PC機(jī)接收一段控制數(shù)據(jù);當(dāng)PC接收到0xA3時(shí),就表明單片機(jī)操作已經(jīng)成功。第三章硬件設(shè)計(jì)51單片機(jī)有一個(gè)全雙工的串行通訊口,所以單片機(jī)和計(jì)算機(jī)之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時(shí)要滿足一定的條件,比如計(jì)算機(jī)的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,我們采用了專用芯片MAX232進(jìn)行轉(zhuǎn)換,雖然也可以用幾個(gè)三極管進(jìn)行模擬轉(zhuǎn)換,但是還是用專用芯片更簡(jiǎn)單可靠。我們采用了三線制連接串口,也就是說和計(jì)算機(jī)的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡(jiǎn)單的連接方法,但是對(duì)我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接。圖3.1硬件連接圖串口通訊的硬件電路如上圖所示為了能夠在計(jì)算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個(gè)WINDOWS軟件進(jìn)行觀察,這里利用如下圖標(biāo)的一個(gè)免費(fèi)計(jì)算機(jī)串口調(diào)試軟件來觀察。圖3.2串口調(diào)試助手窗口

SBUF數(shù)據(jù)緩沖寄存器,這是一個(gè)可以直接尋址的串行口專用寄存器。有朋友這樣問起過“為何在串行口收發(fā)中,都只是使用到同一個(gè)寄存器SBUF?而不是收發(fā)各用一個(gè)寄存器?!睂?shí)際上SBUF包含了兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送寄存,另一個(gè)是接收寄存器,但它們都共同使用同一個(gè)尋址地址-99H。CPU在讀SBUF時(shí)會(huì)指到接收寄存器,在寫時(shí)會(huì)指到發(fā)送寄存器,而且接收寄存器是雙緩沖寄存器,這樣可以避免接收中斷沒有及時(shí)的被響應(yīng),數(shù)據(jù)沒有被取走,下一幀數(shù)據(jù)已到來,而造成的數(shù)據(jù)重疊問題。發(fā)送器則不需要用到雙緩沖,一般情況下我們?cè)趯懓l(fā)送程序時(shí)也不必用到發(fā)送中斷去外理發(fā)送數(shù)據(jù)。操作SBUF寄存器的方法則很簡(jiǎn)單,只要把這個(gè)99H地址用關(guān)鍵字sfr定義為一個(gè)變量就可以對(duì)其進(jìn)行讀寫操作了,如sfrSBUF=0x99;當(dāng)然你也可以用其它的名稱。通常在標(biāo)準(zhǔn)的reg51.h或at89x51.h等頭文件中已對(duì)其做了定義,只要用#include引用就可以了。SCON串行口控制寄存器通常在芯片或設(shè)備中為了監(jiān)視或控制接口狀態(tài),都會(huì)引用到接口控制寄存器。SCON就是51芯片的串行口控制寄存器。它的尋址地址是98H,是一個(gè)可以位尋址的寄存器,作用就是監(jiān)視和控制51芯片串行口的工作狀態(tài)。51芯片的串口可以工作在幾個(gè)不同的工作模式下,其工作模式的設(shè)置就是使用SCON寄存器。它的各個(gè)位的具體定義如下:表3-1串行口控制寄存器SCON(MSB)(LSB)SM0SM1SM2RENTB8RB8TIRISM0、SM1為串行口工作模式設(shè)置位,這樣兩位可以對(duì)應(yīng)進(jìn)行四種模式的設(shè)置??幢?-2串行口工作模式設(shè)置。表3-2串行口工作模式設(shè)置SM0SM1模式功能波特率000同步移位寄存器fosc/120118位UART可變1029位UARTfosc/32或fosc/641139位UART可變?cè)谶@里只說明最常用的模式1,其它的模式也就一一略過,有興趣的朋友可以找相關(guān)的硬件資料查看。表中的fosc代表振蕩器的頻率,也就是晶振的頻率。UART為(UniversalAsynchronousReceiver)的英文縮寫。SM2在模式2、模式3中為多處理機(jī)通信使能位。在模式0中要求該位為0。REM為允許接收位,REM置1時(shí)串口允許接收,置0時(shí)禁止接收。REM是由軟件置位或清零。如果在一個(gè)電路中接收和發(fā)送引腳P3.0,P3.1都和上位機(jī)相連,在軟件上有串口中斷處理程序,當(dāng)要求在處理某個(gè)子程序時(shí)不允許串口被上位機(jī)來的控制字符產(chǎn)生中斷,那么可以在這個(gè)子程序的開始處加入REM=0來禁止接收,在子程序結(jié)束處加入REM=1再次打開串口接收。大家也可以用上面的實(shí)際源碼加入REM=0來進(jìn)行實(shí)驗(yàn)。TB8發(fā)送數(shù)據(jù)位8,在模式2和3是要發(fā)送的第9位。該位可以用軟件根據(jù)需要置位或清除,通常這位在通信協(xié)議中做奇偶位,在多處理機(jī)通信中這一位則用于表示是地址幀還是數(shù)據(jù)幀。

RB8接收數(shù)據(jù)位8,在模式2和3是已接收數(shù)據(jù)的第9位。該位可能是奇偶位,地址/數(shù)據(jù)標(biāo)識(shí)位。在模式0中,RB8為保留位沒有被使用。在模式1中,當(dāng)SM2=0,RB8是已接收數(shù)據(jù)的停止位。

TI發(fā)送中斷標(biāo)識(shí)位。在模式0,發(fā)送完第8位數(shù)據(jù)時(shí),由硬件置位。其它模式中則是在發(fā)送停止位之初,由硬件置位。TI置位后,申請(qǐng)中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。在任何模式下,TI都必須由軟件來清除,也就是說在數(shù)據(jù)寫入到SBUF后,硬件發(fā)送數(shù)據(jù),中斷響應(yīng)(如中斷打開),這時(shí)TI=1,表明發(fā)送已完成,TI不會(huì)由硬件清除,所以這時(shí)必須用軟件對(duì)其清零。

RI接收中斷標(biāo)識(shí)位。在模式0,接收第8位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI=1,申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。但在模式1中,SM2=1時(shí),當(dāng)未收到有效的停止位,則不會(huì)對(duì)RI置位。同樣RI也必須要靠軟件清除。

常用的串口模式1是傳輸10個(gè)位的,1位起始位為0,8位數(shù)據(jù)位,低位在先,1位停止位為1。它的波特率是可變的,其速率是取決于定時(shí)器1或定時(shí)器2的定時(shí)值(溢出速率)。AT89C51和AT89C2051等51系列芯片只有兩個(gè)定時(shí)器,定時(shí)器0和定時(shí)器1,而定時(shí)器2是89C52系列芯片才有的。

波特率在使用串口做通訊時(shí),一個(gè)很重要的參數(shù)就是波特率,只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學(xué)的朋友認(rèn)為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標(biāo)準(zhǔn)9600會(huì)被誤認(rèn)為每秒種可以傳送9600個(gè)字節(jié),而實(shí)際上它是指每秒可以傳送9600個(gè)二進(jìn)位,而一個(gè)字節(jié)要8個(gè)二進(jìn)位,如用串口模式1來傳輸那么加上起始位和停止位,每個(gè)數(shù)據(jù)字節(jié)就要占用10個(gè)二進(jìn)位,9600波特率用模式1傳輸時(shí),每秒傳輸?shù)淖止?jié)數(shù)是9600÷10=960字節(jié)。51芯片的串口工作模式0的波特率是固定的,為fosc/12,以一個(gè)12M的晶振來計(jì)算,那么它的波特率可以達(dá)到1M。模式2的波特率是固定在fosc/64或fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率為focs/64,SMOD為1,波特率為focs/32。模式1和模式3的波特率是可變的,取決于定時(shí)器1或2(52芯片)的溢出速率。那么我們?cè)趺慈ビ?jì)算這兩個(gè)模式的波特率設(shè)置時(shí)相關(guān)的寄存器的值呢?可以用以下的公式去計(jì)算。波特率=(2SMOD÷32)×定時(shí)器1溢出速率

上式中如設(shè)置了PCON寄存器中的SMOD位為1時(shí)就可以把波特率提升2倍。通常會(huì)使用定時(shí)器1工作在定時(shí)器工作模式2下,這時(shí)定時(shí)值中的TL1做為計(jì)數(shù),TH1做為自動(dòng)重裝值,這個(gè)定時(shí)模式下,定時(shí)器溢出后,TH1的值會(huì)自動(dòng)裝載到TL1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確。在這個(gè)定時(shí)模式2下定時(shí)器1溢出速率的計(jì)算公式如下:

溢出速率=(計(jì)數(shù)速率)/(256-TH1)

上式中的“計(jì)數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51芯片中定時(shí)器啟動(dòng)后會(huì)在每一個(gè)機(jī)器周期使定時(shí)寄存器TH的值增加一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知51芯片的計(jì)數(shù)速率為晶體振蕩器頻率的1/12,一個(gè)12M的晶振用在51芯片上,那么51的計(jì)數(shù)速率就為1M。通常用11.0592M晶體是為了得到標(biāo)準(zhǔn)的無誤差的波特率,那么為何呢?計(jì)算一下就知道了。如我們要得到9600的波特率,晶振為11.0592M和12M,定時(shí)器1為模式2,SMOD設(shè)為1,分別看看那所要求的TH1為何值。代入公式:11.0592MHz時(shí):9600=(2÷32)×((11.0592M/12)/(256-TH1))TH1=250//看看是不是和上面實(shí)例中的使用的數(shù)值一樣?12MHz時(shí):9600=(2÷32)×((12M/12)/(256-TH1))TH1≈249.49上面的計(jì)算可以看出使用12M晶體的時(shí)候計(jì)算出來的TH1不為整數(shù),而TH1的值只能取整數(shù),這樣它就會(huì)有一定的誤差存在不能產(chǎn)生精確的9600波特率。當(dāng)然一定的誤差是可以在使用中被接受的,就算使用11.0592M的晶體振蕩器也會(huì)因晶體本身所存在的誤差使波特率產(chǎn)生誤差,但晶體本身的誤差對(duì)波特率的影響是十分之小的,可以忽略不計(jì)。圖3.3使用MAX232串口通信電路圖(9孔串口接頭)第四章程序設(shè)計(jì)程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVTMOD,#20HMOVTH1,#OF4HMOVTL1,#OF4HCLRET1SETBTR1MOVSCON,#50HLOOOP:JNBRI,¥CLRR1MOVA,SUBFMOVSBUF,AJNBT1,¥CLRT1SJMPLOOPSJMP$END第五章設(shè)計(jì)心得做了一周的課程設(shè)計(jì),有很多的心得體會(huì),有關(guān)于單片機(jī)方面的,更多的是關(guān)于人與人之間關(guān)系方面的。所幸的是,我得到了很多同學(xué)的幫助。我想沒有他們我可能都要放棄了,因?yàn)槲冶救藢?duì)單片機(jī)也并不是很熟悉,學(xué)的東西好像它是它,我是我似的,理論聯(lián)系不了實(shí)際。以前的匯編語言沒學(xué)好,一開始的程序這塊兒就要令我抓狂了。后來請(qǐng)教我們班的一個(gè)男生,每次跟

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論