基于89C52单片机的电子时钟的课程设计综述.docx
《基于89C52单片机的电子时钟的课程设计综述.docx》由会员分享,可在线阅读,更多相关《基于89C52单片机的电子时钟的课程设计综述.docx(38页珍藏版)》请在冰点文库上搜索。
![基于89C52单片机的电子时钟的课程设计综述.docx](https://file1.bingdoc.com/fileroot1/2023-5/24/dc3828ac-62f6-48be-9e1f-c618e6c68cb8/dc3828ac-62f6-48be-9e1f-c618e6c68cb81.gif)
基于89C52单片机的电子时钟的课程设计综述
课程设计(论文)
题目名称基于89C52的电子时钟
课程名称单片机原理及应在电气测控学科中的应用
学生姓名
学号
系、专业电气工程10自动化
指导教师朱群峰
2012年6月1日
邵阳学院课程设计(论文)任务书
年级专业
10自动化
学生姓名
学号
题目名称
基于89C52的电子时钟设计
设计时间
2012年5月21日—2012年6月1日
课程名称
单片机原理及应在电气测控学科中的应用
课程编号
121200105
设计地点
数字控制与PLC实验室(305)
一、课程设计(论文)目的
课程设计是在校学生素质教育的重要环节,是理论与实践相结合的桥梁和纽带。
单片机课程设计,要求学生更多的完成软硬结合的动手实践方案,解决目前学生课程设计过程中普遍存在的缺乏动手能力的现象.《单片机课程设计》是继《电子技术》、和《单片机原理与应用》课程之后开出的实践环节课程,其目的和任务是训练学生综合运用已学课程“电子技术基础”、“单片机原理及应用”的基本知识,独立进行单片机应用技术和开发工作,掌握单片机程序设计、调试和应用电路设计、分析及调试检测。
二、已知技术参数和条件
1、电子时钟见第三项“任务和要求”具体参数
2、89C52系列单片机;
3、KEIL软件;Wave软件
4、THKSCM-1型单片机实验系统。
三、任务和要求
设计要求:
熟悉单片机的I/O口原理;掌握LCD驱动电路和LCD显示的原理;掌握定时计数器的使用。
设计任务:
设计一个电子时钟,①要求实时显示时间(时钟/分钟/秒钟)②要求可以通过按键设置当前时间。
1、要求设计出电气原理图;
2、要求设计出程序流程图和程序;
3、要求设计出实物仿真模拟调试。
注:
1.此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;
2.此表1式3份,学生、指导教师、教研室各1份。
四、参考资料和现有基础条件(包括实验室、主要仪器设备等)
1、单片机课程设计指导,北京航空航天大学出版社,楼然苗等2007年7月
2、单片机实验与实践教程,北京航空航天大学出版社,何立民等2004年7月
3、THKSCM-1型单片机实验系统实验指导书、KEIL软件,WAVE软件
4、数字控制与PLC实验室”THKSCM-1型单片机实验系统”。
五、进度安排
2012年5月21日-22日:
收集和课程设计有关的资料,熟悉课题任务何要求总体方案设计
2012年5月23日-25日:
硬件电路设计
2012年5月26日-28日:
软件设计
2012年5月29日-30日:
系统调试改进
2012年5月31日:
整理书写设计说明书
2012年6月1日:
答辩并现场考核
六、教研室审批意见
教研室主任(签名):
年月日
七|、主管教学主任意见
主管主任(签名):
年月日
八、备注
指导教师(签字):
学生(签字):
邵阳学院课程设计(论文)评阅表
学生姓名学号
系电气工程专业班级10自动化
题目名称基于89C52的电子时钟设计课程名称单片机原理及应用
一、学生自我总结
回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,不仅可以巩固以前所学过的知识,而且学到了很多在书本上没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的道理,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到很多问题,可以说是困难重重,毕竟这是第一次做,难免会遇到过各种各样的问题,同时在设计的过程中也发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机C语言掌握得不好……通过这次课程设计,明白了一定要经常温习以前所学的知识,毕竟温故而知新。
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,还好在朱群峰师的辛勤指导下,终于游刃而解。
同时,对给过我帮助的各位指导老师和所有同学再次表示衷心的感谢!
学生签名:
2012年6月1日
二、指导教师评定
评分项目
平时成绩
论文
答辩
综合成绩
权重
30
40
30
单项成绩
指导教师评语:
指导教师(签名):
年月日
注:
1、本表是学生课程设计(论文)成绩评定的依据,装订在设计说明书(或论文)的“任务书”页后面;
2、表中的“评分项目”及“权重”根据各系的考核细则和评分标准确定。
摘要
电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比,它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。
随着人们生活环境的不断改善和美化,在许多场合都用到电子时钟。
现在高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟、石英钟、石英表都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调试,数字式电子钟用集成电路计时时,译码代替机械式传动,用LCD显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时、分、秒显示时间的功能,还可以进行时和分的校对,片选的灵活性好。
本课程设计就是用一块89C52单片机和一块LCD1602液晶显示屏及其他元器件设计出一个电子时钟。
用单片机的定时器来产生时钟信号,用液晶显示屏来显示时钟的变化,通过扫描几个按键来控制时钟。
把这几个模块的程序及原理图设计好后组合在一起就成了一个电子时钟。
关键词:
89C52单片机;LCD1602液晶;定时器;石英晶体振荡器。
摘要....................................................................................I
1电子时钟总体设计....................................................1
1.1设计任务与要求…………………………………………………….1
1.2方案设计与论证…………………………………………………….1
2单片机应用系统简介………………………………………………2
2.1单片机结构………………………………………………………….2
2.2单片机的封装形式,引脚定义及功能…………………………….3
2.3定时/计数器………………………………………………………….4
2.4键盘接口技术………………………………………………………..5
2.5复位操作……………………………………………………………..8
2.6显示控制模块………………………………………………………..8
3硬件电路设计…………………………………………………13
3.1电子时钟的原理图…………………………………………………13
3.2单元电路设计………………………………………………………13
4软件设计………………………………………………………17
4.1系统主程序设计……………………………………………………17
4.2主程序清单…………………………………………………………19
4.3系统调试……………………………………………………………24
5结论与心得………………………………………………………25
参考文献………………….…………………………………………….26
附录…………………………………………………………………….27
致谢……………………………………………………………………..30
1电子时钟总体设计
1.1设计任务与要求
设计要求:
熟悉单片机的I/O口原理;掌握LED驱动电路和LED显示的原理;掌握定时计数器的使用。
设计任务:
设计一个电子时钟,①要求实时显示时间(时钟/分钟/秒钟)②要求可以通过按键设置当前时间。
1、要求设计出电气原理图;2、要求设计出程序流程图和程序;3、要求设计出实物仿真模拟调试;4、用C语言编程,用proteus仿真。
1.2方案设计与论证
方案:
该系统采用52系列单片机AT89C52作为控制核心,该系统可以完成运算控制、信号识别以及显示功能的实现。
由于用了单片机,使其技术比较成熟,应用起来方便、简单并且单片机周围的辅助电路也比较少,便于控制和实现。
整个系统具有极其灵活的可编程性,能方便地对系统进行功能的扩张和更改。
MCS-52单片机特点如下:
(1)单片机按照工业控制要求设计,抵抗工业噪声干扰优于一般的CPU,程序指令和数据都可以写在ROM里,许多信号通道都在同一芯片,因此可靠性高,易扩充。
(2)单片机有一般电脑所必须的器件,如三态双向总线,串并行的输入及输出引脚,可扩充为各种规模的微电脑系统。
(3)控制功能强:
单片机指令除了输入输出指令,逻辑判断指令外还有更丰富的条件分支跳跃指令。
其原理框图如图1.1所示:
蜂鸣器电路
图1.1电子时钟原理框图
2单片机应用系统简介
2.1单片机结构
2.1.189C52单片机的功能结构
如下图所示,单片机是属于三总线结构,89C52单片机功能方框图如图2.1所示:
图2.1单片机内部结构框图
2.1.2单片机内容结构
单片机的内部结构如图2.2所示。
从图中看出,它具有以下特征;
(1)适于控制应用的8位CPU
(2)56字节片内数据存储器,分高低两个128字节
(3)4K字节片内程序存储器
(4)64KB程序存储器空间
(5)64KB数据存储器空间
(6)4个8位共32根双向并可按位寻址的I/O口线
(7)两个16位定时/计数器;
(8)一个全双工的串行I/O接口
(9)有5个中断源
(10)片内时钟振荡器
(11)具有布尔处理(位处理)能力
图2.2单片机内部结构
2.2单片机的封装形式、引脚定义及功能
2.2.189C52封装
89C52系列单片机具有双列直插式和方形两种封装。
如图2.3所示
图2.3双列直插式和方形
2.2.289C52系列单片机引脚功能
(1)引脚分布:
如图2.4所示为双列直插式引脚分布图
图2.4双列直插式引脚分布图
(2)引脚功能
VCC----工作电源+5V
GND----电源地
ALE/PROG-----访问外部存储器时作为低8位地址锁存控制信号;在对EPROM编程时作为编程脉冲输入;在不访问外部存储器和非EPROM编程状态下,该脚输出频率为1/6单片机晶振频率的方波信号,该信号,可作为时钟脉冲,但在访问数据存储器时会丢失一个脉冲;
PSEN——外部程序存储器读选通信号.
EA/VPP——访问程序存储器控制信号。
当EA为低电平时,只读外部存储器,当EA为高电平时则先读内部程序存储器,再读外部程序存储器;这个引脚在编程时接编程电压VPP.
RST——复位信号,对系统复位信号要>2T。
XTAL1——片内振荡电路输入端。
XTAL2——片内振荡电路输出端。
P0-P3——输入输出端口。
2.3定时/计数器
2.3.1定时/计数器结构
89C52单片机内部设有两个16位定时/计数器,简称为定时器0(T0)和定时器1(T1)。
定时器/计数器的结构如图2.5所示:
TMOD---方式控制寄存器,用于设定定时/计数器的工作方式
TCON---定时器控制寄存器,用于启动定时/计数器
IE---中断允许控制寄存器:
定时/计数器是微机的中断源
图2.589C52单片机内部定时/计数器的结构
2.3.2工作原理
89C52系列单片机内部定时/计数器的工作原理可用图2.6来说明。
图2.6定时/计数器的工作原理图
定时/计数功能选择:
当C/T=0时,为定时器功能,此时,C与A相连(计数脉冲为机器周期);当C/T=1时,为计数功能,此时,C与B相连(计数脉冲从P3.4或P3.5口输入)。
定时/计数器设置:
定时/计数器设置由工作方式控制寄存器(TMOD)、定时控制寄存器(TCON)以及中断允许寄存器(IE)共同完成。
2.4键盘接口技术
键盘分两类:
独立连接多键盘和矩阵式键盘,如图2.7所示。
图2.7独立式键盘
2.4.1独立式键盘
独立式按键结构独立式按键结构的键盘是最简单的键盘电路,每个键独立接入一根输入线。
这种键盘的优点是结构简单、使用十分方便,目前这种结构的键盘应用还相当普遍,这种键盘的缺点是随着键数数量的增加所占用的I/O口线也增加。
独立式按键结构的键盘在没有键按下时,数据输入线均为高电平,当有键按下时,与之对应的数据线将变成低电平。
因此可用位指令判别是否有键按下。
2.4.2行列式键盘
独立式键盘虽然结构简单,使用方便,但每一个按键开关要占一根I/O口线,因此在按键数较多时,采用行列式键盘技术。
线
(1)行列式键盘的结构及原理
①行列式键盘的结构
图2.8所示为行列式键盘的基本结构。
它由键盘开关矩阵、输出(行线)锁存器、输入(列线)缓冲器三部分组成。
在具体组成电路时,有以下几种组合方式:
直接使用I/O的键盘电路。
MCU的I/O口输出具有锁存器,输入具有缓冲器,因此应用I/O口直接与行线与列线相连就可以组成行列式键盘。
如图2.7所示,是由P1口组成的4*4键盘。
图中左示的是普通接法,右示为带中断的键盘接法。
图2.8行列式键盘
利用I/O口和译码器的接口电路
如图2.9所示为使用I/O口与74LS138译码器构成的键盘电路
利用串行口的键盘接口电路
P0.0
P0.2
P0.1
P0.3
P1.0
A
P1.1
B
P1.2
C
图2.9由I/O口与译码器组成的行列式列式
如图2.10为由I/O口与串行口组成的键盘电路。
TXD
图2.10I/O口与串行口组成的行列式键盘
②行列式键盘的工作原理:
尽管构成行列式键盘有多种形式,但它们的工作原理是相同的,现以图1.7为例说
说明:
行线P1.4~P1.7为输出,列线P1.0~P1.3为输入。
CPU先使第一行(P1.4)为“0”,其余行为“1”。
读输入口P1.0~P1.3的状态,若输入缓冲器的状态全部为“1”,则表示所在行无键按下,CPU使一下行线为“0”,其余行线为“1”,扫描下一行,这样在P1.4~P1.7循环进行。
若输入缓冲器不全为“1”,说明所在行有键按下,CPU停止当前行线扫描,转入到列线扫描,列线P1.0~P1.3为“0”状态的列表示对应列有键按下。
这样,行线与列数交叉键就是扫描到的按键。
③键扫描方式:
程控扫描方式:
CPU从执行程序就开始了键盘的扫描,等待来是键盘的命令。
这种程控扫描方式,适用单任务多分支结构。
定时扫描方式:
在多任务应用系统中,既要执行当前任务,又要及时接受键盘命令,定时扫描方式适应这种需要。
具体做法是:
在程序初始化时,先对定时/计数器进行设置,使其每10ms中断一次,每次中断,CPU将去扫描一次键盘,若两次中断扫描到有键按下(这里考虑了消抖动),CPU将对键作相应的处理。
中断扫描方式:
采用中断扫描方式必需有外部中断接口,当有键按下时,产生中断请请求,CPU响应中断,在中断服务程序扫描键盘,作相应处理。
这是多任务应用系统常用的一种方式。
2.5复位操作
复位操作是单片机的初始化操作,单片机在进入运行前和在运行过程中程序出错或操作失误使系统不能正常运行时,需要进行复位操作。
复位操作后,程序将从0000H开始重新执行。
除此之外,复位操作还使单片机的ALE和PSEN引脚信号在复位期间变为无效状态。
单片机对复位信号的要求:
一是复位信号为高电平,二是复位信号有效持续时间不少于24个振荡脉冲(两个机器周期)以上。
在这里特别要提醒的是,在一个应用系统中,如果有几片单片机同时工作,在程序上有连接关系,系统复位时,应确保每一片单片机同时复位。
复位信号由单片机的RST引脚输入,复位操作有上电自动复位、按键复位和外部脉冲复位三种方式。
随着单片机技术的发展,目前有些单片机内部带有看门狗电路,当程序进行出错或进入了无休止循环时,看门狗电路将利用软件强行使系统复位。
2.6显示控制模块
LCD1602字符显示器模块是2行X16个字符的LCD显示器。
该器件由32个字符点阵块组成,可以显示ASCII码表中的所有可显示字符。
LCD1602字符显示器外形和引脚排列、名称如图2.11所示。
图2.11LCD1602
1602采用标准的16脚接口,其中:
第1脚:
VSS为地电源
第2脚:
VDD接5V正电源
第3脚:
V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度
第4脚:
RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:
RW为读写信号线,高电平时进行读操作,低电平时进行写操作。
当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。
第6脚:
E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。
第7~14脚:
D0~D7为8位双向数据线。
第15~16脚:
空脚
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”
表1
1602液晶模块内部的控制器共有11条控制指令,如表2所示
表2
序号
指令
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
读出的数据内容
它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。
(说明:
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的点阵字符(有些模块是DL:
高电平时为8位总线,低电平时为4位总线)
指令7:
字符发生器RAM地址设置
指令8:
DDRAM地址设置
指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
指令10:
写数据
指令11:
读数据
液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。
要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3是DM-162的内部显示地址.
表3
显示字符
1
2
3
4
5
6
7
8
9
10
11
12
...
第一行地址
00H
01H
02H
03H
04H
05H
06H
07H
08H
09H
0AH
0BH
...
第二行地址
40H
41H
42H
43H
44H
45H
46H
47H
48H
49H
4AH
4BH
...
单片机与LCD1602典型连接
本单片机显示模块采用LCD1602A-1型液晶显示器,用单片机的P2口作为1602的数据输入端。
同时让1602的E、RW、RS针脚分别与单片机的P3.2、P3.1、P3.0口相接。
如图2.12所示
图2.12
3硬件电路设计
3.1电子时钟的电路图
如图3.1所示为电路图。
其工作原理为:
接通电源后,液晶显示00:
00:
00,按下K1,可以调整秒,按下K2数值增一,按下K3数值减一,再次按下K1,则可以调整分,再按下K1,则可以调整时,再按次就可确定时间,开始工作。
K4可以复位使液晶显示00:
00:
00。
每按一次,蜂鸣器都给出声响提示。
图3.1电子时钟电路原理图
3.2单元电路设计
3.2.1键盘控制模块
根据题目要求及另加的一些功能要求,总共只需要4个按键(如图3.2),故选用独立按键模式。
这4个键分别为,调时选择键k1、加值键k2、减值键k3、单片机复位键k4。
下面具体介绍一下每个键的功能。
K1:
时、分、秒的调时选择键。
K2:
加值键,每按一次所选的时间值加1;
K3:
减值键,每按一次所选的时间值减1;
K4:
单片机手动复位键;
图3.2
3.2.2蜂鸣器电路模块
蜂鸣器一脚与单片机的P1.3相连,一脚接地。
如图3.3所示
图3.3
3.2.3复位电路模块
复位电路采用手动复位和上电自动复位组合。
如图3.4所示
图3.4
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
如果RST持续为高电平,单片机就处于循环复位状态。
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位要求接通电源后,自动实现复位操作。
上电后,保持RST一段高电平时间
3.2.4晶振电路模块
本设计采用12Mhz的晶振,30pF的电容。
如图3.5所示
图3.5
外部中断和内部中断并存,单片机硬件复位端,只要持续4个机器周期的高电平