欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于51单片机的1602LCD多态显示器设计.doc

    • 资源ID:2385824       资源大小:1.71MB        全文页数:18页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于51单片机的1602LCD多态显示器设计.doc

    西安工程大学单片机 课 程设计学院: 计算机学院 专 业 班 级: 信科四班 课 题 名 称:基于51单片机的1602LCD多态显示器设计 指 导 教 师: 组长:组员:、目录一. 摘要6二总体设计方案72.1设计要求7三AT89C51机介绍73.1单片机结构介绍73.2单片机组成原理9四复位电路工作原理94.1上电自动复位原理10五数码管显示电路125.1 LED数码显示器的结构135.2 LED数码显示器的分类155.3 LED数码显示方式16六时钟电路模块17七程序设计及原理图187.1程序设计187.2原理图237.3 PCB图237.4元件清单24八结束语25九参考文献26摘要近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。本报告针对1602 LCD显示器的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的复位功能,延时功能等等。LCD动态显示系统需要用到锁存器、LCD显示器,HD44780等主要模块,通过不同的模块之间相互作用,完成LCD动态显示的初步硬件结构。对于LCD显示器来说,采用以软件为主的接口方法,即采用Keil uVision3软件程序进行译码。【关键词】 单片机 Keil3 1602LCD显示器 二总体设计方案 LCD显示器器以AT89C51单片机为核心,起着控制作用。系统包括锁存器、LCD显示器,HD44780。LCD显示的总体设计思路分为五个模块:复位电路,晶振电路模块,AT89C51,LCD显示电路模块,上拉电阻模块。2.1设计要求:1)、应用MCS-51单片机设计LCD电路。2)、选用液晶显示器,从左到右显示“WELCOME TO WWW.XPU.EDU.CN”。3)、硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程4)、软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;5)、原理图设计根据所确定的设计电路,利用Proteus等有关工具软件绘制电路原理图,生成PCB板图、提供元器件清单。三、硬件设计3.1 80C51单片机80C51 芯片内部集成了 CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些部件连接在一起。80C51单片机内部包含以下一些功能部件:一个8位CPU;一个片内振荡器和时钟电路;4KB ROM(80C51有4KB掩膜ROM,87C51有4KB EPROM,80C31片内有无ROM); 128B内RAM; 可寻址64KB的外ROM和外RAM控制电路; 两个16位定时/计数器; 21个特许功能寄存器; 4个8位并行I/O口,共32条可编程I/O端线; 一个可编程全双工串行口;5个中断源,可设置成2个优先级。振荡器及时序 OSC8051CPU程序存储器4KB ROM数据存储器256B2个16位定时器/计数器64K总线扩展控制器可编程I/O可编程全双工串行口不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。其中8051主要包括算术/逻辑部件ALU、累加器A、只读存储器ROM、随机存储器RAM、程序计数器PC、定时器/计数器、I/O接口电路等,还有堆栈寄存器SP等部件。这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。3.2复位电路复位是单片机的初始化操作,只需给AT89C51的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位.复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。除了进入系统的正常初始化之外,由于程序运行出错或操作错误而使系统处于死锁状态。为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。在系统中,有时会出现显示不正常。为了调试方便,需要设计一个复位电路。AT89C51单片机复位电路共有上电复位、按键电平复位和按键脉冲复位。本系统的复位电路主要完成系统的上电复位。复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。本系统采用的电路工作原理是:上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。当时钟频率选用12MHz时,C取10uF,R取10K,上电自动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与电源Vcc相同,随着充电电流的减少,RESET的电位逐渐下降。RC时间常数越大,上电时RESET端保持高电平的时间越长,这组参数足以保证复位操作。若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运行。复位电路:3.3.晶振电路晶振是为电路提供频率基准的元器件,晶振可以说是单片机的时钟,有着固定稳固的频率,是一个标准,没有它的话,估计单片机的程序会乱跑,也有可能运行不了,反正是不正常。通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。因价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况(如一些型号的DSP或精密仪器中)。晶振电路:3.4显示电路显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。通常在显示上采用的方法一般包括两种:一种是静态显示,另一种是动态显示。其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。为了减少端口资源,降低电能消耗,我们采用的是动态显示方法。显示电路: 四1602结构及工作原理4.1 1602显示器的结构 所谓1602是指显示的内容为16*2,即可以显示两行,每行16个字符。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 如图3.7所示。字符型LCD1602通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样.4.2 L1602引脚定义 4.3 控制器HD44780HD44780内置了DDRAM、CGROM和CGRAM。          DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表:         也就是说想要在LCD1602屏幕的第一行第一列显示一个"A"字,就要向DDRAM的00H地址写入“A”字的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会说到的。那么一行可有40个地址呀?是的,在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下:                DDRAM地址与显示位置的对应关系             (事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。这是一个令初学者很容易出错的地方,原因就是如果你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即80H,若要在DDRAM的01H处显示数据,则必须将01H加上80H即81H(从80H开始到9FH开始才是空余的自己编写空间其余的空间都有液晶自己的库文件。在CGRAM中)。        1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”           上表中的字符代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1'A'这样的方法。PC在编译时就把“A”先转为41H代码了。          字符代码0x000x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。  五软件设计 5.1程序设计 * 描述: LCD1602 滚动显示 * 显示方式: * 1、从左到右逐字显示,闪动二次,清屏。 * 2、再从右到左逐字显示,闪动二次,清屏。 * 3、周期性地重复上述显示方式。 * */#include <reg51.h>/51寄存器文件#include <intrins.h>typedef unsigned char BYTE;/用BYTE代替unsigned char (无符号字符)typedef bit BOOL; / 用BOOL代替bit sbit LCD_RS = P26; /复位端 sbit LCD_RW = P25; /写数据端sbit LCD_EP = P27; /使能端BYTE code dis1 = " WELCOME TO "BYTE code dis2 = " 202.200.200.001 "BYTE code dis3 = " OT EMOCLEW "BYTE code dis4 = " MOC.NIHCERP.WWW "/*延时函数*/delay(int ms) /延时子程序int i;while(ms-) for(i = 0; i< 250; i+) _nop_(); /空执行 _nop_(); _nop_(); _nop_(); /*侧忙函数*/BOOL lcd_bz() BOOL result;LCD_RS = 0;LCD_RW = 1;LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();result = (BOOL)(P0 & 0x80); /检测P0最高位是否为1LCD_EP = 0;return result;/返回侧忙结果/*写命令函数*/lcd_wcmd(BYTE cmd) / 写入指令数据到LCDwhile(lcd_bz();LCD_RS = 0;LCD_RW = 0;LCD_EP = 0;_nop_();_nop_(); P0 = cmd; /将8位指令通过P0口传给1602_nop_();_nop_(); /用于产生一个脉冲宽度_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; lcd_pos(BYTE pos) /设定显示位置lcd_wcmd(pos | 0x80);/*写数据函数*/lcd_wdat(BYTE dat) /写入字符显示数据到LCDwhile(lcd_bz();LCD_RS = 1;LCD_RW = 0;LCD_EP = 0;P0 = dat; /将8位数据通过P0口传给1602_nop_();_nop_(); /用于产生一个脉冲宽度_nop_();_nop_();LCD_EP = 1;_nop_();_nop_();_nop_();_nop_();LCD_EP = 0; lcd_init() /LCD初始化设定lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据delay(1);lcd_wcmd(0x0c); /显示开,关光标delay(1);lcd_wcmd(0x06); /移动光标delay(1);lcd_wcmd(0x01); /清除LCD的显示内容delay(1);/*主函数*/main() BYTE i; lcd_init();/ 初始化LCD delay(10); while(1) lcd_wcmd(0x06);/向右移动光标 lcd_pos(0);/设置显示位置为第一行的第1个字符 i = 0; while(dis1 i != '0') /显示字符"WLCOME TO" lcd_wdat(dis1 i ); i+; delay(30);/控制两字之间显示速度 lcd_pos(0x40);/设置显示位置为第二行第1个字符 i = 0; while(dis2 i != '0') lcd_wdat(dis2 i );/显示字符" WWW.PRECHIN.COM " i+; delay(30);/控制两字之间显示速度 delay(800);/控制停留时间 lcd_wcmd(0x01);/清除LCD的显示内容 delay(1); lcd_wcmd(0x04);/向左移动光标 lcd_pos(15);/设置显示位置为第一行的第16个字符 i = 0; while(dis3 i != '0') /显示字符"WLCOME TO" lcd_wdat(dis3 i ); i+; delay(30); /控制两字之间显示速度 lcd_pos(0x4F); /设置显示位置为第二行的第16个字符 i = 0; while(dis4 i != '0') lcd_wdat(dis4 i ); /显示字符" WWW.PRECHIN.COM " i+; delay(30); /控制两字之间显示速度 delay(800); /控制停留时间 lcd_wcmd(0x01); /清除LCD的显示内容 delay(200); /控制两屏转换时间 5.2 原理图5.2仿真图 实物图八结束语用单片机及有关电子元件设计的倒计时器类型很多,也有较多的实用电路参考。但具体电路结构要根据应用范围来进行有针对性的设计。应做到电路实用,结构简单,成本低廉,方便使用,定型稳的标准。应具有较强的可操作性 。由于LCD的控制必须使用专用的驱动电路,而LCD面板的接线需要特殊技巧,且LCD面板比较脆弱,因此不会单独使用。本设计方案是将LCD面板,驱动与控制电路组合形成LCM,LCM与单片机相连接,形成一种省电的显示装置的一个起草,若有不成熟的地方,请老师指导,多谢。 九.参考文献1. 张义和 例说51单片机人民邮电出版社。2. 张志良 单片机原理与控制技术机械工业出版社。3. 老杨 51单片机工程师是怎样炼成的电子工业出版社。

    注意事项

    本文(基于51单片机的1602LCD多态显示器设计.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开