51單片機字母串口通信_第1頁
51單片機字母串口通信_第2頁
51單片機字母串口通信_第3頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

廣東海洋大學(xué)學(xué)號200911611208200911611230200911611232姓名江一棟楊捷光葉澤加班級電子1092指導(dǎo)老師王峰雙機通信系統(tǒng)設(shè)計第一章系統(tǒng)整體設(shè)計系統(tǒng)設(shè)計思路MCS51max232TXDRXD振模塊。系統(tǒng)設(shè)計原理串行通信(或者字節(jié)要使用一些電平轉(zhuǎn)化芯片(max232)片機硬件要共地,軟件中需要設(shè)置相同波特率。51(UAR,串行結(jié)構(gòu)如下:數(shù)據(jù)緩沖器(SBUF)SBUF99H,SBUF中接收到的數(shù)據(jù)取出。串行控制寄存器(PCON)SCON用于串行通信方式的選擇,收發(fā)控制及狀態(tài)指示,各位含義如下:SM0SM0SM1SM2RENTB8RB8TIRISM0,SM1:串行接口工作方式選擇位,這兩位組合成00,01,10,11對應(yīng)于工作方式0、1、2、3。串行接口工作方式特點見下表1.2.1.表1.2.1串行口工作方式表SM0SM0SM1工功能波特率1/19作方式000作方式0008(I/O擴展)fORC/1201110(UART)(T1溢 出 10211(UART)11311(UART)*2SMOD/32)fORC/64或fORC/32(T1溢 出 *2SMOD/32)SM2:多機通信控制位。REN:接收允許控制位。軟件置1允許接收;軟件置0禁止接收。TB823,TB8910。RB923,RB899據(jù)TB8,使從機根據(jù)這一位來判斷主機發(fā)送的時呼叫地址還是要傳送的數(shù)據(jù)。TI清零后才能繼續(xù)發(fā)送。RI清零后才能繼續(xù)接收。輸入移位寄存器接收的數(shù)據(jù)先串行進(jìn)入輸入移位寄存器,8位數(shù)據(jù)全移入后,再并行送入接收SBUF中。波特率發(fā)生器T1為波特率發(fā)生器,T1設(shè)置在定時方式。波特率時用來表示串行通信數(shù)據(jù)傳輸快慢程度的物理量,定義為每秒鐘傳送的數(shù)據(jù)位數(shù)。PCON其最高位為SMOD。波特率計算T1T1=(T1)/(出所需機器周期。由于是定時方式,T1fORC/12M-X。2/19雙機通信系統(tǒng)設(shè)計1602LCD基本操作時序讀狀態(tài):輸入:RS=L,RW=H,EN=H;寫指令:輸入:RS=L,RW=L,D0~D7=指令碼,EN=H;讀數(shù)據(jù):輸入:RS=H,RW=H,EN=H;寫數(shù)據(jù):輸入:RS=H,RW=L,D0~D7=數(shù)據(jù),EN=H;初始化過程檢測忙信號(以后每次寫指令、讀/寫數(shù)據(jù)操作之前均需要檢測忙信號)38H:顯示模式設(shè)置01H:顯示清屏06H:顯示光標(biāo)移動設(shè)置0CH:顯示開及光標(biāo)設(shè)置24c08EEPROM1.24c088KBI2CI2CSDA,SCLI/O2操作時序圖3/19雙機通信系統(tǒng)設(shè)計4/19雙機通信系統(tǒng)設(shè)計5*61.鍵盤結(jié)構(gòu)I/OI/O565*6I/O鍵盤工作原理鍵盤中有無鍵按下是由列線送入全掃描字,然后讀入行線狀態(tài)來判斷。鍵盤中哪一個鍵被按下先是通過將列線置低電平,判斷鍵盤是屬于哪一列的,接下來將行線置低電平,判斷鍵盤是屬于哪一行的,然后得出鍵號。5/19雙機通信系統(tǒng)設(shè)計基本設(shè)計原理概述24c0824c081602LCD顯示屏上。第二章硬件電路設(shè)計硬件電路設(shè)計方案從硬件電路設(shè)計的目標(biāo)出發(fā),我們盡量考慮到可靠、高效、簡潔的原則,在整個系硬件電路的實現(xiàn)80C51LCD1602塊,24c08max232原理圖6/19雙機通信系統(tǒng)設(shè)計主機原理圖7/19雙機通信系統(tǒng)設(shè)計從機電路圖8/19雙機通信系統(tǒng)設(shè)計第三章軟件系統(tǒng)實現(xiàn)軟件實現(xiàn)方案分析初始化程序按鍵掃描檢測有鍵盤按下,判斷哪個鍵按下,求得鍵號24c08,24c08,啟動通信發(fā)送程序24c08,24c08,lcd程序流程圖系統(tǒng)總流程圖開始初始化等待按鍵開始初始化等待按鍵Y24C0824c08,數(shù)據(jù)顯示在1602雙機通信系統(tǒng)設(shè)計通信數(shù)據(jù)存進(jìn)通信數(shù)據(jù)存進(jìn)24C0824C08,1602數(shù)據(jù)結(jié)束1.3.1雙機通信系統(tǒng)結(jié)構(gòu)圖按鍵流程圖等待按等待按鍵Y掃描列,求出列號掃描行,求出行號求出鍵號24c0810/19雙機通信系統(tǒng)設(shè)計啟動啟動24C08寫入指定地址ACK寫數(shù)據(jù)ACK停止24C08啟動24C08寫入指定地址啟動24C08寫入指定地址ACK讀數(shù)據(jù)NOACK停止24C08返回數(shù)據(jù)11/19雙機通信系統(tǒng)設(shè)計1602初始化指定光標(biāo)初始化指定光標(biāo)寫入數(shù)據(jù)也增強了我們的動手能力。我們很清楚這個實驗的目的,表面上我們最終僅僅只是實現(xiàn)了設(shè)計要求的基本功從這樣一個完整的過程中我了解一種系統(tǒng)設(shè)計的流程,甚至說是一種思路,思維。從最初拿到題目,分析設(shè)計要求以及實現(xiàn)的初步思路,然后去查閱資料進(jìn)行更加具體的設(shè)計這次實驗無疑要求我們團隊協(xié)作,互相配合并且整體上比較全面的統(tǒng)籌設(shè)計。于是,初步規(guī)劃后,我們開始將系統(tǒng)要實現(xiàn)功能的各個模塊單獨開來用PROTEUS仿真中,我們仔細(xì)斟酌了電路布線的合理性。設(shè)計讓我又一次覺得團結(jié)的力量是那么的強大,合作精神是我們必不可少的。12/19雙機通信系統(tǒng)設(shè)計第五章附錄程序#include<reg51.h>#include<intrins.h>#include<string.h>#defineucharunsignedchar#defineuintunsignedint#definenop4(){_nop_();_nop_();_nop_();_nop_();}ucharcodetable[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z','A','B','C','D'};ucharkeyno=30,prekeyno=30;ucharsidx;ucharaa,bb;sbitRS=P3^2;sbitRW=P3^3;sbitEN=P3^4;sbitSCL=P2^6;sbitSDA=P2^7;voidDelayms(uintx){uinti;while(x--)for(i=0;i<120;i++);}voidkeyscan(){uchartmp;P1=0X3f;P2=0XF8;Delayms(1);switch(P1){case0x3e:keyno=0;break;case0x3d:keyno=1;break;case0x3b:keyno=2;break;case0x37:keyno=3;break;case0x2f:keyno=4;break;13/19雙機通信系統(tǒng)設(shè)計case0x1f:keyno=5;break;default:keyno=30;}P1=0Xc0;P2=0XFF;Delayms(1);{tmp=P1;}{tmp=P2;}switch(tmp){case0X80:keyno+=0;break;case0X40:keyno+=6;break;case0XFE:keyno+=12;break;case0XFD:keyno+=18;break;case0xFB:keyno+=24;}}ucharBusycheck(){ucharRS=0;RW=1;EN=1;state=P0;Delayms(1);EN=0;returnstate;}voidWritelcdcommand(ucharcmd){while(((Busycheck())&0x80)==0x80);RS=0;RW=0;EN=1;P0=cmd;14/19雙機通信系統(tǒng)設(shè)計Delayms(1);EN=0;}voidWritelcddata(uchardat){while(((Busycheck())&0x80)==0x80);RS=1;RW=0;EN=1;P0=dat;Delayms(1);EN=0;}voidSetlcdpos(ucharp){Writelcdcommand(p|0x80);}voidLcdinitialize(){Writelcdcommand(0x38);Delayms(1);Writelcdcommand(0x01);Delayms(1);Writelcdcommand(0x06);Delayms(1);Writelcdcommand(0x0c);Delayms(1);}voidStart(){SDA=1;SCL=1;nop4();SDA=0;nop4();SCL=0;}voidStop(){}voidRACK(){}voidNOACK(){}voidWriteabyte(ucharb){15/19雙機通信系統(tǒng)設(shè)計ucharj;for(j=0;j<8;j++){}RACK();}voidWriteIIC(ucharaddr,uchardat){Start();Writeabyte(0xa0);Writeabyte(addr);Writeabyte(dat);Stop();Delayms(10);}ucharReadabyte(){uchari,b;for(i=0;i<8;i++){}returnb;}ucharReadcurrent(){uchard;Start();Writeabyte(0xa1);d=Readabyte();NOACK();Stop();returnd;}ucharRandomread(ucharaddr){Start();Writeabyte(0xa0);Writeabyte(addr);returnReadcurrent();}voidputc_to_serialport(ucharc){16/19雙機通信系統(tǒng)設(shè)計SBUF=c;while(TI==0);TI=0;}voidmain(){SCON=0X50;TMOD=0X20;PCON=0X00;TH1=0XFD;TL1=0XFD;TI=RI=0;TR1=1;IE=0X90;Lcdinitialize();while(1){P2=0XF8;P1=0X3F;if((P1&0x3F)!=0x3F)keyscan();if(prekeyno!=keyno){WriteIIC(aa,table[keyno]);aa++;sidx=Randomread(bb);bb++;putc_to_serialport(sidx);Setlcdpos(0x00);Writelcddata(sidx);prekeyno=keyno;/*putc_to_serialport(table[keyno]);Setlcdpos(0x00);Writelcddata(table[ke

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論