1、1目录1 概述 21.1 1602LCD 研究的历史背景和意义 .21.2 1602LCD 研究的发展和现状 .22 课题方案设计 22.1 系统设计目的 22.2 系统结构模块论证 22.2.1 显示部分 33 系统硬件设计 33.1 总体设计 .33.2 单片机运行的最小系统 .43.2.1 电源电路 43.2.2 晶振电路 .43.2.3 复位电路 .53.3 显示电路 .63.3.1 引脚说明: .63.4 单片机 STC89C5273.4.1 主要特性 .73.4.2 功能特性概述 .83.4.3 主要引脚及芯片基本工作条件说明 .84 系统软件设计 94.1 总流程图 .94.2
2、最小系统检测电路程序 .104.3 编程调试界面 .114.4 Proteus 仿真结果 .115 软硬件联调及调试结果 .125.1 实物图 .125.2 调试结果 .14结束语 15参考文献 15附录 2 1602LCD 设计的秒表 PCB 图 .17附录 3 1602LCD 设计的秒表 Proteus 仿真图 .17附录 4 1602LCD 设计的秒表 C 语言程序清单 18附录 5 基于单片机的 1602LCD 设计的秒表元器件目录表 .2301 概述1.1 1602LCD 研究的历史背景和意义LCD1602 是 16 字乘以 2 行的字符型液晶模板。其特点是:(1)位数多,可显示 3
3、2 位。(2)显示内容丰富,可显示所有数字、字母、符号等 192 种 ASCII 码对应的字符。(3)程序简单1.2 1602LCD 研究的发展和现状液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在袖珍式仪表和低功耗应用系统中得到广泛的应用。目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。LCD1602 液晶显示模块,它可以显示两行,每行 16 个字符,采用单+SV 电源供电,外围电路配置简单,价格便宜,具有很高的性价比。2 课题方案设计2.1 系统设计目的设计一个单片机控制的秒表系统,利用单片机的定时器计数器定时和计数的原理,结合显示电路、LCD 液晶显示器
4、以及按键来设计计数器。将软、硬件有机地结合起来,使得系统能够正确的进行加、减计时,液晶显示器能够正确的显示时间。使学生增进对单片机的感性认识,加深对单片机理论方面的理解。掌握单片机的内部功能模块的应用,如定时器/计数器、中断、片内外存贮器、 I/O 口、串行口通讯等。同时了解和掌握单片机应用系统的软硬件设计过程、方法及实现,为以后设计和实现单片机应用系统打下良好基础。 (1)使用集成数字电路或单片机作为主控制芯片(2)使用 LCD 来显示现在的时间,显示格式为:上行显示:Current Time ;下行显示:时时:分分:秒秒;(3)具有调整日期与时间的功能。盐城工学院课程设计说明书(2011)
5、12.2 系统结构模块论证系统结构如图 2-1 所示。图 2-1 用 1602LCD 设计的秒表系统框图2.2.1 显示部分显示部分是本次设计的重要部分,一般有以下两种方案:方案一:采用 LED 显示,在单片机应用系统中最常用的 LED 数码管为 7 段数码管,可利用 LED 显示器灵活地构成所要求位数的显示,分静态显示和动态显示。对于静态显示方式,所需的译码驱动装置很多,引线多而复杂,且可靠性也较低。而对于动态显示方式,虽可以避免静态显示的问题,但设计上如果处理不当,易造成亮度低,有闪烁等问题。方案二:采用 LCD 显示。是一种低功耗显示器件,具有显示内容丰富、体积小、重量轻、寿命长、使用方
6、便、安全省电等优点,在计算器、万用表、袖珍式仪表和低功耗微机应用系统中得到广泛使用。其显示的质量高,每个显示器每一点在收到信号后就一直保持那种彩色和亮度,恒定发光,而不像阳极射线管显示器那样刷新亮点,画面质量高且不闪烁。鉴于上述原因,我们采用方案二。3 系统硬件设计3.1 总体设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路以及一单片机显示电路键盘电路外围电路电源电路盐城工学院课程设计说明书(2011)2些按键电路等,本系统采用 STC89C52 单片机为中心器件,利用定时器计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,蜂鸣器电路以及一些按键电
7、路等来设计计数器,将软、硬件有机地结合起来。硬件系统采用 PROTEUS 功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。3.2 单片机运行的最小系统3.2.1 电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,随着半导体工艺的发展,稳压电路也采用集成电路器件来制成。可采用独立的稳压电源。这种供电方式的优点是稳压可靠,且有各种成熟电路可供选择。由集成稳压器具有体积小,外界线路简单,使用方便,工作可靠等优点。因此,在各种电子设备中应用十分普遍,为了跟上时代的发展,可采用 W7800 系列三端稳压器,主要利用它的输出电压是固定的在使用中不能进行调整等优点。但这次设计为了
8、电源的简洁,采用了 USB 接口为循环彩灯系统电路提供稳定5V 的工作电压这样能使整体电路更简洁,更节约成本,从而减少硬件设计的复杂性。3.2.2 晶振电路STC89C52 内部的振荡电路是一个高增益反相放大器,引脚 RXD 和 TXD 分别是此反向振荡放大器的输入端和输出端。该反向放大器可以配置为内部方式的片内振荡器。如图 2-2 所示,这里选用 12MHE 的内部振荡方式,电路如下:电容器C1,C2 起稳定振荡频率,快速起振的作用,C1,C2 可在 20100PF 之间取,这里取30PF,接线时要使晶振振荡器尽可能接近单片机。盐城工学院课程设计说明书(2011)3图 3-1 晶体振荡电路3
9、.2.3 复位电路采用上电+按键复位电路,上电后,由于电容充电,使 RST 持续一段时间高电平时间。当单片机已在运行之中时,按下复位按键也能使 RST 持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能时单片机复位,而且还能使单片机的外围芯片也同时复位,当程序出现错误时,可以随时使电路复位。复位是单片机的初始化操作。其主要功能是把 PC 初始化为 0000H,使单片机从 0000H 单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新启动。除 PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表 1
10、所示。 表 1 一些寄存器的复位状态寄存器 复位状态 寄存器 复位状态PC 0000H TCON 00HACC 00H TL0 00HPSW 00H TH0 00HSP 07H TL1 00HDPTR 0000H TH1 00HP0-P3 FFH SCON 00HIP XX000000B SBUF 不定IE 0X000000B PCON 0XXX0000BTMOD 00H因 STC89C52 单片机需高电平(3.75.5V)复位,且复位时流入单片机的电流不能超过 10mA。具体参数:根据所需要的复位参数可得当按下 SW 键时出现两个机器周期的高电平在单片机 REST 端产生的压降等于 :=21
11、RVCV17.40.5K)(盐城工学院课程设计说明书(2011)4R E S E TS T C 8 9 C 5 21 0 u F1 0 kV c c上电自动复位+S T C 8 9 C 5 2R E S E T1 0 u F+V c c1 0 kS W99手动复位电路图 3-2 复位电路3.3 显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示,我们采用液晶显示电路1602LCD 引脚接口说明编号 符号 引脚说明 编号 符号 引脚说明1 VSS 电源地 9 D2 Data I/O2 VDD 电源正极 10 D3 Data I/O3 VL 液晶显示偏压信号 11 D4 Data I/O4
12、 RS 数据命令选择端口(H/L) 12 D5 Data I/O5 R/W 读/写选择端(H/L) 13 D6 Data I/O6 E 使能信号 14 D7 Data I/O7 D1 Data I/O 15 BLA 背光源正极8 D1 Data I/O 16 BLK 背光源负极3.3.1 引脚说明: 3 脚:VL ,液晶显示偏压信号,用于调整 LCD1602 的显示对比度,一般会外接电位器用以调整偏压信号,此脚电压为 0 时可以得到最强的对比度。4 脚:RS,数据/命令选择端,当此脚为高电平时,可以对 1602 进行数据字节的传输操作,而为低电平时,则是进行命令字节的传输操作。命令字节,即是用
13、来对LCD1602 的一些工作方式作设置的字节;数据字节,即使用以在 1602 上显示字节。盐城工学院课程设计说明书(2011)55 脚:R/W,读写选择端。当此脚为高电平可对 LCD1602 进行读数据操作,反之进行写数据操作。6 脚:E ,使能信号,其实是 LCD1602 的数据控制时钟信号,利用该信号的上升沿实现对 LCD1602 的数据传输。714 脚:8 位并行数据口,使得对 LCD1602 的数据读写大为方便。基本操作时序:(1)读状态:输入:RS=L,RW=H,E=H ;输出:D0D7=状态字(2)写指令:输入:RS=L,RW=L,D0D7=指令码, E=高脉冲;输出:无(3)读
14、数据:输入:RS=H,RW=H,E=H;输出:D0D7= 数据(4)写数据:输入:RS=H,RW=L,D0D7=数据, E=高脉冲;输出:无需要两个写时序: 当我们要写指令字,设置 LCD1602 的工作方式时:需要把 RS 置为低电平,RW置为低电平,然后将数据送到数据口 D0D7,最后 E 引脚一个高脉冲将数据写入。 当我们要写入数据字,在 1602 上实现显示时:需要把 RS 置为高电平,RW 置为低电平,然后将数据送到数据口 D0D7,最后 E 引脚一个高脉冲将数据写入。3.4 单片机 STC89C52STC89C52 是一种带 8K 字节闪烁可编程可檫除只读存储器的低电压,高性能CO
15、MOS8 的微处理器,具有 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 个中断优先级。(7)4 个 8 位 I/O 口。(8)全双工增强型 UART。盐城工学院课程
16、设计说明书(2011)6(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中的内容,但震荡器停止工作并
17、禁止其他所有部件工作直到下一个硬件复位。3.4.3 主要引脚及芯片基本工作条件说明40 个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4 组 8 位共32 个 I/O 口,中断口线与 P3 口线复用。Pin9:RESET/V pd 复位信号复用脚,当 8052 通电,时钟电路开始工作,在RESET 引脚上出现 2 个时钟周期以上的高电平,系统即初始复位。STC89C52 的复位方式可以是自动复位,也可以是手动复位,如图 2 -3 复位电路。此外 RESET/Vpd 还是一复用脚,V cc 掉电其间,此脚可接上备用电源,以保证单片机内部 RAM 的数据不丢失。Pin20、40:分别是单
18、片机的主电源引脚。20 脚是芯片的接地端。40 脚则是芯片的电源端。二者是必不可少的,它们是单片机基本工作的条件。Pin18、19: XTAL1 接外部晶振的一个引脚。在单片机内部,它是上述振荡器的反相放大器的输入端。当采用外部振荡时,该引脚接受振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。则 XTAL2 接外部晶振另一个引脚。在单片机内部它是上述振荡器的反相放大器的输出端。采用外部振荡器时该引脚应该悬空。STC89C51 引脚分布图 2-1 所示:盐城工学院课程设计说明书(2011)7V c cP 0 . 0 ( A D 0 )P 0 . 1 ( A D 1 )P 0 . 2 (
19、A D 2 )P 0 . 3 ( A D 3 )P 0 . 4 ( A D 4 )P 0 . 5 ( A D 5 )P 0 . 6 ( A D 6 )P 0 . 7 ( A D 7 )/EVpLROGSNP 2 . 7 ( A 1 5 )P 2 . 6 ( A 1 4 )P 2 . 5 ( A 1 3 )P 2 . 4 ( A 1 2 )P 2 . 3 ( A 1 1 )P 2 . 2 ( A 1 0 )P 2 . 1 ( A 9 )P 2 . 0 ( A 8 )( T 2 ) P 1 . 0( T 2 E X ) P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1
20、. 6P 1 . 7R S T( R X D ) P 3 . 0( T X D ) P 3 . 1( T 0 ) P 3 . 4( T 1 ) P 3 . 5( ) P 3 . 6X T A L 2X T A L 1G N DINWR1231 741 8567891 01 11 21 31 41 51 62 01 92 12 22 32 42 52 62 72 82 93 03 13 23 33 43 53 63 73 83 94 0S T C 8 9 C 5 2图 3-3 STC89C52 引脚分布图4 系统软件设计在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的
21、复杂程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。4.1 总流程图如图 4-1 所示。盐城工学院课程设计说明书(2011)8图 4-1 系统总流程图4.2 最小系统检测电路程序#include#include#define uchar unsigned char#define uint unsigned int uchar aa;void delay(uint z)uint x,y;for(x=z;x0;x-)盐城工学院课程设计说明书(2011)9for(y=110;y0;y-);void ma
22、in()aa=0xf7;while(1)P2=aa;delay(200);aa=_crol_(aa,1);4.3 编程调试界面Keil C51 软件是目前最流行的开发 8051 系列的单片机的软件工具。Keil C51 提供了包括 C 语言编译器,宏汇编,连接器,库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 uVision3 IDE 将这些部分结合起来。4.4 Proteus 仿真结果Labcenter Electronics 公司推出的 Proteus 套件,可以对基于微机控制器的设计连同所有的周围电子器件一起仿真。用户实时采用 LCD,键盘,RS232 终端等
23、动态外设模型来设计进行交互仿真。盐城工学院课程设计说明书(2011)105 软硬件联调及调试结果5.1 实物图盐城工学院课程设计说明书(2011)115.2 调试结果盐城工学院课程设计说明书(2011)12结束语通过单片机课程设计,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新,是要我们学会将理论很好地联系实际,并不断地去开动自己的大脑,从为人类造福的意愿出发,做自己力所能及的,别人却没想到的事。使之不断地战胜别人,超越前人。同时,更重要的是,我在这一设计过程中,学会了坚持不懈,不轻易言弃。设计过程,也好
24、比是我们人类成长的历程,常有一些不如意,也许这就是在对我们提出了挑战,勇敢过,也战胜了,胜利的钟声也就一定会为我们而敲响。这个设计过程中,我遇到过许多次失败的考验,就比如,自己对实际生活中的交通秩序的不了解给整个设计带来的困扰,真想要就此罢休,然而,就在想要放弃的那一刻,我明白了,原来结果并不那么重要,我们更应该注重的是这一整个过程。于是,我坚持了下来。当然最终,这个设计很成功,主要体现在,程序简单易读,结构清楚,最重要的是成本低。在设计一个系统,除了达到所要求的性能指标以外,成本也是很重要的一个指标。成本的高低也决定了产品的适用性。 参考文献1张大明.单片机控制实训指导及综合应用实训M. 北
25、京:机械工业出版社 ,20082陈益飞.单片机原理及应用技术.北京M :国防工业出版社, 20113张伟.张杰编著.单片机原理及应用.北京M :机械工业出版社, 20074孙余凯. 精选实用电子电路 260 例M. 北京:电子工业出版社 .,2007.65殷春浩,崔亦飞. 电磁测量原理及应用M. 徐州:中国矿业大学出版社, 2003.76陆广平.单片机原理与接口技术课程设计实验指导书M7陈益飞.单片机原理及应用技术M. 北京:国防工业出版社 .2010,108丁元杰单片机原理及应用M. 北京:机械工业出版社.2005盐城工学院课程设计说明书(2011)13附录附录 1 1602LCD 设计的秒
26、表原理图1 2 3 4ABCD4321DCBA TitleNumber RevisionSizeA4Date: 26-Jun-2011 Sheet of File: C:UserswujiaminDesktop2Protel设设Protel设设protel设设.ddbDrawn By:Y1XTALC120PC220PS1SW-PBS2SW-PBP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.712345678161514131211109RP11KP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7VCC
27、P2.0P2.1P2.0P2.1RSTSW-PB +C822u+C722uR11k R21kR31kD1LEDRESETRESETGNDVDDVORSR/WED0D1D2D3D4D5D6D7BL1BL2J11802LCDVCCEA/VP31X119 X218RESET9RD17 WR16INT012 INT113T014 T115P10/T1 P11/T2P123 P134P145 P156P167 P178P00 39P01 38P02 37P03 36P04 35P05 34P06 33P07 32P20 21P21 22P22 23P23 24P24 25P25 26P26 27P27
28、28PSEN 29ALE/P 30TXD 11RXD 10VCC40GND20U180C52VCCP2.2P2.2R41KVCCVCCSPEAKERR51kQ1NPNVCC盐城工学院课程设计说明书(2011)14附录 2 1602LCD 设计的秒表 PCB 图盐城工学院课程设计说明书(2011)15附录 3 1602LCD 设计的秒表 Proteus 仿真图d0d1d2d3d4d5d6d7d0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7RSRWERSRWEXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD23
29、7P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD63P0.7/AD732P1.01P1.2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD1P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A92P2.2/A1023P2.3/A1 24P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51CLOCK=12MC120pFC220pFC310uFX1CRYSTALR110kD714D61
30、3D512D41D310D29D18D07E6RW5RS4VS1VD2VE3LCD1LM016L23456789 1RP1RESPACK-8K2 (清 零 )K1 (启 停 控 制 ) LS1SOUNDER附录 4 1602LCD 设计的秒表 C 语言程序清单#include #include #define uchar unsigned char#define unit unsigned int #define delayNOP() _nop_();_nop_();_nop_();_nop_();/LCD 控制void LCD_Initialize();void LCD_Set_POS(uc
31、har);void LCD_Write_Data(uchar);void Display_String(uchar *,uchar);sbit K1=P10;sbit K2=P11;盐城工学院课程设计说明书(2011)16sbit BEEP=P30;sbit LCD_RS=P20;sbit LCD_RW=P21;sbit LCD_EN=P22;uchar KeyCount=0;uchar code msg1=“Second Watch 0“;uchar code msg2=“ “;uchar code Prompts16= “:1- “,“:1- :2 “,“:1-2 :3 “,“:1-2 :
32、34“;/计时缓冲与显示缓冲uchar Time_Buffer =0,0,0,0;uchar LCD_Display_Buffer=“00:00:00:00“;/蜂鸣器void Beep()uchar i,j=70;for (i=0;i#include#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
33、 LCD_Write_Command(uchar); void LCD_Write_Data(uchar);/延时void DelayMS(uint ms)uchar t;while(ms-) for (t=0;t120;t+);/LCD 忙检查bit LCD_Busy_Check()bit Result;LCD_RS=0;LCD_RW=1;LCD_EN=1;DelayNOP();Result=(bit)(P0LCD_EN=0;return Result;/向 LCD 写指令void LCD_Write_Command(uchar cmd)盐城工学院课程设计说明书(2011)20while (
34、LCD_Busy_Check() );LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_(); _nop_();P0=cmd; DelayNOP();LCD_EN=1;DelayNOP();LCD_EN=0;/向 LCD 写数据void LCD_Write_Data(uchar str)while (LCD_Busy_Check() ;LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=str;DelayNOP();LCD_EN=1;DelayNOP();LCD_EN=0;/初始化 LCDvoid LCD_Initialize()DelayMS(5);LCD_Write_
35、Command(0x38);DelayMS(5);LCD_Write_Command(0x0c);DelayMS(5);LCD_Write_Command(0x06);DelayMS(5);LCD_Write_Command(0x01);DelayMS(5);/设置显示位置void LCD_Set_POS(uchar Position)LCD_Write_Command(Position|0x80);/显示函数,在 LCD 指令行上显示字符串void Display_String(uchar*str,uchar LineNo)uchar k;LCD_Set_POS(LineNo);for (k=0;k16;k+) LCD_Write_Data (strk);盐城工学院课程设计说明书(2011)21附录 5 基于单片机的 1602LCD 设计的秒表元器件目录表元件 种类 型号 数量STC89C52 单片机 双直插式 DIP 封装 1DIP 插座 40脚 112MHZ 晶振 插件封装 1按键 4脚 2滑动变阻器 1电阻 1 k 8电阻 10k 1排阻 510 1瓷片电容 30pf 2电解电容 10uf 1LCD 1导线 若干三极管 1蜂鸣器 1LED 1万能板 双面板 100mm*150mm 1