基于51单片机的简易计算器时间显示(lcd1602显示)内容摘要:

页 共 33 页 图 1056 写操作时序 10. 8. 2. 4 1602LCD 的 RAM 地址映射及标准字库表 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图 1057是 1602的内部显示地址。 图 1057 1602LCD 内部显示地址 例如第二行第一个字符的地址是 40H,那么是否直接写入 40H 就可以将光标定位在第二行第一个字符的位置呢。 这样不行,因为写入显示地址时要求最高位 D7恒定为高电平 1所以实际写入的数据应该是 01000000B( 40H) +10000000B(80H)=11000000B(C0H)。 在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。 每次输入指令前都要判断液晶模块是否处于忙的状态。 1602液晶模块内部的字符发生存储器( CGROM)已经存储了 160个不同的点阵字符图形,如图 1058所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文桂林电子科技大课程设计(论文)专用纸 第 12 页 共 33 页 第 12 页 共 33 页 假名等,每一个字符都有一个固定的代码,比如大写的英文字母“ A”的代码是 01000001B( 41H),显示时模块把地址 41H 中的点阵字符图形显示出来,我们就能看到字母“ A” 图 1058 字符代码与图形对应图 3 设计思路、仿真 及调试 设计方法 本电路设计采用 AT89S52 单片机为核心,利用晶振产生频率为 1HZ 的时钟脉冲信号,利用液晶屏 LCD1602 显示计算及其时间信息,通过对 AT89S52 单片机的编程控制液晶屏 LCD1602 的显示。 显示计算和简易计算的信息同在 LCD1602,通过按键切换选择。 外部按键可及时设定或调整时间或计算的信息。 硬件设计 本系统以 AT89S52单片机为核心,本系统选用 12MHZ的晶振,使得单片机有合理的运行速度。 起振电容 30pF对振荡器的频率高低、振荡器的稳定性和起振的快速性影响较合适, 复位电路为按键高电平复位。 按键调整电路 桂林电子科技大课程设计(论文)专用纸 第 13 页 共 33 页 第 13 页 共 33 页 S0 为调秒的按键,当按下 S0 时秒加 1, S1 为调分的按键,当按 S1时分加 1, S2按键为调时,当按下 S2 时,时加 1, S3 按键为调日,当按下 S3 时日加 1, S4 为调月,当按下 S4 时月加 1, S5 为调年,当按下 S5 时年加 1; S6 为时间显示建,S7 为计算显示键。 复位电路 液晶屏 LCD1602 显示 LED 指示电路 当单片机通电时 LED 亮 桂林电子科技大课程设计(论文)专用纸 第 14 页 共 33 页 第 14 页 共 33 页 4*4 键盘的设计 键盘功能如下: 简易计算器的总电 路 硬件设计中用 Protel99se 画原理图和 PCB 图 如图 1 所示原理图: 桂林电子科技大课程设计(论文)专用纸 第 15 页 共 33 页 第 15 页 共 33 页 图 1 软件设计 本电路软件设计采用 C 语言编写程序(具体程序在附件中给出)。 程序设计主要包括简易计算的编程,按键编程,时间控制编程,液晶屏 LCD1602 的显示编程。 软件仿真 在硬件设计完成后,利用软件对其进行仿真,以尽可能的减少做板的次数。 本次我采用 Proteus 软件仿真。 如图 2 所示,简易计算器的时间显示 如图 3 所示 简易计算器的计算显示软件仿真正常,可进行硬件制作。 桂林电子科技大课程设计(论文)专用纸 第 16 页 共 33 页 第 16 页 共 33 页 图 2 图 3 硬件调试 做好电路板,按键使用正确,时间显示正常,计算功能也正常。 如下图: 桂林电子科技大课程设计(论文)专用纸 第 17 页 共 33 页 第 17 页 共 33 页 4 结论 在用单片机实现简易计算的设计中使用到了 AT89s5 LCD1602及其 4*4键盘的使用。 在设计过程中我通过在网上和图书馆查阅资料,收集了关于单片机和液晶屏 LCD1602显示方面的资料,通过对这些资料的学习,我了解了单片机的基本结构和单片机在生活和生产中所发挥的作用;液晶屏 LCD1602的 原理和使用。 本次课程设计完成的主要工作和任务如下:对设计方案的理论研究,单片机的合理选型,硬件电路的设计,电路板的制作,元器件 的焊接,软件的编写和调试以及课设论文的制作。 通过设计简易计算器的过程中我掌握了单片机的基本原理及其各种应用,对它的各种硬件接口与软件设计方法有较深入的认识。 通过对电路原理图、 pcb图的绘制,电路仿真、电路板的制作掌握了对 proteus仿真软件的使用。 桂林电子科技大课程设计(论文)专用纸 第 18 页 共 33 页 第 18 页 共 33 页 谢 辞 本论文是在 袁华老师 悉心指导下完成的。 袁华老师 渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。 不仅使我树立了远大的学术目标、掌握了基本的研究方 法,还使我明白了许多待人接物与为人处世的道理。 本 课设 论文从选题到完成,每一步都是在 袁华老 师的指导下完成的,倾注了 袁华老师 大量的心血。 在此,谨向 袁华老 师表示崇高的敬意和衷心的感谢。 在此也感谢大学的老师教育我,使我完成本次课设,感谢他们带给我知识,同时也感谢我的同学们,对我的支持。 桂林电子科技大课程设计(论文)专用纸 第 19 页 共 33 页 第 19 页 共 33 页 参考文献: [1] 余锡存 ,曹国华,单片机原理及接口技术 . 西安 :西安电子科技大学出版社, 2020 [2] 郭天祥,新概念 51单片机 c语言教程。 北京:电子工业出版社, 2020 [3] 马忠梅,单片 机的 C语言应用程序设计 .北京:北京航空航天大学出版社, 1997。 [4]张毅刚著,《单片机原理及应用》,北京,高等教育出版社, 2020 [5] 谭浩强, C程序设计(第二版) [M].北京: 清华大学出版社 ,2020。 桂林电子科技大课程设计(论文)专用纸 第 20 页 共 33 页 第 20 页 共 33 页 附 件 硬件电路原理图: 软件编程程序: include define uchar unsigned char define uint unsigned int sbit rs=P0^0。 sbit rw=P0^1。 sbit e=P0^2。 桂林电子科技大课程设计(论文)专用纸 第 21 页 共 33 页 第 21 页 共 33 页 sbit k0=P1^0。 sbit k1=P1^1。 sbit k2=P1^2。 sbit k3=P1^3。 sbit k4=P1^4。 sbit k5=P1^5。 sbit k6=P1^6。 sbit k7=P1^7。 unsigned char code digit[ ]={0123456789}。 //定义字符数组显示数字 unsigned char s,m,h,day,month,year,count。 void write_dat(uchar dat)。 void write_(uchar )。 void keyscan()。 /********************** 功能说明: 显示编码,加上 0x30, 分别为 39。 139。 ,39。 239。 ,39。 339。 ,39。 +39。 , 39。 439。 ,39。 539。 ,39。 639。 ,39。 39。 ,等 **********************/ uchar code table1[]= { 1,2,3,0x2b0x30, 4,5,6,0x2d0x30, 7,8,9,0x2a0x30, 0,0x3d0x30,0x010x30,0x2f0x30 }。 uchar k=0,flag=0,num,fuhao,i。 long a,b,c。 void delay(uint z) { uint x,y。 for(x=z。 x0。 x) for(y=110。 y0。 y)。 } /***************************************************** 函数功能:指定字符显示的实际地址 入口参数: x ***************************************************/ void WriteAddress(unsigned char x) { write_。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。