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

正文內(nèi)容

串行通信基礎(chǔ)概念rs-232接口mcs-51的串行接口單片-在線瀏覽

2024-11-04 13:30本頁(yè)面
  

【正文】 ( 甲機(jī) )8051( 乙機(jī) )R X DT X DV C C外 5 V外 5 VV C CS N 7 5 1 7 4S N 7 5 1 7 5 S N 7 5 1 7 47 4 L S 0 5外 5 V外 5 VR1R3R2R1R3R2RS422A雙機(jī)異步通信接口電路 00:17:22 雙機(jī)通信軟件編程 查詢(xún)方式 1) 甲機(jī)發(fā)送 編程將甲機(jī)片外 1000H~ 101FH單元的數(shù)據(jù)塊從串行口輸出。發(fā)送波特率375 kb/s, 晶振為 12 MHz, SMOD=1。 若送完 , 清 TI, 取下一個(gè) AJMP WAIT ; 未完等待 CONT: INC DPTR ; 更新數(shù)據(jù)單元 DJNZ R7,START ; 循環(huán)發(fā)送至結(jié)束 RET 00:17:22 2) 乙機(jī)接收 編程使乙機(jī)接收甲機(jī)發(fā)送過(guò)來(lái)的數(shù)據(jù)塊,并存入片內(nèi) 50H~6FH單元。 在進(jìn)行雙機(jī)通信時(shí),兩機(jī)應(yīng)采用相同的工作方式和波特率。若完,清 RI, 讀入數(shù)據(jù) AJMP WAIT ; 未完等待 READ: MOV A, SBUF ; 讀入一幀數(shù)據(jù) a JNB ,PZ ; 奇偶位為 0則轉(zhuǎn) JNB RB8, ERR ; P=1, RB8=0, 則出錯(cuò) SJMP RIGHT ; 二者全為 1,則正確 PZ: JB RB8, ERR ; P=0, RB8=1, 則出錯(cuò) RIGHT: MOV R0, A ; 正確,存放數(shù)據(jù) INC R0 ; 更新地址指針 DJNZ R7, WAIT ; 判斷數(shù)據(jù)塊是否接收完 CLR ; 接收正確,且接收完清 F0標(biāo)志 RET ; 返回 ERR: SETB ; 出錯(cuò),置 F0標(biāo)志為 1 RET ; 返回 00:17:22 1) 甲機(jī)發(fā)送 上面的通信程序,收發(fā)雙方是采用奇偶位 TB8來(lái)進(jìn)行校驗(yàn)的,這里介紹一種用 累加和 進(jìn)行校驗(yàn)的方法。 定義雙機(jī)串行口按方式 1工作 , 晶振為 MHz, 波特率為 2400 b/s, 定時(shí)器 1按方式 2工作 。 參考發(fā)送子程序如下: 中斷方式 在很多應(yīng)用中 , 雙機(jī)通信的接收方都采用中斷的方式來(lái)接收數(shù)據(jù) , 以提高 CPU的工作效率;發(fā)送方仍然采用查詢(xún)方式發(fā)送 。 首先接收數(shù)據(jù)長(zhǎng)度 , 接著接收數(shù)據(jù) , 當(dāng)接收完 16個(gè)字節(jié)后 ,接收累加和校驗(yàn)碼 , 進(jìn)行校驗(yàn) 。 00:17:22 接收采用中斷方式 。 參考接收程序如下: ORG 0000H LJMP CSH ;轉(zhuǎn)初始化程序 ORG 0023H LJMP INTS ;轉(zhuǎn)串行口中斷程序 ORG 0100H 00:17:22 CSH: MOV TMOD, 20H ;設(shè)置定時(shí)器 1為方式 2 MOV TL1, 0F4H ;設(shè)置預(yù)置值 MOV TH1, 0F4H SETB TR1 ;啟動(dòng)定時(shí)器 1 MOV SCON 50H ;串行口初始化 SETB 7FH ;置長(zhǎng)度標(biāo)志位為 1 SETB 7EH ;置數(shù)據(jù)塊標(biāo)志位為 1 00:17:22 MOV 31H, 20H ;規(guī)定外部 RAM的起始地址 MOV 30H, 00H MOV 40H, 00H ;清累加和寄存器 SETB EA ;允許串行口中斷 SETB ES LJMP MAIN ; MAIN為主程序 , 根據(jù)用戶要求編寫(xiě) 00:17:22 INTS: CLR EA ;關(guān)中斷 CLR RI ;清中斷標(biāo)志 PUSH A ;保護(hù)現(xiàn)場(chǎng) PUSH DPH PUSH DPL JB 7FH, CHANG ;判斷是數(shù)據(jù)塊長(zhǎng)度嗎 ? JB 7EH, DATA ;判斷是數(shù)據(jù)塊嗎 ? 00:17:22 SUM: MOV A, SBUF ;接收校驗(yàn)和 CJNZ A, 40H, ERR ;判斷接收是否正確 MOV A, 00H ;相等 , 正確 , 向甲機(jī)發(fā)送 00H MOV SBUF, A WAIT1: JNB TI, WAIT1 CLR TI SJMP RETURN ;發(fā)送完 , 轉(zhuǎn)到返回 ERR: MOV A, 0FFH ;不相等 , 錯(cuò)誤 , 向甲機(jī)發(fā)送 FFH MOV SBUF, A 00:17:22 WAIT2: JNB TI, WAIT2 CLR TI SJMP AGAIN ;發(fā)送完 , 轉(zhuǎn)重新開(kāi)始 CHANG: MOV A, SBUF ;接收長(zhǎng)度 MOV 41H, A ;長(zhǎng)度存入 41H單元 CLR 7FH ;清長(zhǎng)度標(biāo)志位 SJMP RETURN ;轉(zhuǎn)返回 DATA: MOV A, SBUF ;接收數(shù)據(jù) MOV DPH, 31H ;存入片外 RAM MOV DPL, 30H 00:17:22 MOVX DPTR, A INC DPTR ;修改片外 RAM的地址 MOV 31H, DPH MOV 30H, DPL ADD A, 40H ;形成累加和 , 放在 40H單元 MOV 40H, A DJNZ 41H, RETURN ;判斷數(shù)據(jù)塊是否接收完 CLR 7EH ;接收完 , 清數(shù)據(jù)塊標(biāo)志位 SJMP RETURN 00:17:22 AGAIN: SETB 7FH ;出錯(cuò) , 恢復(fù)標(biāo)志位 , 重新接收 SETB 7EH MOV 31H, 20H ;恢復(fù)片外 RAM起始地址 MOV 30H, 00H MOV 40H, 00H ;累加和寄存器清零 RETURN: POP DPL ;恢復(fù)現(xiàn)場(chǎng) POP DPH POP A
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1