freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[計算機軟件及應(yīng)用]項目五、串行通信應(yīng)用(編輯修改稿)

2025-02-15 17:40 本頁面
 

【文章內(nèi)容簡介】 ;更新數(shù)據(jù)單元 DJNZ R7,START ;循環(huán)發(fā)送至結(jié)束 RET 乙機接收 編程使乙機接收甲機發(fā)送過來的數(shù)據(jù)塊 , 并存入片內(nèi) 50H~ 6FH單元 。 接收過程要求判斷RB8, 若出錯置 F0標志為 1, 正確則置 F0標志為0, 然后返回 。 在進行雙機通信時 , 兩機應(yīng)采用相同的工作方式和波特率 。 參考接收子程序如下: MOV SCON, 80H ;設(shè)置串行口為方式 2 MOV PCON, 80H ; SMOD=1 MOV R0, 50H ;設(shè)置數(shù)據(jù)塊指針 MOV R7, 20H ;設(shè)置數(shù)據(jù)塊長度 SETB REN ;啟動接收 WAIT: JBC RI, READ ;判斷是否接收完一幀 。 若完 , 清 RI, 讀入數(shù)據(jù) AJMP WAIT ;未完等待 READ: MOV A, SBUF ;讀入一幀數(shù)據(jù) JNB ,PZ ;奇偶位為 0則轉(zhuǎn) JNB RB8, ERR ; P=1, RB8=0, 則出錯 SJMP RIGHT ;二者全為 1, 則正確 PZ: JB RB8, ERR ; P=0, RB8=1, 則出錯 RIGHT: MOV @R0, A ;正確 , 存放數(shù)據(jù) INC R0 ;更新地址指針 DJNZ R7, WAIT ;判斷數(shù)據(jù)塊是否接收完 CLR ;接收正確 , 且接收完清F0標志 RET ;返回 ERR: SETB ;出錯 , 置 F0標志為 1 RET ;返回 ( 2) 中斷方式 在很多應(yīng)用中 , 雙機通信的接收方都采用中斷的方式來接收數(shù)據(jù) , 以提高 CPU的工作效率;發(fā)送方仍然采用查詢方式發(fā)送 。 編程將甲機片內(nèi) 60H~ 6FH單元的數(shù)據(jù)塊從串行口發(fā)送 , 在發(fā)送之前將數(shù)據(jù)塊長度發(fā)送給乙機 ,當發(fā)送完 16個字節(jié)后 , 再發(fā)送一個累加校驗和 。定 義雙機 串行口 按方式 1 工作 , 晶振 為, 波特率為 2400b/s, 定時器 1按方式 2工作 。 經(jīng)計算或查表 54得到定時器預(yù)置值為 0F4H, SMOD=0。 參考發(fā)送子程序如下: MOV TMOD, 20H ;設(shè)置定時器 1為方式 2 MOV TL1, 0F4H ;設(shè)置預(yù)置值 MOV TH1, 0F4H SETB TR1 ;啟動定時器 1 MOV SCON, 50H ;設(shè)置串行口為方式 1, 允許接收 START: MOV R0, 60H ;設(shè)置數(shù)據(jù)指針 MOV R5, 10H ;設(shè)置數(shù)據(jù)長度 MOV R4, 00H ;累加校驗和初始化 MOV SBUF, R5 ;發(fā)送數(shù)據(jù)長度 WAIT1: JBC TI, TRS ;等待發(fā)送 AJMP WAIT1 TRS: MOV A, @R0 ;讀取數(shù)據(jù) MOV SBUF, A ;發(fā)送數(shù)據(jù) ADD A, R4 MOV R4, A ;形成累加和 INC R0 ;修改數(shù)據(jù)指針 WAIT2: JBC TI, CONT ;等待發(fā)送一幀數(shù)據(jù) AJMP WAIT2 CONT: DJNZ R5, TRS ;判斷數(shù)據(jù)塊是否發(fā)送完 MOV SBUF, R4 ;發(fā)送累加校驗和 WAIT3: JBC TI, WAIT4 ;等待發(fā)送 AJMP WAIT3 WAIT4: JBC RI, READ ;等待乙機回答 AJMP WAIT4 READ: MOV A, SBUF ;接收乙機數(shù)據(jù) JZ RIGHT ; 00H, 發(fā)送正確 , 返回 AJMP START ;發(fā)送出錯 , 重發(fā) RIGHT: RET 乙機接收 乙機接收甲機發(fā)送的數(shù)據(jù) , 并存入以2022H開始的片外數(shù)據(jù)存儲器中 。 首先接收數(shù)據(jù)長度 , 接著接收數(shù)據(jù) , 當接收完 16個字節(jié)后 , 接收累加和校驗碼 , 進行校驗 。 數(shù)據(jù)傳送結(jié)束后 , 根據(jù)校驗結(jié)果向甲機發(fā)送一個狀態(tài)字 , 00H表示正確 , 0FFH表示出錯 , 出錯則甲機重發(fā) 。 接收采用中斷方式 。 設(shè)置兩個標志位 (7FH, 7EH位 ) 來判斷接收到的信息是數(shù)據(jù)塊長度 、 數(shù)據(jù)還是累加校驗和 。 參考接收程序如下: ORG 0000H LJMP CSH ;轉(zhuǎn)初始化程序 ORG 0023H LJMP INTS ;轉(zhuǎn)串行口中斷程序 ORG 0100H CSH: MOV TMOD, 20H ;設(shè)置定時器 1為方式 2 MOV TL1, 0F4H ;設(shè)置預(yù)置值 MOV TH1, 0F4H SETB TR1 ;啟動定時器 1 MOV SCON,50H ;串行口初始化 SETB 7FH ;置長度標志位為 1 SETB 7EH ;置數(shù)據(jù)塊標志位為 1 MOV 31H, 20H ;規(guī)定外部 RAM的起始地址 MOV 30H, 00H MOV 40H, 00H ;清累加和寄存器 SETB EA ;允許串行口中斷 SETB ES LJMP MAIN ; MAIN為主程序 , 根據(jù)用戶要求編寫 INTS: CLR EA ;關(guān)中斷 CLR RI ;清中斷標志 PUSH A ;保護現(xiàn)場 PUSH DPH PUSH DPL JB 7FH, CHANG ;判斷是數(shù)據(jù)塊長度嗎 ? JB 7EH, DATA ;判斷是數(shù)據(jù)塊嗎 ? SUM: MOV A, SBUF ;接收校驗和 CJNE A, 40H, ERR ;判斷接收是否正確 MOV A, 00H ;二者相等 , 正確 , 向甲機發(fā)送 00H MOV SBUF, A WAI
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1