proteus串口结合1602显示的仿真_第1页
proteus串口结合1602显示的仿真_第2页
proteus串口结合1602显示的仿真_第3页
proteus串口结合1602显示的仿真_第4页
proteus串口结合1602显示的仿真_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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调制解调器-I端口顾和LFT)菱ELTIMAVirtualSerialFort(C0M1-X0

3、M2)2ELTIMAVirtualSerialPort(C0M2-)C0Ml)+#计算机+J监视器+/键盘+人体学输入设备+声音、观频和游戏控制器+鼠标和苴它指针设备+尙通用串行总线控制器不同电脑模拟出的虚拟串口可能不一样,但设置方法一样,即ProteusS中的COMPIM占用一个虚拟串口COM1,串口调试助手占用一个虚拟串口COM2,这样单片机就可以接收串口调试助手发来的数据,并显示在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、手动发送”右边的框中输入想要发送的字符,可以是10进制的数字,也可以是16进制的字符,字符源于LCD1602的字符库,如下图所示:+II+Ml-WZfefCiOIDQ*filCDOIGIOI01ri11cid出耳耳耳nonoCGIAtVI111HMiXJ3U3mmmmDQIQ”斗.l+l-B-li+*11*+hlIdfcblKl+I-Il+llil-ii.IB:IT在上图中,比调试助手的发机,单片机再如说,数字“V对应0011.0001即3JH,“H”表示16进制数。我们只需要在送框中输入31,然后将“16进制发送”选上勾,即可将数字W_rr,i_JZ_”nnM发送给单片将其显示在LCD上。注

6、意r-先启动Proteus仿真,再启动调试助于,然后更改调试助于的串口号和波特率(试助手可能会提示串口不存在,不用管它,点确定就行)。以下是仿真代码,复制到keil或其他编辑器中,先保存为xxx.c文件后,加入工程后编译,生成hex文件,在proteus中加载即可启动仿真。#include#include#include#defineucharunsignedchar#defineuintunsignedintsbitlcd1602_rs=P3A3;/LCD指令、数据位定义sbitlcd1602_rw=P3A4;/LCD读、写位定义sbitlcd1602_e=P3A5;/LCD读写使能位定义v

7、oidinilcd(void);/函数声明voidwrlcd_cmd(ucharcmd);/voidwrlcd_dat(uchardat);voiddelay(uintz);/voidmain(void)uchari=0,j;SBUF接收到的数据inilcd();wrlcd_cmd(0 x80);wrlcd_cmd(0 x0f);/主函数/变量i用于对LCD1602的光标位置进行跟踪,j用于暂时存放TMOD=0 x20;TH1=0 xe6;TL1=0 xe6;/T1定时器工作于2(自动加载初值方式),/根据波特率=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);/循环接收数据/串口中断标志位为0时,表达式为真,继续等待接收结束,结束时引起中断,硬件自动置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)写指令子函数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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论