版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)原理及應(yīng)用</b></p><p><b> 課程設(shè)計(jì)</b></p><p> 題 目 單片機(jī)串行通訊 </p><p> 所在院系 機(jī)械電子工程學(xué)院 </p><p> 專
2、 業(yè) 08自動化(2) </p><p> 學(xué) 號 </p><p> 姓 名 xxxxx </p><p> 完成日期 2011.6.21 </p>
3、;<p> 指導(dǎo)教師 </p><p> 單片機(jī)及應(yīng)用課程設(shè)計(jì)任務(wù)書</p><p> 教研室主任簽字: 年 月 日</p><p><b> 目錄</b></p><p>&
4、lt;b> 目錄3</b></p><p><b> 1、引言:4</b></p><p> 2、 設(shè)計(jì)流程及方案的選擇5</p><p> 2.1設(shè)計(jì)任務(wù)與要求:5</p><p> 2.2總體方案設(shè)計(jì):5</p><p> 3、串口通信簡介:7<
5、/p><p> 3.1 串行接口的基本特點(diǎn)7</p><p> 3.2 串口通信原理 8</p><p> 3.2.1 波特率選擇8</p><p> 3.2.2 通信協(xié)議的使用9</p><p><b> 4. 硬件設(shè)計(jì)9</b></p><p> 5.
6、 程序設(shè)計(jì)13</p><p> 5.1 流程框圖13</p><p><b> 5.2主函數(shù)14</b></p><p> 6. 元件清單18</p><p><b> 7. 小結(jié)19</b></p><p> 8. 參考文獻(xiàn)20</p>
7、<p><b> 1、引言:</b></p><p> 在各種單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)中,如智能儀器儀表、各類手持設(shè)備、GPS接收器等,常常遇到計(jì)算機(jī)與外界的信息交換,即通訊。通信的基本方式可分為并行通信與串行通信兩種。</p><p> 并行通信是將組成數(shù)據(jù)的各位同時(shí)傳送,并通過并行門(如P1口等)來實(shí)現(xiàn)。在并行通信中,數(shù)據(jù)傳送線的根數(shù)與傳送的數(shù)據(jù)位數(shù)
8、相等,傳送數(shù)據(jù)速度快,但所占用的傳輸線位數(shù)多。因此并行通信適合短距離通信。</p><p> 串行通信是指數(shù)據(jù)一位一位地按順序傳送。串行通信通過串行口來實(shí)現(xiàn)。在全雙工的串行通信中,僅需要一根發(fā)送線和一根接收線,串行通信可大大節(jié)省傳送線路的成本,但數(shù)據(jù)傳送速度慢。因此,串行通信適合于遠(yuǎn)距離通信。</p><p> 目前,在許多單片機(jī)應(yīng)用系統(tǒng)中,上、下位機(jī)分工明確,作為下位機(jī)核心器件的單片
9、機(jī)往往只負(fù)責(zé)數(shù)據(jù)的采集和通信,而上位機(jī)通常以基于圖形界面的Windows系統(tǒng)為操作平臺,為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,如在測控系統(tǒng)中使用SQL Server數(shù)據(jù)庫。</p><p> 現(xiàn)階段這種應(yīng)用的核心便是數(shù)據(jù)通信,它包括單片機(jī)和上位機(jī)之間、客戶端和服務(wù)器之間以及客戶端和客戶端之間的通信,而在單片機(jī)和上位機(jī)之間的數(shù)據(jù)通信則是整個(gè)系統(tǒng)的基礎(chǔ)。單片機(jī)和PC的通信是通過單片機(jī)的串口和PC機(jī)之間的硬件連接
10、實(shí)現(xiàn)。鑒于PC機(jī)具有強(qiáng)大的監(jiān)控和管理功能,單片機(jī)則具有快速以及容易控制的特點(diǎn),在數(shù)據(jù)量不大、傳輸要求不高的情況下,一般都采用給PC機(jī)配置的RS-232標(biāo)準(zhǔn)串行接口COM1、COM2等相連接來實(shí)現(xiàn)應(yīng)用系統(tǒng)與PC機(jī)之間的數(shù)據(jù)交換。</p><p> 2、 設(shè)計(jì)流程及方案的選擇</p><p> 2.1設(shè)計(jì)任務(wù)與要求:</p><p> 一、設(shè)計(jì)的目:1.進(jìn)一步熟
11、悉和掌握單片機(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ǔ)。</p><p><b> 二、設(shè)計(jì)具
12、體要求:</b></p><p> 1.原理圖設(shè)計(jì)要符合項(xiàng)目的工作原理,連線要正確,端了要不得有標(biāo)號。2.圖中所使用的元器件要合理選用,電阻,電容等器件的參數(shù)要正確標(biāo)明。3.原理圖要完整,CPU,外圍器件,擴(kuò)器接口,輸入/輸出裝置要一應(yīng)俱全。 4.原理圖設(shè)計(jì)說明,簡要說明設(shè)計(jì)目的,原理圖中所使用的元器件功能及在圖中的作用,各器件的工作過程及順序。</p>
13、<p> 2.2總體方案設(shè)計(jì):</p><p> PC機(jī)與單片機(jī)之間可以由51單片機(jī)接口相連,在PC機(jī)系統(tǒng)內(nèi)部裝有異步通信適配器,利用它可以實(shí)現(xiàn)異步串行通信。該適配器的核心元件是可編程的Intel 8250芯片,它使PC機(jī)有能力與其他具有標(biāo)準(zhǔn)的RS-232C接口的計(jì)算機(jī)或設(shè)備進(jìn)行通信。而51單片機(jī)本身具有一個(gè)全雙工的串行口,因此只要配以電平換換的驅(qū)動電路、隔離電路就可以組成一個(gè)簡單的通信接口。同樣
14、,PC機(jī)和單片機(jī)之間的通信也分為雙機(jī)通行與多機(jī)通信。</p><p> 數(shù)據(jù)通信的硬件上采用3線制,將單片機(jī)和PC串口的3個(gè)引腳(TXD、RXD、GND)分別連在一起,即將PC機(jī)和單片機(jī)的發(fā)送數(shù)據(jù)線TXD與接收數(shù)據(jù)線RXD交叉連接,兩者的地線GND直接相連,而其他信號線如握手信號線均不用,采用軟件握手的方式。這樣既可以實(shí)現(xiàn)預(yù)定的任務(wù)又可以簡化電路設(shè)計(jì)。</p><p> PC機(jī)和單片機(jī)
15、最簡單的連接時(shí)零調(diào)制三線經(jīng)濟(jì)系。這是進(jìn)行全雙工通信所必需的最少線路,因?yàn)?1單片機(jī)輸入、輸出電平為TTL電平,但由于單片機(jī)的TTL邏輯電平和RS-232的電氣特性完全不同,RS-232的邏輯0電平規(guī)定為+5~+15V之間,邏輯1電平為-5~-15V之間,因此在將PC機(jī)和單片機(jī)的TXD和RXD交叉連接時(shí)必須進(jìn)行電平轉(zhuǎn)換,這里我選用的是MAX232電平轉(zhuǎn)換芯片。其原理框圖為圖 2-1</p><p> 圖2-1串口
16、通信原理圖</p><p><b> 3、串口通信簡介:</b></p><p> MCS-51系列單片機(jī)上有一個(gè)通用異步接收/發(fā)送器UART,通過引腳RXD[P3.O]和TXD[P3.1]可與外音B電路進(jìn)行全雙工的串行異步通信,發(fā)送數(shù)據(jù)時(shí)由TXD端送出,接收時(shí)數(shù)據(jù)由RXD端輸入。本文將具體介紹單片機(jī)串口的特點(diǎn)和編程方法,并且在最后給出一個(gè)實(shí)用的單片機(jī)與計(jì)算機(jī)通過
17、串口通信的程序。</p><p> 3.1 串行接口的基本特點(diǎn)</p><p> MCS-51單片機(jī)的串行端口有4種基本工作方式,通過編程設(shè)置,可以使其工作在任一方式,以滿足不同場合的需要。其中,方式0主要用于外接移位寄存器,以擴(kuò)展單片機(jī)的I/O電路;工作方式1多用于雙機(jī)之間或與外設(shè)電路的通信;方式2、3除有方式1的功能外,還可以作多機(jī)通信,以構(gòu)成分布式多微機(jī)系統(tǒng)。 </p>
18、;<p> 串行端口有兩個(gè)控制寄存器SCON、PCON,用于設(shè)置工作方式、發(fā)送或接收的狀態(tài)、特征位、數(shù)據(jù)傳送波特率[每秒傳送的位數(shù)]以及作為中斷標(biāo)志等。</p><p> 串行端口有一個(gè)數(shù)據(jù)寄存器SBUF在特殊功能寄存器中的字節(jié)地址為99H,該寄存器為發(fā)送和接收所共用。</p><p> 串行端口的波特率可以用程序來控制。在不同工作方式中,由時(shí)鐘振蕩頻率的分頻值或由定時(shí)
19、器T1的定時(shí)溢出時(shí)間確定,使用十分方便靈活。 串口控制寄存器</p><p> 輸入:在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。只有當(dāng)8位數(shù)據(jù)接收完,并檢測到高電平停止位后,只有滿足①(R1)=0;②(SM2)=0或接收到的第9位數(shù)據(jù)為1時(shí),停止位才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由
20、硬件置位中斷標(biāo)志RI;否則信息丟失。所以在方式1接收時(shí),應(yīng)先用軟件清零RI和SM2標(biāo)志。</p><p><b> 1. 方式2</b></p><p> 方式2為固定波特率的11位UART方式。它比方式1增加了一位可程控為1或0的第9位數(shù)據(jù)。</p><p> 輸出:發(fā)送的串行數(shù)據(jù)由TXD端輸出一幀信息為11位,附加的第9位來自SCON
21、寄存器的TB8位,用軟件置位或復(fù)位。它可作為多機(jī)通訊中地址/數(shù)據(jù)信息的標(biāo)志位,也可以作為數(shù)據(jù)的奇偶校驗(yàn)位。當(dāng)CPU執(zhí)行一條數(shù)據(jù)寫入SUBF的指令且TI=0時(shí),就啟動發(fā)送器發(fā)送。發(fā)送一幀信息后,置位中斷標(biāo)志TI。</p><p> 輸入:在(REN)=1時(shí),串行口采樣RXD引腳,當(dāng)采樣到1至O的跳變時(shí),確認(rèn)是串行發(fā)送來的一幀數(shù)據(jù)的開始位0,從而開始接收一幀數(shù)據(jù)。在接收到附加的第9位數(shù)據(jù)后,當(dāng)滿足①(RI):0;②
22、(SM2)=0或接收到的第9位數(shù)據(jù)為1時(shí),第9位數(shù)據(jù)才進(jìn)入RB8,8位數(shù)據(jù)才能進(jìn)入接收寄存器,并由硬件置位中斷標(biāo)志Ri;否則信息丟失。且不置位RI。</p><p> 3.2 串口通信原理 串口通訊對單片機(jī)而言意義重大,不但可以實(shí)現(xiàn)將單片機(jī)的數(shù)據(jù)傳輸?shù)接?jì)算機(jī)端,而且也能實(shí)現(xiàn)計(jì)算機(jī)對單片機(jī)的控制。由于其所需電纜線少,接線簡單,所以在較遠(yuǎn)距離傳輸中,得到了廣泛的運(yùn)用
23、。</p><p> 3.2.1 波特率選擇</p><p> 波特率(Boud Rate)就是在串口通信中每秒能夠發(fā)送的位數(shù)(bits/second)。MCS-51串行端口在四種工作模式下有不同的波特率計(jì)算方法。其中,模式0和模式2波特率計(jì)算很簡單,請同學(xué)們參看教科書;模式1和模式3的波特率選擇相同,故在此僅以工作模式1為例來說明串口通信波特率的選擇。
24、60; 在串行端口工作于模式1,其波特率將由計(jì)時(shí)/計(jì)數(shù)器1來產(chǎn)生,通常設(shè)置定時(shí)器工作于模式2(自動再加模式)。在此模式下波特率計(jì)算公式為: 波特率=(1+SMOD)*晶振頻率/(384*(256-TH1)) 其中,SMOD——寄存器PCON的第7位,稱為波特率倍增位;
25、 TH1——定時(shí)器的重載值。 在選擇波特率的時(shí)候需要考慮兩點(diǎn):首先,系統(tǒng)需要的通信速率。這要根據(jù)系統(tǒng)的運(yùn)作特點(diǎn),確定通信的頻率范圍。然后考慮通信時(shí)鐘誤差。使用同一晶振頻率在選擇不同的通信速率時(shí)通信時(shí)鐘誤差會有很大差別。為了通信的穩(wěn)定,
26、我們應(yīng)該盡量選擇時(shí)鐘誤差最小的頻率進(jìn)行通信。 下面舉例說明波特率選擇過程:假設(shè)系統(tǒng)要求的通信頻率在20000bit/s以下,晶振</p><p> 因此,在通信中,最好選用波特率為1200,2400,4800中的一個(gè)。</p><p> 3.2.2 通信協(xié)議的使用</p><p> 通信協(xié)議是通信設(shè)備在通信前的約定。單片機(jī)
27、、計(jì)算機(jī)有了協(xié)議這種約定,通信雙方才能明白對方的意圖,以進(jìn)行下一步動作。假定我們需要在PC機(jī)與單片機(jī)之間進(jìn)行通信,在雙方程式設(shè)計(jì)過程中,有如下約定:</p><p> 0xA1:單片機(jī)讀取P0端口數(shù)據(jù),并將讀取數(shù)據(jù)返回PC機(jī);</p><p> 0xA2:單片機(jī)從PC機(jī)接收一段控制數(shù)據(jù);</p><p> 0xA3:單片機(jī)操作成功信息。</p>
28、<p><b> 4. 硬件設(shè)計(jì)</b></p><p> 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)換,但是還是用專用芯片更簡單可靠。我
29、們采用了三線制連接串口,也就是說和計(jì)算機(jī)的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法,但是對我們來說已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接。</p><p> 圖4-1 硬件連接圖</p><p> 串口通訊的硬件電路如上圖所示為了能夠在計(jì)
30、算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個(gè)WINDOWS軟件進(jìn)行觀察,這里利用如下圖標(biāo)的一個(gè)免費(fèi)計(jì)算機(jī)串口調(diào)試軟件來觀察。</p><p> SBUF數(shù)據(jù)緩沖寄存器,這是一個(gè)可以直接尋址的串行口專用寄存器。有朋友這樣問起過“為何在串行口收發(fā)中,都只是使用到同一個(gè)寄存器SBUF?而不是收發(fā)各用一個(gè)寄存器?!睂?shí)際上SBUF包含了兩個(gè)獨(dú)立的寄存器,一個(gè)是發(fā)送寄存,另一個(gè)是接收寄存器,但它們都共同使用同一個(gè)尋址地址-
31、99H。</p><p> 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來
32、進(jìn)行實(shí)驗(yàn)。</p><p> RI接收中斷標(biāo)識位。在模式0,接收第8位結(jié)束時(shí),由硬件置位。其它模式中則是在接收停止位的半中間,由硬件置位。RI=1,申請中斷,要求CPU取走數(shù)據(jù)。但在模式1中,SM2=1時(shí),當(dāng)未收到有效的停止位,則不會對RI置位。同樣RI也必須要靠軟件清除。</p><p> : 波特率 在使用串口做通訊時(shí),一個(gè)很重要的參數(shù)就是波特率,
33、只有上下位機(jī)的波特率一樣時(shí)才可以進(jìn)行正常通訊。波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。有一些初學(xué)的朋友認(rèn)為波特率是指每秒傳輸?shù)淖止?jié)數(shù),如標(biāo)準(zhǔn)9600會被誤認(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芯片的串口工
34、作模式0的波特率是固定的,為fosc/12,以一個(gè)12M的晶振來計(jì)算,那么它的波特率可以達(dá)到1M。模式2的波特率是固定在Fosc/64或Fosc/32,具體用那一種就取決于PCON寄存器中的SMOD位,如SMOD為0,波特率為Focs/64,SMOD為1,波特率為Fsoc/32。模式1和模式3的波特率是可變的,取決于定時(shí)器1或2(52芯片)的溢出速率。那么我們怎么去計(jì)算這兩個(gè)模式的波特率設(shè)置時(shí)相關(guān)的寄存器的值呢?可以用以下的公式去計(jì)算。
35、</p><p> 波特率=(2SMOD÷32)×定時(shí)器1溢出速率</p><p> 上式中如設(shè)置了PCON寄存器中的SMOD位為1時(shí)就可以把波特率提升2倍。通常會使用定時(shí)器1工作在定時(shí)器工作模式2下,這時(shí)定時(shí)值中的TL1做為計(jì)數(shù),TH1做為自動重裝值 ,這個(gè)定時(shí)模式下,定時(shí)器溢出后,TH1的值會自動裝載到TL1,再次開始計(jì)數(shù),這樣可以不用軟件去干預(yù),使得定時(shí)更準(zhǔn)確
36、。在這個(gè)定時(shí)模式2下定時(shí)器1溢出速率的計(jì)算公式如下:</p><p> 溢出速率=(計(jì)數(shù)速率)/(256-TH1)</p><p> 上式中的“計(jì)數(shù)速率”與所使用的晶體振蕩器頻率有關(guān),在51芯片中定時(shí)器啟動后會在每一個(gè)機(jī)器周期使定時(shí)寄存器TH的值增加一,一個(gè)機(jī)器周期等于十二個(gè)振蕩周期,所以可以得知51芯片的計(jì)數(shù)速率為晶體振蕩器頻率的1/12,一個(gè)12M的晶振用在51芯片上,那么51的計(jì)
37、數(shù)速率就為1M。通常用11.0592M晶體是為了得到標(biāo)準(zhǔn)的無誤差的波特率,那么為何呢?計(jì)算一下就知道了。如我們要得到9600的波特率,晶振為11.0592M和12M,定時(shí)器1為模式2,SMOD設(shè)為1,分別看看那所要求的TH1為何值。代入公式:</p><p> 11.0592MHz時(shí):9600=(2÷32)×((11.0592M/12)/(256-TH1))</p><p
38、> TH1=250 //看看是不是和上面實(shí)例中的使用的數(shù)值一樣?</p><p> 12MHz時(shí):9600=(2÷32)×((12M/12)/(256-TH1))</p><p> TH1≈249.49</p><p><b> .總體電路設(shè)計(jì):</b></p><p> PC機(jī)和單片
39、機(jī)最簡單的連接時(shí)零調(diào)制三線經(jīng)濟(jì)系。這是進(jìn)行全雙工通信所必需的最少線路,因?yàn)?1單片機(jī)輸入、輸出電平為TTL電平,但由于單片機(jī)的TTL邏輯電平和RS-232的電氣特性完全不同,RS-232的邏輯0電平規(guī)定為+5~+15V之間,邏輯1電平為-5~-15V之間,因此在將PC機(jī)和單片機(jī)的TXD和RXD交叉連接時(shí)必須進(jìn)行電平轉(zhuǎn)換,這里我選用的是MAX232電平轉(zhuǎn)換芯片。將PC機(jī)鍵盤的輸入發(fā)送給單片機(jī),單片機(jī)收到PC機(jī)發(fā)來的數(shù)據(jù)后,會送統(tǒng)一數(shù)據(jù)給P
40、C機(jī)。并在屏幕中顯示出來。只要屏幕中顯示出來的字符與所鍵入的字符相同,說明二者之間的通信正常。總串行通信圖為圖4-1所示</p><p> 圖4-1串行通信電路圖</p><p><b> 5. 程序設(shè)計(jì)</b></p><p><b> 5.1流程框圖</b></p><p> 51單片機(jī)
41、通過中斷方式接收PC機(jī)發(fā)送數(shù)據(jù),并回送。其程序流程圖,如圖5-2所示:</p><p> 圖5-2發(fā)送端程序流程圖</p><p><b> 5.2 主函數(shù)</b></p><p> #include <REG51.H></p><p> /*************宏定義**************
42、****/ </p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> /*******************************/ </p><p> uchar code SEG[10]={0xa0,0xbe,0x
43、62,0x2a,0x3c,0x29,0x21,0xba,0x20,0x28};</p><p> uchar code ACT[4]={0x7f, 0xef,0xdf,0xbf};</p><p> sbit P3_7=P3^7;</p><p> Sbit P3_6=P3^6;</p><p> Sbit P3_5=P3^5;&l
44、t;/p><p><b> Uchar f;</b></p><p> Uchar temp;</p><p> /****************延時(shí)****************/</p><p> void delay(uint k)</p><p><b> {</
45、b></p><p><b> uint i,j;</b></p><p> for(i=0;i<k;i++)</p><p> for(j=0;j<121;j++);</p><p><b> }</b></p><p> /**********
46、*********************************************/</p><p> void key_s1(void)</p><p><b> {</b></p><p> if(!P3_7)</p><p><b> {</b><
47、;/p><p> if(temp>30)temp=0;</p><p> if(temp==0)f++;</p><p> if(f<20)f=20;</p><p><b> temp++;</b></p><p><b> }
48、</b></p><p><b> }</b></p><p> /*******************************************************/</p><p> void key_s2 (void)</p><p><b>
49、 {</b></p><p> if(!P3_6)</p><p><b> {</b></p><p> if(temp>30)temp=0;</p><p> if(temp==0)f--;</p><p> if(f>150)f=15
50、0;</p><p><b> temp++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void display(uchar x)</p><p><b
51、> {</b></p><p> P0=SEG[x%10]; P2=ACT[0]; delay(1);</p><p> P0=SEG[(x%100)/10]; P2=ACT[1]; delay(1);</p><p> P0=SEG[(x%1000)/100]; P2=ACT[2]; del
52、ay(1);</p><p> P0=SEG[x/1000]; P2=ACT[3]; delay(1);</p><p><b> }</b></p><p> /**********中斷初始化***********************/</p><p> void csh()
53、</p><p><b> {</b></p><p> TMOD=0x20; //設(shè)置定時(shí)器1為方式2</p><p><b> TH1=0xfd;</b></p><p><b> TL1=0xfd;</b></p><p><b
54、> TR1=1;</b></p><p> SM0=0; //串行口方式一</p><p><b> SM1=1;</b></p><p><b> EA=1;</b></p><p><b> ES=1;</b></p><p&
55、gt;<b> }</b></p><p> /*********************************/</p><p> void main()</p><p><b> {</b></p><p><b> csh();</b></p>
56、<p><b> while(1)</b></p><p><b> { </b></p><p><b> key_s1();</b></p><p><b> key_s2();</b></p><p> display(f);&l
57、t;/p><p> if(P3_5==0) </p><p><b> {</b></p><p> delay(10);</p><p> if(P3_5==0)</p><p><b> {</b></p><p><b> SB
58、UF=f;</b></p><p> /void zhongd(void) interrupt 4</p><p><b> {</b></p><p><b> TI=0;</b></p><p><b> }</b></p><p&
59、gt;<b> 6. 元件清單</b></p><p><b> 7. 小結(jié)</b></p><p> 單片機(jī)與PC機(jī)串行通信系統(tǒng)的設(shè)計(jì)告一段落,該系統(tǒng)的開發(fā)是一項(xiàng)非常有價(jià)值的項(xiàng)目。本論文以單片機(jī)系統(tǒng)設(shè)計(jì)方法作為全文的組織線索,開發(fā)一個(gè)單片機(jī)系統(tǒng)是需要按照規(guī)范的系統(tǒng)設(shè)計(jì)方法嚴(yán)謹(jǐn)?shù)倪M(jìn)行的。</p><p> 為了
60、開發(fā)通信系統(tǒng),選擇8051單片機(jī),必須掌握單片機(jī)控制系統(tǒng)硬件電路的設(shè)計(jì),如復(fù)位電路和時(shí)鐘電路等的設(shè)計(jì),另外對匯編語言的靈活運(yùn)用是少不了的,如單片機(jī)中斷、定時(shí)器和串行口的匯編語言編程,而對單片機(jī)的串口知識深刻的理解下,確定以定時(shí)器T1的工作方式2作為波特率發(fā)生器是一個(gè)關(guān)鍵的,計(jì)算機(jī)方面,首先是 RS-232C接口,RS-232C接口是最為常用的、應(yīng)用最為廣泛的串行接口標(biāo)準(zhǔn),大量的集成設(shè)備、工業(yè)產(chǎn)品都提供了RS-232C接口,因此單片機(jī)應(yīng)用
61、系統(tǒng)的設(shè)計(jì)中,RS-232C通信設(shè)計(jì)是十分重要的。51兼容單片機(jī)通常都自帶一個(gè)標(biāo)準(zhǔn)UART端口,這個(gè)端口用過電平轉(zhuǎn)換電路就可以構(gòu)成一個(gè)標(biāo)準(zhǔn)的RS-232C接口,并且與計(jì)算機(jī)的接口相匹配,運(yùn)用RS-232C連接的最簡單形式:3線制,將單片機(jī)與PC機(jī)進(jìn)行硬件連接。其中由于單片機(jī)系統(tǒng)使用的是TTL電平,單片機(jī)中的串口輸出的信號也是如此,但是串行通信中使用的RS-232C通信協(xié)議,二者的電平并不相同,在和單片機(jī)進(jìn)行通信時(shí),還需要有一定的外圍電路
62、的配合,使得單片機(jī)的通信電平和標(biāo)準(zhǔn)的串行通信協(xié)議相匹配。這一點(diǎn)用MAX232芯片進(jìn)行處理。以上所形成的通信系統(tǒng)的原理</p><p><b> 8. 參考文獻(xiàn)</b></p><p> [1] 趙茂泰.智能儀器原理及應(yīng)用.北京: 電子工業(yè)出版社,2004.7</p><p> [2] 張毅剛,劉杰.MCS—51單片機(jī)原理及應(yīng)用.哈爾濱:
63、 哈爾濱工業(yè)大學(xué)出版社,2004.6</p><p> [3] 何立民.單片機(jī)應(yīng)用技術(shù)選編.北京: 北京航天航空大學(xué)出版,2002.5</p><p> [4] 張軍,梅麗鳳.單片機(jī)原理接口技術(shù).北京交通大學(xué)出版社,2006.5</p><p> [5] 張婧武,周靈彬.單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真.北京: 電工出版社,2007.4</p>
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)報(bào)告--雙機(jī)串行通訊
- 單片機(jī)單片機(jī)課程設(shè)計(jì)-雙機(jī)串行通信
- 單片機(jī)單片機(jī)課程設(shè)計(jì)-雙機(jī)串行通信e
- pc機(jī)與單片機(jī)串行通信課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的串行通信發(fā)射機(jī)設(shè)計(jì)
- 單片機(jī)秒表單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)串口通信課程設(shè)計(jì)-- pc和單片機(jī)的串行雙工通信
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)控制步進(jìn)電機(jī)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)籃球計(jì)分器
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)原理及應(yīng)用
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)控制各種器件
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘.doc
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)病房呼叫系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)--單片機(jī)轉(zhuǎn)速測量系統(tǒng)
- 單片機(jī)課程設(shè)計(jì)-- 單片機(jī)原理及應(yīng)用
- 基于單片機(jī)的秒表設(shè)計(jì)單片機(jī)課程設(shè)計(jì)
評論
0/150
提交評論