單片機原理及其應用課件第六章2(修訂)_第1頁
單片機原理及其應用課件第六章2(修訂)_第2頁
單片機原理及其應用課件第六章2(修訂)_第3頁
單片機原理及其應用課件第六章2(修訂)_第4頁
單片機原理及其應用課件第六章2(修訂)_第5頁
已閱讀5頁,還剩82頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及其應用揚州大學1單片機原理及其應用(Principle and Application of Single Chip Microcomputer)單片機原理及其應用揚州大學2第1章 概述第2章 MCS-51單片機硬件結構第3章 MCS-51尋址方式和指令系統(tǒng)第4章 MCS-51匯編程序設計第5章 中斷系統(tǒng)第6章 定時器/計數(shù)器及串行口第7章 存儲器擴展第8章 接口電路擴展第9章 應用舉例單片機原理及其應用揚州大學3第6章 定時器/計數(shù)器、及串行口6.1 定時/計數(shù)器結構特點及控制6.2 串行通信及其接口單片機原理及其應用揚州大學46.2 串行通信及其接口6.2.1 概述6.2.2

2、MCS-51的串行口6.2.3 串行口的編程單片機原理及其應用揚州大學56.2.1 概述 串行通信是將字符數(shù)據(jù)的每位一位一位地依次傳送。適合于計算機之間、計算機與外部設備之間的遠距離通信。 串行通信從傳輸方式分為: 單工方式、半雙工方式、全雙工方式。 從接收方式來說,串行通信有兩種方式: 異步通信方式、同步通信方式。單片機原理及其應用揚州大學6單片機原理及其應用揚州大學7單片機原理及其應用揚州大學8單片機原理及其應用揚州大學96.2.2 MCS-51的串行口一、 串行口的結構二、 串行口的工作方式三、 波特率的計算單片機原理及其應用揚州大學10一、 串行口的結構 下圖是簡化的串行口結構示意圖。

3、串行口有兩個獨立的發(fā)送、接收緩沖器SBUF。可同時發(fā)送與接收數(shù)據(jù)。發(fā)送緩沖器只寫不能讀,接受緩沖器只讀不能寫。要注意的是它們共用一個SFR地址(99H), 也就有相同緩沖器名:SBUF 單片機原理及其應用揚州大學111串行口控制寄存器SCONSCON的字節(jié)地址為98H,可位尋址。格式如圖所示。 D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI9F9E9D9C9B9A9998SCON位地址SM0,SM1:選擇串行口4種工作方式。899單片機原理及其應用揚州大學12RIRI:接收中斷標志,接收一幀結束,RI=1,必須軟件清零。TITI:發(fā)送中斷標志,發(fā)送一幀結束,TI=

4、1,必須軟件清零。 RB8RB8:接收的第9位數(shù)據(jù)位或停止位。TB8TB8: : 發(fā)送的第9位數(shù)據(jù)位,可用作校驗位和地址/數(shù)據(jù)標識位。RENREN:允許接收控制位,REN=1,允許接收;REN=0,禁止接收SM2SM2:多機通信控制位(接收控制)。方式0:SM2=0。方式1:一般SM2=0;若SM2=1,接收到停止位后,才激活RI。方式2,3: SM2=1, 只有接收到 RB8=1, 數(shù)據(jù)才進入SBUF,并使RI=1。 若RB8=0,數(shù)據(jù)丟棄。 SM2=0, 不管RB8是何值,數(shù)據(jù)都進SBUF, 并使RI=1。 D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI9F9

5、E9D9C9B9A9998SCON位地址單片機原理及其應用揚州大學132特殊功能寄存器PCON 其字節(jié)地址為87H,沒有位尋址功能。PCON的格式如圖所示,其中與串行接口有關的只有D7位SMOD。PCON格式SMOD=1 使波特率加倍。PCONSMOD D7D6D5D4D3D2D1D0 通用標志位節(jié)電工作方式單片機原理及其應用揚州大學14二、 串行口的工作方式單片機原理及其應用揚州大學151方式0 方式0是同步移位寄存器輸入輸出方式,用來擴展并行口。不用于通信。8位數(shù)據(jù)為一幀,無起始位和停止位。1)方式0發(fā)送 CPU寫入發(fā)送緩沖器SBUF一字節(jié)數(shù)據(jù),產(chǎn)生一個正脈沖,串口開始從低位起,以fosc

6、/12的固定波特率從RxD輸出數(shù)據(jù),同時在TxD上出現(xiàn)同步移位時鐘。8位數(shù)據(jù)發(fā)完后,置位TI。單片機原理及其應用揚州大學162)方式0接收 當CPU向SCON寫入控制字(方式0,REN=1,RI=0), 產(chǎn)生一個正脈沖,串口開始以fosc/12的固定波特率從RxD接受數(shù)據(jù), 同時TxD發(fā)出移位脈沖信號,作為外接芯片的移位時鐘。8位數(shù)據(jù)收完后,置位RI。單片機原理及其應用揚州大學172. 方式1可變波特率8位異步收發(fā)方式啟動發(fā)送過程MOV SBUF, A發(fā)送完時,TI=1方式1的一幀數(shù)據(jù)為10位。波特率可變:溢出率波特率1T322SMOD方式1發(fā)送 CPU寫入發(fā)送緩沖器SBUF一字節(jié)數(shù)據(jù),內(nèi)部

7、/SEND 變低,串口開始從數(shù)據(jù)低位起,以TX時鐘波特率從TxD輸出數(shù)據(jù),即每經(jīng)過一個TX時鐘,TxD上輸出一個數(shù)據(jù)位。8位數(shù)據(jù)發(fā)完后,置位TI,/SEND 信號失效。單片機原理及其應用揚州大學18讀轉(zhuǎn)換結果If RIMOV A, SBUF2)方式1接收 CPU向SCON寫入控制字(方式1,REN=1,RI=0), 串口開始從RxD檢測負跳變。出現(xiàn)負跳變后,位檢測采樣器啟動,以波特率16倍的速率采樣RxD。在7,8,9三次脈沖處采樣,并以三中取二確定起始位。起始位到了后,以同樣的方法接收其它數(shù)據(jù)。 一幀數(shù)據(jù)收到后先放在移位寄存器中,滿足下列條件,數(shù)據(jù)才進SBUF,并置位RI。 RI=0, 說明

8、接收SBUF空。 SM2=0 或 SM2=1且收到的停止位1(第九位1) 。單片機原理及其應用揚州大學193方式2 固定波特率9位異步收發(fā)方式 方式2是9位異步收發(fā)方式,每幀數(shù)據(jù)均為11位。在8位數(shù)據(jù)后加了可程控的第九位數(shù)據(jù),可用于多機通信。波特率固定為:fosc642SMOD波特率方式2發(fā)送 按通信協(xié)議設置TB8 (奇偶校驗或地址/數(shù)據(jù)標志), CPU寫入發(fā)送緩沖器SBUF一字節(jié)數(shù)據(jù),啟動發(fā)送過程。串口自動把TB8裝到第九位數(shù)據(jù)位,逐位發(fā)出,完畢,置位TI。單片機原理及其應用揚州大學20【例6-11】(7-1) 方式2發(fā)送在雙機通信中的應用 通信檢錯采用偶校驗,放在TB8中發(fā)送。用第二組工作

9、寄存器區(qū)的R0作為發(fā)送數(shù)據(jù)指針。下面是發(fā)送中斷服務程序:PIPTI:PUSH PSWPUSH ASETB RS1;選第二組寄存器CLR RS0CLR TI;清發(fā)送標志MOV A, R0;取數(shù)據(jù)MOV C, P;奇:P=1, 偶:P=0MOV TB8, C;校驗位送TB8MOV SBUF, A; 數(shù)據(jù)進SBUF, 啟動發(fā)送INC R0;調(diào)整指針POP APOP PSWRETI單片機原理及其應用揚州大學212)方式2接收 當CPU向SCON寫入控制字(方式2,REN=1,RI=0), 串口開始從RxD檢測負跳變。出現(xiàn)負跳變后,位檢測采樣器啟動,以波特率16倍的速率采樣RxD。在7,8,9三次脈沖處

10、采樣,并以三中取二確定起始位。起始位到了后,以同樣的方法接收其它數(shù)據(jù)。 一幀數(shù)據(jù)(11位)收到后先放在移位寄存器中,滿足下列條件,8位數(shù)據(jù)才進SBUF,并置位RI。 RI=0, 說明接收SBUF空。 SM2=0 或 SM2=1且收到的第九位數(shù)據(jù)RB81 。單片機原理及其應用揚州大學22【例6-12】(7-2) 方式2接收在雙機通信中的應用 通信檢錯采用偶校驗,對RB8中的校驗位作偶校驗處理。選用第一組工作寄存器區(qū)的R0作為接收數(shù)據(jù)指針。下面是接收中斷服務程序:單片機原理及其應用揚州大學23PIRI:PUSH PSWPUSH ASETB RS0;選第一組寄存器CLR RS1CLR RI;清接收標

11、志MOV A, SBUF;從接收緩沖區(qū)取數(shù)據(jù)MOV C, P; 獲得接收數(shù)據(jù)的奇偶性JNC L1;偶數(shù)個1,轉(zhuǎn)查RB8=0?JNB RB8, ERP; 奇數(shù)個1,轉(zhuǎn)查RB8=1?AJMP L2;奇偶性正確L1:JB RB8, ERP ; (RB8=1)偶校驗錯,轉(zhuǎn)出錯處理L2:MOV R0, A;存接收的數(shù)據(jù)INC R0POP APOP PSWRETI單片機原理及其應用揚州大學244方式3 可變波特率9位異步收發(fā)方式 方式3和方式2一樣可發(fā)送或接收11位數(shù)據(jù),一個起始位(0),8個數(shù)據(jù)位(低位在先),附加第9個數(shù)據(jù)位(可編程控制位)及一個停止位(1)。 方式3和方式2通信波特率不同,方式2的波

12、特率是固定的。 方式3的波特率和方式1類似,可以有多種選擇,與定時器T1的溢出率有關。為避免反復對T1裝入初值,常選用方式2,此時T1計數(shù)器為8位,當需要較低波特率時,才選用其他工作方式。單片機原理及其應用揚州大學25三、 波特率的計算方式1, 3的波特率是可變的。設用T1作波特率發(fā)生器: 波特率=(2SOMD/32)*T1溢出率 波特率的定義:串口每秒鐘發(fā)送(接收)的位數(shù)。 方式0和方式2是固定波特率: 方式0 波特率 fosc/12 , fosc=12MHz, 波特率為1Mb/s 方式2fosc=12MHz, SMOD=0, 波特率為187.5kb/s, SMOD=1, 波特率為375 k

13、b/s。fosc642SMOD波特率1T=12 (2)osckfX溢出率單片機原理及其應用揚州大學26T1作波特率發(fā)生器,波特率計算公式為:其中,k為T1計數(shù)器的位數(shù),取決于T1的工作方式,可以是13(方式0)、16(方式1)和 8(方式2)。T1作波特率發(fā)生器,最常用的是方式2。23212(2)SMODosckfX波特率23212(256)SMODoscfX波特率(1)2384koscfSMODX波特率(1)256384oscfSMODX波特率單片機原理及其應用揚州大學27單片機原理及其應用揚州大學28波特率計算【例6-13】(7-3) 用T1方式2作波特率發(fā)生器,波特率為4800b/s。晶

14、振頻率12MHz取SMOD=0 實際波特率 4460b/s, 誤差較大。晶振頻率取11.0592MHz,可得精確的波特率(X=250)61 10256249.489324800X249=F9H6112 1048003212 (256)X波特率6111.0592 1048003212 (256250)波特率波特率計算【例6-13】(7-3) 用T1方式2作波特率發(fā)生器,波特率為4800b/s。晶振頻率12MHz取SMOD=0 實際波特率 4460b/s, 誤差較大。晶振頻率取11.0592MHz,可得精確的波特率(X=250)單片機原理及其應用揚州大學29四、串行口簡單應用串行口簡單應用 串行口

15、初始化編程格式:SIO: MOV SCON,#控制狀態(tài)字;寫方式字且TI=RI=0 (MOV PCON,#Z) ;波特率是否加倍 ( MOV TMOD,#20H ) ;T1作波特率發(fā)生器 ( MOV TH1,#X ) ;選定波特率 ( MOV TL1,#Y ) ( SETB TR1) ( SETB EA) ( SETB ES) ;開串行口中斷單片機原理及其應用揚州大學30發(fā)送程序發(fā)送程序:先發(fā)送一個字符,等待TI=1后再發(fā)送下一個字符。1.查詢方式發(fā)送:查詢方式發(fā)送:TRAM:MOV A,R0 ;取數(shù)據(jù) MOV SBUF,A ;發(fā)送一個字符WAIT: JBC TI,NEXT ;等待發(fā)送結束 S

16、JMP WAITNEXT:INC R0 ;準備下一次發(fā)送 SJMP TRAM單片機原理及其應用揚州大學312.中斷方式發(fā)送:中斷方式發(fā)送: ORG0023H ;串行口中斷入口 AJMP SINTMAIN: ;初始化編程TRAM: MOVA,R0 ;取數(shù)據(jù) MOVSBUF,A ;發(fā)送第一個字符H1: SJMPH1 ;其它工作SINT: CLR TI ;中斷服務程序 INCR0 MOVA,R0 ;取數(shù)據(jù) MOVSBUF,A ;發(fā)送下一個字符 RETI單片機原理及其應用揚州大學32接收程序接收程序:REN=1、RI=0, 等待接收,當RI=1,從 SBUF讀取數(shù)據(jù)。1.查詢方式接收:查詢方式接收:

17、WAIT:JBC RI,NEXT;查詢等待 SJMP WAITNEXT:MOV A,SBUF ;讀取接收數(shù)據(jù) MOV R0,A;保存數(shù)據(jù) INC R0 ;準備下一次接收 SJMP WAIT單片機原理及其應用揚州大學332.中斷方式接收:中斷方式接收: ORG0023H AJMPRINTMAIN: ;初始化編程H1: SJMPH1 ;其它任務 RINT: CLRRI ;清中斷標志 MOVA,SBUF ;讀取接收數(shù)據(jù) MOVR0,A;保存數(shù)據(jù) INCR0 RETI單片機原理及其應用揚州大學346.2.3 串行口的編程一、 硬件連接二、 雙機通信三、 多機通信單片機原理及其應用揚州大學35兩臺803

18、1直接通信RxDBTxDB一、 硬件連接單片機原理及其應用揚州大學36兩臺8051互傳數(shù)據(jù)8051-28051-1單片機原理及其應用揚州大學37 單片機與單片機與RS232C接口接口(1)集成電路電平轉(zhuǎn)換電路MC1488,1489(2)集成電路電平轉(zhuǎn)換器Max232。(3)分離元件電平轉(zhuǎn)換電路。單片機原理及其應用揚州大學38兩臺8031采用RS232C總線通信單片機原理及其應用揚州大學398031單片機和PC機通過RS232C總線通信接口圖單片機原理及其應用揚州大學40單片機原理及其應用揚州大學41二、雙機通信【例6-14】甲乙雙方以串口方式1(8位數(shù)據(jù))發(fā)送/接收數(shù)據(jù)塊。通信協(xié)議:波特率48

19、00b/s應答甲機發(fā)呼叫信號“06H” 乙機發(fā)應答信號“00H”表示可以接收“05H” 暫不接收數(shù)據(jù)格式 字節(jié)數(shù) 數(shù)據(jù)1 數(shù)據(jù)2 數(shù)據(jù)n 累加校驗和 乙機計算的累加和與接收的累加和相同時,發(fā)“0FH”否則發(fā)“F0H”,甲機收到“F0H”則重發(fā)。單片機原理及其應用揚州大學421. 甲機發(fā)送 甲機將30H開始10個單元內(nèi)容發(fā)送給乙機,以查詢方式發(fā)送。 晶振11.0592MHz, T1方式2的初值是FAH R1 : 數(shù)據(jù)區(qū)指針 R7: 數(shù)據(jù)長度 R6: 累加和 單片機原理及其應用揚州大學43R1單片機原理及其應用揚州大學44ORG 0HSTART:MOV TMOD, #20H;T1定時方式2MOV

20、TH1, #0FAH;4800b/sMOV TL1, #0FAHMOV SCON, #50H ;串口方式1,REN=1SETB TR1AGAIN:CLR P1.0CLR TICLR RIMOV R1, #30H;數(shù)據(jù)區(qū)首地址MOV R7, #10;10個數(shù)據(jù)MOV R6, #0;累加和清0TX_ACK:MOV A, #06H;發(fā)呼叫“06HMOV SBUF, AWAT:JNB TI, WATCLR TI單片機原理及其應用揚州大學45RX_REP:JNB RI, RX_REP;等待接收00HCLR RIMOV A, SBUF;接收應答CJNE A, #00H, TX_ACK ;應答不對,重 ;新

21、呼叫TX_NUM:MOV A, R7;發(fā)字符數(shù)(數(shù)據(jù)長度)MOV SBUF, AWAIT2:JNB TI, WAIT2CLR TITX_DAT:MOV A, R1;發(fā)數(shù)據(jù)MOV SBUF, AADD A, R6;計算累加和MOV R6, AINC R1單片機原理及其應用揚州大學46WAIT3:JNB TI, WAIT3 CLR TIDJNZ R7, TX_DAT;未完,再發(fā)下一個; 數(shù)據(jù)MOV A, R6;發(fā)累加和MOV SBUF, AWAIT4:JNB TI, WAIT4CLR TICHECK:JNB RI, CHECKCLR RIMOV A, SBUFCJNE A, #0FH, AGAIN

22、;傳送不正確,重發(fā)SETB P1.0;正確SJMP $單片機原理及其應用揚州大學472. 乙機接收 乙機從40H開始存放接收到的數(shù)據(jù),以查詢方式接收。F0=0 暫不接收(回甲機05H)F0=1 接收(回甲機00H) 晶振11.0592MHz, T1方式2的初值是FAH R1 : 數(shù)據(jù)區(qū)指針 R7: 數(shù)據(jù)長度 R6: 累加和單片機原理及其應用揚州大學48R1R1單片機原理及其應用揚州大學49ORG 0HSTART:MOV TMOD, #20H;T1方式2MOV TH1, #0FAH;4800b/sMOV TL1, #0FAHMOV SCON, #50H ;串口方式1,REN=1SETB TR1S

23、T:MOV R1, #40H;數(shù)據(jù)區(qū)首地址MOV R6, #0RX_ACK:JNB RI, RX_ACK;接收字符CLR RIMOV A, SBUF;取呼叫信號CJNE A, #06H, TX_05JBC F0, TX_00 ;同意接收TX_05:MOV A, #05H;不同意接收,回05HMOV SBUF, A SJMP RX_ACK單片機原理及其應用揚州大學50TX_00:MOV A, #00H; 發(fā)同意接收信號MOV SBUF, ARX_NUM:JNB RI, RX_NUM;接收字符數(shù)(數(shù)據(jù)長度)CLR RIMOV A, SBUFMOV R7, A;存字符計數(shù)值RX_DAT:JNB RI

24、, RX_DAT;接收數(shù)據(jù)CLR RIMOV A, SBUFMOV R1, A;存數(shù)據(jù)INC R1ADD A, R6;計算累加和MOV R6, ADJNZ R7, RX_DAT; 數(shù)據(jù)接收完?RX_SUM:JNB RI, RX_SUM;接收累加和CLR RI單片機原理及其應用揚州大學51MOV A, SBUFCJNE A, R6, TX_ERR;比較累加和正確否TX_OK:MOV A, #0FH ;正確發(fā)送回0FHMOV SBUF, A SJMP GOODTX_ERR:MOV A, #0F0H ;不正確發(fā)送回0F0HMOV SBUF, ASJMP STGOOD:SJMP $單片機原理及其應用揚

25、州大學52三、 多機通信1. 多機通信一般結構(主從機模式) MCS-51間多機通信PC機與MCS-51間多機通信TXDRXD單片機原理及其應用揚州大學53 2多機通信原理 多機通信與雙機通信主要不同在于主機如何識別從機。1)給每個從機分配不同的地址(一字節(jié))。2)發(fā)送的地址幀與數(shù)據(jù)幀應有不同的標識。 串行口控制寄存器SCON中的SM2為多機通信控制位。串行口以方式2或3接收時:若SM2=1時,僅當接收到的第9位數(shù)據(jù)RB8為1時,數(shù)據(jù)才裝入SBUF,置位RI,請求CPU處理(地址);當SM2=0時,則接收到一個數(shù)據(jù)后,不管第9位數(shù)據(jù)RB8是0還是1,都將數(shù)據(jù)裝入接收緩沖器SBUF,置位RI,請

26、求CPU處理。單片機原理及其應用揚州大學54主機利用TB8安排地址與數(shù)據(jù)幀:TB8=1: 地址幀, TB8=0: 數(shù)據(jù)幀。從機用SM2識別地址幀:設定SM2=1, (1)接收到的RB81時,為地址幀,該幀數(shù)據(jù)裝入SBUF,置位RI,請求CPU處理主機地址呼叫;(2)若接收到的RB80時,為數(shù)據(jù)幀,丟棄。單片機原理及其應用揚州大學55具體多機通信過程:所有從機的SM2=1, 只接收地址幀。2. 主機置TB8=1, 發(fā)送某一從機地址。3. 所有從機收到地址幀后,與本機地址比較:相同,令SM2=0, 準備接收數(shù)據(jù)幀;不同,維持SM2=1, 對其后的數(shù)據(jù)幀不響應。4. 主機置TB8=0, 與被選中的從

27、機進行通信。5. 通信結束后,從機再次令SM2=1。單片機原理及其應用揚州大學56【例6-15】(7-4) 甲乙雙方以串口方式1(8位數(shù)據(jù))發(fā)送/接收數(shù)據(jù)塊。1. 甲機發(fā)送 甲方將78H,77H單元內(nèi)容(2000H)作首地址,76H,75H單元內(nèi)容(2020H)減一作末地址的外部數(shù)據(jù)存儲器的數(shù)據(jù)塊發(fā)送給乙方。 波特率選4800 b/s, 晶振頻率6MHz.T1方式1作波特率發(fā)生器,需要在其中斷服務程序中重賦初值: 甲機以查詢方式發(fā)送地址,中斷方式發(fā)送數(shù)據(jù)。66 102655366553012(324800)X=FFFAH單片機原理及其應用揚州大學57主程序流程圖單片機原理及其應用揚州大學58O

28、RG 0RESET:LJMP MAINORG 001BHLJMP T1INT;T1中斷入口ORG 0023HLJMP SINT;串口中斷入口ORG 0100HMAIN: MOV SP, #60HMOV 78H, #20H;數(shù)據(jù)塊首地址MOV 77H, #00HMOV 76H, #20H;數(shù)據(jù)塊末地址MOV 75H, #20HACALL TRANS;調(diào)發(fā)送子程序HERE:AJMP HERE單片機原理及其應用揚州大學59發(fā)送子程序流程圖單片機原理及其應用揚州大學60TRANS:ANL TMOD, #0FH ;保留T0方式不變ORL TMOD, #10H ;T1方式1MOV TL1, #0FAH ;

29、 T1初值MOV TH1, #0FFHMOV PCON, #80H ;SMOD=1SETB EA ;CLR ES ; 關串口中斷SETB ET1SETB PT1 ;T1高優(yōu)先級CLR PS ; 串口低優(yōu)先級SETB TR1 ;啟動T1CLR T1 ; 清發(fā)送中斷標志MOV SCON, #40H ;串口方式1MOV SBUF, 78H ;發(fā)送首地址高8位WAIT1:JNB TI,WAIT1 ;等待SBUF空單片機原理及其應用揚州大學61CLR TIMOV SBUF, 77H;發(fā)送首地址低8位WAIT2:JNB TI, WAIT2CLR TIMOV SBUF, 76H;發(fā)送末地址高8位WAIT3:

30、JNB TI, WAIT3CLR TIMOV SBUF, 75H;發(fā)送末地址低8位SETB ES;允許串口中斷CLR F0; 置發(fā)送數(shù)據(jù)開始標志W(wǎng)AIT4:JNB F0,WAIT4 ;等待全部數(shù)據(jù)發(fā)送完CLR TIRETT1中斷服務程序:T1INT:CLR TR1 ;關T1MOV TL1, #0FAH ;重置初值MOV TH1, #0FFHSETB TR1 ;啟動T1RETI單片機原理及其應用揚州大學62串口中斷發(fā)送流程圖單片機原理及其應用揚州大學63串口中斷服務程序:SINT:PUSH DPLPUSH DPHPUSH AESCOM:MOV DPH, 78H ;設置數(shù)據(jù)指針MOV DPL, 7

31、7HMOVX A, DPTR ;取數(shù)據(jù)CLR TI;清發(fā)送中斷標志MOV SBUF, A;發(fā)送數(shù)據(jù)MOV A, DPH; CJNE A, 76H, END1;判是否到數(shù)據(jù)塊末尾MOV A, DPLCJNE A, 75H, END1 ;再判低位,未到末尾CLR ES;已到末尾,關串口中斷單片機原理及其應用揚州大學64CLR ET1;關T1中斷CLR TR1;關T1SETB F0; 置數(shù)據(jù)發(fā)送結束標志 ESCOM1:POP APOP DPHPOP DPLRETIEND1:INC 77H;數(shù)據(jù)塊低地址加1MOV A, 77HJNZ END2;判是否向高地址進位INC 78H;數(shù)據(jù)塊地址高位加1END

32、2:SJMP ESCOM1單片機原理及其應用揚州大學652. 乙機接收 波特率與甲機相同為4800 b/s( 晶振頻率6MHz)。 開始接收的第一、二字節(jié)是數(shù)據(jù)塊首地址,第三、四字節(jié)是數(shù)據(jù)塊末地址減一。從第五字節(jié)開始是數(shù)據(jù)。設置地址/數(shù)據(jù)接收標志B.0, B.0 0,接收地址; B.01,接收數(shù)據(jù)。接收的地址放在78H, 77H, 76H, 75H四個單元 乙機以中斷方式接收甲機發(fā)送的數(shù)據(jù)。單片機原理及其應用揚州大學66ORG 0RESET:LJMP MAINORG 001BHLJMP T1INT;T1中斷入口ORG 0023HLJMP RSINT;串口中斷入口ORG 0100HMAIN: M

33、OV SP, #60HACALL RECEIVE;調(diào)接收程序AJMP $主程序單片機原理及其應用揚州大學67接收子程序單片機原理及其應用揚州大學68RECEIVE:ANL TMOD, #0FH ;保留T0方式不變ORL TMOD, #10H ;T1方式1MOV TL1, #0FAH ; T1初值MOV TH1, #0FFHMOV PCON, #80H ;SMOD=1SETB EA ;SETB ET1SETB ES ; 允許串口中斷SETB PT1 ;T1高優(yōu)先級CLR PS ; 串口低優(yōu)先級SETB TR1 ;啟動T1MOV SCON, #50H ;串口方式1,允許接收CLR B.0 ;置地址

34、/數(shù)據(jù)標志為地址MOV 70H, #78H ;70H放起始接收地址單片機原理及其應用揚州大學69CLR F0;置接收狀態(tài)標志W(wǎng)AIT:JNB F0, WAIT ; F0=0, 處于接收狀態(tài)。RET;否則,退出接收T1中斷服務程序:T1INT:CLR TR1 ;關T1MOV TL1, #0FAH ;重置初值MOV TH1, #0FFHSETB TR1 ;啟動T1RETI單片機原理及其應用揚州大學70接收中斷流程圖單片機原理及其應用揚州大學71RSINT:PUSH DPLPUSH DPHPUSH AMOV A, R0; 保護R0PUSH AJB B.0, DATA1;是數(shù)據(jù),轉(zhuǎn)接收數(shù)據(jù)MOV R0

35、, 70H;R0指向片內(nèi)RAM單元地址MOV A, SBUF;接收地址MOV R0, A;存入相應RAM單元DEC 70H;存放地址減一CLR RI;清接收中斷標志MOV A, #74HCJNE A, 70H, RETURN ;地址未接收完,返回SETB B.0; 置接收數(shù)據(jù)標志單片機原理及其應用揚州大學72RETURN:POP AMOV R0, A;恢復R0POP APOP DPHPOP DPLRETIDATA1:MOV DPH, 78H ; 取數(shù)據(jù)存放地址MOV DPL, 77H;到DPTR MOV A, SBUF; 接收數(shù)據(jù)MOVX DPTR, A ;存入外部存儲器CLR RI; 清接收

36、中斷標志INC 77H;存放地址加1單片機原理及其應用揚州大學73MOV A, 77HJNZ END2;高位地址不用加1INC 78H;加低位地址進位END2:MOV A, 76H;檢查是否到達數(shù)據(jù)末地址CJNE A, 78H, RETURN MOV A, 75HCJNE A, 77H, RETURNCLR ES; 關串口中斷CLR ET1;關T1中斷CLR TI;SETB F0;置接收完數(shù)據(jù)標志AJMP RETURN單片機原理及其應用揚州大學74【例6-16】(7-5) 甲乙雙方以串口方式3(8位數(shù)據(jù))發(fā)送/接收數(shù)據(jù)塊。1. 甲機發(fā)送 甲方先發(fā)送存在78H,77H單元的地址,然后發(fā)送00H,

37、 01H, , FEH 共255個數(shù)據(jù)。 波特率選2400 b/s, 晶振頻率6MHz。T1作波特率發(fā)生器,工作在方式2 ,初值為F3H 甲機以查詢方式發(fā)送地址,中斷方式發(fā)送數(shù)據(jù)。TB8=1 地址TB8=0 數(shù)據(jù)6(1)6 10 (1 1)2562562433384384 2400oscfSMODXF H波特率單片機原理及其應用揚州大學75流程圖單片機原理及其應用揚州大學76程序:ORG 0LJMP TRANSORG 0023HLJMP SINT;串口中斷入口ORG 0100HTRANS:MOV A, #20H; T1方式2MOV TMOD, A;MOV TL1, #0F3H ; 波特率初值MOV TH1, #0F3HMOV PCON, #80HSETB EA; CPU開中斷CLR ES;禁止串口中斷CLR ET1;禁止T1中斷SETB TR1; 啟動T1MOV SCON, #0E0H ; 串口方式3, SM2=1SETB TB8; 地址標識單片機原理及其應用揚州大學77MOV SBUF, 78H ;發(fā)送高位地址WAIT1:JNB TI, WAIT1 ; 等待發(fā)送一字節(jié)CLR TI; 清發(fā)送標志MOV SBUF, 77H ;發(fā)送低位地址MOV IE, #90H; CPU,串口開中斷CLR TB8;數(shù)據(jù)標識MOV A, #00H ;第一個數(shù)據(jù)WAIT2:CJNE A, #

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論