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

正文內(nèi)容

基于單片機(jī)的雙機(jī)串行通信設(shè)計(jì)-在線瀏覽

2025-08-05 22:37本頁面
  

【正文】 保持 DDRAM 的內(nèi)容不變 功能:設(shè)定每次寫入 1 位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否 移動(dòng)。參數(shù)設(shè)定的情況如下: 位名 設(shè)置 D 0=顯示功能關(guān) 1=顯示功能開 C 0=無光標(biāo) 1=有光標(biāo) B 0=光標(biāo)不閃爍 1=光標(biāo)閃爍 功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。參數(shù)設(shè)定的情況如下: 位名 設(shè)置 DL 0=數(shù)據(jù)總線為 4 位 1=數(shù)據(jù)總線為 8 位 N 0=顯示 1 行 1=顯示 2 行 F 0=5 7 點(diǎn)陣 /每字符 1=5 10 點(diǎn)陣 /每字符 CGRAM 地址指令 9 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的 CGRAM 的地址。 (注意這里我們送地址的時(shí)候應(yīng)該 是 0x80+Address,這也是前面說到寫地址命令的時(shí)候要加上 0x80 的原因 ) AC 地址指令 功能: 1 讀取忙碌信號(hào) BF 的內(nèi)容, BF=1 表示液晶顯示器忙,暫時(shí)無法接收單片機(jī) 送來的數(shù)據(jù)或指令 。 2 讀取地址計(jì)數(shù)器 (AC)的內(nèi)容。 2 將用戶自己設(shè)計(jì)的圖形存入 CGRAM。 基本操作時(shí)序: 讀狀態(tài) 輸入: RS=L, RW=H, E=H 輸出: DB0~ DB7=狀態(tài)字 寫指令 輸入: RS=L, RW=L, E=下降沿脈沖, DB0~ DB7=指令碼 輸出:無 讀數(shù)據(jù) 輸入: RS=H, RW=H, E=H 輸出: DB0~ DB7=數(shù)據(jù) 寫數(shù)據(jù) 輸入: RS=H, RW=L, E=下降沿脈沖, DB0~ DB7=數(shù)據(jù) 輸出:無 用 8051 串行接口通信,如果兩臺(tái) 8051 單片機(jī)之間的距離很近(不超過 ) ,可以采用直接將兩臺(tái) 8051單片機(jī)的串行接口直接相連,利用其自身的 TTL 電平( 05V)直接傳輸數(shù)據(jù)信息。此時(shí)可利用 RS232 標(biāo)準(zhǔn)總線接口,將單片機(jī)輸出的 TTL電平轉(zhuǎn)換為 RS232標(biāo)準(zhǔn)電平(邏輯 1為 15— 5V;邏輯 0為 +5— +15V)。 電平轉(zhuǎn)換芯片 MAX232是美信公司( MAXIM)生產(chǎn),專用于進(jìn)行將 TTL電平轉(zhuǎn)換為 RS232電平的芯片, MAX232內(nèi)部有泵電源,能將 +5V電源電壓在芯片內(nèi)提高到 RS232電平所需的+10V或者 10V電平。接收方也 12 使用 MAX232 芯片進(jìn)行電平轉(zhuǎn)換后,信號(hào)到達(dá)接收方串行口的接收端。 圖 串行通信電路 三、 軟件設(shè)計(jì) 本單片機(jī)課程設(shè)計(jì)實(shí)現(xiàn)的功能:?jiǎn)纹瑱C(jī)間的串口通信。 A主機(jī)發(fā)送數(shù)據(jù)時(shí),A主機(jī)顯示器顯示要發(fā)送的數(shù)據(jù),發(fā)送鍵按下就開始向 B主機(jī)發(fā)送數(shù)據(jù),發(fā)送成功后,發(fā)送燈閃爍提示發(fā)送成功。 B主機(jī)的發(fā)送與接收英問短語與 A主機(jī)是一致的。 串行口工作于方式 1; 用定時(shí)器 1產(chǎn)生 9600bit/s的波特率 ,工作于方式 2。首先使用 KeilC將編寫完成的程序編譯生成 HEX文件,將 HEX文件燒錄到兩片單片機(jī)中,進(jìn)行仿真實(shí)驗(yàn),結(jié)果如下圖所示,可以看到,接收端已將接受到的數(shù)據(jù)完整的顯示了出來 。通過這次課程設(shè)計(jì)使我懂得了理論與實(shí) 際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié) 合起來,從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú) 立思考的能力。 六、 附錄 15 1. A機(jī)發(fā)送程序 /*串口通信模擬短信通信 */ /*發(fā)送方寫完信息,點(diǎn)擊按下發(fā)送按鍵,發(fā)送數(shù)據(jù),發(fā)送成功后,發(fā)送燈閃爍三次 */ /*接收方接收開始信息時(shí),接收燈亮起,按下接收按鍵,接收燈熄滅,隨后開始填下將要發(fā)送的數(shù)據(jù) */ include sbit LED1=P2^0。 //定義發(fā)送燈 sbit lcden=P2^7。 //定義 LCD 的 RS 端 define uchar unsigned char define uint unsigned int uchar code table[]=Hello,。 uchar code table2[]=Me too,。 uchar code table4[]=My name is,。 uchar code digit[]=0123456789+=*/。 //定義待發(fā)送數(shù)據(jù)數(shù)組 uchar agr,agr0,agr1,agr2,num,flag,flag1,flag2,flag3,a1,a2,temp。 //定義全局變量 void delay(uint z) //延時(shí)子程序 { uint x,y。x0。y0。 } 16 void LED2_turn() //發(fā)送燈閃爍子程序 { LED2=0。 LED2=1。 LED2=0。 LED2=1。 } void write_(uchar ) //液晶寫指令子程序 { lcdrs=0。 delay(5)。 delay(5)。 } void write_data(uchar date) //液晶寫數(shù)據(jù)子程序 { lcdrs=1。 delay(5)。 delay(5)。 17 } void lcdinit() //液晶初始化函數(shù) { lcden=0。 write_(0x0f)。 write_(0x01)。 //設(shè)液晶初始地址為第一行第一列 } void send(unsigned char dat) //數(shù)據(jù)發(fā)送程序 { SBUF=dat。 //若發(fā)送中斷標(biāo)志位沒有置 1(正在發(fā)送數(shù)據(jù) ),就等待 TI=0。 //設(shè)置定時(shí)器 1 為工作方式 2 TH1=0xfd。 TR1=1。 SM0=0。 REN=1。 } void extern_interrupt() //外部中斷初始化 { EX0=1。 //開外部中斷 1 IT0=1。 temp=P0。0xf0。 while(temp!=0xf0) { temp=P0。 break。 break。 break。 break。 temp=tempamp。 } } P0=0xfd。 temp=tempamp。 while(temp!=0xf0) { temp=P0。 break。 break。 break。 break。 temp=tempamp。 } } P0=0xfb。 temp=tempamp。 while(temp!=0xf0) { temp=P0。 break。 break。 break。 21 break。 temp=tempamp。 } } P0=0xf7。 temp=tempamp。 while(temp!=0xf0) { temp=P0。 break。 break。 break。 22 break。 temp=tempamp。 } } return(num1)。 uint m。 //定義數(shù)組指針 pbutter=amp。//將數(shù)組指針初始化為 butter[]起止地址 flag=1。 agr=0。 agr1=0。 a1=1。 //關(guān)閉接收燈 23 LED2=1。 EA=1。 //外部中斷初始化 lcdinit()。 //串口初始化 while(1) { while(flag==1) //等待標(biāo)志位置 1 { flag=0。 for(i=0。i++) { write_data(table[i])。 } write_(0x80+0x40)。i18。 //液晶寫數(shù)據(jù) delay(100)。 //等待發(fā)送信號(hào) for(i=0。i++) { send(table[i])。 24 } for(i=0。i++) { send(table1[i])。 } LED2_turn()。 write_(0x01)。 //開外部中斷,等待接收數(shù)據(jù) write_(0x01)。 flag1=0。 delay(1000)。 for(i=0。i++)
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1