ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:375.33KB ,
资源ID:10185782      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10185782.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机控制液晶显示模块.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机控制液晶显示模块.docx

1、单片机控制液晶显示模块 摘 要单片机具有控制功能强,集成度高、可靠性高、体积小,低电压、低能耗等特点,并且具有优异的性能价格比。自20世纪70年代问世以来,受到人们的广泛关注。几十年间,单片机的发展十分迅猛,在控制领域独占鳌头。在我国,单片机已广泛地应用在工业自动化控制、自动检测、智能仪器仪表、家用电器、电力电子、机电一体化设备等各个方面,而51单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习、应用,以单片机为核心,辅以必要的电路,设计了一个简易的液晶屏显示地图的程序,它由直流电源供电,通过LCD显示出来。LCD还可以显示字母、数字符号、中文字型,具有绘图及文字画面混合

2、显示功能。现代社会对液晶屏显示一些字体和图形的应用十分普遍,比如公交车上的报站牌,建筑楼上的广告标语等等。本此课设所要求的是将单片机与LCD液晶屏相结合,并编写相应的程序在液晶屏上显示出辽宁省地图。关键词:LCD液晶屏 51单片机 辽宁省地图目录摘 要 I1 绪论 12 总体方案设计 22.1 OCMJ4X8C_3型液晶显示屏的工作原理 22.2 串行接口与串行传输资料 42.3 汉字图形显示步骤 53硬件设计 63.1电路设计 63.2 LCD液晶屏外形尺寸图及坐标图 63.3功能模块设计 74 软件设计 94.1 主程序流程图 94.2 LCD显示模块设计 105 调试分析 106结论 1

3、07总结 11附录一 12附录二 121 绪论 单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机内部也用和电脑功能类似的模块,比如CPU,内存,并行总线,还有和硬盘作用相同的存储器件,不同的是它的这些部件性能都相对我们的家用电脑弱很多,不过价钱也是低的,一般不超过10元即可.用它来做一些控制电器一类不是很复杂的工作足矣了。我们现在用的全自动滚筒洗衣机、排烟罩、VCD等等的家电里面都可以看到它

4、的身影!它主要是作为控制部分的核心部件。 它是一种在线式实时控制计算机,在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机的(比如家用PC)的主要区别。单片机是靠程序的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以

5、及高可靠性! 由于单片机对成本是敏感的,所以目前占统治地位的软件还是最低级汇编语言,它是除了二进制机器码以上最低级的语言了,既然这么低级为什么还要用呢?很多高级的语言已经达到了可视化编程的水平为什么不用呢?原因很简单,就是单片机没有家用计算机那样的CPU,也没有像硬盘那样的海量存储设备。一个可视化高级语言编写的小程序里面即使只有一个按钮,也会达到几十K的尺寸!对于家用PC的硬盘来讲没什么,可是对于单片机来讲是不能接受的。 单片机在硬件资源方面的利用率必须很高才行,所以汇编虽然原始却还是在大量使用。一样的道理,如果把巨型计算机上的操作系统和应用软件拿到家用PC上来运行,家用PC的也是承受不了的。

6、可以说,二十世纪跨越了三个“电”的时代,即电气时代、电子时代和现已进入的电脑时代。不过,这种电脑,通常是指个人计算机,简称PC机。它由主机、键盘、显示器等组成。还有一类计算机,大多数人却不怎么熟悉。这种计算机就是把智能赋予各种机械的单片机(亦称微控制器)。顾名思义,这种计算机的最小系统只用了一片集成电路,即可进行简单运算和控制。因为它体积小,通常都藏在被控机械的“肚子”里。它在整个装置中,起着有如人类头脑的作用,它出了毛病,整个装置就瘫痪了。现在,这种单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用电器等。各种产品一旦用上了单片机,就能起到使产品升级换代的功效,常在产

7、品名称前冠以形容词“智能型”,如智能型洗衣机等。现在有些工厂的技术人员或其它业余电子开发者搞出来的某些产品,不是电路太复杂,就是功能太简单且极易被仿制。究其原因,可能就卡在产品未使用单片机或其它可编程逻辑器件上。在当今社会中,LCD液晶屏的使用非常广泛,在工业上可以通过液晶屏显示一些数值,比如测量电压表等;在生活中,可以通过液晶屏显示一些人们日常生活中所需的资料。但液晶屏显示的使用也非常方便,只需要工作人员很简单的操作、控制,人们就可以很直观的去查看一些信息。液晶屏的使用简单方便,本文介绍的是ocmj4x8c_3型号液晶显示屏,尺寸是128*64 DOTS,通过51单片机以8位16进制转换的数

8、据,在液晶屏上显示出来。此系统核心部件是MCS-51单片机、LCD显示器。2 总体方案设计 2.1 OCMJ4X8C_3型液晶显示屏的工作原理此模块可以显示字母、数字符号、中文字型及图形,具有绘图及文字画面混合显示功能。提供三种控制接口,分别是8位微处理器接口,4位微处理器接口及串行接口(OCMJ4X16A/B无串行接口)。所有的功能,包含显示RAM,字型产生器,都包含在一个芯片里面,只要一个最小的微处理系统,就可以方便操作模块。内置2M-位中文字型ROM (CGROM) 总共提供8192个中文字型(16x16点阵),16K位半宽字型ROM(HCGROM) 总共提供126 个符号字型(16x8

9、点阵),64x16位字型产生RAM(CGRAM),另外绘图显示画面提供一个64x256点的绘图区域(GDRAM),可以和文字画面混和显示。提供多功能指令:画面清除(Display clear)、光标归位(Return home)、显示打开/关闭(Display on/off)、光标显示/隐藏(Cursor on/off)、显示字符闪烁(Displaycharacter blink)、光标移位(Cursor shift)、显示移位(Displayshift)、垂直画面卷动(Vertical line scroll)、反白显示(By_line reverse display)、待命模式(Stand

10、bymode)。表-1 OCMJ4X8C_3的引脚说明引脚名称方向说明1VSS-GND(0V)2VDD-Supply Voltage For Logic(+5V)3NC-Supply Voltage For LCD(悬空)4RS(CS)IH:Data L:Instruction Code5R/W(STD)IH:Read L:Write6E(SCLK)IEnable Signal,高电平有效7DB0I/O数据08DB1I/O数据19DB2I/O数据210DB3I/O数据311DB4I/O数据412DB5I/O数据513DB6I/O数据614DB7I/O数据715PSBIH:Parallel Mo

11、de L:Serial Mode16NC-空脚17/RSTIReset Signal,低电平有效18NC-空脚19LEDA-背光源正极(+5V)20LEDK-背光源正极(0V)图5 液晶显示电路2.2 串行接口与串行传输资料当PSB脚接低电位时,模块将进入串行模式。从一个完整的串行传输流程来看,一开始先传输启始字节,它需先接收到五个连续的1(同步位字符串),在启始字节,此时传输计数将被重置并且串行传输将被同步,再跟随的两个位字符串分别指定传输方向位(RW)及寄存器选择位(RS),最后第八的位则为0。在接收到同步位及RW和RS资料的启始字节后,每一个八位的指令将被分为两个字节接收到:较高4位(D

12、B7DB4)的指令资料将会被放在第一个字节的LSB部分,而较低4位(DB3DB0)的指令资料则会被放在第二个字节的LSB部分,至于相关的另四位则都为0。串行传输讯号请参考下图说明:图6 液晶显示时序图图7 串行接口时序图2.3 汉字图形显示步骤1、显示资料RAM(DDRAM)显示数据RAM 提供64x2 个字节的空间,最多可以控制4 行16 字(64 个字)的中文字型显示,当输入显示资料RAM时,可以分别显示CGROM,HCGROM 与CGRAM 的字型;本系列模块可以显示三种字型,分别是半宽的HCGROM 字型、CGRAM 字型及中文CGROM 字型,三种字型的选择,由在DDRAM 中写入的

13、编码选择,在0000H0006H 的定字型,02H7FH 的编码中将选择半编码中将选择CGRAM 的自宽英数字的字型,至于A1 以上的编码将自动的结合下一个字节,组成两个字节的编码达成中文字型的编码。BIG5(A140D75F) GB(A1A0F7FF),详细各种字型编码如下:1). 显示半宽字型:将8 位资料写入DDRAM 中,范围为02H7FH 的编码。2). 显示CGRAM 字型:将16 位资料写入DDRAM 中,总共有0000H,0002H,0004H,0006H 四种编码。3). 显示中文字形:将16 位资料写入DDRAM 中,范围为A140HD75FH 的编码(BIG5) , A1

14、A0HF7FFH 的编码(GB)。将16 位资料写入DDRAM 方式为透过连写入两个字节的资料来完成,先写入高字节(D15D8)再写入低字节(D7D0)。2、绘图RAM(GDRAM)绘图显示RAM 提供64x32 个字节的记忆空间(由扩充指令设定绘图RAM 地址),最多可以控制256x64点的二维绘图缓冲空间,在更改绘图RAM 时,由扩充指令设定GDRAM 地址先设垂直地址再设水平地址(连续写入两个字节的数据来完成垂直与水平的坐标地址),再写入两个8 位的资料到绘图RAM,而地址计数器(AC)会自动加一,整个写入绘图RAM 的步骤如下:1). 先将垂直的字节坐标(Y)写入绘图RAM 地址。2)

15、. 再将水平的字节坐标(X)写入绘图RAM 地址。3). 将D15D8 写入到RAM 中(写入第一个Bytes)。4). 将D7D0 写入到RAM 中(写入第二个Bytes)。3硬件设计3.1电路设计图1 电路设计图3.2 LCD液晶屏外形尺寸图及坐标图图2 液晶屏外形尺寸图图3 液晶屏坐标图3.3功能模块设计根据分析整个系统主要划分两个主模块,即:51控制模块和LCD显示模块,以及51控制模块中的调用子程序模块,功能模块图如图2所示。 图4 系统功能模块图(1)51控制模块该模块实现提供控制字,发送数据和命令。(2)LCD显示模块该模块实现将数据扫描成地图在LCD上显示出来。(3)调用子程序

16、模块 MOV A,#34H :34H-扩充指令操作 LCALL SEND_I :写指令子程序,扩充指令操作 MOV A,#30H :30H-基本指令操作 LCALL SEND_I :写指令子程序,基本指令操作 MOV A,#80H LCALL SEND_I :设定绘图RAM地址 MOVC A,A+DPTR LCALL SEND_D :查表指令,调用数据 MOV A,#01H LCALL SEND_I :待命模式 MOV DPTR,#TAB5 :显示图形 LCALL PHO_DISP A,#34H LCALL SEND_I :调用count的数值 MOV A,LCD_Y LCALL SEND_I

17、 :输出Y轴值 MOV A,LCD_X LCALL SEND_I :输出X轴值4 软件设计4.1 主程序流程图图8 主程序流程图4.2 LCD显示模块设计图9 LCD显示模块设计图5 调试分析在设计本系统的过程中,LCD液晶屏上的汉字显示出现乱码和字体不对齐的现象,经过研究,发现一个汉字代表两个byte,所以在源程序中改正对齐,最后显示的结果符合要求。6结论 经过这五周的努力,反复的调试与修改,最终顺利的完成了本次课设,任务书上所要求的效果也在实验箱上实现出来,并通过了老师的检查。本程序可以实现辽宁省地图的图形显示。但编写的程序还是有些许不足,比如在调用子程序上就略显冗余不够精炼,反映出自己在

18、处理一些细节方面的基本功不够扎实,如果今后有机会一定要做到更好。7总结为期五周的课程设计结束了,经过不断的努力,在老师的主导帮助下,终于完成了液晶屏显示辽宁省地图这个课程设计。在此期间,我学到了很多新的东西,让我更丰富了自己,经过这些课设的锻炼,发现自己的不足,并开始有意识的去找寻未知,更积极的去探索自己不足的东西,使我更渴望了对新事物的研究与学习。通过查看相关的资料和书籍,反复对比与摘取,把最精髓的部分挑出来用在实验中,让此程序最接近课设的要求。每一次否定自己先前的选择都是一种进步,我会告诉自己总会有更合适的方法使其达到同样的效果。不满足的心态也是我此次试验的一大收获。虽然过程很艰难,程序的

19、调试也是很枯燥的,但当实验的效果出来时,我非常的开心,觉得再多的付出也是值得的。虽然编写的程序不是很完美,但我相信,通过今后的磨练,自己会做的一次比一次好。这次做论文的经历也会使我终身受益,我感受到做设计是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,是对自己所有努力的一个交代,不得有半点马虎。我感觉通过这次试验,使我更加体会到了程序的魅力,我会更加严谨的对待每次难得的提高自己的机会,相信以后自己会做的更好。附录一 附录二;*OCM4x8C串口*RS EQU P3.0 ;接收信号STD EQU P3.1 ;读写指令SCLK EQU P3.2 ;时钟信号PSB EQU P3.

20、3 ;行列选RST EQU P3.5 ;复位RS_STU EQU 20H.0 LCD_X EQU 30H LCD_Y EQU 31HCOUNT EQU 34HCOUNT1 EQU 35HCOUNT2 EQU 36HCOUNT3 EQU 37HLCD_DATA EQU 38HLCD_DATA1 EQU 39HLCD_DATA2 EQU 3AHDA_IN EQU 3BHWR_COUNT1 EQU 3CHWR_COUNT2 EQU 3DH;* ORG 0000H LJMP MAIN ORG 0100HMAIN: NOP NOP MOV SP,#5FH SETB RST CLR PSB;*初始化*LG

21、S0: MOV A,#34H ;34H-扩充指令操作 LCALL SEND_I ;写指令子程序,扩充指令操作 MOV A,#30H ;30H-基本指令操作 LCALL SEND_I ;写指令子程序,基本指令操作 MOV A,#01H ;清除显示;*LGS3: MOV A,#34H LCALL SEND_I MOV A,#30H LCALL SEND_I MOV DPTR,#TAB3 ;显示汉字和字符 MOV COUNT,#40H MOV A,#80H LCALL SEND_I ;设定绘图RAM地址LGS31: CLR A MOVC A,A+DPTR LCALL SEND_D INC DPTR

22、DJNZ COUNT,LGS31 LCALL DELAY3;$LGS4: MOV A,#01H LCALL SEND_I ;待命模式 LCALL DELAY2 LCALL DELAY2;$LGS5: MOV DPTR,#TAB5 ;显示图形 LCALL PHO_DISP LCALL DELAY3 LCALL DELAY3 LJMP LGS5;*PHO_DISP: MOV COUNT3,#02H ;全屏显示图形子程序 MOV LCD_X,#80HPHO_DISP1: MOV LCD_Y,#80H MOV COUNT2,#20HPHO_DISP2: MOV COUNT1,#10H LCALL WR

23、_ZBPHO_DISP3: CLR A MOVC A,A+DPTR LCALL SEND_D INC DPTR DJNZ COUNT1,PHO_DISP3 INC LCD_Y DJNZ COUNT2,PHO_DISP2 MOV LCD_X,#88H DJNZ COUNT3,PHO_DISP1 MOV A,#36H LCALL SEND_I ;调用count2的数值 MOV A,#30H LCALL SEND_I ;X轴坐标数值 RET;$CLRRAM: MOV LCD_DATA1,#00H ;GDRAM写0子程序 MOV LCD_DATA2,#00H RET;$WR_ZB: MOV A,#34

24、H LCALL SEND_I ;调用count的数值 MOV A,LCD_Y LCALL SEND_I ;输出Y轴值 MOV A,LCD_X LCALL SEND_I ;输出X轴值 MOV A,#30H LCALL SEND_I ;X轴坐标数值 RET;*SEND_D: SETB RS_STU ;写数据子程序 MOV DA_IN,A LCALL SERIAL_WR RETSEND_I: CLR RS_STU ;写指令子程序 MOV DA_IN,A LCALL SERIAL_WR RET;$;DA_IN: 数据或指令;RS_STU: 数据指令选择;WR_COUNT1: 计数器1;WR_COUNT

25、2: 计数器2SERIAL_WR: PUSH ACC MOV A,DA_IN SETB CS MOV WR_COUNT1,#05H SETB STD ;1SERIAL_WR1: CLR SCLK SETB SCLK DJNZ WR_COUNT1,SERIAL_WR1 CLR STD ;RW CLR SCLK SETB SCLK JNB RS_STU,CLR_RS SETB STD ;写数据 SJMP SETB_RSCLR_RS: CLR STD ;写指令SETB_RS: CLR SCLK SETB SCLK CLR STD ;0 CLR SCLK SETB SCLK MOV WR_COUNT1

26、,#02HSERIAL_WR2: MOV WR_COUNT2,#04HSERIAL_WR21: RLC A MOV STD,C CLR SCLK SETB SCLK DJNZ WR_COUNT2,SERIAL_WR21 MOV WR_COUNT2,#04H CLR STD ;0SERIAL_WR22: CLR SCLK SETB SCLK DJNZ WR_COUNT2,SERIAL_WR22 DJNZ WR_COUNT1,SERIAL_WR2 CLR SCLK CLR CS LCALL DELAY2 POP ACC RET;*DELAY3: MOV R5,#16HDEL31: MOV R6,#

27、0FFHDEL32: MOV R7,#0FFHDEL33: DJNZ R7,DEL33 DJNZ R6,DEL32 DJNZ R5,DEL31 RETDELAY2: MOV R6,#06HDEL21: MOV R7,#18HDEL22: DJNZ R7,DEL22 DJNZ R6,DEL21 RET;*TAB3:DB 辽宁省地图 DB DB DB TAB5:DB 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00DB 00,00,00,00,00,00,00,00,00,00,3EH,00,00,00,00,00DB 00,00,00,00,00,00,00,00,00,00,23,80,00,00,00,00DB 00,00,00,00,00,00,00,00,00,00,0C0H,7EH,00,00,00,00DB 00,00,00,00,00,00,00,00,00,00,80,03,07,80,00,00DB 00,00,00,00,00,00,00,00,00,00,80,00,8CH,0C0H,00,00DB 00,00,00,00,00,00,00,00,00,00,80,00,0C8H,40,00,00DB 00,00,00,00,00,00,00,00,00,07,00,00,70,40,00,00

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1