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

正文內(nèi)容

微機(jī)原理項(xiàng)目報(bào)告-雙機(jī)串行通信(更新版)

  

【正文】 年 五 月 十八 日 課程項(xiàng)目名單統(tǒng)計(jì)表 課程項(xiàng)目名單統(tǒng)計(jì)表 表一:課程項(xiàng)目名單統(tǒng)計(jì)表 組號(hào): 19 任課教師( √) 方針 沈明華 王向陽(yáng) 學(xué)生學(xué)號(hào) 學(xué)生姓名 吳慧澤 11123128 是 溫英杰 11123201 是 范 特 11123168 是 豐 碩 11123227 是 崔向陽(yáng) 11123260 是 一、 課程項(xiàng)目實(shí)施方案 (題目要求,說(shuō)明設(shè)計(jì)思想、指標(biāo)及實(shí)現(xiàn)方法,所需器件清單等) 題目要求 :實(shí)現(xiàn)單片機(jī)和 PC 機(jī)之間的雙機(jī)雙工串行通信。 軟件方面:上位機(jī)和下位機(jī)通信程序均用匯編語(yǔ)言編寫(xiě)設(shè)計(jì), STC 單片機(jī)采用中斷方式接收 PC 發(fā)送的數(shù)據(jù)并回送,串行口的工作方式為工作方式 1,使用 晶振,并以定時(shí)器 T1的方式 2為波特率發(fā)生器,波特率在匯編程序中設(shè)置為 9600, PC 采用查詢方式收、發(fā)數(shù)據(jù)。在獲得老師提供的開(kāi)發(fā)板資料后,我們就利用其中配套程序里面的 mini80E 功能測(cè)試程序?qū)纹瑱C(jī)的基本功能進(jìn)行了測(cè)試,當(dāng)時(shí)除了串口通信功能外,其余功能均正常。真正實(shí)現(xiàn)單片機(jī)與 PC 機(jī)之間的串行通信還有相當(dāng)多的工作要做。當(dāng)我們用用串口調(diào)試助手向單片機(jī)發(fā)送字符,當(dāng)發(fā)送十個(gè)以下字符時(shí),能從液晶的第一行開(kāi)始顯示,但當(dāng)兩行顯示滿后,跳到第一行繼續(xù)顯示時(shí),卻只能最多顯示兩個(gè)字符,其余的均不能顯示;還有,當(dāng)發(fā)送超過(guò)十個(gè)字符時(shí),就會(huì)有字符丟失,但在接收子程序中把液晶寫(xiě)字符函數(shù)注釋掉后,串口助手能夠正確接收 ,沒(méi)有字符丟失 。這令我們頗為困惑,為此我們琢磨究竟問(wèn)題出在哪,對(duì)程序反復(fù)修改并調(diào)試,發(fā)現(xiàn)注釋掉發(fā)送程序代碼后,單片機(jī)可以接收并顯示,但不能發(fā)送,繼續(xù)調(diào)試了很多次后還是不能同時(shí)接收和發(fā)送。 3) 怎樣加入擴(kuò)展功能? 基 本要求實(shí)現(xiàn)后,我們就開(kāi)始想如何對(duì)功能進(jìn)行擴(kuò)展。我們覺(jué)得這比較符合工程規(guī)范,下位機(jī)是從機(jī),要通信前先請(qǐng)求主機(jī)。 首先 單片機(jī)發(fā)送‘ 7654321’ PC 機(jī)顯示‘ OK!’,并返回‘ OK!’給單片機(jī)。 E. PC 機(jī)向單片機(jī)發(fā)送字符測(cè)試(在建立握手對(duì)話的基礎(chǔ)上) 凡是可顯示字符均可發(fā)送并發(fā)送。否則其他字符, PC 機(jī)顯示‘ NO!’無(wú)返回。 sbit KeyPort1=P3^3。 uchar m=0,n=0,num=0。 void receive(uchar *s)。 } /* 判忙函數(shù) */ bit LCD_Check_Busy(void) { DataPort=0xFF。 } /* 寫(xiě)入命令函數(shù) */ void LCD_Write_Com(unsigned char ) { while(LCD_Check_Busy())。 //忙則等待 RS_SET。 delay(5)。 LCD_Write_Com(0x38)。 //LCD_Write_Com(0x0C)。//清屏 P1=0xff。 REN=1。 //進(jìn)入中斷后, 燈指示 if(m==32){m=1。k29。 //進(jìn)入發(fā)送函數(shù) LCD_Write_Char(i,j,0x20)。 } } /* 發(fā)送函數(shù) */ void send(uchar *r) { SendStr(r)。//清屏 delay(5)。 KeyPort0=KeyPort1=0。(KeyPort3==1)amp。amp。 KeyPort1=KeyPort2=KeyPort3=KeyPort4=KeyPort5=1。amp。139。(KeyPort3==1)amp。(KeyPort1==1)amp。(KeyPort5==1)))。(KeyPort2==1)amp。} if(KeyPort3==0){Val=39。(KeyPort1==0)amp。(KeyPort5==1)))。(KeyPort3==1)amp。 上位機(jī)程序 1:若單片機(jī)先要第一個(gè)發(fā)的數(shù)據(jù)是 7 就建立連接,可以開(kāi)始通信,不是就不能通信,若 PC 機(jī)先按鍵盤(pán),則 PC 機(jī)收到 7 后會(huì)顯示出錯(cuò) STACK SEGMENT DB 256 DUP(0) ZS DB 256 DUP (0) ;定義握手開(kāi)始建立時(shí)的暫時(shí)數(shù)據(jù)緩沖區(qū) STACK ENDS DATA SEGMENT SED DB 256 DUP (0) ;定義發(fā)送數(shù)據(jù)緩沖區(qū) REC DB 256 DUP (0) ;定義接收數(shù)據(jù)緩沖區(qū) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK BEGIN PROC FAR PUSH DS ;保存 PSP 段地址 XOR AX,AX PUSH AX ;保存返回地址偏移值 START: ;初始化 8250 為: 8 位數(shù)據(jù)位, 1 位停止位,無(wú)校驗(yàn),波特率 9600 MOV AX,DATA MOV DS,AX LEA SI,SED LEA DI,REC LEA BP,ZS MOV DX,3FBH MOV AL,80H OUT DX,AL MOV DX,3F8H MOV AL,0CH OUT DX,AL MOV DX,3F9H MOV AL,0 OUT DX,AL MOV DX,3FBH MOV AL,03H OUT DX,AL MOV DX,3FCH MOV AL,03H ;內(nèi)部輸出輸入不反接 OUT DX,AL MOV DX,3F9H MOV AL,0 ;禁止中斷,采用查詢方式進(jìn)行信息交換 OUT DX,AL XOR CX,CX XOR BX,BX FOREVER: ;循環(huán)一,用于雙機(jī)建立握手時(shí)查詢請(qǐng)求聯(lián)絡(luò)信號(hào) MOV DX,3FDH IN AL,DX TEST AL,1EH ;測(cè)接收是否出錯(cuò) JNZ B9 TEST AL,01H ;測(cè)接收數(shù)據(jù)是否準(zhǔn)備好 JNZ WS ;是就轉(zhuǎn)握手程序,不是就繼續(xù)查詢 JMP FOREVER WS:MOV DX,3F8H ;握手程序 IN AL,DX AND AL,7FH MOV [BP],AL INC BP CMP AL, 0DH ;判斷下位機(jī)是否發(fā)送,是就轉(zhuǎn)處理程序 JZ B8 JMP FOREVER B7: MOV AL,4EH ;不是請(qǐng)求聯(lián)絡(luò)信 號(hào)“ 7”就顯示 NO!表示未建立連接 MOV BL,0 MOV AH,14 INT 10H MOV AL,4FH MOV BL,0 MOV AH,14 INT 10H MOV AL,21H MOV BL,0 MOV AH,14 INT 10H MOV AL,0AH MOV BL,0 MOV AH,14 INT 10H MOV DL,0DH MOV AH,2 INT 21H JMP FOREVER B9:JMP ERROR OK: LEA BP,ZS ;取暫時(shí)握手接收數(shù)據(jù)緩沖區(qū)首地址 MOV AL,[BP] CMP AL,37H ;第一位是否為 7,是就發(fā)送 OK!注意 PC 是按回車發(fā)送 JNZ B6 ;不是就轉(zhuǎn) MOV AL,4FH MOV DX,3F8H OUT DX,AL MOV AL,4BH MOV DX,3F8H OUT DX,AL MOV AL,21H MOV DX,3F8H OUT DX,AL MOV AL,0DH MOV DX,3F8H OUT DX,AL FOREVER1: ;發(fā)送 OK!后,就直接進(jìn)入正常通信程序,查詢輸入輸出 MOV DX,3FDH IN AL,DX TEST AL,1EH JNZ ERROR TEST AL,01H JNZ RECEIVE TEST AL,40H ;測(cè)發(fā)送移位寄存器是否為空,不空繼續(xù)查詢 JZ FOREVER1 TEST AL,20H ;測(cè)發(fā)送保持寄存器是否為空,不空返回查詢 JZ FOREVER1 MOV AH,1 ;空就測(cè)鍵盤(pán)緩沖區(qū)是否有字符 INT 16H JZ FOREVER1 ;無(wú)就返回查詢 MOV AH,0 INT 16H MOV [SI],AL ;有就存入到發(fā)送緩沖區(qū),同時(shí) CL 作為計(jì)數(shù)寄存器 INC SI INC CL CMP AL,0DH ;是否為回車發(fā)送,是就轉(zhuǎn)發(fā)送處理 JZ B0 MOV BL,0 ;不是就將按鍵顯示 MOV AH,14 INT 10H JMP FOREVER1 B8:JMP B5 ;由于 JZ 命令轉(zhuǎn)移范圍較小,所以中轉(zhuǎn)一下 ERROR: ;接收出錯(cuò)處理,顯示問(wèn)號(hào)并換行 MOV AL,3
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1