版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
學習情景五AT89S52串行通信
學習目標:了解串行通信的基本知識掌握串行口的工作方式掌握波特率的設計掌握串行口工作方式的應用掌握程序調試的基本方法和技巧。技能目標:會對串行口進行初始化。會計算串行口通信波特率。能夠實現單片機與單片機之間、單片機和PC機之間的通信。項目一單片機點對點通信第一部分項目要求利用AT89S52實現單片機點對點通信。要求將存放在甲機的數據存儲器20H—27H單元中數據,首先在甲機上顯示,然后發(fā)送到PC機,進而再發(fā)送到乙機,以實現單片機與PC機和單片機與單片機之間的通信。
第二部分相關知識
一、串行通信基本知識
(一)串行通信的基本概念單工形式:數據只能單方向從一端向另一端傳送;如:有線電視節(jié)目。發(fā)送端接收端數據線地線半雙工形式:數據可以雙向傳送,但任一時刻只能向一個方向傳送。既可分時雙向傳送數據。如:某些對講機單工發(fā)送端接收端接收端發(fā)送端數據線地線半雙工全雙工形式:同時雙向傳送數據,因此,全雙工配置是一對單向配置,它要求兩端的通信設備都具有完整和獨立的發(fā)送和接收能力。通信效率最高,適合于計算機之間的通信。
發(fā)送端接收端接收端發(fā)送端數據線地線全雙工數據線(二)串行通信基本通信方式通信雙方要正確的進行數據傳輸,需要解決何時開始傳輸、何時結束傳輸,以及數據傳輸速率等問題,這就是數據傳輸中的同步問題。通常,實現數據同步有兩種方式:異步通信和同步通信。
1.異步通信:
數據一幀一幀地傳送。發(fā)送端和接收端可以由各自的時鐘控制數據的發(fā)送和接收,兩個時鐘源彼此獨立,互不同步。數據的一幀:由一個字符代碼組成。幀格式:一個字符由四部分組成:起始位、數據位、奇偶校驗位和停止位。起始位(0):位于字符幀的開頭,占用一位,用來通知接收設備一個待接收的字符開始到達。數據位:緊跟起始位后,5~8位數據(規(guī)定低位在前,高位在后)奇偶校驗位(可省略),占一位,用于對字符傳送作正確性檢查,因此奇偶校驗位是可選擇的,共有三種可能,即奇偶校驗、偶校驗和無校驗,由用戶根據需要選定。停止位(1)停止位用來表征字符的結束。停止位可以是1位、1.5位或2位。接收端收到停止位后,知道上一字符已傳送完畢2.同步通信
在一個數據塊的開頭使用同步字符。數據傳送時使用同一頻率的脈沖來實現發(fā)送端與接收端的嚴格時間同步。二、串行通信總線標準及其接口傳輸距離不同,可以選擇不同的總線標準。89S5289S5289S5289S52如果是長距離傳送,可采用RS-485標準。短距離傳送,只需要TX、RX和GND三根線。距離在15米左右,采用RS-232標準接口。(一一))RS-232標標準準RS-232C標準準是是美美國國EIA((電電子子工工業(yè)業(yè)聯聯合合會會))與與BELL等等公公司司一一起起開開發(fā)發(fā)的的于于1969年年公1.RS-232C的的電電氣氣特特性性數據據線線上上的的信信號號電電平平mark(邏邏輯輯1)=-3~~-15Vspace(邏邏輯輯0)=+3~~+15V(2)控控制制和和狀狀態(tài)態(tài)ON(邏輯0)=+3~+15V(接通)OFF(邏輯1)=-3~-15V(斷開)電平平轉轉換換RS-232C接口口采采用用雙雙極極性性信信號號、、公公共共地地線線和和負負邏邏輯輯;;不能和TTL電電平直直接相相連,,使用用時必必須進進行電電平轉轉換,,否則則將使使TTL電電路燒燒壞,,實際際應用用時必必須注注意??!在實實際應應用時時,必必須通通過專專用電電平轉轉換芯芯片進進行電電平轉轉換。。電平轉轉換芯芯片MC1488、、MC1489、MAX232MC1488可可實現現TTL→→RS-232的電電平轉轉換;;MC1489可可實現現RS-232→TTL的電電平轉轉換。。MAX232芯芯片可可完成成TTL到到EIA雙雙向電電平的的轉換換89S5289S52通過MAX232實現RS-232C電平轉換TTL到EIMAX232管管腳說說明如如下::①C1+、、C1-、、C2+、、C2-是是外外接接電電容容端端;;②R1IN、、R2IN則則是是2路路RS-232C電電平平信信號號接接收收輸輸入入端端;;③R1OUT、、R2OUT是是2路路轉轉換換后后的的TTL電電平平接接收收信信號號輸輸出出端端,,送送80④T1IN、T2IN是2路TTL電平發(fā)送輸入端,接80S52的TxD發(fā)送端;⑤T1OUT、T2OUT是2路轉換后的發(fā)送RS-232C電平信號輸出端,接傳輸線;⑥V+經電容接電源十5V;⑦V-經電容接地。PC機機與與AT89S52單單片片機機串串行行通通信信電電路路圖中外接電電解電容C1、C2、C3、、C4用于于電源電壓壓變換,提提高抗干擾擾能力,它它們可以取取相同數值值電容1.0μF/16V。電容容C5用于于對+5V電源的的噪聲干擾擾進行濾波波,其值一一般為0.1μFAT89S52TXDRXDGNDC1+C1-C2+C2-++C1C2T1inT1outR1inR1outV-GNDVCCV+MAX232++C3C5C4+5VGNDTXDRS232RXDIBM-PC2.信號號接口引腳信號名功能1DCD載波檢測2RXD接收數據3TXD發(fā)送數據4DTR數據終端準備就緒5GND信號地線6DSR數據準備完成7RTS發(fā)送請求8CTS發(fā)送清除9RI振鈴指示(二)AT89S52串行口口結構與控控制1.串行行口的結構構SM0、SM1:串行口工作作方式控制制位,兩位位對應四四種工作方方式,如下下表所示((fosc是晶振頻頻率)。2.串行行口控制(1)串SM2:多機通信控控制位,主主要用于方方式2和方方式3當串行口以以方式2或或方式3接接收時,如如SM2=1,則只只有當接收收到的第9位數據((RB8))為1,才才將接收到到的前8位位數據送入入SBUF,并置位位RI產生生中斷請求求,否則將將接收到的的前8位數數據丟棄。。SM2=0,不論第第9位數據據為0還是是為1,都都將前8位位數據裝入入SBUF中,并產產生中斷申申請。在方式0時時,SM2=0。REN:REN=1,允許接收;REN=0,禁止接收。TB8:發(fā)送數據第第9位方式0,方式1,此位未使用方式2和方式3:TB8=1,說明該發(fā)送幀為地址幀。TB8=0,說明該發(fā)送幀為數據幀RB8:接收數據第9位方式2和方式3:RB8存放接收到的第9位數據,代表接收數據的某種特征。若SM2=1,RB8=1,說明收到幀為地址幀。TI:發(fā)送中斷標標志在一幀數據據發(fā)送完時時置位。RI:接收中斷標志在接收到一幀有效數據后,由硬件置位。RI=1,申請中斷。RI不能自動清零,必須由軟件清零。(2)電源源控制寄存存器PCONSMOD—串行口波特率的倍增位當SMOD=1時,串行口波特率加倍。系統(tǒng)復位時,SMOD=0。三、AT89S52串行口工工作方式(一)串行行口波特率率設計1.波特特率波特率的定定義是每秒鐘傳傳送二進制制數碼的位位數(亦稱稱比特數),單位是是b/s。。假設數據傳傳送速率是是120字符/s,而每個字字符格式包包含10個個代碼(1個起始位位、1個終終止位、8個數據位位)。這時時,傳送的的波特率為為(10b//字符符)××120字字符//s=1200b/s每一位位代碼的的傳送送時間間Td為波特率率的倒倒數。2.波波特特率設設計方式0波特率率方式0波特率率=fosc/12方式2波特率率方式2波特率率=(2SMOD/64)××foscSMOD為0時,波波特率率等于于振蕩蕩器頻頻率的的1/64SMOD為1時,波波特率率等于于振蕩蕩器頻頻率的的1/32。方式1和方式式3的波特特率串行口口方式式1和方式式3的波波特率=2smod/32×(定時器1溢出率)
例如振蕩頻頻率fosc=11.0596MHZ,若若SMOD=0,通通信波波特率率為9600波波特,,則X=256-[11.0596××106×(1+0)]/(9600××384)=253=FDH初始化化程序序如下下:MOVTMOD,#20H;;設T1為為定時時方式式2MOVTHl,,#0FDH;;設定定波特特率為為9600bit//sMOVTLl,,#0FDHSETBTRl;;啟啟動定定時器器MOVPCON,#00H;;SMOD=0MOVSCON,#50H;;串串行口口工作作在方方式1(二))串行行口工工作方方式1.工工作作方式式0當SM0SMl=00時,串串行接接口選選擇工工作方方式0,為同同步移移位寄寄存器器輸入發(fā)送完置中斷標志TI為1,請求中斷。在再次發(fā)送數據之前,必須由軟件清TI為0。接收前前置REN=1和RI=0,,當8位數數據接接收結結束,,RI被置置“1”,,可通通過指指令MOVA,SBUF將將數據據讀入入。下圖采采用一一個串串入并并出移移位寄寄存器器,TXD連接接串行行口輸輸出移移位寄寄存器器164的的時鐘鐘端,,RXD連連接164的輸輸入端端,P1.0連連接164的CLR選通通端。。89S5274LS164根據硬硬件連連接,,方式式0發(fā)發(fā)送數數據程程序如如下::SETBPMOVSCON,#00H;串口工作在方式0MOVA,#DATAMOVSBUF,A;發(fā)送數據JNBTI,$ ;等待發(fā)送完?CLRTI ;清除TI中斷標志CLRP1.0 ;關閉74LS1642.工工作作方式式1工作方方式1,SM0SMl=01,為可可變波波特率率的8位異步步通信信方式式。發(fā)送數數據由由TXD端輸出出,接接收數數據由由RXD端輸入入。方式1以10位為一一幀傳傳輸,,設有有1個起始始位(0),8個數據據位和和1個停止位位(1)。其幀格格式起始始位(0),8個數據位位和1個停止位位(1)。發(fā)送時,,數據從從TXD端輸出,,當數據據寫入發(fā)發(fā)送緩沖沖器SBUF后,啟動動發(fā)送器器發(fā)送。。當發(fā)送送完一幀幀數據后后,置中中斷標志志TI為1。方式1所傳送的的波特率率取決于于定時器器1的溢出率率和PCON中的SMOD位。接收時,,由REN置1,允許接【例5.1】89S52串行行口按雙雙工方式式收發(fā)ASCII字符符,甲機機發(fā)送的的字符從從外部RAM的的1000H開開始,檢檢測到結結束字符符0AH就結束束發(fā)送,,乙機將將接收的的字符放放在內部部RAM的30H開始始的空間間。要求求通信的的波特率率為9600波波特,用用中斷方方式編寫寫通信程程序。主程序::MOVTMOD,#20H;;定時時器1設設為工作作方式2MOVTLl,,#0FDH;;定時器器初值MOVTHl,,#0FDH;;8位重重裝值SETBTRl;;啟啟動定時時器1MOVSCON,#50H;;將串串行口設設置為方方式1,,REN=lMOVDPTR,#DPTRMOVR0,#30H;接收數據區(qū)首址送R0SETBESSETB EA;開中斷ACALL SEND;先發(fā)送一個字符L00P:SJMP$;等待中斷發(fā)送子程程序SEND:CLRTIMOVA,@DPTR;;取發(fā)發(fā)送數據據到AINCDPTR;;修改發(fā)發(fā)送數據據指針MOVSBUF,A;;發(fā)發(fā)送ASCII碼CJNEA,,#0AH,SEN1;是否是是結束字字符CLRES;;關閉串串口中斷斷SEN1:RET;;返回回中斷服務務程序ORG0023H;;串串行口中中斷入口口AJMPRSI;;轉至中中斷服務務程序ORG0100HRSI::JNBRI,SEN;;TI=1,為為發(fā)送中中斷ACALLREV;;RI=1,,為接收收中斷SJMPNEXT;;轉至至統(tǒng)一的的出口SEN::ACALLSEND;;調用發(fā)發(fā)送子程程序NEXT:RETI;;中斷返返回接收子程程序REV::CLRRIMOVA,SBUF;讀出接接收緩沖沖區(qū)內容容MOV@R0,A;讀讀入接收收緩沖區(qū)區(qū)INCR0;;修改改接收數數據指針針CJNEA,#0AH,RES;;是否是是結束字字符CLRES;;關閉閉串口中中斷RES::RET;;返回3.工工作方式式2SM1SM0=10,串行接接口選擇擇工作方方式2。方式2是是11位位異步通通信方式式,每幀幀數據由由1個起起始位““0”、、9個數數據位和和1個停停止位““1”共共11構構成。其其中發(fā)送送的第9位由SCON的TB8提供供,接收收的第9位存在在SCON的RB8位位。其波波特率是是固定的的為fosc/32或或fosc/64。方式2發(fā)發(fā)送:CPU執(zhí)執(zhí)行一條條寫入SBUF的指令令就啟動動串行口口的發(fā)送送,并把把TB8的內容容裝入發(fā)發(fā)送寄存存器的第第9位。。首先發(fā)發(fā)送起始始位0,,此后每每經過一一個時鐘鐘周期產產生一個個移位脈脈沖,并并且由TXD輸輸出一個個數據位位,當11位數數據全部部發(fā)送后后,使TI置1。方式2接接收:接接收過程程和方式式1類似似,當REN=1時,,允許串串行口接接收數據據。數據據由RXD端輸輸入,接接收11位數據據。在方方式2的的接收中中,若RI=0,SM2=0或接接收到的的第9位位數據為為1,成成立則RI=1,8位位數據進進入SBUF,,第九位位進入RB8。。若不滿足足上述兩兩個條件件則接收收到的信信息將丟丟失,不不再恢復復,也不不置位RI?!纠?.2】設設計一個個發(fā)送程程序,將將片內RAM30H~3FH中的數數據串行行發(fā)送,,串行口口設定為為方式2狀態(tài),,TB8作奇偶偶校驗位位。在數數據寫入入發(fā)送緩緩沖器之之前,先先將數據據的奇偶偶位P寫寫入TB8,這這時第9位數據據作奇偶偶校驗用用。程序清單單如下::TRT::MOVSCON,##80H;;方方式2設設定MOVPCON,##80H;;取波特特率為fosc/32MOVR0,,#30HMOVR7,,#10H;;數據長長度10HLOOP:MOVA,@R0;;取數據據送AMOVC,,PSW.0;;MOVTB8,CMOVSBUF,,A;;數據據送SBUF,,啟動發(fā)發(fā)送WAIT:JBCTI,CONT;;判斷斷發(fā)送結結束否SJMPWAITCONT:INCR0DJNZR7,LOOPRET四、串行行口通信信應用舉舉例(一)雙雙機通信信應用舉舉例1.通通信雙方方的協(xié)議議(1)通通信雙方方的波特特率均為為9600波特特,均工工作在串串口方式式1。甲甲機發(fā)送送,乙機機接收。。(2)甲機機開始發(fā)送送時,先發(fā)發(fā)一個呼叫叫信號“0FH”,,乙機接收收后,若同同意接收數數據就發(fā)一一個應答信信號“01H”。(3)當甲甲機接到““01H””后,開始始發(fā)送數據據。假設發(fā)發(fā)送的數據據塊首地址址是片內RAM40H,數數據塊長度度64H。。數據塊發(fā)發(fā)送結束后后,發(fā)送累累加校驗和和。累加校校驗和是指指數據塊中中每個字節(jié)節(jié)的算術累累加和。(4)乙機機接收數據據并存在數數據緩沖區(qū)區(qū)。假設數數據緩沖區(qū)區(qū)的首地址址是片內RAM40H。乙乙機在接收收過程中對對接收的數數據塊也作作算術累加加和,并與與甲機發(fā)送送的累加和和作比較,,若相等則則表示接收收正確,給給甲機發(fā)““00H””;若不等等則表示接接收不正確確,給甲機機發(fā)“FFH”,請請求重發(fā)。。(5)甲甲機收到到“00H”后后,結束束發(fā)送,,否則將將數據重重發(fā)一次次。2.查詢詢方式下下的通信信程序甲機發(fā)送送子程序序:ATX::MOVTMOD,,#20H;;設設T1為為定時方方式2MOVTHl,#0FDH;;設定波波特率為為9600bit/sMOVTLl,#0FDHMOVPCON,,#00HSETBTRl;;啟啟動定時時器T1MOVSCON,,#50H;;串串行口初初始化ATXl:MOVA,#0FH;;發(fā)送呼呼叫信號號MOVSUBF,,AATWl:JBCTI,ATRlSJMPATWl;;等等待發(fā)送送出去ATR1:JBCRI,,ATR2;;等待乙乙機應答答SJMPATRlATR2:MOVA,SBUF;;接收應應答信號號XRLA,#01HJNZATX1;乙機機未準備備好,繼繼續(xù)呼叫叫ATX2:MOVR0,#40H;數數據塊首首地址送送R0MOVR2,#64H;;數數據塊長長度送R2MOVR3,,#00H;;清清校驗和和寄存器器ATX3:MOVA,@R0;;發(fā)送送一個數數據字節(jié)節(jié)MOVSBUF,AMOVA,R3ADDA,@R0;;求求校驗和和MOVR3,AINCR0;;修改改地址指指針ATW2:JBCTI,,ATX4SJMPATW2ATX4:DJNZR2,ATX3;判數數據塊發(fā)發(fā)送完否否MOVA,R3;;發(fā)發(fā)送校驗驗和MOVSBUF,AATW3:JBCTI,ATR3SJMPATW3ATR3:JBCRI,ATR4;等等待乙機機應答SJMPATR3ATR4:MOVA,SBUFJNZATX2;;若乙乙機回答答出錯,,則重發(fā)發(fā)RET接收子程程序:BRXD:MOVTMOD,#20H;;設T1為定定時方式式2MOVTHl,#0FDH;;設設定波特特率為9600bit/sMOVTLl,#0FDHMOVPCON,,#00HSETBTRl;;啟動定定時器T1MOVSCON,,#50H;;串串行行口口設設為為方方式式1BRXl::JBCRI,,BRX2;;等等待待甲甲機機呼呼叫叫信信號號SJMPBRXlBRX2::MOVA,,SBUFXRLA,,#0FHJNZBRXl;;判呼呼叫信信號是是否正正確BTXl::MOVA,,#01H;;發(fā)應應答信信號MOVSBUF,ABWl:JBCTI,,BRX3SJMPBWlBRX3::MOVR0,,#40H;;R0指向向接收收數據據緩沖沖區(qū)首首址MOVR2,#64H;;數數據塊塊長度度送R2MOVR3,#00H;;校驗驗和單單元清清零BRX4::JBCRI,,BRX5SJMPBRX4BRX5::MOVA,SBUFMOV@R0,,A;;接收收的數數據轉轉存INCR0ADDA,,R3;;求校校驗和和MOVR3,ADJNZR2,,BRX4;;判判數據據塊接接收完完否BW2:JBCRI,,BRX6;;接接收甲甲機校校驗和和SJMPBW2BRX6::MOVA,SBUFXRLA,,R3;;比比較校校驗和和JZBENDMOVA,,#0FFH;;校校驗和和不等等,發(fā)發(fā)錯誤誤標志志MOVSBUF,ABW3:JBCTI,,AGAIN;;轉重重
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食堂承包租賃協(xié)議規(guī)范3篇
- 2025版蟲草產業(yè)鏈上下游企業(yè)戰(zhàn)略合作合同范本3篇
- 鄭州經貿學院《金屬材料成形基礎B》2023-2024學年第一學期期末試卷
- 2024版運動場館租賃合同范本版B版
- 2024建筑工程砌墻合同范本
- 2024年適用電子廣告屏出租協(xié)議模板版B版
- 電力電氣行業(yè)員工需求
- 設備潤滑知識培訓課件
- 2025年生態(tài)保護區(qū)場地硬化與生態(tài)保護工程合同2篇
- 2024年高標準變形縫安裝工程承包協(xié)議版B版
- 主體結構驗收匯報材料T圖文并茂
- 過一個有意義的寒假課件
- 施工現場裝配式集裝箱活動板房驗收表
- 電力業(yè)擴工程竣工驗收單
- 三年級上冊口算題(1000道打印版)
- 安全保護區(qū)巡查管理規(guī)定
- 藥物性肝損傷藥物治療
- 2021年12月醫(yī)院臨床藥師培訓理論考核試題(心血管專業(yè))
- 科目一考試成績表
- 噴塑特殊過程能力確認記錄1
- 內蒙古自治區(qū)建設工程費用定額2009年版
評論
0/150
提交評論