單片機(jī)和PC機(jī)串口通訊試驗(yàn)-新品速遞_第1頁(yè)
單片機(jī)和PC機(jī)串口通訊試驗(yàn)-新品速遞_第2頁(yè)
單片機(jī)和PC機(jī)串口通訊試驗(yàn)-新品速遞_第3頁(yè)
單片機(jī)和PC機(jī)串口通訊試驗(yàn)-新品速遞_第4頁(yè)
單片機(jī)和PC機(jī)串口通訊試驗(yàn)-新品速遞_第5頁(yè)
已閱讀5頁(yè),還剩4頁(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ī)和PC機(jī)串口通訊試驗(yàn)-新品速遞51單片機(jī)有一個(gè)全雙工的串行通訊口,所以單片機(jī)和電腦之間可以方便地進(jìn)行串口通訊。進(jìn)行串行通訊時(shí)要滿(mǎn)足一定的條件,比如電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個(gè)電平轉(zhuǎn)換電路,我們采用了專(zhuān)用芯片MAX232進(jìn)行轉(zhuǎn)換,雖然也可以用幾個(gè)三極管進(jìn)行模擬轉(zhuǎn)換,但是還是用專(zhuān)用芯片更簡(jiǎn)單可靠。我們采用了三線制連接串口,也就是說(shuō)和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是簡(jiǎn)單的連接方法,但是對(duì)我們來(lái)說(shuō)已經(jīng)足夠使用了,電路如下圖所示,MAX232的第10腳和單片機(jī)的11腳連接,第9腳和單片機(jī)的10腳連接,第15腳和單片機(jī)的20腳連接。串口通訊的硬件電路如上圖所示在制作電路前我們先來(lái)看看要用的MAX232,這里我們不去具體討論它,只要知道它是TTL和RS232電平相互轉(zhuǎn)換的芯片和基本的引腳接線功能就行了。通常我會(huì)用兩個(gè)小功率晶體管加少量的電路去替換MAX232,可以省一點(diǎn),效果也不錯(cuò)(如有興趣可以查看網(wǎng)站中的相關(guān)資料)。下圖就是MAX232的基本接線圖。按圖7-3加上MAX232就可以了。這大熱天的拿烙鐵焊焊,還真的是熱氣迫人來(lái)呀:P串口座用DB9的母頭,這樣就可以用買(mǎi)來(lái)的PC串口延長(zhǎng)線進(jìn)行和電腦相連接,也可以直接接到電腦com口上。為了能夠在電腦端看到單片機(jī)發(fā)出的數(shù)據(jù),我們必須借助一個(gè)WINDOWS軟件進(jìn)行觀察,這里我們利用一個(gè)的電腦串口調(diào)試軟件。點(diǎn)擊這里可以并運(yùn)行這個(gè)串口調(diào)試軟件,這是一個(gè)綠色的軟件,無(wú)需安裝,可以直接在當(dāng)前位置運(yùn)行這個(gè)軟件。軟件界面如上圖,我們先要設(shè)置一下串口通訊的參數(shù),將波特率調(diào)整為4800,勾選十六進(jìn)制顯示。串口選擇為COM1,當(dāng)然將網(wǎng)站提供的51單片機(jī)實(shí)驗(yàn)板的串口也要和電腦的COM1連接,將燒寫(xiě)有以下程序的單片機(jī)插入單片機(jī)實(shí)驗(yàn)板的插座中,并接通51單片機(jī)實(shí)驗(yàn)板的電源。串口實(shí)驗(yàn)的源程序如下所示:;這是一個(gè)S51單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)板向PC機(jī)的串口單向發(fā)送數(shù)據(jù)AF的演示程序;采用MAX232專(zhuān)用芯片作RS232/TTL電平轉(zhuǎn)換.;通訊波特率為4800KBPS,只要按下K1(就是P3.6引腳變成低電平);就發(fā)送一個(gè)16進(jìn)制的AF字符ORG0000HMOVSCON,#50H;設(shè)置成串口1方式MOVTMOD,#20H;波特率發(fā)生器T1工作在模式2上MOVPCON,#80H;波特率翻倍為2400x2=4800BPSMOVTH1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)MOVTL1,#0F3H;預(yù)置初值(按照波特率2400BPS預(yù)置初值)SETBTR1;啟動(dòng)定時(shí)器T1;以上完成通訊初始化設(shè)置WRIT:JBP3.6,$;判斷K1是否按下,如果沒(méi)有按下就等待ACALLDELAY10;延時(shí)10毫秒消觸點(diǎn)抖動(dòng)JBP3.6,WRIT;去除干擾信號(hào)JNBP3.6,$;等待按鍵松開(kāi)MOVA,#0AFH;將16進(jìn)制的字符AF發(fā)送到串口去MOVSBUF,A;將AF通過(guò)串口發(fā)送出去AJMPWRIT;10毫秒延時(shí)子程序DELAY10:MOVR4,#20D2:MOVR5,#248DJNZR5,$DJNZR4,D2RETEND;=============兩機(jī)串口通訊程序(主機(jī))=====================;;功能:使用串行中斷,接收數(shù)據(jù)并顯示;硬件環(huán)境:自制單片機(jī)實(shí)驗(yàn)板;軟件環(huán)境:偉福V3.20;Createdate:2022_07_26;FirstModify:2022_07_26;secondModify:;LastModify:2022_07_26;Author:Sujiande;;===========預(yù)定義===================LED0EQU40H;預(yù)定義數(shù)碼管LED1EQU41H;預(yù)定義數(shù)碼管LED2EQU42H;預(yù)定義數(shù)碼管LED3EQU43H;預(yù)定義數(shù)碼管LED4EQU44H;預(yù)定義數(shù)碼管LED5EQU45H;預(yù)定義數(shù)碼管LED6EQU46H;預(yù)定義數(shù)碼管LED7EQU47H;預(yù)定義數(shù)碼管SDABITP0.1;定義數(shù)據(jù)線引腳定義SCLBITP0.0;定義時(shí)鐘線引腳定義;ORG0000H;主程序入口AJMPMAIN;跳轉(zhuǎn)到主程序ORG0100H;主程序在ROM中存放位置;===============主程序=====================MAIN:MOVLED0,#00H;賦初值MOVLED1,#00HMOVLED2,#16;賦初值為16,數(shù)碼管顯示代碼為:滅MOVLED3,#16MOVLED4,#16MOVLED5,#16MOVLED6,#16MOVLED7,#16;;MOVDPTR,#TABLE;賦顯示代碼首地址MOVR1,#00H;給R1賦初值00HACALLDISPLAY;調(diào)顯示子程序MOVSP,#30H;給堆棧指針賦初值;;使用定時(shí)器1,作為波特率發(fā)生器,設(shè)定波特率=9600,;定時(shí)器初值為:FAH;串行控制器設(shè)置:SM0=0,SM1=1,SM2=0,REN=1,TB8=0,;RB8=0,TI=0,RI=0即01010000B;波特率加倍;MOVTMOD,#20H;設(shè)置定時(shí)器1,工作方式2MOVTH1,#0FAh;賦初值:FAMOVTL1,#0FAh;賦初值:FAMOVSCON,#50h;設(shè)置串行口控制寄存器MOVPCON,#80h;設(shè)置電源控制寄存器,讓波特率加倍(2X)SETBTR1;啟動(dòng)定時(shí);*****************主程序結(jié)束************************LP8:MOVA,R1;將R1的數(shù)據(jù)裝到A中;MOVSBUF,A;將A的數(shù)據(jù)送到緩沖區(qū)JNBTI,$;等待數(shù)據(jù)發(fā)送完畢CLRTI;清發(fā)送中斷標(biāo)志;INCR1CJNER1,#99,LP3MOVR1,#00HLP3:ACALLSEPERATE;調(diào)拆分程序ACALLDISPLAY;調(diào)顯示子程序ACALLDELAY_1S;調(diào)延時(shí)子程序AJMPLP8;=================拆分程序=====================SEPERATE:ANLA,#0Fh;與操作得到個(gè)位數(shù)據(jù)MOVLED0,A;個(gè)位送LED0MOVA,R1ANLA,#0F0H;與操作得到十位數(shù)據(jù)SWAPAMOVLED1,A;十位送LED1RET;===============顯示子程序======================DISPLAY:MOVDPTR,#TABLE;賦顯示代碼首地址MOVA,LED0;查表數(shù)據(jù)送AMOVCA,@A+DPTR;查表,得到顯示代碼ACALLSHIFT;調(diào)移位子程序MOVA,LED1MOVCA,@A+DPTRACALLSHIFTMOVA,LED2MOVCA,@A+DPTRACALLSHIFTMOVA,LED3MOVCA,@A+DPTRACALLSHIFTMOVA,LED4MOVCA,@A+DPTRACALLSHIFTMOVA,LED5MOVCA,@A+DPTRACALLSHIFTMOVA,LED6MOVCA,@A+DPTRACALLSHIFTMOVA,LED7MOVCA,@A+DPTRACALLSHIFTRET;顯示代碼表TABLE:DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H;0,1,2,3,4,5,6,7,8,9,DB50H,1CH,39H,16H,38H,78H,0FFH,0FEH,0EFH;10,11,12,13,14,15,滅,-;================移位子程序============================SHIFT:PUSHA;進(jìn)棧暫存A值MOVR0,#8;循環(huán)8次CLRC;清進(jìn)位標(biāo)志CLRSCL;時(shí)鐘線,先鉗位為0LP2:RLCAMOVSDA,CNOPNOPSETBSCLNOPNOPCLRSCLNOPNOPDJNZR0,LP2POPA;出?;謴?fù)A值RET;=============延時(shí)子程序===============DELAY_1S:MOVR7,#0ffHLOOP7:MOVR6,#0ffHLOOP6:NOPNOPNOPNOPNOPNOPDJNZR6,LOOP6DJNZR7,LOOP7RET;END;=============兩機(jī)串口通訊程序(從機(jī))=====================;;功能:使用串行中斷,接收數(shù)據(jù)并顯示;硬件環(huán)境:自制單片機(jī)實(shí)驗(yàn)板;軟件環(huán)境:偉福V3.20;Createdate:2022_07_26;FirstModify:2022_07_26;secondModify:;LastModify:2022_07_26;Author:Sujiande;;===========預(yù)定義===================LED0EQU40H;預(yù)定義數(shù)碼管LED1EQU41H;預(yù)定義數(shù)碼管LED2EQU42H;預(yù)定義數(shù)碼管LED3EQU43H;預(yù)定義數(shù)碼管LED4EQU44H;預(yù)定義數(shù)碼管LED5EQU45H;預(yù)定義數(shù)碼管LED6EQU46H;預(yù)定義數(shù)碼管LED7EQU47H;預(yù)定義數(shù)碼管SDABITP0.1;定義數(shù)據(jù)線引腳定義SCLBITP0.0;定義時(shí)鐘線引腳定義;ORG0000H;主程序入口AJMPMAIN;跳轉(zhuǎn)到主程序ORG0023H;中斷入口地址AJMPS_INT;跳轉(zhuǎn)到中斷程序ORG0100H;主程序在ROM中存放位置;==============主程序========================MAIN:MOVLED0,#00H;賦初值MOVLED1,#00HMOVLED2,#16;賦初值為16,數(shù)碼管顯示代碼為:滅MOVLED3,#16MOVLED4,#16MOVLED5,#16MOVLED6,#16MOVLED7,#16;MOVDPTR,#TABLE;賦顯示代碼首地址ACALLDISPLAY;調(diào)顯示子程序MOVSP,#30H;給堆棧指針賦初值;;使用定時(shí)器1,作為波特率發(fā)生器,設(shè)定波特率=9600,;定時(shí)器初值為:FAH;串行控制器設(shè)置:SM0=0,SM1=1,SM2=0,REN=1,TB8=0,;RB8=0,TI=0,RI=0即01010000B;波特率加倍;MOVTMOD,#20H;設(shè)置定時(shí)器1,工作方式2MOVTH1,#0FAh;賦初值:FAMOVTL1,#0FAh;賦初值:FAMOVSCON,#50h;設(shè)置串行口控制寄存器MOVPCON,#80h;設(shè)置電源控制寄存器,讓波特率加倍(2X);SETBEA;啟動(dòng)總中斷SETBES;啟動(dòng)串行中斷SETBTR1;啟動(dòng)定時(shí)AJMP$;等待中斷;*****************主程序結(jié)束************************;===============中斷服務(wù)程序=============================S_INT:MOVR1,SBUF;將緩沖區(qū)的數(shù)據(jù)送到R1ACALLSEPERATE;調(diào)拆分程序ACALLDISPLAY;調(diào)顯示子程序CLRRI;清接收中斷標(biāo)志RETI;中斷返回;=================拆分程序=====================SEPERATE:MOVA,R1ANLA,#0Fh;與操作得到個(gè)位數(shù)據(jù)MOVLED0,A;個(gè)位送LED0MOVA,R1ANLA,#0F0H;與操作得到十位數(shù)據(jù)SWAPA;MOVLED1,A;十位送LED1RET;===============顯示子程序======================DISPLAY:MOVA,LED0;查表數(shù)據(jù)送AMOVCA,@A+DPTR;查表,得到顯示代碼ACALLSHIFT;調(diào)移位子程序MOVA,LED1MOVCA,@A+DPTRACALLSHIFTMOVA,LED2MOVCA,@A+DPTRACALLSHIFTMOVA,LED3MOVCA,@A+DPTRACALLSHIFTMOVA,LED4MOVCA,@A+DPTRACALLSHIFTMOVA,LED5MOVCA,@A+DPTRACALLSHIFTMOVA,LED6MOVCA,@A+DPTRACALLSHIFTMOVA,LED7MOVCA,@A+DPTRACALLSHIFTRET;顯示代碼表TABLE:DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H;0,1,2,3,4,5,6,7,8,9,DB50H,1CH,39H,16H,38H,78H,0FFH,0FEH,0EFH;10,11,12,13,14,15,滅,-;================移位子程序============

溫馨提示

  • 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)論