proteus串口結合1602顯示的仿真_第1頁
proteus串口結合1602顯示的仿真_第2頁
proteus串口結合1602顯示的仿真_第3頁
proteus串口結合1602顯示的仿真_第4頁
proteus串口結合1602顯示的仿真_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、LM016L1234567890DJUrWeDDDDDDDDJ1123仃XTAL118XTAL2RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7;38.36-i35.333223-4PSENALEEAP2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15zT2Z2312425262728P1.0/T2P1.1/T2EXP1.2P1.3P1.4P1.5P1.6P1.7P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4

2、/T0P3.5/T1P3.6/WRP3.7/RD12.13T15T1617DCDDSRRXDRTSTXDCTSDTRAT89C52-ERRORCOMPIM先用Virtualserialportdriver在電腦上模擬出兩個串口,且它們默認已相互連接。本人模擬出的兩個串口分別為C0M1和COM2,它們可以在設備管理器里查看到。如下圖所示:68328D8AA50D4F5+丄Dvb/cb-動器+JIDEATA/ATAFI控制器+SMemurytmchiwlDwAriver+權處理器+s磁盤馳動器+嵋電池+I調(diào)制解調(diào)器-I端口顧和LFT)菱ELTIMAVirtualSerialFort(C0M1-X0

3、M2)2ELTIMAVirtualSerialPort(C0M2-)C0Ml)+#計算機+J監(jiān)視器+/鍵盤+人體學輸入設備+聲音、觀頻和游戲控制器+鼠標和苴它指針設備+尙通用串行總線控制器不同電腦模擬出的虛擬串口可能不一樣,但設置方法一樣,即ProteusS中的COMPIM占用一個虛擬串口COM1,串口調(diào)試助手占用一個虛擬串口COM2,這樣單片機就可以接收串口調(diào)試助手發(fā)來的數(shù)據(jù),并顯示在LCD上。Proteus中的仿真串口COMPIM的設置如下圖:EditCoponent?XComponentReference:圖Hidden:IIComponentValue:|C0MPIMHidden:He

4、lpVSMModel:|COMPIM.DLL|HideAllCancelPhysicalport:comFTHideAll3PhysicalBaudRate:|12OO|HideAll二|PhysicalDataBits:Is|HideAllJPhysicalParity:|none|HideAllJVirtualBaudRate:|12OO|HideAllJVirtualDataBits:Is|HideAllJVirtualParity:|noneTHideAllJAdvancedProperties:|PhysicalStopBits二|HideAlldOtherProperties:在“

5、手動發(fā)送”右邊的框中輸入想要發(fā)送的字符,可以是10進制的數(shù)字,也可以是16進制的字符,字符源于LCD1602的字符庫,如下圖所示:+II+Ml-WZfefCiOIDQ*filCDOIGIOI01ri11cid出耳耳耳nonoCGIAtVI111HMiXJ3U3mmmmDQIQ”斗.l+l-B-li+*11*+hlIdfcblKl+I-Il+llil-ii.IB:IT在上圖中,比調(diào)試助手的發(fā)機,單片機再如說,數(shù)字“V對應0011.0001即3JH,“H”表示16進制數(shù)。我們只需要在送框中輸入31,然后將“16進制發(fā)送”選上勾,即可將數(shù)字W_rr,i_JZ_”nnM發(fā)送給單片將其顯示在LCD上。注

6、意r-先啟動Proteus仿真,再啟動調(diào)試助于,然后更改調(diào)試助于的串口號和波特率(試助手可能會提示串口不存在,不用管它,點確定就行)。以下是仿真代碼,復制到keil或其他編輯器中,先保存為xxx.c文件后,加入工程后編譯,生成hex文件,在proteus中加載即可啟動仿真。#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitlcd1602_rs=P3A3;/LCD指令、數(shù)據(jù)位定義sbitlcd1602_rw=P3A4;/LCD讀、寫位定義sbitlcd1602_e=P3A5;/LCD讀寫使能位定義v

7、oidinilcd(void);/函數(shù)聲明voidwrlcd_cmd(ucharcmd);/voidwrlcd_dat(uchardat);voiddelay(uintz);/voidmain(void)uchari=0,j;SBUF接收到的數(shù)據(jù)inilcd();wrlcd_cmd(0 x80);wrlcd_cmd(0 x0f);/主函數(shù)/變量i用于對LCD1602的光標位置進行跟蹤,j用于暫時存放TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;/T1定時器工作于2(自動加載初值方式),/根據(jù)波特率=1200,串口工作于方式1,晶振fosc=12MHz,/Baud=1200=(1

8、/32)*(12*1000000)/(12*(256-X)/初始化LCD1602對LCD1602寫指令,使其光標回到起始位00H對LCD1602寫指令,開顯示,開光標,光標閃爍X=230=E6H,裝載定時器初值TR1=1;SCON=0 x50;/啟動T1定時器,/設置串口工作于方式1while(1)while(!RI);/循環(huán)接收數(shù)據(jù)/串口中斷標志位為0時,表達式為真,繼續(xù)等待接收結束,結束時引起中斷,硬件自動置RI=1RI=0;j=SBUF;wrlcd_dat(j);i+;/接收完畢后,清除中斷標志位/將SBUF緩存器里收到的字符存入j將收到的字符顯示在LCD1602中/LCD每顯示一個字符

9、,光標自動右移,光標位置加1if(i=16)wrlcd_cmd(0 xc0);如果光標到了LCD顯示屏上行的最右邊,換行if(i=32)wrlcd_cmd(0 x80);i=0;/如果光標到了LCD顯示屏下行的最右邊,將光標歸位到上行最左邊voidinilcd()/初始化LCD1602wrlcd_cmd(0 x38);/按芯片要求置3次功能指令,之間延時5msdelay(5);wrlcd_cmd(0 x38);/delay(5);wrlcd_cmd(0 x38);/delay(5);wrlcd_cmd(0 x38);/wrlcd_cmd(0 x01);/清屏,光標歸位wrlcd_cmd(0 x06);/光標自動右移,文字不移動wrlcd_cmd(0 x0f);/開總顯示,開光標,光標閃爍voiddelay(uintz)uintx,y;for(x=110;x0;x-)for(y=z;y0;y-);voidwrlcd_cmd(ucharcmd)寫指令子函數(shù)lcd1602_rw=0;/寫lcd1602_rs=0;/指令P2=cmd;將指令送到P2口,待寫入LCDlcd1602_e=1;/delay(5);/lcd1602_e=0;/使

溫馨提示

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

最新文檔

評論

0/150

提交評論