田源单片机电子闹钟方案Word文档格式.docx
- 文档编号:22435881
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:29
- 大小:264.19KB
田源单片机电子闹钟方案Word文档格式.docx
《田源单片机电子闹钟方案Word文档格式.docx》由会员分享,可在线阅读,更多相关《田源单片机电子闹钟方案Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
3.3.1控制器11
3.3.2计数器12
3.3.3寄存器12
3.3.4分频器12
3.3.5显示电路12
3.3.6输入电路13
3.3.7计时器13
3.3.8振荡器13
3.3.9整体系统14
3.4硬件选择14
第4章电子闹钟的软件设计16
4.1子程序及其功能简介16
4.2程序设计16
4.3调试软件及其环境17
4.3.1Keil单片机模拟仿真调试软件的安装和启动18
4.3.2工程的建立20
4.3.3源文件的输入22
结论24
参考文献25
第1章绪论
1.1单片机简介
单片机的全称是单片微型计算机<
SingleChipMicrocomputer)。
为了使用方便,它把组成计算机的主要功能部件:
中央处理器<
CPU)、数据存储器<
RAM)、程序存储器<
ROM、EPROM、E2PROM或FLASH)、定时/计数器和各种输入/输出接口电路等都集成在一块半导体芯片上,构成了一个完整的计算机系统。
与通用的计算机不同,单片机的指令功能是按照工业控制的要求设计,因此它又被称为微控制器<
Microcontroller)。
MCS51系列[1]单片机是美国Intel公司于1980年推出的一种8位单片机系列。
该系列的基本型产品是8051、8031和8751。
这3种产品之间的区别只是在片内程序存储器方面。
8051的片内程序存储器<
ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;
8031片内没有程序存储器;
8751内部包含有用作程序存储器4KB的EPROM。
由于8051的编程需要制造商的支持,而8751的价格昂贵,因此8031获得了更为广泛的使用。
MCS51系列单片机优异的性能/价格比使得它从面世以来就获得用户的认可。
Intel公司把这种单片机的内核,即8051内核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、ADI等。
这些公司的这类产品也被称为8051兼容芯片,这些8051兼容芯片在原来的基础上增加了许多特性。
本文应用电路中采用了Atmel公司的AT89S51芯片,它与MCS51单片机指令兼容,同时它的内部包含用作程序存储器4KB的基于FLASH技术的只读存储器。
采用这款芯片既克服了采用8031需要添加外部程序存储器导致电路复杂的缺点,又克服了采用8751导致电路制作成本高的缺点。
1.2电子闹钟的重要意义
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。
忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。
但是,一旦重要事情,一时的耽误可能酿成大祸。
例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。
尤其在医院,每次护士都会给病人作皮试,测试病人是否对药物过敏。
注射后,一般等待5分钟,一旦超时,所作的皮试实验就会无效。
手表当然是一个好的选择,但是,随着接受皮试的人数增加,到底是哪个人的皮试到时间却难以判断。
所以,要制作一个定时系统。
随时提醒这些容易忘记时间的人。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
1.3本文的主要工作
首先介绍设计电子闹钟所涉及的主要硬件和特性,然后说明软件设计的思路,程序结构及流程,并在测试软件上进行调试修改,以完成电子闹钟的基本要求,即可随意设定起始时间,有秒显示功能,有12/24时制选择,可设定闹钟,停电时由电池供电等功能。
第2章AT89S51单片机的硬件系统
2.1AT89S51单片机的特性
Atmel公司的AT89S51芯片具有以下特性:
(1>
指令集和芯片引脚与Intel公司的8051兼容;
(2>
4KB片内在系统可编程Flash程序存储器;
(3>
时钟频率为0~33MHz;
(4>
128字节片内随机读写存储器<
RAM);
(5>
32个可编程输入/输出引脚;
(6>
2个16位定时/计数器;
(7>
6个中断源,2级优先级;
(8>
全双工串行通信接口;
(9>
监视定时器;
(10>
2个数据指针。
2.2AT89S51单片机的封装
AT89S51单片机[2]具有多种封装形式,包括PDIP40、PDIP42、PLCC44和TQFP44。
最适合学校实验室使用的是PDIP40封装形式,它的外形如图2.1所示。
PDIP40封装形式的单片机芯片可以很方便地使用面包板来组成应用电路。
2.3存储空间
AT89S51单片机[3]的程序存储空间和数据存储空间是分离的,每种存储空间的寻址范围都是64KB。
上述存储空间在物理上可以被映射到4个区域:
片内程序存储器和片外程序存储器,片内数据存储器和片外数据存储器。
存储空间的映射图如图2.2所示。
当存储空间映射为外部存储器时,包括程序空间和数据空间,AT89S51单片机P0口的8个引脚,从P0.0<
AD0)到P0.7<
AD7)<
引脚从39到32),以时分方式被用作数据总线和地址总线的低8位;
P2口的8个引脚,从P2.0<
A8)到P2.7<
A15)<
引脚从21到28),被用作地址总线的高8位。
由于对外部程序存储器和外部数据存储器的访问都是通过P0口和P2口实现,为了区分它们,外部程序存储器由引脚
<
引脚29)的输出信号控制;
外部数据存储器的写或读操作分别由引脚P3.6<
,引脚16)和引脚P3.7<
,引脚17)输出信号控制。
图2.1AT89S51单片机PDIP40封装外形图
图2.2AT89S51单片机的存储器映射图
2.3.1程序存储空间
程序存储空间可以被映射为内部程序存储器或者外部程序存储器[4]。
AT89S51单片机内部具有的4KB程序存储器被映射到程序存储空间的0000H~0FFFH区间,如图2.2所示。
这部分程序存储空间也可以被映射为外部程序存储器,它具体被映射为哪一种程序存储器取决于引脚
引脚31)所接的电平。
当引脚
为高电平,内部程序存储器被映射到这部分程序存储空间;
为低电平,外部程序存储器被映射到这部分程序存储空间。
高于0FFFH的程序存储空间只能被映射为外部程序存储器。
目前Atmel公司生产的8051兼容芯片具有多种容量的内部程序存储器的型号,例如AT89S52单片机具有8KB内部程序存储器;
T89C51RD2单片机具有64KB内部程序存储器。
鉴于通常可以采用具有足够内部程序存储器容量的单片机芯片,用户在使用中不需要再扩展外部程序存储器,这样在单片机应用电路中引脚
引脚31)可以总是接高电平。
2.3.2数据存储空间
如图2.3所示,数据存储空间[5]也可以被映射为内部数据存储器和外部数据存储器。
进入不同的数据存储器是通过不同的指令来实现的,这点与程序存储器不一样。
AT89S51的内部数据存储器有256字节,它们被分为两部分:
高128字节和低128字节。
低128字节的内部数据存储器是真正的RAM区,可以被用来写入或读出数据。
这一部分存储容量不是很大,但有很大的作用。
它可以进一步被分为3部分,如图2.3所示。
图2.3内部数据存储器
在内部数据存储器低128字节中,地址从00H~1FH的最低32个字节组成4组工作寄存器,每组有8个工作寄存器。
每组中的8个工作寄存器都被命名为从R0到R7。
在一个具体时刻,CPU只能使用其中的一组工作寄存器。
当前正在使用的工作寄存器组由位于高128字节的程序状态字寄存器<
PSW)中第3位<
RS0)和第4位<
RS1)的数据决定。
程序状态字寄存器中的数据可以通过编程来改变,这种功能为保护工作寄存器的内容提供了很大的方便[6]。
如果用户程序中不需要全部使用4组工作寄存器,那么剩下的工作寄存器所对应的内部数据存储器也可以作为通用数据存储器使用。
工作寄存器在内部数据存储器中的地址映射如表2.1所示。
表2.1工作寄存器地址映射表
0组<
RS1=0,RS0=0)
1组<
RS1=0,RS0=1)
2组<
RS1=1,RS0=0)
3组<
RS1=1,RS0=1)
地址
寄存器
00H
R0
08H
10H
18H
01H
R1
09H
11H
19H
02H
R2
0AH
12H
1AH
03H
R3
0BH
13H
1BH
04H
R4
0CH
14H
1CH
05H
R5
0DH
15H
1DH
06H
R6
0EH
16H
1EH
07H
R7
0FH
17H
1FH
表2.2字节地址与位地址的关系
位地址
字节地址
D7
D6
D5
D4
D3
D2
D1
D0
2FH
7F
7E
7D
7C
7B
7A
79
78
2EH
77
76
75
74
73
72
71
70
2DH
6F
6E
6D
6C
6B
6A
69
68
2CH
67
66
65
64
63
62
61
60
2BH
5F
5E
5D
5C
5B
5A
59
58
2AH
57
56
55
54
53
52
51
50
29H
4F
4E
4D
4C
4B
4A
49
48
28H
47
46
45
44
43
42
41
40
27H
3F
3E
3D
3C
3B
3A
39
38
26H
37
36
35
34
33
32
31
30
25H
2F
2E
2D
2C
2B
2A
29
28
24H
27
26
25
24
23
22
21
20
23H
1F
1E
1D
1C
1B
1A
19
18
22H
17
16
15
14
13
12
11
10
21H
0F
0E
0D
0C
0B
0A
09
08
20H
07
06
05
04
03
02
01
00
在工作寄存器区上面,内部数据存储器的地址从20H~2FH的16个字节范围内,既可以通过字节寻址的方式进入,也可以通过位寻址的方式进入,位地址范围从00H到7FH。
字节地址与位地址的对应关系如表2.2所示。
内部数据存储器地址从30H~7FH部分仅可以用作通用数据存储器。
内部数据存储器的高128字节被称为特殊功能寄存器<
SFR)区。
特殊功能寄存器被用作CPU和在片外围器件之间的接口,它们之间的联系方框图如图2.4所示。
图2.4特殊功能寄存器<
SFR)工作框图
表2.3AT89S51单片机特殊功能存储器地址映射表
F8H
FFH
F0H
B
F7H
E8H
EFH
E0H
ACC
E7H
D8H
DFH
D0H
PSW
D7H
C8H
CFH
C0H
C7H
B8H
IP
BFH
B0H
P3
B7H
A8H
IE
AFH
A0H
P2
AUXR1
WDERST
A7H
98H
SCON
SBUF
9FH
90H
P1
97H
88H
TCON
TMOD
TL0
TL1
TH0
TH1
AUXR
8FH
80H
P0
SP
DP0L
DP0H
DP1L
DP1H
PCON
87H
CPU通过向相应的特殊功能存储器写入数据实现控制对应的在片外围器件的工作,从相应的特殊功能存储器读出数据实现读取对应的在片外围器件[7]的工作结果。
在AT89S51单片机中,包括前面提到的程序状态字寄存器<
PSW)的特殊功能存储器共有26个,它们离散地分布在80H~FFH的内部数据存储器地址空间范围内,如表2.3所示。
在表2.3中,对于没有定义的存储单元用户不能使用。
如果向这些存储单元写入数据将产生不确定的效果,从它们读取数据将得到一个随机数。
对于字节地址低位为8H或者FH的特殊功能存储器,既可以进行字节操作,也可以进行位操作。
例如前面提到的用来确定当前工作寄存器组的程序状态字寄存器<
PSW),它的地址为D0H,因此对它可以进行字节操作,也可以进行位操作。
采用位操作可以直接控制程序状态字寄存器中的第3位<
RS0)或第4位<
RS1)数据而不影响其他位的数据。
低位地址不为8H或FH的特殊功能存储器只可以进行字节操作,当需要修改这些特殊功能存储器中的某些位时,对其他的位应注意保护。
片外数据存储空间[8]可以被映射为数据存储器、扩展的输入/输出接口、模拟/数字转换器和数字/模拟转换器等。
这些外围器件统一编址。
所有外围器件的地址都占用数据存储空间的地址资源,因此CPU与片外外围器件进行数据交换时可以使用与访问外部数据存储器相同的指令。
CPU通过向相应的外部数据存储器地址单元写入数据实现控制对应的片外外围器件的工作,从相应的外部数据存储器地址单元读出数据实现读取对应的片外外围器件的工作结果。
2.4单片机最小应用系统电路
单片机的最小应用系统电路指的是它可以正常工作的最简单电路组成。
AT89S51单片机的最小应用系统电路如图2.5所示,该系统中包含4个电路部分。
2.4.1供电电路
引脚VCC<
引脚40)接+5V电源,引脚GND<
引脚20)接地线。
为提高电路的抗干扰能力,一个0.1μF<
器件标注为104)的瓷片电容和一个10μF的电解电容通常被接在引脚VCC和接地线之间。
2.4.2程序存储器选择电路
如前所述,Atmel公司生产的8051兼容芯片具有多种容量的内部程序存储器的型号,因此在使用中不需要再扩展外部程序存储器,这样在单片机应用电路中引脚
图2.5AT89S51单片机最小应用系统电路
2.4.3时钟电路
AT89S51芯片的时钟频率可以在0~33MHz范围。
单片机内部有一个可以构成振荡器的放大电路。
在这个放大电路的对外引脚XTAL2<
引脚18)和XTAL1<
引脚19)接上晶体和电容就可以构成单片机的时钟电路。
图2.5所示的时钟电路由晶体CRY和电容C2与C3组成。
单片机的时钟频率取决于晶体CRY的频率,如果采用面包板来组装单片机应用电路,晶体CRY的推荐值为12MHz以下,电容C2与C3的取值范围为30pF~50pF。
时钟电路采用晶体的目的是提高时钟频率的稳定性。
2.4.4复位电路
对于AT89S51芯片,如果引脚RST<
引脚9)保持24个时钟周期的高电平,单片机就可以完成复位。
通常为了保证应用系统可靠地复位,复位电路应使引脚RST保持10ms以上的高电平。
只要引脚RST保持高电平,单片机就循环复位。
当引脚RST从高电平变为低电平时,单片机退出复位状态,从程序空间的0000H地址开始执行用户程序。
图2.5所示复位电路由C1和R1组成。
当系统加电时,由于C1两端的电压不能突变,因此引脚RST为高电平,单片机进入复位状态。
随着C1充电,它两端的电压上升,使得引脚RST上电压下降,最终使单片机退出复位状态。
合理地选择C1和R1的取值,系统就能可靠地复位。
C1的推荐值是10μF,R1的推荐值是10kΩ。
完成复位后,单片机不仅从程序空间的0000H地址开始执行用户程序,而且还影响一些特殊功能存储器的初始状态。
相应的特殊功能存储器的复位值如表2.4所示。
DPTR称为数据指针,它由两个特殊功能寄存器DP0H和DP0L组成。
表2.4特殊功能存储器的复位值
特殊功能寄存器
复位值
PC
0000H
DPTR
P0~P3
XXX00000B
XXXXXXXXB
0XX00000B
0XXX0000B
注:
PC称为程序指针,它被用来存储下一条要执行的指令地址,PC的位置并不在特殊功能存储器区域。
第3章电子闹钟的硬件设计
3.1系统要求
本课题设计的电子闹钟系统要求为:
能随意设定走时起始时间;
能设定闹铃时间;
能指示秒节奏,即秒指示;
12小时/24小时两种制式可选;
采用交直流供电电源;
具有走时误差修正能力;
具有温度显示的功能;
停电时单片机由电池供电,计时不会停止。
3.2系统组成
该数字闹钟包括以下几个组成部分:
显示屏:
由6个七段数码管组成,用于显示当前时间(时分秒>
或设置的闹钟时间;
KEY键:
用于输入新的时间或新的闹钟时间时,对每位输入数字的确认;
TIME(时间>
键:
用于确定新的时间设置;
(4>
闹钟键:
用于确定新的闹钟时间设置,或显示已设置的闹钟时间;
扬声器:
在当前时钟时间与闹钟时间相同时,发出蜂鸣声。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 闹钟 方案