毕业设计字符液晶显示_第1页
毕业设计字符液晶显示_第2页
毕业设计字符液晶显示_第3页
毕业设计字符液晶显示_第4页
毕业设计字符液晶显示_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

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

文档简介

1、毕毕 业业 设设 计计题目 字符液晶显示 系别 专业 班级 姓名 学号 指导教师 日期 设计任务书设计题目设计题目字符液晶显示设计要求设计要求1、选用合适的单片机和液晶显示模块来完成显示功能,画出硬件电路图,并编写相应的软件程序;2、在显示屏上能显示“XXXX 等其他的文字和简单的数字;3、经过延时,能出现第二屏,第三屏等想要的结果。设计进度要求:设计进度要求:第一周:了解题目、弄清题目的要求;第二周:查找相关书籍,了解各个元件、软件的使用方法及注意事项;第三周:设计硬件原理图;第四周:设计软件系统;第五周:编写所需程序;第六周:调试程序并纪录相关的数据和错误;第七周:写毕业论文草稿并修改;第

2、八周:毕业答辩。 指导教师(签名):指导教师(签名): 摘 要液晶显示模块内置的液晶驱动控制器种类繁多,常用的有 SED1520, HD61202U,T6963C 和 SED1335。选用液晶显示模块时,根据现有条件及需求选择了SED1520 液晶显示驱动控制器,它集行、列驱动器和控制器于一体、内置控制器型字符形液晶显示驱动控制器。在小规模字符形液晶显示模块上,使用 SED1520 液晶显示驱动控制器组成液晶显示驱动和控制系统,是低成本、低功耗、高集成的最佳选择。本设计以 ATMEL 公司生产的 MCS-51 系列单片机中的 AT89S51 芯片为核心,在内置 SED1520 122X32 L

3、CD 液晶显示屏上显示出使用者所需要的字符。同时基于SED1520 控制器的 122X32 型图形显示模块采用间接访问工作方式与 51 系列的 CPU 相连接。由于 SED1520 内没有自带的字符库,所以选用 PCtoLCD2000 字符库提取字模,用 ASM 程序设置对于控制器的读、写状态的时序,从而实现对于控制器的写指令代码、写数据代码、清屏幕、屏幕翻屏等功能的操作。本设计硬件结构简单,成本低廉,方便硬件的调试和维护也很方便。而且软件设计采用模块化设计,各部分功能明晰,便于调试和功能扩展。关键词关键词:液晶显示 ,AT89S51 芯片,SED1520 控制器 目目 录录1 系统整体设计

4、.21.1 设计总框图.21.2 设计说明.22 系统硬件电路原理 .42.1 硬件电路图.42.2 元件选型.42.3 电路介绍.103 系统软件设计 .123.1 主程序.123.2 显示初始化程序.123.3 显示程序.144 单片机汇编辅助工具介绍 .194.1 伟福仿真器.194.2 KEILUVISION2 仿真器系统介绍 .194.3 液晶显示字模使用简介.195 调试过程 .215.1 在伟福中的调试.215.2 在 KEIL中的调试并连接实验箱 .22结 论 .27致 谢 .28参考文献 .29附录 A:.30附录 B:.311 1 系统整体设计系统整体设计1.11.1 设计

5、总框图设计总框图根据设计题目要求选用的主要是 89S51 芯片和内置控制器为 SED1520 的液晶显示屏,总体设计共分为 5 个模块:使系统恢复初始状态的复位电路模块;稳定频率和选择频率的晶振电路模块;延时电路模块,储存系统程序的 AT89S51 芯片以及显示效果的 LCD 液晶显示模块。这 5 个功能模块电路组成了我们的设想。根据题目要求所设计的硬件电路总框图如下图 1.1 所示:图 1.1 硬件电路总框图1.21.2 设计说明设计说明根据设计题目对硬件部分和软件部分分别进行了设计。(1)本设计采用的是以 AT89S51 芯片为核心,AT89S51 是一个低功耗,高性能 CMOS 8 位单

6、片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦写1000 次的 Flash 只读程序存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及 80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统供给高性价比的解决方案(2)液晶显示屏内置控制器为 SED1520,点阵为 12232,由 E1、E2 分别选通,控制显示屏的左右两半屏。有两片 SED1520,每片 SED1520 横向 61 点纵向有 1

7、6 点,故两片 SED1520 可控制横向 122 点,纵向 32 点,如果以 1616 点阵字符而言,每行可显示 7 个字符,三屏共计 28 个 16*16 点阵字符,可显示 28 个汉字。两片SED1520 由 E1、E2 分别选通,控制显示屏的左右两半屏。(3)在本次设计中采用延时换屏的功能来实现翻屏效果,延时程序的延时时间主要与两个因素有关:一是所用晶振的频率,另一个是延时程序中循环次数。延时控制一般可以多重循环来控制。由于每个指令所花费的机器周期及执行时间是固定的,因此可以经过分析执行指令数的多少来计算所延迟的时间。指令中规定晶振为12MHz,单周期指令的执行时间一般为 1us。本设

8、计用 AT89S51,石英晶振主频率11.0592MHz,一个机器周期费时 1.085us,所以在程序执行中实际延时大于计算值。现实中,若要实现延时的精确性,可以在示波器上调整来实现。在本次设计中,只需调延时即可在实现在原有的液晶屏上换另一屏文字,即换屏。(4)清屏功能的实现主要是依靠软件对程序的复位,关显示,设置占空比,正向排序,以及设置起始行和再开显示的程序来实现。2 2 系统硬件电路原理系统硬件电路原理2.12.1 硬件电路图硬件电路图根据题目和设计要求我设计的电路图如图 2.1 所示:图 2.1 硬件电路图2.22.2 元件选型元件选型2.2.12.2.1 AT89S51AT89S51

9、 芯片芯片AT89S51 是一个低功耗,高性能 CMOS 8 位单片机,片内含 8k Bytes ISP(In-system programmable)的可反复擦写 1000 次的 Flash 只读程序存储器,器件采用ATMEL 公司的高密度、非易失性存储技术制造,兼容标准 MCS-51 指令系统及80C51 引脚结构,芯片内集成了通用 8 位中央处理器和 ISP Flash 存储单元,功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统供给高性价比的解决方案。1、AT89S51 芯片管脚图如下图 2.2 所示:图 2.2 AT89S51 芯片管脚图AT89S51 芯片主要特性:

10、 与 MCS-51 兼容 8k Bytes Flash 片内程序存储器 寿命:1000 写/擦循环 全静态工作:0Hz-24MHz 三级程序存储器锁定 128 bytes 的随机存取数据存储器(RAM) 32 个外部双向输入/输出(I/O)口 2 个 16 位可编程定时计数器 2 个全双工串行通信口 5 个中断优先级 2 层中断嵌套中断 可编程串行通道 看门狗(WDT)电路 片内时钟振荡器2管脚说明:VCC:供电电压。GND:接地P0 口:P0 口为一个 8 位双向 I/O 口,P0K 口可驱动 8 个 LSTTL 门.P1 口:P1 口是一个 8 位双向 I/O 口,P1 口可驱动 4 个

11、LSTTL 门电流。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在平时,ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。XTAL1:反向

12、振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。2.2.22.2.2 SED1520SED1520 液晶显示器液晶显示器SED1520 液晶显示驱动器是一种点阵图形式液晶显示驱动器,它可直接与 8 位微处理器相连,集行、列驱动器于一体,因此使用起来十分方便,作为内藏式控制器被广泛应用于点阵数较少的液晶显示模块。SED1520 液晶显示器的特性有(1) 内部显示 RAM 容量为 2560b。其每一位数据控制液晶屏上一点的亮灭状态。“1”表示亮,“0”表示暗;(2)具有 16 个行驱动输出和 61 个列驱动输出;(3)可直接与 80 系列微处理器相连,亦可直接与 68

13、系列微处理器相连;(4)驱动占空比为 1/16 或 1/32;(5)可以与 SED1520 级联使用,以便扩展行、列驱动能力。2模块电路特性SED1520 系列属于行、列驱动及控制合一的液晶显示驱动控制器,模块的接口定义如下表所示:序号符号状态功能:1Vcc-逻辑电源正,2GND-逻辑电源地,3V0-液晶显示驱动电源,4RES-复位,5E1 输入主工作方式 IC 的使用信号,6E2 输入从工作方式 IC 的使用信号,7R/W 输入读/写选择信号,8A0 输入寄存器选择信号,9DB0 三态数据总线(最低位) ,10DB1 三态数据总线,11DB2 三态数据总线,12DB3 三态数据总线,13DB

14、4 三态数据总线,14DB5 三态数据总线,15DB6 三态数据总线,16DB7 三态数据总线(最高位) 。3SED1520 控制指令要使内置 SED1520 图形液晶是显示模块还需要了解其软件特性,即 SED1520 的指令功能,才能很好的应用内置 SED1520 图形液晶显示模块。SED1520 指令一览表如下表 2.1 所示:表 2.1SED1520 控制指令控制信号控制代码指令名称A0 R/WD7 D6 D5 D4 D3 D2 D1 D0复位0 01 1 1 0 0 0 1 0显示开关设置0 01 0 1 0 1 1 1 DI地址排序设置0 01 0 1 0 0 0 0 A休闲状态设置

15、0 01 0 1 0 0 1 0 S占空比设置0 01 0 1 0 1 0 0 DU显示起始行设置0 01 1 0 L4 L3 L2 L1 L0页面地址设置0 01 0 1 1 1 0 P1 P2列地址设置0 00 C6 C5 C4 C3 C2 C1 C0启动改写方式0 01 1 1 0 0 0 0 0结束改写方式0 01 1 1 0 1 1 1 0读取状态字0 1BUSY ADC ON/OFF RESET 0 0 0 0写显示数据1 0数据读显示数据1 1数据SED1520 的 13 条指令从作用上可以分为两大类:一类为显示方式的设置指令,前六条指令为这一类指令,它们只需在初始化程序中写入一

16、次就可以了。另一类为显示数据读/写操作的指令,从第七条往下(包括状态字)都是这类指令,它们需要经常地使用。下面详细结实各个命令的功能:(1)复位格式(Reset)11100010OE2H该指令用于实现 SED1520 的软件复位。该指令执行时,显示起始行寄存器清零,接着列地址指针清零,之后页地址寄存器置为”3” 。 (2)休闲状态 设置(Statis drive ON/OFF)1010010S0A4H/0A5H该指令是休闲状态的软件开关,当 S=1 时,SED1520 进入休闲状态;当 S=0 时,SED1520 将中止或退出休闲状态。 (3)占空比设置(Slect duty) 1010100

17、DUOA8H/0A9H该指令用于设置 SED1520 的占空比,Du=0 时为 1/16 占空比,Du 为 1 时为 1/32占空比。(4)ADC 选择指令(Selet ADC)1010000AOAOH/OA1H该指令用于设置显示存储器中单元的地址所对应的显示驱动输出的顺序。A=0 时,顺时针显示;A=1 时,逆时针显示。(5)显示起始行设置(Display start line)110L4L3L2L1L0OCOH/ODFH(6)显示开/关设置(Display ON/OFF)1010111DIOAEH/OAFH该指令控制着显示驱动器的输出。当 Di=0 时,显示关,当 Di=1 时,显示开。(

18、7)页面显示存储的设置101110P1P20B8H/0BBHSED1520 将显示存储器分为 4 个页面(0-3 页) 。每个页面都有 80 个字节。页面管理可由 2 位页地址寄存器控制,该指令就是设置页地址寄存器的内容,以选择相应的显示寄存器的页面。P=0-3,对应代表 0-3 页。(8)列地址设置(Set column(segment)address)0C6C5C4C3C2C1C000H4FHSED1520 的显示存储器的每个页面上都有 80 个字节,每个字节中的 8 位数据都对应着显示屏上同一列的 8 点行。列地址指针就是管理这 80 个字节书单元的。列地址指针是一个 7 位加一记数器。

19、由它和页地址寄存器组合唯一指定了显示存储器的某一单元。列地址指针在计算机读显示存储器的每次操作后都将自动加一。该指令就是设置列地址指针内容的。CY=04FH,对应有尽有 180 单元的地址。(9)写数据该操作将 8 位数据写入由先前已确定的显示存储器地址的单元内,操作结束时将列地址指针加一。(10)读数据该操作将当前页地址寄存器和列地址指针组合确定的显示存储器地址的内容读出来,操作结束时将列地址指针加一。2.32.3 电路介绍电路介绍2.3.12.3.1 复位电路复位电路单片机复位是使 CPU 和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后 PC0000H,使

20、单片机从第-个单元取指令。无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚 MCS-51 型单片机复位的条件、复位电路和复位后状态。单片机复位的条件是:必须使 RST/Vpd 或 RST 引脚(9)加上持续两个机器周期(即 24 个振荡周期)的高电平。例如,若时钟频率为 12MHz,每机器周期为1us,则只需 2us 以上时间的高电平,在 RST 引脚出现高电平后的第二个机器周期执行复位。本次设计用的的复位电路如图 2.3 所示:图 2.3 复位电路2.3.22.3.2 晶振电路晶振电路1晶体振荡器的作用:石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选

21、择频率,是一种可以取代 LC 谐振回路的晶体谐振元件。 2本设计所用的晶体振荡电路如图 2.4 所示: C133PC233PY112MHzX1X2图 2.4 晶体振荡电路此晶振电路所选用的石英晶振频率为 12MHZ。时钟周期就是单片机外接晶振的倒数,例如 12M 的晶振,它的时间周期就是1/12us) ,是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU 仅完成一个最基本的动作。对于某种单片机,若采用了 1MHZ 的时钟频率,则时钟周期为 1us;若采用 4MHZ 的时钟频率,则时钟周期为 250us。由于时钟脉冲是计算机的基本工作脉冲,它控制着计算机的工作节奏(使计算机的每一步都统

22、一到它的步调上来) 。显然,对同一种机型的计算机,时钟频率越高,计算机的工作速度就越快。但是,由于不同的计算机硬件电路和器件的不完全相同,所以其所需要的时钟周频率范围也不一定相同。我们学习的51 系列单片机的时钟范围是 1.2MHz-12MHz。3 3 系统软件设计系统软件设计3.13.1 主程序主程序如图所示,程序开始运行后,要对液晶显示进行初始化。初始化后清屏,为输出数据做准备。然后调用中文显示程序,在显示屏上显示数据。如果有延时的话,程序会进行相应处理。如此循环。主程序框图如下图 3.1 所示:图 3.1 主程序框图3.23.2 显示初始化程序显示初始化程序在液晶显示信息之前,必须先对液

23、晶进行初始化。初始化的流程如下图 3.2所示:图 3.2 显示初始化程序程序如下:-初始化程序INIT: MOV COM,#0E2H ;复位 LCALL PR0 LCALL PR3 MOV COM,#0A4H ;关闭休闭状态 LCALL PR0 LCALL PR3 MOV COM,#0A9H ;设置 1/32 占空比 LCALL PR0 LCALL PR3 MOV COM,#0A0H ;正向排序设置 LCALL PR0 LCALL PR3 MOV COM,#0C0H ;设置显示起始行为第一行 LCALL PR0 LCALL PR3 MOV COM,#0AFH ;开显示设置 LCALL PR0

24、LCALL PR3 RET;-清屏程序3.33.3 显示显示程序程序如下图 3.3 所示,程序运行至中文显示程序时,会在中文字库中查找字符码并计算字模地址。然后设置显示屏的页地址。在计算一列的位置后,程序依次从字库中调出一列字模的数据输出到显示屏上,直到这一页写完为止。写完一页后,程序会调用换屏程序。换屏程序进行清屏,然后继续依次调一列字模数据输出到显示屏上,直到写完这一页。程序可以不停运行,可以调用延时来控制。图 3.3 程序总体流程图比如要显示一个“燕”字。它的字库是:DB 044H,044H,044H,0F4H,004H,0DFH,054H,054HDB 054H,0DFH,004H,0

25、E4H,044H,064H,044H,000HDB 042H,062H,039H,003H,008H,033H,062H,002HDB 0AH,033H,060H,001H,0AH,032H,063H,000H 要在液晶屏上显示出来,要执行下面的程序:AAA: MOV A,#0D8H ;显示起始行为第16行MOV COM,A ;COM是指令寄存器 通过COM写指令LCALL PR0 ;调用写指令代码子程序LCALL PR1 ;调用写数据子程序MOV CTEMP,#0 ;列初值MOV PAGE_,#01H ;页面是第一页MOV A,CTEMP ;设置这个字要从哪一列显示,这里是从00H就是0列A

26、DD A,#00H MOV COLUMN,AMOV CODE_,#00H ;CODE是字符代码寄存器,写入要显示字符的位置,00H是第0个字符,也就是首字符LCALL CCW_PR ; 调用中文显示子程序;;-中文显示子程序CCW_PR: MOV DPTR,#CCTAB ;确定字符字模块首地址MOV A,CODE_ ;取代码MOV B,#20H ;字模块宽度为32个字节MUL AB ;代码32ADD A,DPL ;字符字模块首地址MOV DPL,A ;字模库首地址代码32MOV A,BADDC A,DPHMOV DPH,APUSH COLUMN ;列地址入栈PUSH COLUMN ;列地址入栈

27、MOV CODE_,#00H ;代码寄存器借用为间址寄存器CCW_1: MOV COUNT,#10H ;计数器设置为16MOV A,PAGE_ ;读页地址寄存器ANL A,#03HORL A,#0B8H ;”或”页地址设置代码MOV COM,A ;写页地址设置指令LCALL PR0LCALL PR3POP COLUMN ;取到地址值MOV A,COLUMN ;读列地址寄存器CLR CSUBB A,#PD1 ;列地址减模块参数JC CCW_2 ;0为左半屏显示区域(E1)MOV COLUMN,A ;0为右半屏显示区域(E2)MOV A,PAGE_SETB ACC.3 ;设置区域标志位。MOV P

28、AGE_,A ;”0”为E1, ”1”为E2CCW_2: MOV COM,COLUMN ;设置列地址值MOV A,PAGE_ ;判区域标志以确定设置哪个控制器JNB ACC.3,CCW_3LCALL PR3 ;区域E2LJMP CCW_4CCW_3: LCALL PR0 ;区域E1CCW_4: MOV A,CODE_ ;取间址寄存器值MOVC A,A+DPTR ;取汉字字模数据MOV DAT,A ;写数据MOV A,PAGE_JNB ACC.3,CCW_5LCALL PR4 ;区域E2LJMP CCW_6CCW_5: LCALL PR1 ;区域E1CCW_6: INC CODE_ ;间址寄存器

29、加一INC COLUMN ;列地址寄存器加一MOV A,COLUMN ;判列地址是否超出区域范围CJNE A,#PD1,CCW_7CCW_7: JC CCW_8 ;未超出则继续MOV A,PAGE_ ;超出则判是否在区域E2JB ACC.3,CCW_8 ;在区域E2则退出SETB ACC.3 ;在区域E1则修改成区域E2MOV PAGE_,AMOV COM,#00H ;设置区域E2列地址为”0”LCALL PR3CCW_8: DJNZ COUNT,CCW_4 ;当页循环MOV A,PAGE_ ;读页地址寄存器JB ACC.7,CCW_9 ;判完成标志D7位, ”1”则完成退出INC A ;否则

30、页地址加一SETB ACC.7 ;置完成位为”1”CLR ACC.3MOV PAGE_,AMOV CODE_,#10H ;间址寄存器设置为16LJMP CCW_1 ;大循环CCW_9: RET执行完着一段后,整个“燕”字就显示出来了。4 4 单片机汇编辅助工具介绍单片机汇编辅助工具介绍4.14.1 伟福仿真伟福仿真软件软件 伟福仿真软件是一种完全脱离硬件信真器情况,对软件进行模拟仿真执行的软件.其开发环境的项目文件包括仿真器设置、模块文件、包含文件。仿真器设置包括仿真器类型、仿真头(POD)类型、CPU 类型、显示格式和产生的目标文件类型。在此设计中,运用伟福仿真软件先将原程序输入,经编译成功

31、的,再进行下载,仿真运行,调试没有错误后,存储到一固定盘下。这是软件调试的一种方法。4.24.2 Keiluvision2Keiluvision2 仿真软件系统介绍仿真软件系统介绍KeiluVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还是一个标准的Windows 应用程序,集成了 C51 编译器、A51 汇编器、L51 连接器、实时操作系统、项目管理器及调试器等,可以完成编辑、编译、链接、调试及仿真等整个开发流程,可以用 IDE 编辑 C 或汇编源文件。它的界面和常用的微软 VC+的界面相似,界面友好

32、,易学易用,在调试程序,在本设计中应用于软件仿真方面。4.34.3 液晶显示字模使用简介液晶显示字模使用简介我用到的字模提取工具是由网上免费提供下载的版本为 PCtoLCD2002 版的字模提取器。它简单、方便,可以按照你想要的显示顺序进行字模提取。界面采用新的字体,不会再有黑色粗体字,比以前的要漂亮多了。加入全面的提示帮助,尽量减少用户的各种疑惑。修正生成字模数据的一些格式 BUG,现在生成的 C51 格式字模数据基本上可以直接粘贴到源程序中使用而不需要修改了。加入新的字模数据格式调整项,允许用户更自由的定制自己需要的数据格式。全面支持保存当前设置功能,用户设置的字模格式,主窗口状态和字库生

33、成窗口选项信息均可保存,下一次打开窗口时不用重新设置(由于要全面更改程序使用的变量结构,所以这部分化了很多时间) 。增加输出紧凑格式数据选项,可以生成不包含空白行的字模数据。完善了每行数据显示个数的功能,可以任意设置每行显示的数据个数,并同时可以设置每行索引数据显示个数。现在当用户选择 10 进制输出时,会自动去掉生成字模数据前的“0 x,或后面的“H”,选择 16 进制时则会自动加上。对各个窗体重新设计以全面适应最大化的需要,如果您觉得当前窗口不够大,可以最大化使用。增加生成英文点阵字库功能,可自动生成 ASCII 码从 0-127 的任意点阵字库,使用方法同生成国标点阵字库功能。再次优化代

34、码,去掉各种调试信息,使程序速度再快一些。 工具界面如下图 4.1 所示:图 4.1 工具界面及设置5 5 调试过程调试过程 5.15.1 在伟福中的调试在伟福中的调试经过多天的思考和对资料的查阅终于把程序给编了出来,但是不知编的程序是否能通过调试,于是我通过伟福仿真软件和 Keil 软件来验证程序。首先打开伟福仿真软件的界面,对仿真器的参数值进行设置。其设置如图 5.1 所示:图 5.1 仿真器的选择我所选的是 8751 的仿真器,在目标生成文件中选择生成 BIN 和 HEX 文件(即二进制和十六进制文件) ,设置完成后点“好”就可以了。然后在伟福里面输入我们的程序进行调试,刚开始有好几处错

35、误我们的程序没有通过编译,然后我就查找错误的所在,一一更改之后终于通过编译,其运行结果如图 5.2 所示:图 5.2 编译通过后的界面5.25.2 在在 KeilKeil 中的调试并连接实验箱中的调试并连接实验箱5.2.15.2.1 打开项目打开项目在伟福内调试通过以后,再在 Keil 中下载到实验箱上进行验证,显现出所要求的效果。而在 Keil 中也要进行一些参数的设置,首先打开 Keil 仿真软件,首先要新建一个项目,点菜单 ProjectNew Project,在弹出的对话框中选择保存的路径并输入项目名称“yan ”后保存,然后在弹出新的项目窗口中选择参数,其参数的设置如下,由于我们使用

36、的是 Atmel 公司的芯片,所以要选 Atmel 后确定。如图5.3 所示:图 5.3 打开项目 5.2.25.2.2 设置芯片设置芯片在弹出的对话框中选择 AT89C51 这个芯片,确定。如图 5.4 所示:图 5.4 设置芯片5.2.35.2.3 设置参数值设置参数值所设置的参数值如图 5.5 所示:图 5.5 设置参数5.2.45.2.4 设置频率设置频率在 Xtal 中输入频率为 11.0592MHZ,然后再选 Debug 这个标签,选中第二个 Use复选框后点击 Setting 在弹出的对话框中选择 Baudrate 这一项,设置它的参数为38400。如图 5.6 所示:图 5.6

37、 设置频率5.2.55.2.5 编译编译把以上的参数设置完成以后把程序添加进来编译,编译通过后接上实验箱进行验证,在实验箱上显示的效果图如 5.7 所示:效果图 5.5.2.6 调试过程出现的错误: 1、在伟福仿真软件中出现的错误如下图:2、程序编译正确后,在试验箱上没有出现应有的效果;3、出现显示的汉字从中间显示不在最前端显示 ;4、显示屏上出现乱码。如何修改:1、经仔细察看,发现把中文显示字库的代码“0” (零)打成“o”(英文的 o)2、察看试验箱发现接线出现了错误,重新接线,出现了想要的效果;3、E1、E2 的接线接反;修改后实现正确;4、在查找字符代码的时候没有修改选项,经过修改显示

38、屏上显示正确的,想要的汉字。 结结 论论本次设计的字符液晶显示,它所要实现的功能如下:系统上电后,开始执行程序。显示程序执行后,首先第一屏幕显示“济源职业技术学” ;过 2 秒后第二屏显示“院电技零五零二” ;再过 2 秒第三屏显示“刘春燕” 。这次设计得到了想要的结果,但美中不足的一点是没有显示滚屏效果,仅用了延时程序实现换屏。如果选用更好的单片机,可以组成更具有抗干扰和性能可靠性的产品,其抗干扰能里虽然不如 PLC,但 PLC 价格昂贵,用单片机运行效果仍然令人满意,同时证明了本方案的正确。这种液晶显示可以用来作广告牌,公共场合的提示牌,若加以改善,会有更大的发展空间。效果图如下:致致 谢

39、谢毕业设计就要结束了,在这期间,我感到自己的收获是非常大的,使我在专业技能、团队协作等很多方面都有了很大的提高。首先,非常感谢张咏梅老师在这次设计过程中给予我悉心的指导与帮助。其次,感谢同学们对我的支持,在我进行资料查找时,是他们给了我信心和方向!在整个毕业设计中,用到了很多以前所学的知识。尤其是电子线路 CAD 和单片机课程。张老师还教给了我们遇到问题,如何去分析问题、解决问题的方法,使我们受益匪浅。从接受课题到现在完成毕业设计论文,我得到了张老师精心的指导和同学们的无微帮助,尤其是在课题设计的前期准备工作和设计的过程中,导师提出了许许多多宝贵的设计意见,同学们也都准备资料,积极讨论。在最后

40、的论文修改过程中张老师还在百忙之中,抽出时间为我们提供了必要的指导和帮助。这使得我们能够顺利的完成毕业设计工作,在短暂的两个月的相处时间里,张老师渊博的知识、干练的工作作风给我留下了深刻的印象,这对我不久的工作,起到很大的鼓动作用,使我终身受益,谨此向老师表达我衷心的感谢和崇高的敬意!总之,我的设计是老师和同学共同完成的结果,在设计的两个月里,我们合作的非常愉快,教会了我许多道理,是我人生的一笔财富,我再次向给予我帮助的老师和同学表示感谢!感谢济源职业技术学院的各位老师三年来对我们的教育,感谢学院能我们提供这次非常好的学习实践机会!参考文献参考文献1 何立民主编.单片机应用系统设计.北京航空航

41、天大学出版社 20002 胡汉才编.单片机原理及其接口技术. 清华大学出版社, 20013 梅丽凤,王艳秋编.单片机原理及接口技术,清华大学出版社4 李广弟,朱月秀,王秀山 . 单片机基础 2001.7 5 周航慈单片机应用程序设计技术.北京航空航天大学出版社 , 2002.16 邹振春.MCS-51 系列单片机及接口技术.北京:机械工业出版社,19997 王幸之,钟爱琴.AT89 系列单片机原理与接口技术.北京:北京航空大学出版社,20048 董国增.单片机接口及应用实验和训练指导.北京:机械工业出版社,19999 刘和平,刘跃 单片机原理及应用。重庆:重庆大学出版社 200410 李传军

42、单片机原理及应用。郑州:河南科学技术出版社 2006附录附录 A A: 附录附录 B:A0 EQU P3.4 ;寄存器选择信号R_W EQU P3.5 ;读_写选择信号E1 EQU P3.6 ;使能信号 1E2 EQU P3.7 ;使能信号 2PD1 EQU 3DH ;122/2 分左右两半屏 122*32COLUMN EQU 30H ;列地址寄存器(063)PAGE_ EQU 31H ;页地址寄存器 d1,d0:页地址CODE_ EQU 32H ;计数器COUNT EQU 33HDIR EQU 34HCTEMP EQU 38HCOM EQU 20H ;指令寄存器DAT EQU 21H ;数据

43、寄存器ORG 0000HLJMP MAINORG 000BHLJMP INITORG 0030H;-初始化程序INIT: MOV COM,#0E2H ;复位 LCALL PR0 LCALL PR3 MOV COM,#0A4H ;关闭休闭状态 LCALL PR0 LCALL PR3 MOV COM,#0A9H ;设置 1/32 占空比 LCALL PR0 LCALL PR3 MOV COM,#0A0H ;正向排序设置 LCALL PR0 LCALL PR3 MOV COM,#0C0H ;设置显示起始行为第一行 LCALL PR0 LCALL PR3 MOV COM,#0AFH ;开显示设置 LC

44、ALL PR0 LCALL PR3 RET ;-清屏程序CLEAR: MOV R4,#00H ;页面地址暂存器设置 CLEAR1: MOV A,R4 ;取页地址值 ORL A,#0B8H ;或页面地址设置代码 MOV COM,A ;页面地址设置 LCALL PR0 LCALL PR3 MOV COM,#00H ;列地址设置为0 LCALL PR0 LCALL PR3 MOV R3,#50H ;一页清 80 个字节CLEAR2: MOV DAT,#00H ;显示数据为0 LCALL PR1 LCALL PR4 DJNZ R3,CLEAR2 ;页内字节清零循环 INC R4 CJNE R4,#04

45、H,CLEAR1 ;RAM 区清零循环 RETPR0: CLR A0 ;AO0SETB R_W ;R_W1PR01: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;读状态字CLR E1 ;E10JB ACC.7,PR01 ;判忙标志为0,否再读CLR R_W ;R_W0MOV P1,COM ;写指令代码SETB E1 ;E11CLR E1 ;E10RET;-写显示数据子程序(E1)PR1: CLR A0 ;A00SETB R_W ;R_W1PR11: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;读状态字CLR E1

46、;E10JB ACC.7,PR11 ;判忙标志为0否,否再读SETB A0 ;A01CLR R_W ;R_W0MOV P1,DAT ;写数据SETB E1 ;E11CLR E1 ;E10RET;-读显示数据子程序(E1)PR2: CLR A0 ;A0 0SETB R_W ;R_W1PR21: MOV P1,#0FFH ;P1 口置1SETB E1 ;E11MOV A,P1 ;读状态字CLR E1 ;E10JB ACC.7,PR21 ;判忙标志为0否,否再读SETB A0 ;A01MOV P1, #0FFH ;P1 口置1SETB E1 ;E11MOV DAT,P1 ;读数据CLR E1 ;E1

47、0RET;-写指令代码子程序(E2)PR3: CLR A0 ;A0 0SETB R_W ;R_W1PR31: MOV P1,#0FFH ;P1 口置1SETB E2 ;E11MOV A,P1 ;读状态字CLR E2 ;E10JB ACC.7,PR31 ;判忙标志为0,否再读CLR R_W ;R_W0MOV P1,COM ;写指令代码SETB E2 ;E11CLR E2 ;E10RET;-写显示数据子程序(E2)PR4: CLR A0 ;A00SETB R_W ;R_W1PR41: MOV P1,#0FFH ;P1 口置1SETB E2 ;E11MOV A,P1 ;读状态字CLR E2 ;E10

48、JB ACC.7,PR41 ;判忙标志为0否,否再读SETB A0 ;A01CLR R_W ;R_W0MOV P1,DAT ;写数据SETB E2 ;E11CLR E2 ;E10RET;-读显示数据子程序(E2)PR5: CLR A0 ;A0 0SETB R_W ;R_W1PR51: MOV P1,#0FFH ;P1 口置1SETB E2 ;E21MOV A,P1 ;读状态字CLR E2 ;E20JB ACC.7,PR51 ;判忙标志为0否,否再读SETB A0 ;A01MOV P1, #0FFH ;P1 口置1SETB E2 ;E21MOV DAT,P1 ;读数据CLR E2 ;E20RET

49、;-中文显示子程序CCW_PR: MOV DPTR,#CCTAB ;定字符字模块首地址 MOV A,CODE_ ;代码 MOV B,#20H ;模块宽度为 32 个字节 MUL AB ;字符模块首地址 ADD A,DPL ;字模库首地址+代码*32 MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN ;列地址入栈 PUSH COLUMN ;列地址入栈 MOV CODE_,#00H ;代码寄存器借用为间址寄存器CCW_1: MOV COUNT,#10H ;计数器设置为 16 MOV A,PAGE_ ;读页地址寄存器 ANL A,#03H ORL

50、A,#0B8H ;或页地址设置代码 MOV COM,A ;写页地址设置指令 LCALL PR0 LCALL PR3 POP COLUMN ;取到地址值 MOV A,COLUMN ;读列地址寄存器 CLR C SUBB A,#PD1 ;列地址减模块参数 JC CCW_2 ;0 为左半屏显示区域(E1) MOV COLUMN,A ;0 为右半屏显示区域(E2) MOV A,PAGE_ SETB ACC.3 ;设置区域标志位。 MOV PAGE_,A ;0为 E1,1为 E2CCW_2: MOV COM,COLUMN ;设置列地址值 MOV A,PAGE_ ;判区域标志以确定设置哪个控制器 JNB

51、ACC.3,CCW_3 LCALL PR3 ;区域 E2 LJMP CCW_4CCW_3: LCALL PR0 ;区域 E1CCW_4: MOV A,CODE_ ;取间址寄存器值 MOVC A,A+DPTR ;取汉字字模数据 MOV DAT,A ;写数据 MOV A,PAGE_ JNB ACC.3,CCW_5 LCALL PR4 ;区域 E2 LJMP CCW_6CCW_5: LCALL PR1 ;区域 E1CCW_6: INC CODE_ ;间址寄存器加一 INC COLUMN ;列地址寄存器加一 MOV A,COLUMN ;判列地址是否超出区域范围 CJNE A,#PD1,CCW_7CCW

52、_7: JC CCW_8 ;未超出则继续 MOV A,PAGE_ ;超出则判是否在区域 E2 JB ACC.3,CCW_8 ;在区域 E2 则退出 SETB ACC.3 ;在区域 E1 则修改成区域 E2 MOV PAGE_,A MOV COM,#00H ;设置区域 E2 列地址为0 LCALL PR3CCW_8: DJNZ COUNT,CCW_4 ;当页循环 MOV A,PAGE_ ;读页地址寄存器 JB ACC.7,CCW_9 ;判完成标志 D7 位,1则完成退出 INC A ;否则页地址加一 SETB ACC.7 ;置完成位为1 CLR ACC.3 MOV PAGE_,A MOV COD

53、E_,#10H ;间址寄存器设置为 16 LJMP CCW_1 ;大循环CCW_9: RET-第一屏DCW_PR: MOV DPTR,#CCTAB1 MOV A,CODE_ MOV B,#20H MUL AB ADD A,DPL MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN PUSH COLUMN MOV CODE_,#00HDCW_1: MOV COUNT,#10H MOV A,PAGE_ ANL A,#03H ORL A,#0B8H MOV COM,A LCALL PR0 LCALL PR3 POP COLUMN MOV A,COLU

54、MN CLR C SUBB A,#PD1 JC DCW_2 MOV COLUMN,A MOV A,PAGE_ SETB ACC.3 MOV PAGE_,ADCW_2: MOV COM,COLUMN MOV A,PAGE_ JNB ACC.3,DCW_3 LCALL PR3 LJMP DCW_4DCW_3: LCALL PR0DCW_4: MOV A,CODE_ MOVC A,A+DPTR MOV DAT,A MOV A,PAGE_ JNB ACC.3,DCW_5 LCALL PR4 LJMP CCW_6DCW_5: LCALL PR1DCW_6: INC CODE_ INC COLUMN MO

55、V A,COLUMN CJNE A,#PD1,DCW_7DCW_7: JC DCW_8 MOV A,PAGE_ JB ACC.3,DCW_8 SETB ACC.3 MOV PAGE_,A MOV COM,#00H LCALL PR3DCW_8: DJNZ COUNT,DCW_4 MOV A,PAGE_ JB ACC.7,DCW_9 INC A SETB ACC.7 CLR ACC.3 MOV PAGE_,A MOV CODE_,#10H LJMP DCW_1DCW_9: RET-第二屏ECW_PR: MOV DPTR,#CCTAB2 MOV A,CODE_ MOV B,#20H MUL AB

56、ADD A,DPL MOV DPL,A MOV A,B ADDC A,DPH MOV DPH,A PUSH COLUMN PUSH COLUMN MOV CODE_,#00HECW_1: MOV COUNT,#10H MOV A,PAGE_ ANL A,#03H ORL A,#0B8H MOV COM,A LCALL PR0 LCALL PR3 POP COLUMN MOV A,COLUMN CLR C SUBB A,#PD1 JC ECW_2 MOV COLUMN,A MOV A,PAGE_ SETB ACC.3 MOV PAGE_,AECW_2: MOV COM,COLUMN MOV A,

57、PAGE_ JNB ACC.3,ECW_3 LCALL PR3 LJMP ECW_4ECW_3: LCALL PR0ECW_4: MOV A,CODE_ MOVC A,A+DPTR MOV DAT,A MOV A,PAGE_ JNB ACC.3,ECW_5 LCALL PR4 LJMP ECW_6ECW_5: LCALL PR1ECW_6: INC CODE_ INC COLUMN MOV A,COLUMN CJNE A,#PD1,ECW_7ECW_7: JC ECW_8 MOV A,PAGE_ JB ACC.3,ECW_8 SETB ACC.3 MOV PAGE_,A MOV COM,#00

58、H LCALL PR3ECW_8: DJNZ COUNT,ECW_4 MOV A,PAGE_ JB ACC.7,ECW_9 INC A SETB ACC.7 CLR ACC.3 MOV PAGE_,A MOV CODE_,#10H LJMP ECW_1ECW_9: Ret-第三屏CCTAB:DB 010H,061H,006H,0C0H,030H,084H,084H,04CHDB 055H,026H,054H,04CH,084H,084H,084H,000HDB 004H,004H,0FEH,001H,080H,040H,030H,00FHDB 000H,000H,000H,0FFH,000H,

59、000H,000H,000H ;济DB 010H,021H,006H,0E0H,000H,0FEH,002H,0F2HDB 05AH,056H,052H,052H,052H,0F2H,002H,000HDB 004H,0FCH,003H,040H,030H,00FH,020H,011HDB 04DH,081H,07FH,001H,005H,009H,030H,000H ;源DB 002H,002H,0FEH,092H,092H,0FEH,002H,000HDB 0FEH,082H,082H,082H,082H,0FEH,000H,000HDB 010H,010H,00FH,008H,008H,

60、0FFH,004H,044HDB 021H,01CH,008H,000H,004H,009H,030H,000H ;职DB 000H,010H,060H,080H,000H,0FFH,000H,000HDB 000H,0FFH,000H,080H,060H,038H,010H,000HDB 020H,020H,020H,023H,021H,03FH,020H,020HDB 020H,03FH,022H,021H,020H,030H,020H,000H ;业DB 008H,008H,088H,0FFH,048H,028H,000H,0C8HDB 048H,048H,07FH,048H,0C8H,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论