单片机电子时钟的设计.docx
- 文档编号:10909896
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:30
- 大小:337.78KB
单片机电子时钟的设计.docx
《单片机电子时钟的设计.docx》由会员分享,可在线阅读,更多相关《单片机电子时钟的设计.docx(30页珍藏版)》请在冰豆网上搜索。
单片机电子时钟的设计
目录
第1章单片机的概述2
1.1单片机的组成及特点2
1.1.1AT89C51单片机的组成2
1.1.2单片机的特点3
1.2AT89C51单片机的引脚说明3
1.2.1.主电源引脚3
1.2.2.时钟电路引脚4
1.2.3.控制信号引脚4
1.2.4.输入输出引脚(P0、P1、P2、P3)4
第2章电子时钟的概述6
2.1电子时钟的组成6
2.2电子时钟的工作原理6
2.3电子时钟的主要功能6
2.3.1主要功能按键6
2.3.2LED数码管7
第3章电子时钟的硬件设计9
3.1Proteus软件9
3.1.1简介9
3.1.2功能模块9
3.2电路硬件设计10
3.2.1设计总框图10
3.2.2最终形成的电路图11
第4章电子时钟的软件设计12
4.1KeiluVsion软件12
4.1.1软件介绍12
4.1.2软件的操作步骤12
4.2程序设计流程图13
4.2.1设计总流程图13
4.2.2显示子程序14
4.2.3定时器中断服务程序15
4.3时钟电路16
4.4复位电路16
4.5按键电路17
第5章系统仿真18
5.1初始状态图:
18
5.2调秒测试:
19
5.3调分测试:
20
5.4调时测试:
21
第6章心得体会22
附录:
23
1.元器件清单23
2.程序:
23
3.参考文献27
第1章单片机的概述
1.1单片机的组成及特点
1.1.1AT89C51单片机的组成
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
它由CPU、存储器(包括RAM和ROM)、I/O接口、定时/计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。
它具有优异的性能价格比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗等诸多优点。
图1.1单片机结构框图
1.1.2单片机的特点
(1)控制功能强;
(2)集成度高、体积小、有很高的可靠性;
(3)有优异的性能价格比;
(4)低功耗、低电压,便于生产便携式产品;
(5)增加了I2C串行总线方式、SPI串行接口等,进一步缩小了体积,简化了结构;
(6)单片机的系统发展、系统配置较典型、规范,容易构成各种规模的应用系统。
1.2AT89C51单片机的引脚说明
图1.2AT89C51单片机引脚图
1.2.1.主电源引脚
VCC:
电源电压+4—+5.5V。
GND:
接地。
1.2.2.时钟电路引脚
XTAL1:
作为振荡器反相器的输入和内部时钟发生器的输入。
XTAL2:
作为振荡器反相放大器的输出。
1.2.3.控制信号引脚
EA/VPP:
片外程序存储器访问允许信号。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地),如果EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
ALE/PROG:
ALE是地址锁存允许信号,当单片机上电正常工作后,此脚不断输出正脉冲信号。
RST:
复位输入。
RST一旦变成高电平所有的I/O引脚就复位到“1”。
当振荡器正在运行时,持续给出RST引脚两个机器周期的高电平便可完成复位。
每一个机器周期需12个振荡器或时钟周期。
1.2.4.输入输出引脚(P0、P1、P2、P3)
P0口:
P0口为一个8位,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的一些特殊功能口,如下表所示:
P3.0
⏹RXD(串行输入口)
P3.1
⏹TXD(串行输入出)
P3.2
⏹INT0(外部中断0)
P3.3
⏹INT1(外部中断1)
P3.4
⏹T0(记时器0外部输入)
P3.5
⏹T1(记时器1外部输入)
P3.6
⏹WR(外部数据存储器写选通)
P3.7
⏹RD(外部数据存储器读选通)
第2章电子时钟的概述
2.1电子时钟的组成
电子时钟是一种用数字电路技术实现时、分、秒计时的钟表。
与机械钟相比具有更高的准确性和直观性,具有更长的使用寿命,已得到广泛的使用。
电子时钟的设计方法有许多种,例如可用中小规模集成电路组成电子钟,也可以利用专用的电子钟芯片配以显示电路及其所需要的外围电路组成电子钟,还可以利用单片机来实现电子钟等等。
这些方法都各有其特点,其中利用单片机实现的电子钟具有编程灵活,以便于功能的扩展。
2.2电子时钟的工作原理
该电子时钟由89C51,BUTTON,八位七段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。
而电路中共设计了四个控制键,如果没有按键按下,则时钟正常走时。
当按下按钮1时,系统会进入复位状态;当按下按钮2时,进入调时/调分选择状态,时钟停止走动;此时按下按钮3和按钮4可以进行加一和减一操作;继续按按钮2键可以分别进行分和小时的调整;最后按按钮2键启动计时。
2.3电子时钟的主要功能
2.3.1主要功能按键
电子时钟中主要有4个按键。
这4个按键分别是调节总控,调秒,调分,调时的开关。
调节总控:
控制总的中断的允许和屏蔽,打开三个功能按键的中断响应。
调秒:
在总开关打开时,调节电子时钟的秒数。
调分:
在总开关打开时,调节电子时钟的分数。
调时:
在总开关打开时,调节电子时钟的时数。
2.3.2LED数码管
图2.17SEG-MPX8-CA-BLUE数码管
1.LED显示原理
LED数码管(LEDSegmentDisplays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。
每一笔划都是对应一个字母表示DP是小数点。
下图为常用LED数码管内部引脚图。
图2.2LED数码管正面个字段引脚
LED数码管根据LED的接法不同分为共阴和共阳两类
共阳极LED数码管的内部结构原理图:
图2.3LED数码管的内部结构原理图
共阴极LED数码管的内部结构原理图:
图2.4共阴极LED数码管的内部结构原理图
2.LED数码管显示方式
LED数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数位,因此根据LED数码管的驱动方式的不同,可以分为静态式和动态式两类。
静态显示驱动
静态显示方式和动态显示方式。
静态显示的特点是每个数码管必须接一个8位锁存器用来锁存待显示的字型码。
送入一次字型码显示自行一直保持,直到送入新字型码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
各数码管在显示过程中持续得到显示信号,与各数码管接口的I/O口是专用的。
动态显示驱动
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
第3章电子时钟的硬件设计
3.1Proteus软件
3.1.1简介
Proteus软件是来自英国Labcenterelectronics公司的EDA工具软件,Proteus软件有近20年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人
工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,Proteus能够很容易的为用户建立了完备的电子设计开发环境。
Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。
此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“TheRoutetoPCBCAD”。
Proteus产品系列也包含了我们革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。
用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。
3.1.2功能模块
其功能模块:
—个易用而又功能强大的ISIS原理布图工具;PROSPICE混合模型SPICE仿真;ARESPCB设计。
PROSPICE仿真器的一个扩展PROTEUSVSM:
便于包括所有相关的器件的基于微处理器设计的协同仿真。
此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型.
》支持许多通用的微控制器,如PIC,***R,HC11以及8051.
》交互的装置模型包括:
LED和LCD显示,RS232终端,通用键盘,
》强大的调试工具,包括寄存器和存储器,断点和单步模式
》IARC-SPY和KeiluVision2等开发工具的源层调试
》应用特殊模型的DLL界面-提供有关元件库的全部文件
3.2电路硬件设计
3.2.1设计总框图
图3.1电路设计总框图
3.2.2最终形成的电路图
图3.2电子时钟硬件图
第4章电子时钟的软件设计
4.1KeiluVsion软件
4.1.1软件介绍
KeiluVsion是众多单片机应用软件开发中优秀的软件之一,它支持众多软件不同公司的MCS-51架构的芯片。
它集编辑、编译、仿真等于一体,同时还支持PLM、汇编C语言的程序设计,界面友好,易学易用,在调试程序、软件仿真方面也有很大的功能。
4.1.2软件的操作步骤
1、新建项目
1)选Project/Newproject...
2)输入项目名(不输入扩展文件名,默认为uv2),单击(确定)
3)选择器件(CPU)类型及厂家。
(我们一般选Atmel公司的AT89C51)
4)然后一个对话框问是否导入头文件,我们选(否)
2、新建文件
1)选File/New...
2)在文本框中编程输入你的源文件,可以是汇编语言的,也可以是C语言的。
输入完,保存文件。
(保存时注意,要输入文件的名字和扩展名,如果是C语言编写的文件,扩展名为.c,汇编语言编写的扩展名为.asm)
3、添加文件到项目中
鼠标单击左窗口中的Target1文件夹,出现SourceGroup1文件夹,在这个文件夹上单击鼠标右键,点击Addfilesto.....找到刚才建立的*.c或者*.asm源文件,单击Add。
4、编译
1)选择Project/OptionsforTarget'Target1'两次,出现菜单。
在Output选项卡下面单击,将[creatHEXfile]复选项打勾。
(如果用仿真器仿真,还要在Debug选项卡选中右边的"Use"。
)
2)选择Project/BuiltTarget(或者左上角的第二个快捷图标),幕下方的"outputwindow"窗口中显示0error(s),0warning(s)表示编译正确。
5、软件调试
选择Debug/Start/stopDebugSession进行程序调试。
6、将程序下载到单片机中
执行下载软件,选择.HEX文件下载
4.2程序设计流程图
4.2.1设计总流程图
4.2.2显示子程序
开始
查表去断码
段控制P0
片选P1
延迟
Y
结束
4.2.3定时器中断服务程序
开始
保护现场
Y
Y
、、
Y
Y
Y
?
时钟清零
现场恢复
结束
4.3时钟电路
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准,有条不紊的一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种为外部时钟方式。
本文用的是内部时钟方式。
图4.1时钟电路
4.4复位电路
复位操作是单片机的初始化操作,只需给单片机RST引脚加上大于两个机器周期的高电平就可使单片机复位。
复位有两种方式:
1上电自动复位;2按钮复位。
按钮复位又可以分为:
1按键电平复位;2按键脉冲复位。
本设计中采用的是按键电平复位,当按键按下时给RST脚一个高电平使得系统复位。
电路如图:
图4.2复位电路
4.5按键电路
单片机组成的小系统中,有的需要人机交互功能,按键是最常见的输入方式。
最常见的按键电路大致有,独立式和动态扫描的矩阵式连接两种。
按键的开关状态通过一定的电路转换为高、低电平状态。
本文采用的是独立式按键,直接用I/O口线构成单个按键电路,每个按键占用一条I/O口线,每个按键的工作状态不会产生互相影响。
图4.3按键电路
第5章系统仿真
5.1初始状态图:
5.2调秒测试:
5.3调分测试:
5.4调时测试:
第6章心得体会
此次课程设计,总的来说还算不错。
过程中不是一帆风顺,但是最后在老师及自己的努力下算是圆满完成。
本学期开设《单片机原理及应用》这一门课,课时少,时间的紧促,只学到单片机汇编语言的基本语句和一些简短的程序,还没有具备熟练应用所学知识编写具体实用的能力,硬件的设计和仿真能力也很弱,所幸学校组织了这次单片机课程设计,给我们的课程学习提供了一个提高及应用的机会,当然,也给我们带来了一定的压力。
我们所选的课程设计题目是数字时钟。
刚拿到这个课题时,脑子一片空白,更别提思路。
认真研究了其他前辈的程序之后,并且在老师的指导下才有了基本的思路,知道最重要的是1秒定时部分。
一开始,老师给我们介绍了整个课程设计的具体流程安排,以及详细介绍了此次实验所用的两个软件—KeiluVsion和Proteus两个软件。
我们花了两天半的时间把程序及硬件设计弄好,最后在大家共同努力下完成了调试部分。
剩下的时间,我们就是查资料写报告了。
因为第一次做课程设计,所以报告的整个框架花了我很多时间。
星期三晚上准备资料,星期四整理修改。
虽然很累,但是很充实。
通过这次课程设计,我们将从书本上学到的知识应用于实践,学会了一些电子电路仿真设计能力,虽然过程中遇到了一些困难,但是在解决这些问题的过程无疑也是对自己自身专业素质的一种提高。
当最终调试成功的时候也是对自己的一种肯定。
此次的设计作业不仅增强了自己在专业设计方面的信心,鼓舞了自己,更是一次兴趣的培养,为自己以后的学习方向的明确了重点。
另外在这次实验中我们遇到了不少的问题针对不同的问题我们采取不同的解决方法,最终一一解决设计中遇到的问题。
在我们遇到不懂的问题时,利用网上的资源,搜索查找得到需要的信息。
这次的制作也让我们感受到,我们在电子方面学到的只是很小的一部分知识,我们需要更多的时间来学习知识,学习技术。
附录:
1.元器件清单
元件名称
元件个数
功能
注释
AT89C51
1
单片机芯片
89C51或89C52都能完成任务
八位七段数码管
1
时间显示
7SEG-MPX8-CA-BLUE
电阻
12
保护电路
MINRES330R
电容
3
振荡电路和复位电路
振荡器
1
振荡电路
石英晶体振荡器(12MZ)
按钮
4
控制
复位1个,调节时间3个
2.程序:
org0000h
ljmpmain
org0003h
ljmpmiao
org000bh
ljmpshi
org0013h
ljmpfen
org001bh
ljmpli
main:
movsp,#5fh
movtmod,#16h
movth1,#3ch
movtl1,#0b0h
movth0,#0ffh
movtl0,#0ffh
setbea
setbet1
setbtr1
clrex1
clrex0
setbtr0
clret0
setbit0
setbit1
movr4,#00h
movr5,#00h
movr6,#00h
movr7,#20
loop:
mova,r4
movb,#10
divab
movdptr,#0300h
movca,@a+dptr
movp0,a
movp1,#40h
lcalldelay
movp0,#0ffh
mova,b
movca,@a+dptr
movp0,a
movp1,#80h
lcalldelay
movp0,#0ffh
movp2,#0ffh
jnbp2.0,tiaojie
movp1,#20h
movp0,#0f6h
lcalldelay
movp0,#0ffh
mova,r5
movb,#10
divab
movca,@a+dptr
movp0,a
movp1,#08h
lcalldelay
movp0,#0ffh
mova,b
movca,@a+dptr
movp0,a
movp1,#10h
lcalldelay
movp0,#0ffh
movp2,#0ffh
jnbp2.0,tiaojie
movp1,#04h
movp0,#0f6h
lcalldelay
movp0,#0ffh
mova,r6
movb,#10
divab
movca,@a+dptr
movp0,a
movp1,#01h
lcalldelay
movp0,#0ffh
mova,b
movca,@a+dptr
movp0,a
movp1,#02h
lcalldelay
movp0,#0ffh
movp2,#0ffh
jnbp2.0,tiaojie
lcalldelay
movp0,#0ffh
ljmploop
tiaojie:
cplet1
cplet0
cplex1
cplex0
ljmploop
org0100h
li:
pushacc
movth1,#3ch
movtl1,#0b0h
djnzr7,fanhui
movr7,#20
incr4
mova,r4
cjnea,#60,fanhui
movr4,#00h
incr5
mova,r5
cjnea,#60,fanhui
movr5,#00h
incr6
mova,r6
cjnea,#24,fanhui
movr6,#00h
fanhui:
popacc
reti
delay:
movr1,#10
l2:
movr2,#100
djnzr2,$
djnzr1,l2
ret
org0200h
miao:
clrea
incr4
setbea
reti
fen:
clrea
incr5
setbea
reti
shi:
clrea
incr6
setbea
reti
org0300h
db0c0h,0f9h,0a4h,0b0h,99h
db92h,82h,0f8h,80h,90h
end
3.参考文献
[1].丁元杰.单片微机原理及应用.(第3版).机械工业出版社.2006
[2].侯玉宝.基于Proteus的51系列单片机设计与仿真.电子工业出版社.2008
[3].蒋辉科.单片机原理与应用设计.北京航空航天大学出版社.2007
[4].岂兴明.51单片机编程基础与开发实例详解.人民邮电出版社.2008
[5].张迎新.单片机基础.(第2版).电子工业出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 电子 时钟 设计