做一个实验,让英文字母“FH在显示屏的第二行第10列显示。通过这个实验,我们会掌握在显示屏上定位于什么位置显示字符。
在我的文档中建立一个文件目录(LCD2),然后建立一个LCD2.uv2的工程项目,最后建立源程序文件(LCD2.asm)。
输入下面的程序:
编译通过后,将LCD2文件夹中的hex文件通过TOP851编程器烧录到89C51芯片中,将芯片插入到S2型数码管试验板上,试验板上标示LCD1的排针通过14芯排线与液晶显示模组( LCM)正确连接,将TOP851编程器的9V直流电源插到S2型试验板上通电运行。可看到液晶显示屏的第二行第10列显示英文字符“F”。
对程序进行解释序号1(程序解释,以下同):程序分隔及说明。
序号2:定义LCM的RS引脚由89C51的P3.3脚控制。
序号3:定义LCM的R_W引脚由89C51的P3.4脚控制。
序号4:定义LCM的E引脚由89C51的P3.5脚控制。
序号5:定义LCM的数据口DBO_DB7由89C51的P1口控制。
序号6:程序分隔及说明。
序号7:程序从地址OOOOH开始。
序号8:跳转到MAIN主程序处。
序号9:程序分隔及说明。
序号10:主程序MAIN从地址0030H开始。
序号11:主程序开始,堆栈指针指向70H。
序号12:调用启动LCM子程序进行初始化。
序号13:向累加器送立即数11000111B,设定显示地址为第二行第10列。
序号14:调用写指令到LCM子程序。
序号15:向累加器送立即数46H,46H为英文字母“F”的ASCII码。
序号16:调用写数据到LCM子程序。
序号17:程序动态停机。
序号18:程序分隔及说明。
序号19~25:启动LCM子程序。
序号26:程序分隔及说明。
序号27~37:查询忙碌标志信号子程序。
序号38:程序分隔及说明。
序号39~46:写指令到LCM子程序。
序号47:程序分隔及说明。
序号48~55:写数据到LCM子程序。
序号56:程序分隔及:说明。
序号57~61:2.7mS延时子程序。
序号62:程序分隔及说明。
序号63:程序结束。
下来做第三个实验,使LCM显示两行字符串(英文信息)。第一行显示“Welcome to LCD!!,第二行显示“ABCDEFGHIJKLMNOP”。
在我的文档中建立一个文件目录( LCD3).然后建立-个LCD3.uv2的工程项目,最后建立源程序文件( LCD3.asm)。
输入下面的程序:
序号:1:****89C51引脚定义*******
编译通过后,将LCD3文件夹中的hex文件通过TOP851编程器烧录到89C51芯片中,将芯片插入到S2型数码管试验板上,试验板上标示LCD1的排针通过14芯排线与液晶显示模组(LCM)正确连接,将TOP851编程器的9V直流电源插到S2型试验板上通电运行。可看到液晶显示屏上显示的内容正如我们期待的那样。
对程序进行解释序号1(程序解释,以下同):程序分隔及说明。
序号2:定义LCM的RS引脚由89C51的P3.3脚控制。
序号3:定义LCM的R_W引脚由89C51的P3.4脚控制。
序号4:定义LCM的E引脚由89C51的P3.5脚控制。
序号5:定义LCM的数据口DBO_DB7由89C51的P1口控制。
序号6:程序分隔及说明。
序号7:程序从地址OOOOH开始。
序号8:跳转到MAIN主程序处。
序号9:程序分隔及说明。
序号10:主程序MAIN从地址0030H开始。
序号11:主程序开始,堆栈指针指向70H。
序号12:调用启动LCM子程序进行初始化。
序号13:调用清除LCM子程序。
序号14:向累加器送立即数10000000B,设定显示地址为第一行第1列。
序号15:调用写指令到LCM子程序。
序号16:将第一行字符串的起始地址送入DPTR中。
序号17:调用显示字符串到LCM子程序。
序号18:向累加器送立即数11000000B.设定显示地址为第二行第1列。
序号19:调用写指令到LCM子程序。
序号20:将第二行字符串的起始地址送入DPTR中。
序号21:调用显示字符串到LCM子程序。
序号22:程序动态停机。
序号23:程序分隔及说明。
序号24:第一行字符串。
序号25:第二行字符串。
序号26:程序分隔及说明。
序号27~33:启动LCM子程序。
序号34:程序分隔及说明。
序号35~45:查询忙碌标志信号子程序。
序号46:程序分隔及说明。
序号47~54:写指令到LCM子程序。
序号55:程序分隔及说明。
序号56~63:写数据到LCM子程序。
序号64:程序分隔及说明。
序号65~67:清除LCM子程序。
序号68:程序分隔及说明。
序号69~73:2,7mS延时子程序。
序号74:程序分隔及说明。
序号75—83:显示字符串到LCM子程序。由于这段子程序前面未出现过,这里作一详细解释。
序号75:标号DISP作显示字符串到LCM子程序名称。将累加器内容压栈。
序号76:清除累加器。
序号77:查表将字符串内容送入累加器。
序号78:若查到的内容为0,则终止查表。
序号79:调用写数据到LCM子程序。
序号80:DPTR加1指向下一个对象。
序号81:跳转到DISP_LOOP循环执行。
序号82:弹出压栈内容至累加器。
序号83:子程序返回。
序号84:程序分隔及说明。
序号85:程序结束。
以下,做第四个实验,使LCM显示两行字符串(英文信息)并循环移动。第一行显示“Shanghai”,第二行显示“China”。
在我的文档中建立一个文件目录(LCD4).然后建立一个LCD4.uv2的工程项目,最后建立源程序文件(LCD4.asm)o输入下面的程序:
序号:1:****89C51引脚定义*****
编译通过后,将LCD4文件夹中的hex文件通过TOP851编程器烧录到89C51芯片中,将芯片插入到S2型数码管试验板上,试验板上标示LCD1的排针通过14芯排线与液晶显示模组( LCM)正确连接,将TOP851编程器的9V直流电源插到S2型试验板上通电运行。可看到液晶显示屏上显示的两行英文自左向右移动,反复循环。
本文关键字:暂无联系方式显示电路-显示屏,单元电路 - 显示电路-显示屏
上一篇:LED/16 x2字符液晶试验板