单片机课程设计基于89C51的数字电子时钟的设计docx.docx
《单片机课程设计基于89C51的数字电子时钟的设计docx.docx》由会员分享,可在线阅读,更多相关《单片机课程设计基于89C51的数字电子时钟的设计docx.docx(85页珍藏版)》请在冰豆网上搜索。
单片机课程设计基于89C51的数字电子时钟的设计docx
.
单片机系统
课程设计
成绩评定表
设计课题
基于89C51的数字电子时钟设计
学院名称
:
电气工程学院
专业班级
:
学生姓名
:
学
号:
指导教师
:
设计地点
:
设计时间
:
指导教师意见:
成绩:
签名:
年月日
.
.
单片机系统课程设计
课程设计名称:
基于89C51的数字电子时钟设计
专业班级:
学生姓名:
学号:
指导教师:
课程设计地点:
课程设计时间:
2014-01-01~2015-01-12
.
学生姓名
题目
课题性质
指导教师
主要内容
(参数)
任务要求
(进度)
主要参考
资料
审查意见
.
单片机系统课程设计任务书
专业班级学号
工程设计课题来源自拟
利用89C51设计数字电子时钟,实现以下功能:
1.开机时显示00-00-00,并开始连续计时;
2.记时满23-59-59时,返回00-00-00重新开始计时;
3.在单片机的P1.0~P1.3口分别接入4个按键,P1.0~P1.2分别用于“秒”“分”“时”的调整,P1.3用做复位键。
第1-2天:
熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:
按照确定的方案设计单元电路。
要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
第5-6天:
软件设计,编写程序。
第7-8天:
实验室调试。
第9-10天:
撰写课程设计报告。
要求内容完整、图表清晰、文理流畅、
格式规范、方案合理、设计正确,篇幅不少于6000字。
[1]张迎新等.《单片微型计算机原理、应用与接口技术》.北京:
国防工
业出版社,2009.8;
[2]谢维成等.《单片机原理与运用及汇编程序设计》.北京:
清华大学出版社2006.8;
[3]周润景,刘晓霞等.《单片机实用系统设计与仿真经典实例》.北京:
电子工业出版社,2014.1;
[4]夏路易,石宗义.《Protel99s]SE设计教程》.北京:
北京希望电子出版社.2002.6。
系(教研室)主任签字:
年月日
.
.
1
引言......................................................................
5
2
设计目的...................................................................
5
3
系统方案与总体结构设计.....................................................
5
3.1
系统方案设计...........................................................
5
3.2
数字时钟框图设计.......................................................
6
4
数字时钟的硬件构成.........................................................
8
4.1
选用芯片简介...........................................................
8
4.2
LED数码显示器简介....................................................
12
5
各个模块工作原理及原理图..................................................
12
5.1
计时模块..............................................................
13
5.2
数字时钟控制模块......................................................
13
5.3
振荡模块..............................................................
14
5.4
显示模块..............................................................
14
6
系统软件设计..............................................................
15
6.1
软件设计的要点........................................................
15
6.2
AT89C51内部定时器/计数器0的使用方法.................................
15
6.3
程序设计流程图........................................................
16
7
系统调试与总结............................................................
17
7.1
电路调试..............................................................
17
7.2
软件调试..............................................................
17
8
结论与心得................................................................
18
附录A系统原理图............................................................
18
附录B源程序...............................................................
20
参考文献....................................................................
26
.
.
1引言
数字时钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,无机械装置,具有更长的使用寿命。
数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字时钟的精度,远远超过老式钟表,使其得到了广泛的使用。
该课程设计为数字电子钟的设计。
以AT89C51为核心,配合8位7段共阴极LED数码管显示实时数据,按键可以进行数据调整,为用户提供长期、连续、可
靠、稳定的工作环境。
该数字电子钟有时分秒显示功能以及时间的调整的功能。
系统软件设计主要实现参数设置、串行口数据接收、指令发送以及数据的显示和存储,并且实现键盘、液晶显示器等各模块的功能,采用汇编语言编程。
关键词:
数字电子钟单片机汇编语言
2设计目的
深化和扩充在单片机原理及相关课程方面的基本知识、基本理论和基本技能
熟悉设计过程,了解设计步骤,掌握设计内容,培养设计电路、实现软件编程和
编写设计说明书能力的目的,为今后从事相关方面的实际工作打下良好基础。
(1)熟悉AT89C51内部定时器/计数器原理和应用,把理论加以实践;
(2)了解使用单片机处理复杂逻辑的方法;
(3)掌握多位数码动态显示的方法;
(4)掌握多个按键的读键和处理方法。
3系统方案与总体结构设计
3.1系统方案设计
系统采用通用的80C51芯片,显示器为8个共阴极LED数码管,用1个八总
线接收/发送器74LS245驱动数码管,因为采用了上述两个芯片,所以在对数码
.
.
管进行扫描显示时,只需要单片机的8条I/O线就能完成显示功能了。
选用P0.0--P0.7作为显示数据值的输出,连接在八总线接收/发送器
74LS245输入端。
由于LED数据管点亮时耗电量较大,因此使用了排阻作为电源
驱动输出,以保证数码管的正常亮度。
单片机的P1.0--P1.4口分别接在S1—S44个按键上,以控制“时”,“分”,“秒”的调整。
时间以24小时为一个周期,数字时钟钟的格式为:
XX-XX-XX,由左向右分别为:
“时-分-秒”(由于没有采用小数点,符号“-”为分隔“时”“分”“秒”的分隔符)。
完成显示由秒加1,一直加1至59,再恢复为00;分加1,一直加1至59,再恢复00;时加1,一直加1至23,再恢复00。
*****按键功能*****
启动时,数字时钟从00-00-00开始自动计时;
按键S1控制对“秒”的调整,每按一次时计数值加
1;
按键S2控制对“分”的调整,每按一次分计数值加
1;
按键S3控制对“时”的调整,每按一次秒计数值加
1;
按键S4用做复位键,在计时过程中,如果按下复位键,则返回00-00-00
重新计时。
3.2数字时钟框图设计
数字时钟总体结构框图设计如图3-1所示。
LED数码管
晶振电路
89C5174LS245
按键控制电路
图3-1数字时钟设计框图
用AT89C51单片机的定时器/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1开始计时。
显示00-00-00的时间,开始计时;P1.0
.
.
口控制“秒”的调整,每次按键加1s;P1.1口控制“分”的调整,每按一次按键
加1min;P1.2口控制“时”的调整,每按一次加1h。
计时满23-59-59时,返回
00-00-00重新计时。
P1.3口用作复位键,在计时过程中,如果按下复位键,则
返回00-00-00重新计时。
3.2.1计时模块:
①用AT89C51单片机的定时器/计数器T0产生1s的定时时间,作为秒计数时
间;
②当1s产生时,秒计数加1,当加到60s时向分钟位进一位,当分钟位加到
60时,向时钟位进一;
③开机时,显示00-00-00,并开始连续计时;④计时满23-59-59时,返回00-00-00重新开始计时。
3.2.2数字时钟控制模块:
在以上设计基础上,在单片机的P1.0~P1.3口分别接入4个按键。
①P1.0口控制“秒”的调整,每次按键加1s;
②P1.1口控制“分”的调整,每按一次按键加1min;
③P1.2口控制“时”的调整,每按一次加1h;
④P1.3口用作复位键控制,在计时过程中,如果按下复位键,则返回00-00-00
重新计时。
3.2.3振荡模块:
晶体振荡器电路给数字时钟提供一个频率稳定准确的12MHz的方波信号,不
管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。
3.2.4显示模块:
显示电路采用8位7段共阴极LED数码管显示实时数据,采用74LS245增加
I/O口的驱动能力。
4数字时钟的硬件构成
4.1选用芯片简介
4.1.189C51简介
.
.
AT89C51是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableand
ErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片
机,其引脚图如图4-1所示。
AT89C51提供以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,
32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双
工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑
操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许
RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内
容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
1.管脚说明
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P0
口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,
它可以被定义为数据/地址的低八位。
在FIASH编程时,P0口作为原码输入口,
当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输
出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为低八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对
外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2
口在FLASH编程和校验时接收高八位地址信号和控制信号。
.
.
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
2.口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时
间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
.
.
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器
周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将
不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当
/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于
施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
19
P0.0
39
XTAL1
/AD0
18
P0.1
38
XTAL2
/AD1
P0.2
37
/AD2
P0.3
36
/AD3
P0.4
35
/AD4
P0.5
34
/AD5
P0.6
33
9
/AD6
P0.7
32
RST
/AD7
P2.0
/A
21
8
P2.1
/A
22
29
9
P2.2
23
PSEN
/A10
30
P2.3
24
ALE
/A11
31
P2.4
25
EA
/A12
P2.5
/A
26
13
P2.6
/A
27
14
P2.7
/A
28
15
1
P3.0
/RX
10
P1.0
D
2
P3.1
/TX
11
P1.1
D
3
P3.2
12
P1.3
/INT0
4
P3.3
13
P1.4
/INT1
5
P3.4
14
P1.5
/T0
6
P3.5
15
P1.6
/T1
7
P3.6/W
16
P1.7
R
8
P3.7
17
P1.8
/RD
AT89C51
图4-189C51单片机引脚图
4.1.274LS245简介
74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相
三态双向总线收发器,可双向传输数据,其引脚图如图4-5。
当片选端/CE有效时,
74LS245的输入/输出方向由DIR控制。
74LS245还具有双向三态功能,既可以输
出,也可以输入数据。
其工作方式如表4-1所示。
表4-174LS245的工作方式
控制信号数据传输方向
.
.
/E
DIR
L
L
B→A
L
H
A←B
L
X
高阻
由表4-1可知,当8051单片机的P0口总线负载达到或超过P0最大负载能
力时,必须接入74LS245等总线驱动器。
当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输(接收);DIR=“1”,信号由A向B传输(发送);当/CE为高电平时,A、B均为高阻态。
由于P2口始终输出地址的高8位,接口时
74LS245的三态控制端1G和2G接地,P2口与驱动器输入线对应相连。
P0口与74LS245输入端相连,E端接地,保证数据线畅通。
8051的/RD和/PSEN相与后接DIR,使得RD且PSEN有效时,74LS245输入(P0.1←D1),其它时间处于输出
(P0.1→D1)。
2
A0
B0
18
3
17
A1
B1
4
16
A2
B2
5
15
A4
B3
6
14
A6
B4
7
13
A5
B5
7
12
A6
B6
8
11
A7
B7
19
CE
1
DIR
74LS245
图4.374LS245管脚图
若将DIR接固定TTL逻辑电平(高或低),则74LS245变为单向缓冲器,但
这种方式是极少采用的。
一般都是使用它的双向输出功能。
为此,DIR必须可控,
使其根据需要变为高电平或低电平,并与/E相结合控制数据传输方向。
在单片
机系统中,可采用读信号或者写信号实现控制。
当/WR有效时数据通过74LS245
的B(B0~B7)端输入,由(A1~A8)输出;当/RD有效时数据由A端输入,B
端输出。
由此可见,由于74LS245芯片具有双向缓冲和驱动作用,很适合作单片
机的数据总线的收发器。
.
.
4.2LED数码显示器简介
LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。
它使
用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点,在本
设计中用不到小数点,故不予考虑。
LED数码显示器有两种连接方法。
(1)共阳极接法。
把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴极通过电阻与输入端相连。
当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。
(2)共阴极接法。
把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。
每个发光二极管的阳极通过电阻与输入端相连。
当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。
在本设计中所采用的是共阴极LED数码显示器,其引脚排列如图7所示:
(a)(b)
图4-4(a)典型LED数码显示器(b)典型LED数码显示器共阴极、共阳极接法
5各个模块工作原理及原理图
用AT89C51单片机的定时器/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时,秒计数加1开始计时。
显示00-00-00的时间,开始计时;P1.0
口控制“秒”的调整,每次按键加1s;P1.1口控制“分”的调整,每按一次按键
加1min;P1.2口控制“时”的调整,每按一次加1h。
计时