lcd显示的秒表_第1页
lcd显示的秒表_第2页
lcd显示的秒表_第3页
lcd显示的秒表_第4页
lcd显示的秒表_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、目录1 概述21.1 1602LCD研究的历史背景和意义21.2 1602LCD研究的发展和现状22 课题方案设计22.1系统设计目的22.2系统结构模块论证22.2.1 显示部分33 系统硬件设计33.1 总体设计33.2 单片机运行的最小系统43.2.1 电源电路4晶振电路4复位电路53.3 显示电路6引脚说明:63.4 单片机STC89C527主要特性7功能特性概述8主要引脚及芯片基本工作条件说明84 系统软件设计94.1 总流程图94.2 最小系统检测电路程序104.3 编程调试界面114.4 Proteus仿真结果115软硬件联调及调试结果125.1 实物图125.2 调试结果14结

2、束语15参考文献15附录2 1602LCD设计的秒表PCB图17附录3 1602LCD设计的秒表Proteus仿真图17附录4 1602LCD设计的秒表C语言程序清单18附录5 基于单片机的1602LCD设计的秒表元器件目录表231 概述1.1 1602LCD研究的历史背景和意义LCD1602是16字乘以2行的字符型液晶模板。其特点是:(1)位数多,可显示32位。(2)显示内容丰富,可显示所有数字、字母、符号等192种ASCII码对应的字符。(3)程序简单1.2 1602LCD研究的发展和现状液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的

3、应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602液晶显示模块,它可以显示两行,每行16个字符,采用单+SV电源供电,外围电路配置简单,价格便宜,具有很高的性价比。2 课题方案设计2.1系统设计目的设计一个单片机控制的秒表系统,利用单片机的定时器计数器定时和计数的原理,结合显示电路、LCD液晶显示器以及按键来设计计数器。将软、硬件有机地结合起来,使得系统能够正确的进行加、减计时,液晶显示器能够正确的显示时间。使学生增进对单片机的感性认识,加深对单片机理论方面的理解。掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、I/O口、串行口通讯等。

4、同时了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。 (1)使用集成数字电路或单片机作为主控制芯片(2)使用LCD来显示现在的时间,显示格式为: 上行显示:Current Time; 下行显示:时时:分分:秒秒;(3)具有调整日期与时间的功能。2.2系统结构模块论证系统结构如图2-1所示。单片机显示电路键盘电路外围电路电源电路图2-1 用1602LCD设计的秒表系统框图2.2.1 显示部分显示部分是本次设计的重要部分,一般有以下两种方案:方案一:采用LED显示,在单片机应用系统中最常用的LED数码管为7段数码管,可利用LED显示器灵活地构成所要

5、求位数的显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用LCD显示。是一种低功耗显示器件,具有显示内容丰富、体积小、重量轻、寿命长、使用方便、安全省电等优点,在计算器、万用表、袖珍式仪表和低功耗微机应用系统中得到广泛使用。其显示的质量高,每个显示器每一点在收到信号后就一直保持那种彩色和亮度,恒定发光,而不像阳极射线管显示器那样刷新亮点,画面质量高且不闪烁。鉴于上述原因,我们采用方案二。3 系统硬件设计3.1 总体设计本系统中,硬件电路主

6、要有电源电路,晶振电路,复位电路,显示电路以及一些按键电路等,本系统采用STC89C52单片机为中心器件,利用定时器计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,蜂鸣器电路以及一些按键电路等来设计计数器,将软、硬件有机地结合起来。硬件系统采用PROTEUS功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。3.2 单片机运行的最小系统3.2.1 电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,随着半导体工艺的发展,稳压电路也采用集成电路器件来制成。可采用独立的稳压电源。这种供电方式的优点是稳压可靠,且有各种成熟电路可供选择。由集成稳压器

7、具有体积小,外界线路简单,使用方便,工作可靠等优点。因此,在各种电子设备中应用十分普遍,为了跟上时代的发展,可采用W7800系列三端稳压器,主要利用它的输出电压是固定的在使用中不能进行调整等优点。但这次设计为了电源的简洁,采用了USB接口为循环彩灯系统电路提供稳定5V的工作电压这样能使整体电路更简洁,更节约成本,从而减少硬件设计的复杂性。3.2.2晶振电路STC89C52内部的振荡电路是一个高增益反相放大器,引脚RXD和TXD分别是此反向振荡放大器的输入端和输出端。该反向放大器可以配置为内部方式的片内振荡器。如图2-2 所示,这里选用12MHE的内部振荡方式,电路如下:电容器C1,C2起稳定振

8、荡频率,快速起振的作用,C1,C2可在20100PF之间取,这里取30PF,接线时要使晶振振荡器尽可能接近单片机。图3-1晶体振荡电路3.2.3复位电路 采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段时间高电平时间。当单片机已在运行之中时,按下复位按键也能使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能时单片机复位,而且还能使单片机的外围芯片也同时复位,当程序出现错误时,可以随时使电路复位。复位是单片机的初始化操作。其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于

9、死锁状态时,为摆脱困境,也需按复位键重新启动。除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表1所示。 表1 一些寄存器的复位状态寄存器复位状态寄存器复位状态PC0000HTCON00HACC00HTL000HPSW00HTH000HSP07HTL100HDPTR0000HTH100HP0-P3FFHSCON00HIPXX000000BSBUF不定IE0X000000BPCON0XXX0000BTMOD00H因STC89C52单片机需高电平(3.75.5V)复位,且复位时流入单片机的电流不能超过10mA。具体参数:根据所需要的复位参数可得当按下SW键时出现两个机器周期的高电平在

10、单片机REST端产生的压降等于:=图3-2 复位电路3.3 显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示,我们采用液晶显示电路1602LCD引脚接口说明编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据命令选择端口(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号14D7Data I/O7D1Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极引脚说明: 3脚:VL,液晶显示偏压信号,用于调整

11、LCD1602的显示对比度,一般会外接电位器用以调整偏压信号,此脚电压为0时可以得到最强的对比度。4脚:RS,数据/命令选择端,当此脚为高电平时,可以对1602进行数据字节的传输操作,而为低电平时,则是进行命令字节的传输操作。命令字节,即是用来对LCD1602的一些工作方式作设置的字节;数据字节,即使用以在1602上显示字节。5脚:R/W,读写选择端。当此脚为高电平可对LCD1602进行读数据操作,反之进行写数据操作。6脚:E,使能信号,其实是LCD1602的数据控制时钟信号,利用该信号的上升沿实现对LCD1602的数据传输。714脚:8位并行数据口,使得对LCD1602的数据读写大为方便。基

12、本操作时序:(1)读状态:输入:RS=L,RW=H,E=H;输出:D0D7=状态字(2)写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲;输出:无(3)读数据:输入:RS=H,RW=H,E=H;输出:D0D7=数据(4)写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲;输出:无需要两个写时序: 当我们要写指令字,设置LCD1602的工作方式时:需要把RS置为低电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个高脉冲将数据写入。 当我们要写入数据字,在1602上实现显示时:需要把RS置为高电平,RW置为低电平,然后将数据送到数据口D0D7,最后E引脚一个

13、高脉冲将数据写入。3.4 单片机STC89C52STC89C52是一种带8K字节闪烁可编程可檫除只读存储器的低电压,高性能COMOS8的微处理器,具有8K在系统可编程Flash存储器。3.4.1主要特性STC89C52单片机采用高性能的静态80C51设计,并采用先进工艺制造,还带有非易失去性FLASH程序储器。它是一种高性能、低功耗的8位CMOS微处理芯片,市场上应用最多。其主要性能如下:(1)8KB Flash ROM,可以擦除1000次以上,数据保存10年。(2)256字节内部RAM。(3)电源控制模式:(4)-时钟可停止和恢复;空闲模式;-掉电模式。(5)6个中断源。(6)4个中断优先级

14、。(7)4个8位I/O口。(8)全双工增强型UART。(9)3个16位定时器/计数器:T0、T1、T2。(10)全静态工作方式:0-24MHz3.4.2功能特性概述 STC89C52提供以下标准功能:8K字节Flash闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,STCT89C52可降至0Hz 的静态逻辑系操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信接口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件

15、工作直到下一个硬件复位。3.4.3主要引脚及芯片基本工作条件说明40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。Pin9:RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现2个时钟周期以上的高电平,系统即初始复位。STC89C52的复位方式可以是自动复位,也可以是手动复位,如图2 -3 复位电路。此外RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。Pin20、40:分别是单片机的主电源引脚。20脚是芯片的接地端。40脚则是芯片的电源端。二

16、者是必不可少的,它们是单片机基本工作的条件。Pin18、19:XTAL1接外部晶振的一个引脚。在单片机内部,它是上述振荡器的反相放大器的输入端。当采用外部振荡时,该引脚接受振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。则XTAL2接外部晶振另一个引脚。在单片机内部它是上述振荡器的反相放大器的输出端。采用外部振荡器时该引脚应该悬空。STC89C51引脚分布图2-1所示:图3-3 STC89C52引脚分布图4 系统软件设计在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分

17、工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。4.1 总流程图如图4-1所示。图4-1 系统总流程图4.2 最小系统检测电路程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int uchar aa;void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void main()aa=0xf7;while(1)P2=aa;delay(200);aa=_crol_(

18、aa,1);4.3 编程调试界面Keil C51 软件是目前最流行的开发8051系列的单片机的软件工具。Keil C51提供了包括C语言编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境uVision3 IDE将这些部分结合起来。4.4 Proteus仿真结果Labcenter Electronics 公司推出的Proteus 套件,可以对基于微机控制器的设计连同所有的周围电子器件一起仿真。用户实时采用LCD,键盘,RS232终端等动态外设模型来设计进行交互仿真。5软硬件联调及调试结果5.1 实物图5.2 调试结果结束语通过单片机课程设计,我不仅

19、加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此

20、罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,程序简单易读,结构清楚,最重要的是成本低。在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。成本的高低也决定了产品的适用性。 参考文献1张大明.单片机控制实训指导及综合应用实训M. 北京:机械工业出版社,20082陈益飞.单片机原理及应用技术.北京M:国防工业出版社,20113张伟.张杰编著.单片机原理及应用.北京M:机械工业出版社,20074孙余凯. 精选实用电子电路260例M. 北京:电子工业出版社.,2007.6

21、5殷春浩,崔亦飞. 电磁测量原理及应用M. 徐州:中国矿业大学出版社, 2003.76陆广平.单片机原理与接口技术课程设计实验指导书M7陈益飞.单片机原理及应用技术M.北京:国防工业出版社.2010,108丁元杰单片机原理及应用M.北京:机械工业出版社.2005附录附录1 1602LCD设计的秒表原理图附录2 1602LCD设计的秒表PCB图附录3 1602LCD设计的秒表Proteus仿真图附录4 1602LCD设计的秒表C语言程序清单#include <reg51.h>#include <intrins.h>#define uchar unsigned char#d

22、efine unit unsigned int #define delayNOP() _nop_();_nop_();_nop_();_nop_();/LCD 控制void LCD_Initialize();void LCD_Set_POS(uchar);void LCD_Write_Data(uchar);void Display_String(uchar *,uchar);sbit K1=P10;sbit K2=P11;sbit BEEP=P30;sbit LCD_RS=P20;sbit LCD_RW=P21;sbit LCD_EN=P22;uchar KeyCount=0;uchar c

23、ode msg1="Second Watch 0"uchar code msg2=">>>> "uchar code Prompts16= ":1-> ", ":1-> :2 ", ":1->2 :3-> ", ":1->2 :3->4"/计时缓冲与显示缓冲uchar Time_Buffer =0,0,0,0;uchar LCD_Display_Buffer="00:00:00:00"/蜂鸣器vo

24、id Beep() uchar i,j=70; for (i=0;i<180;i+) while(-j);BEEP=BEEP;BEEP=0;/延时void DelayX(unit ms) uchar i; while(ms-) for(i=0;i<120;i+);/显示计时void Show_Second() uchar i; LCD_Set_POS(0x45);/设置LCD显示起点 for(i=3;i!=0xff;i-) /将两位整数的1/100s,秒,分,时转换为8位数字字符 LCD_Display_Buffer2*i+1=Time_Bufferi/10+'0'

25、 LCD_Display_Buffer2*i =Time_Bufferi%10+'0' /在i=3,2,1,0时分别显示时,分,秒,1、100s LCD_Write_Data(LCD_Display_Buffer2*i+1); LCD_Write_Data(LCD_Display_Buffer2*i); LCD_Write_Data(':'); /Time0中断 void Time0() interrupt 1 using 0 TH0=-10000/256; TL0=-10000%256; Time_Buffer0+; if(Time_Buffer0=100)

26、Time_Buffer0=0; Time_Buffer1+; if(Time_Buffer1=60) /秒 Time_Buffer1=0;Time_Buffer2+; if(Time_Buffer2=60) /分 Time_Buffer2=0;Time_Buffer3+; if(Time_Buffer3=24) /时 Time_Buffer3=0; /主函数 void main() uchar i; IE=0x82; TMOD=0x01; TH0=-10000/256; TL0=-10000%256; LCD_Initialize(); Display_String(msg1,0x00); D

27、isplay_String(msg2,0x40); while(1) if(K1=0) DelayX(100); i=+KeyCount; switch(i) case 1: case 3:TR0 =1; Display_String(Promptsi-1,0); break; case 2: case 4:TR0 =0; Display_String(Promptsi-1,0); break;default:TR0=0; break;while (K1=0) ; /等待释放K1键Beep();elseif(K2=0)TR0=0;KeyCount=0;for(i=0;i<4;i+) Ti

28、me_Bufferi=0; /清零计时缓冲 Display_String(msg1,0);Beep();DelayX(100);while (K2=0) ; /等待释放K2键Show_Second();/1602LCD显示驱动函数 e#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define DelayNOP()_nop_();_nop_();_nop_();_nop_();bit LCD_Busy_Check();void LCD_Initialize();void LCD_Set_POS(uchar);void LCD_Write_Command(uchar); void LCD_Write_Data(uchar);/延时void DelayMS(uint ms)uchar t;while(ms-)for (t=0;t<120;t+);/LCD忙检查bit LCD_Bus

温馨提示

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

评论

0/150

提交评论