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

正文內(nèi)容

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

2023-06-01 08:10:10 本頁(yè)面
 

【正文】 語(yǔ)言設(shè)計(jì))、下位機(jī)通信程序( C 語(yǔ)言、匯編不限) ,通信波特率 9600bps, 8 位數(shù)據(jù)、 1 個(gè)停止位、無(wú)校驗(yàn)。 ( 2) 全雙工通信。由于 STC89C52RC 單片機(jī)有一個(gè)全雙工 UART 串行通信接口,通過(guò)實(shí)驗(yàn)板上的 MAX232電平轉(zhuǎn)換芯片和RS232C 非標(biāo)準(zhǔn)(即 DB9)串口與 PC 機(jī)連接,從而可實(shí)現(xiàn)單片機(jī)與 PC 機(jī)之間的全雙工串行通信,即同時(shí)接收和發(fā)送數(shù)據(jù)。 擴(kuò)展功能:隨后續(xù)項(xiàng)目的進(jìn)展逐步在原要求功能基礎(chǔ)上加以擴(kuò)展。 小組成員學(xué)習(xí)任務(wù)都很重,而且組員各自都有自己額外的奮斗目標(biāo) ,比如電子競(jìng)賽,考托福 ,所以開(kāi)始的時(shí)候我們的項(xiàng)目進(jìn)展緩慢。后來(lái)了解到,是開(kāi)發(fā)板上所帶的晶振的問(wèn)題。 然而,這僅僅是用現(xiàn)有的配 套程序進(jìn)行功能測(cè)試。說(shuō)實(shí)話,從身邊有些同學(xué)反映匯編語(yǔ)言學(xué)起來(lái)很生硬很吃力,以及我們小組成員學(xué)習(xí)匯編的感受,都感覺(jué) 匯編不如 C 形象生動(dòng)、容易上手,而且我們之前學(xué)過(guò) C,大家都有一定的底子,所以編程難度降低了不少,加上單片機(jī)方面各個(gè)部件的參考程序例如液晶顯示,矩陣按鍵程序等等都以 C 語(yǔ)言居多,所以我們不用花很多時(shí)間去研究各種匯編指令,這 會(huì) 使我們項(xiàng)目成功實(shí)現(xiàn) 所需 的時(shí)間大大縮短。 當(dāng)我們參照 C 語(yǔ)言樣例程序編寫(xiě)了一個(gè)能液晶顯示、能接收數(shù)據(jù)的簡(jiǎn)單通信程序時(shí),這時(shí)我們還只是停留在用串口助手進(jìn)行下位機(jī)程 序的調(diào)試,因?yàn)槲覀冞€不清楚編寫(xiě)好的上位機(jī)通信程序是怎樣通過(guò)串口線與單片機(jī)進(jìn)行通信。 2)要不要對(duì)開(kāi)發(fā)板上的矩陣鍵盤(pán)編程? 項(xiàng)目要求是要實(shí)現(xiàn)雙機(jī)串行通信,那肯定要求雙方既能接收又能發(fā)送,所以還要嵌入相應(yīng)按鍵發(fā)送數(shù)據(jù)程序。 當(dāng)我們把矩陣 鍵盤(pán)程序 嵌 入之前的程序里面后,每個(gè)按鍵都有用,按鍵代表的字符都能在液晶上顯示,但唯獨(dú)接收程序不能接收來(lái)自串口助手發(fā)來(lái)的字符,而且不能顯示。并且我們還就此咨詢了王旭智老師,問(wèn)是不是 、 口既用作通信口又用作普通 I/O 口造成的問(wèn)題,老師說(shuō)是 ,說(shuō) P3 口不能既作普通 I/0口又作串行通信口,這樣會(huì)有沖突 。但是我們有組員覺(jué)得兩個(gè)按鍵太少了太單調(diào)了,所以 我們后來(lái)又?jǐn)U展到了 8 個(gè)按鍵,這 8 個(gè)按鍵不與 、 連接,所以不會(huì)產(chǎn)生沖突,增加了可發(fā)送字符的 個(gè)數(shù) ,并且我們?cè)O(shè)置 了 發(fā)送鍵 即 PC 機(jī)上面的回車(chē)鍵( ASCII 碼為 0DH),可以發(fā)送一連串的多個(gè)字符 ,因?yàn)榘褜⒁l(fā)送的字符先存到數(shù)組里面,按回車(chē)鍵啟動(dòng)發(fā)送 。我們有想過(guò)利用紅外發(fā)射和接收來(lái)進(jìn)行數(shù)據(jù)傳送,但這個(gè)對(duì)于通電學(xué)得不好的我們來(lái)說(shuō)簡(jiǎn)直很難實(shí)現(xiàn)。所以我們就加了些提示,提示單片機(jī)先發(fā)送請(qǐng)求連接字符,這樣不會(huì)出現(xiàn)上面的問(wèn)題。上位機(jī)程序由 組長(zhǎng) 吳慧澤和 范特 共同完成,下位機(jī)程序由范特與溫英杰共同完成,最終報(bào)告 和 PPT 由崔向陽(yáng)與吳慧澤共同完成。得到各按鍵對(duì)應(yīng)含義如下表: 7 6 5 4 3 2 1 ENTER C.建立單片機(jī)與 PC 機(jī)的握手測(cè)試結(jié)果(開(kāi)機(jī)的第一次操作) 首先 單片機(jī)發(fā)送‘ 7’, PC 機(jī) dos 窗口顯示‘ OK!’,并返回‘ OK!’給單片機(jī),單片機(jī)屏幕顯示‘ OK!’,表示可以進(jìn)行通話。當(dāng)再次發(fā)送‘ 7’時(shí), PC 機(jī)會(huì)先顯示按‘ 7’之前 PC 機(jī)鍵盤(pán)輸入的字符,再顯示‘ OK!’,單片機(jī)上顯示‘ OK!’。 發(fā)送‘ 7654321’, PC 機(jī)顯示‘ 7654321’; 發(fā)送‘ ENTER’, PC 機(jī)顯示換行; 發(fā)送‘ 7’, PC 機(jī)顯示‘ 7’。 發(fā)送‘ abcd’,單片機(jī)顯示‘ abcd’,并返回給 PC 機(jī)顯示‘ abcd’; 發(fā)送空格,單片機(jī)顯示‘ ’,并返回給 PC 機(jī)顯示‘ ’; 發(fā)送‘?’, 單片機(jī)顯示‘?’,并返回給 PC 機(jī)顯示‘?’; 單片機(jī)無(wú)顯示字符情況下,發(fā)送‘ 123456789123456789123456789123456789123456789’時(shí),單片機(jī)在新的一頁(yè)顯示‘ 6789123456789’;并返回 PC 機(jī)顯示‘ 123456789123456789123456789123456789123456789’; 直接按‘ ENTER’時(shí),單片機(jī)無(wú)反應(yīng)。 PC 機(jī)顯示并返回單片機(jī)顯示‘ OK!’。 附件一:設(shè)計(jì)流程圖: 下位機(jī)程序流程圖: 是 否 是 是否連接 否 系統(tǒng)初始化 開(kāi)始 讀入連接密碼 發(fā)送連接密碼到 PC 機(jī) 顯示 “ Please enter the password!” 接收 PC 機(jī)指示 接收 PC機(jī)傳來(lái)的字符串 讀入單片機(jī)鍵盤(pán)輸入字符 顯示空格 顯示字符串 是否為“ ENTER” 儲(chǔ)存到數(shù)組 顯示字符 發(fā)送數(shù)組到 PC 機(jī) 返回字符串到 PC 機(jī) 結(jié)束 上機(jī)位程序流程圖: 否 是 是 是 否 系統(tǒng)初始化 開(kāi)始 讀取單片機(jī)發(fā)送的連接密碼 是否為‘ 7’ 顯示‘ NO!’ 顯示‘ OK!’ 發(fā)送‘ OK!’到單片機(jī) 否 讀入單片機(jī)傳來(lái)的字符串 讀入 PC 機(jī)鍵盤(pán)輸入字符 顯示換行 顯示字符 是否為“ ENTER” 儲(chǔ)存到發(fā)送字符緩沖區(qū) 顯示字符 發(fā)送字符串到單片機(jī) 結(jié)束 顯示“ waiting… ” 儲(chǔ)存到接收字符緩沖區(qū) 讀取字符 是否為“ ENTER” 附件二: 下位機(jī)程序: 8 按鍵掃描,通信時(shí)先要建立握手,發(fā)請(qǐng)求信號(hào),我們?cè)O(shè)計(jì) 7 為請(qǐng)求信號(hào),按回車(chē)鍵(我們定義其中一個(gè)鍵為回車(chē)鍵即 0DH)發(fā)送,且發(fā)送和接收數(shù)據(jù)后先存入數(shù)組,然后回送給 PC,注意以 0DH 結(jié)尾。 sbit KeyPort0=P3^2。 sbit KeyPort4=P3^6。 uchar send_str[32]。 unsigned char a=0,b=0,i=0,j=0。 void yjxs(uchar Data)。 for(x=z。y)。 EN_CLR。 0x80)。 EN_SET。 } /* 寫(xiě)入數(shù)據(jù)函數(shù) */ void LCD_Write_Data(unsigned char Data) { while(LCD_Check_Busy())。 DataPort= Data。 } /* 清屏函數(shù) */ void LCD_Clear(void) { LCD_Write_Com(0x01)。 } LCD_Write_Data( Data)。 delay(5)。 LCD_Write_Com(0x08)。 delay(5)。 TI=0。 LCD_Clear()。 TL1=0xfd。 //串行工作方式 SM1=1。 //打開(kāi)串口中斷 TI=0。 } /* 串行中斷函數(shù) */ void ser() interrupt 4 { if(RI==1) { P1=0XF0。 if(rec_str[m]==0x0d) //收到結(jié)束位,然后進(jìn)入顯示函數(shù) { receive(rec_str)。 for(k=0。 //掃描鍵盤(pán) if(num!=0xff) { send_str[n]=num。 //進(jìn)入發(fā)送函數(shù) 燈指示 send(send_str)。 } } } /* 接受顯示函數(shù) */ void receive(uchar *s) { SendStr(s)。 } LCD_Write_Char(i,j,0x20)。 if((i==17)amp。 LCD_Write_Com(0x01)。 } if((i==16)amp。 } } /* 鍵盤(pán)掃描函數(shù),使用行列逐級(jí)掃描法 */ unsigned char KeyScan(void) { unsigned char Val。amp。amp。amp。(KeyPort1==0)amp。(KeyPort3==1)amp。(KeyPort5==1))) { //表示有按鍵按下 KeyPort0=0。(KeyPort1==1)amp。(KeyPort3==1)amp。(KeyPort5==1))) { if(KeyPort2==0){Val=39。} if(KeyPort4==0){Val=39。amp。amp。amp。amp。amp。amp。 KeyPort0=KeyPort2=KeyPort3=KeyPort4=KeyPort5=1。amp。amp。739。539。amp。amp。amp。amp。amp。amp。 } 上位機(jī)程序:我們有三個(gè)程序。 MOV BL,0 MOV AH,14 INT 10H MOV AL,61H MOV BL,0 MOV AH,14 INT 10H MOV AL,69H MOV BL,0 MOV AH,14 INT 10H MOV AL,74H MOV BL,0 MOV AH,14 INT 10H MOV AL,69H MOV BL,0 MOV AH,14 INT 10H MOV AL,6EH MOV BL,0 MOV AH,14 INT 10H MOV AL,67H MOV BL,0 MOV AH,14 INT 10H MOV AL,2EH MOV BL,0 MOV AH,14 INT 10H MOV AL,2EH MOV BL,0 MOV AH,14 INT 10H MOV AL,2EH MOV BL,0 MOV AH,14 INT 10H FO
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1