您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 任务四LCD1602的仿真
任务四LCD1602的仿真(C代码)4.4.1电路原理图利用51单片机、一个LCD和三个按键来实现LCD不同内容的显示,电路图如图4-52所示。图4-52单个LED电路原理图#includereg51.h#defineuintunsignedint#defineucharunsignedcharsbitrs=P1^0;sbitrw=P1^1;sbite=P1^2;sbitkey1=P3^0;sbitkey2=P3^1;sbitkey3=P3^2;//延时函数voiddelay(uinti){uintj;for(i;i0;i--)for(j=110;j0;j--);}//写指令函数voidwrite_com(ucharcom){rs=0;rw=0;P2=com;e=0;delay(5);e=1;delay(5);e=0;}//写入数据函数voidwrite_dat(uchardat){rs=0;rw=0;P2=dat;e=0;delay(5);e=1;delay(5);e=0;}//1602初始化voidcsh(){write_com(0x38);write_com(0x0e);write_com(0x01);//清屏write_com(0x0c);//关闭光标//write_com(0x1c);//移屏指令}//写入字符串函数voidwrite_word(uchar*s){while(*s0){write_dat(*s);s++;}}main(){csh();write_com(0x01);//清屏while(1){if(key1==0){write_com(0x80);write_word(^-^key1!^-^);if(key2==0)break;if(key3==0)break;}if(key2==0){write_com(0x80);write_word(^-^key2!^-^);if(key3==0)break;if(key1==0)break;}if(key3==0){write_com(0x80);write_word(MerryChristmas);if(key1==0)break;if(key2==0)break;}}}4.4.2原理图绘制步骤如下:(1)新建一个文件夹,命名为“lcd1602”,用于存放仿真文件,如图4-53所示。图4-53新建一个文件夹(2)保存设计,如图4-54所示。(3)添加元件。1)单击元件模式按钮,添加元件并双击后出现在主窗口处。分别添加元件AT89C51(51单片机)、晶振(CRYSTAL)、电容(CAP)、电解电容(CAP-ELEC)、电阻(RES)、按钮(BUTTON)、LCD1602(LM016L)如图4-55所示。2)单击元件,鼠标变为铅笔形状,在编辑区域单击,即可放置元件。放置晶振,需要旋转(单击右键进行选择)。如图4-56所示。3)绘制原理图并修改元件参数,如图4-57所示。图4-54保存设计图4-55添加元件图4-56放置元件4-57原理图绘制4.4.3代码添加(1)打开已建好的工程文件,如图4-58所示。图4-58数码管工程(2)单击进入程序编辑,如图4-59所示。图4-59代码编辑画面(3)单击,新建程序文件,出现如图4-60所示的窗口,选择“AT89C51和keilfor8051C”。图4-60编译器选择对话框(4)进入编程页面,编辑代码如图4-61所示。图4-61代码编辑画面4.4.4编译和调试在编写程序后,调试程序是程序设计人员检查程序正确与否依据的重要手段。调试程序时,编译文件需要调试Debug文件,在调试代码窗口选择“Debug(调试版)”图标,之后再单击编译图标,则会生成Debug编译文件,但是不会生成*.Debug文件。本项目中使用的外部显示设备为LCD1602,调试过程需要观察LCD1602的动态显示过程。所以要把LCD1602进行框定,单击暂停图标,就会出现代码行,右侧则会出现LCD1602显示窗口,如图4-62所示。图4-62C代码调试窗口(1)添加数码管监控窗口。在工具栏上选择“activepopupmode”(主动弹出模式)图标,选择数码管,如图4-63所示。图4-63被选中要监控的LCD1602这样,想要监控的数码管就出现在调试窗口。(2)调试代码生成。首先单击工具栏的“SourceCode”(源代码)图标,切换到源代码窗口。其次要进行编译。如果想要使用程序能够进行调试,在编译时需要选择“Debug”模式。方法是单击“Compile”编译图标,选择Debug(调试版),Debug版本只会生成一个临时文件,存在C盘,不会产生*.hex文件。返回ISIS界面,双击单片机属性,就会发现Debug编译后自动加载的编译文件是一个临时文件,存放路径是“C:\DOCUME`1\SXGY\LOCALS`1\Temp\331ee75b20d74c6b910ee3c866d2c783\AT89C51\Debug\Debug.OMF”。(3)调试。调试方法如下:1)单击菜单“Debug”(调试)→“StartVSMDebugging”(开始VSM调试),进入调试状态。2)如果要想查看某个程序段的执行情况,就可以单击选中此程序段,单击右键添加断点。选择“Toggle(set/Clear)Breakpoint”(设置/清除断点),则可添加断点。再次单击右键选择“Toggle(set/Clear)Breakpoint”(设置/清除断点),则可清楚断点。注意,箭头表示当前代码运行到此处。3)设置断点。4)返回ISIS界面,单击下方的仿真运行图标,按下连接P3.0端口按钮,将会执行代码程序,并且到了断点处会显示暂停状态,并会切换到代码段。5)按下“单步跳跃执行指令,不进循环体”调试图,可以使函数继续往下执行,同时在监控窗口会显示运行结果。如果要进行其他调试的话,可以选择工具栏进行调试。表4-7仿真含义含义RunSimulation(运行仿真)StepOverSourceLine(单步跳跃执行指令,不进循环体)StepIntoSourceLine(单步跳跃执行指令,进循环体)StepOutFromSourceLine(单步跳跃执行指令,如在循环体则跳出,如在当前程序内则跳出当前程序执行)RuntoSourceLine(运行到命令行)ToggleBreakpoint(切换断点)这些指令也可以通过菜单进行调用。方法是单击菜单“Debug”(调试),则会出现菜单机器快捷方式。
本文标题:任务四LCD1602的仿真
链接地址:https://www.777doc.com/doc-2715723 .html