(9) RST 复位信号
:
当输入的信号连续
2
个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作,当复位后程序计数器 PC=000OH
,即复位后将从程序存储器的000OH 单元读取第一条指令码。
(10) XTAL1
和
XTAL2 :
外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容:
当使用外部时钟时,用于接外部时钟脉冲信号。
(11) VCC:电源端接
+5V
电压输入。
(12)GND:接地端。
3.2.2 晶振电路设计
下图所示为时钟电路原理图,在 AT89C51
芯片内部有一个高增益反相放大器,其输入端为芯片引脚 XTAL1
,输出端为引脚
XTAL2
。而在芯片内部,
XTAL1和 XTAL2
之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
单片机 XTAL1
和
XTAL2
分别接
33pF
的电容,中间再并一个
11.0592MHZ的晶振,形成单片机的晶振电路。
图 3-3 晶振电路
3.2.3 复位电路设计
AT89C51 的上电复位电路,只要在
RST
复位输入引脚上接一电容至
Vcc
端,下接一个电阻到地即可。对于 CMOS
型单片机,由于在
RST
端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至 1UF
。上电复位的工作过程是在加电时,复位电路通过电容加给 RST
端一个短暂的高电平信号,此高电平信号随着 Vcc
对电容的充电过程而逐渐回落,即
RST
端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST
端的高电平信号必须维持足够长的时间。上电时,Vcc
的上升时间约为
10ms
,而振荡器的起振时间取决于振荡频率,如晶振频率为 10MHz
,起振时间为
1ms:
晶振频率为
1MHz
,起振时间则为 10ms
。在图
3-2
的复位电路中,当
Vcc
掉电时,必然会使
RST
端电压迅速下降到 OV
以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器
PC
将得不到一个合适的初值,因此,CPU
可能会从一个未被定义的位置开始执行程序。
图 3-4 复位电路
3.2.4 LED 数码管显示
数码管是一种把多个 LED
显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个 LED
显示段的阳极接在一起,又称为公共端。共阴型就是把多个 LED
显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为 8
段,即
8
个
LED
显示段,这是为工程应用方便如设计的,分别为 A
、
B
、
C
、
D
、
E
、
F
、
G
、
DP
,其中
DP
是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的 A
段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的 8
段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用 8
位段引管线
;
每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。
系统采用动态显示方式,用 PO 口来控制
LED
数码管的段控线,而用
P2
口来控制其位控线。动态显示通常都是采用动态扫描的方法进行显示,即循环点亮每一个数码管,这样虽然在任何时刻都只有一位数码管被点亮,但由于人眼存在视觉残留效应,只要每位数码管间隔时间足够短,就可以给人以同时显示的感觉。
图 3-5 LED 数码管引脚图
3.3 系统实现
3.3.1 系统仿真与调试
(
1
)
Keil
软件编译
Keil C51 是美国
Keil Software
公司出品的
51
系列兼容单片机
C
语言软件开发系统,与汇编相比,C
语言在功能上、结构性、可读性、可维护性上有明显的优势,Keil
提供了包括
C
编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)
将这些部分组合在一起。如果使用 C
语言编程,那么
Keil
几乎就是不二之选,即使不使用C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具
也会令你事半功倍。本次设计采用汇编语言编程,生成
.hex
文件以供装载到Protues 中的单片机进行仿真。
(2)
Protues
仿真平台
Protues 软件是英国
Labcenterelectronics
公司出版的
EDA
工具软件。它不仅具有其它 EDA
工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus
是世界上著名的
EDA
工具
(
仿真软件)
,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到
PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB
设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持
8051、
HC11
、
PIC10/12/16/18/24/30/DsPIC33
、
AVR
、
ARM
、
8086
和
MSP430等。在编译方面,它也支持 IAR
、
Keil
和
MATLAB
等多种编译。
目标代码的加载方法为,在 Protues 编辑环境双击
AT89C51
,弹出下图所示的对话框,在 PROGRAM FILM
一栏中单击打开按钮,选中
Keil
中生成的
1zy.hex文件,CLOCKFREQUENCY
栏中设置系统工作频率为
11.0592MHZ
,单击
OK完成目标代码的加载。
图 3-6 程序代码加载
3.3.2 演示结果
(1
)时间显示:当时间达到整点前
10
秒,蜂鸣器鸣响,每隔一秒鸣响一次,鸣响 5
次后暂停,起到报时作用。
图 3-7 时间显示演示结果图
(2)时间校对:在那个时间级出现右下角小蓝点闪烁,就是在对那个时间级进行校对,通过“+
”“-”按键对该时间级的时间调整,调整完毕按下设置建即可回复显示状态。
图 3-8 时间校对演示结果图 文章来源:https://www.toymoban.com/news/detail-428906.html
(3)60
秒倒计时:按下秒表键,系统开始
60
秒倒计时,按下秒表启停键,可以开启和暂停秒表,暂停后开启,秒表任然从暂停的时间开始倒计时;按下秒表清零键,秒表时间归位到 60
。
图 3-9 60 秒倒计时演示结果图 文章来源地址https://www.toymoban.com/news/detail-428906.html
4.总结
经历过这么多天不间断的课程设计,我有很多感触,从最基本上说我看到了,也意识到了自己的不足,对于不断克服的各种阻碍也让我们体会到了课程设计的意义所在。本次课程设计学习的是利用 AT89C51
单片机设计的有调时、整点报时、60s
倒计时功能的电子钟,而且详细说明了软件和硬件设计方法及仿真、硬件实现。在设计过程中可以看出,汇编语言有着其独特的魅力,它简单易学,语法错误容易纠正:
用单片机实现电子钟的设计是比较方便和易于实现的。
对于只接触课本只动笔杆的我们,面临实际的设计尺寸,让我们很是尴尬,都说理论联系实际,真正到联系的时候才发现挺困难的,不过正是理论知识的各种补充才让我们能最终完成任务,然后深深地体会到理论对现实的指导作用。我们现在最缺乏的就是实际工作经验,而理论联系实践并不像我们想象的那么简单,他需要坚实的理论基础和实际工作经验。坚实的理论基础决定了我必须坚持学习新的知识新的理论,完善了自己的知识结构,才能在以后的实际中轻松面对,才能设计出更好的更有益于人们生活与工作的机械,才能跟上时代的步伐,不被淘汰。
在这个一边边忙着复习忙着考试又要准备课程设计的日子里,真真正正的体会到了时间的宝贵,有点像高中忙忙碌碌的生活,不过能按时完成课程设计对我们来说也是一个莫大的安慰。.
严谨和细心是做电子设计的必要态度,要想做好一件事,就必须一丝不苟、态度认真。俗话说:
“失之毫厘, 谬之千里。”在设计上尤其应该注意。在以后的工作中,你的很小的一个疏忽将会造成一一个公司很大的损失,甚至给用户带去生命危险,而自已也会为自己的不负责任行为付出代价。再者就是设计中要严谨和细心,对于电子设计是不能出差错的,任何的微小误差都可能产生不可预计的后果,当然对于我们来说就是设计中要走一些弯路,而且在这个严重缺少时间又惦记回家问题的我们来说也是一个很严重的后果。不过,困难虽是难免的,但我们有信心就能并且已经战胜了困难,完成了这个无比揪心的课程设计。
通过本次课程设计加深了我们对单片机的理解,能够更加熟练地应用单片机实现预期的功能,对以后的学习起到很大的促进作用。因为时间等各种关系设计中难免有些不足还请老师助教给予批评和帮助。
附录
附录 1