定时器lcd1602单片机课程设计.docx
《定时器lcd1602单片机课程设计.docx》由会员分享,可在线阅读,更多相关《定时器lcd1602单片机课程设计.docx(40页珍藏版)》请在冰豆网上搜索。
定时器lcd1602单片机课程设计
烟台南山学院
单片机课程设计
实训报告
题目
姓名:
XXX
所在学院:
电子工程学院
所学专业:
___电子信息工程
班级:
08电子信息工程
(1)班
学号:
2007120034
指导教师:
完成时间:
2010年11月07日
摘要
(这里用宋体,四号字,只写中文摘要!
)
随着时代的进步和发展,单片机技术已经和我们的生活息息相关,其中涉及到生活,工作,科研,等各个领域,现在已经成为一个比较成熟的技术。
单片计算机即单片机微型计算机。
是CPU、RAM、ROM、定时、计数和多接口于一体的微型控制器。
他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。
其中51系列单片机是其中最为有代表性的一种。
通过单片机AT89C51和lcd1602液晶显示器,显示电子时钟的年、月、日、星期、时、分、秒。
更为形象,更为直观。
通过软件,和硬件的结合,在仿真电路的仿真实现,数字时钟的走时,通过51C语言编程实现,秒、分、时、星期、日、月、年的显示自动校正,以及平年闰年的判断,通过和实际的时钟进行对比,查找误差,减少误差的来源,达到和实际时钟的误差无限减小。
关键字:
AT89C51单片机、1602LCM模块、数字时钟
目录
第1章概述..........................................................4
1.1课题背景.............................................................4
1.2课题意义.............................................................4
第2章设计要求......................................................6
第3章总体方案设计与分析..........................................10
3.1整体方案框图.........................................................10
3.2单片机的选择.........................................................11
3.2驱动电路的选择.......................................................11
3.3壁障传感器的选择.....................................................12
3.4显示模块的选择.......................................................14
第4章硬件电路设计.................................................20
4.1单片机最小系统模块...................................................20
4.2驱动电路模块.........................................................20
4.3红外探头模块.........................................................21
4.4显示模块.............................................................21
第5章软件电路设计.................................................25
5.1系统软件设计框图.....................................................20
5.2主程序...............................................................20
5.3驱动子程序...........................................................21
5.4显示子程序...........................................................21
第6章调试与功能说明..............................................21
6.1系统性能测试与功能说明 ..............................................25
6.2软件调试问题及解决 ..................................................27
6.3硬件调试问题及解决 ..................................................27
第7章设计总结......................................................27
致谢....................................................................28
元器件清单.............................................................29
参考文献...............................................................29
附:
报告要求
报告格式是保证文章结构清晰、纲目分明的编辑手段,撰写毕业论文可任选其中的一种格式,但所采用的格式必须符合上表规定,并前后统一,不得混杂使用。
格式除题序层次外,还应包括分段、行距、字体和字号等。
第一层次(章)题序和标题居中放置,其余各层次(节、条、款)题序和标题一律沿版面左侧边线顶格排列。
第一层次(章)题序和标题距下文双倍行距。
段落开始后缩两个字。
行与行之间,段落和层次标题以及各段落之间均为单倍行距。
论文要用统一的A4纸打印。
每页约44行,每行约34字;打印正文用宋体小四号字;版面页边距上空2.5cm,下空2cm,左空2.5cm,右空2cm;页码用小五号字,底端居中。
第一层次(章)题序和标题用二号黑体字。
题序和标题之间空两个字,不加标点,下同。
第二层次(节)题序和标题用三号黑体字。
第三层次(条)题序和标题用四号黑体字。
第四层次及以下层次题序及标题一律用小四号黑体字。
结论(结束语)作为单独一章排列,但标题前不加“第XXX”字样。
结论是整个论文的总结,应以简练的文字说明论文所做的工作,一般不超过两页。
例如:
第2章设计要求
2.1题目要求
(1)要求XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
(2)要求XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
2.2焊接要求
(1)要求XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
(2)要求XXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXX
特别说明:
一、第6章的目录部分和内容,同志们可以自由更改,只要主体意思为“调试过程中遇到的问题及其最终的解决方法”就行!
二、第7章为训后感想,孙老师要求至少200字。
三、“致谢”部分为可选内容,那些对孙老师有感激之情的同志们可以尽情发挥!
(写上可能会多打几分喔^-^)
——沙德雷
第1章概述
1.1课题背景
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。
下面是单片机的主要发展趋势。
单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
单片机模块中最常见的是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
1.2课题意义
时钟钟是采用LM1602液晶显示器显示,利用定时器T0产生秒信号,实现对年.月.日.时,分,秒.数字显示的计时装置,广泛用于个人家庭,车站,码头办公室等公共场所,成为人们日常生活中不可少的必需品,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以时钟数字化为基础的。
数字时钟已成为人们日常生活中:
必不可少的必需品,给人们的生活、学习、工作、娱乐带来极大的方便。
它还用于计时、自动报时及自动控制等各个领域。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
第2章设计要求
2.1题目要求
(1)要求:
实现LCD显示功能
(2)要求:
实现年、月、日、星期、时、分、秒功能
(3)要求:
实现按键功能
(4)要求:
实现闹钟功能
第3章总体方案设计与分析
3.1整体方案框图
3.2单片机的选择
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。
其发展趋势不外乎以下几个方面:
1、多功能
单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。
比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。
有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。
例如,有的芯片以51内核为核心,集成了USB控制器、SMARTCARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。
2、高效率和高性能
为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:
单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。
由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。
使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。
3、低电压和低功耗
单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。
由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。
这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。
4、低价格
单片机应用面广,使用数量大,带来的直接好处就是成本的降低。
目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。
目前,我国生产很多型号的单片机,在此,我们采用型号为STC89C52的单片机。
因为:
STC89C52是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的Flash只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-52指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。
STC89C52是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,STC89C51可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
3.3单片机的基本结构
MCS-52单片机内部结构
8052单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
数据存储器(RAM)
8052内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图2-1单片机8052的内部结构
程序存储器(ROM):
8052共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
定时/计数器(ROM):
8052有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
并行输入输出(I/O)口:
8052共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
全双工串行口:
8052内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
中断系统:
8052具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
时钟电路:
8052内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8052单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-52系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
下图是MCS-52系列单片机的内部结构示意图。
图2-2MCS-52系列单片机的内部结构
MCS-52的引脚说明:
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
MCS-51的引脚说明:
MCS-52系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
图2-3单片机的引脚图
Pin9:
RESET/Vpd复位信号复用脚,当8052通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8052的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图2-4上电自动和手动复位电路图
图2-5内部和外部时钟方式图
Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
3.4显示模块选择
(1)1602LCD基本参数:
1602LCD内置HD44780(目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,
控制原理是完全相同的)专用液晶显示控制器,分为带背光和不带背光两种,带背光的比不带背光的厚,是否带背光在应用中并无差别。
显示容量为16×2个字符,即可以显示2行,每行16个字符。
芯片工作电压:
4.5—5.5V;最佳工作电压为5.0V;工作电流:
2.0mA(5.0V)
(2)1602LCD引脚功能:
1602芯片(在proteus中名字为LM016L)采用标准的14脚(无背光)或16脚(带背光)接口,如右图所示,各引脚功能如下:
VSS:
电源地
VDD:
电源正极
VEE:
液晶显示偏压,为对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。
(补充说明:
整体回路中的某个点,测量它相对某个基准点的电压(是整体回路电压的1/n)就称之为该点的偏压,各段电路的偏压之和就是整体回路电压,相应位置的电流就是偏压电流。
)
RS:
数据/命令选择信号,高电平时选择数据寄存器、低电平时选择指令寄存器。
RW(read/write,读/写):
读/写控制信号,高电平时进行读操作,低电平时进行写操作。
当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。
E(enable,使能):
使能端,为1时读取信息,当E端由高电平跳变成低电平(下降沿)时,液晶模块执行命令。
D0~D7:
8位双向数据线
BLA:
背光源正极
BLK:
背光源负极
(3)1602LCD指令说明及时序:
1602液晶模块内部的控制器共有11条控制指令,如表1所示:
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DDRAM)
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
(4)1602的控制命令:
1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
1为高电平、0为低电平)
指令1:
清显示,指令码01H,光标复位到地址00H位置。
指令2:
光标复位,光标返回到地址00H。
指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效。
指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁。
指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标。
指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。
指令7:
字符发生器RAM地址设置。
指令8:
DDRAM地址设置。
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据。
指令11:
读数据。
(5)1602LCD初始化:
1602LCD的一般初始化(复位)过程:
延时15mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
延时5mS
写指令38H(不检测忙信号)
以后每次写指令、读/写数据操作均需要检测忙信号
写指令0x38:
即00111000,对应第6条控制指令,指令功能为显示模式设置,DL=1表示输出数据长度为8位,N=1表示双行显示,F=0表示5×7点阵。
写指令0x08:
显示关闭
写指令01H:
即00000001,对应第1条指令,功能为清屏,光标归位。
写指令06H:
即00000110,对应第3条指令,功能为显示光标移动设置,其中I/D=1表示写入数据后光标右移。
S=0表示写入数据后字符不移动。
写指令0CH:
即