基于51单片机的精确时钟设计.docx
- 文档编号:25899036
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:27
- 大小:314.76KB
基于51单片机的精确时钟设计.docx
《基于51单片机的精确时钟设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的精确时钟设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于51单片机的精确时钟设计
第一章绪论············································3
1.1概述··············································3
1.2设计目的··········································3
1.3设计任务和内容····································3
第二章总体设计及核心器件简介····················4
2.1总体设计···········································4
2.2MCS-51之80C51··································4
第三章单元电路模块设计····························7
3.1按键电路··········································7
3.2时钟电路···········································8
3.3LED数码管显示电路·································9
3.4复位电路······································11
3.5总体功能介绍········································13
第四章软件编程设计·································14
第五章设计体会及总结······························24
参考文献··············································25
第一章绪论
1.1概述
单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。
单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。
20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。
由于单片机功能功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。
本设计运用所学的单片机知识,设计了精确时钟,具有低功耗,保密性好,走时精确等优良特点,具有广阔的市场前景
1.2设计目的
加强对单片机和C51语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
(1)用单片机模拟实现具体应用使个人设计系统能够真正使用。
(2)把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼。
(3)提高利用已学的知识分析和解决问题的能力。
(4)提高动手实践能力。
1.3设计任务及内容
1.3.1设计任务
分组按照选定题目的设计任务,设计各种单片机应用系统,设计工作量至少要包含:
1.用MCS-51单片机,12MHz时钟,常规的上电和手动复位电路;
2.3个以上的按键;
3.LED或/和数码管或/和LCD显示及其接口;
4.至少2路输入信号,可以是模拟量或数字量。
1.3.2设计内容
(1)填写设计任务书
(2)进行总体设计,画出原理图
(3)用proteus软件画出PCB板
(4)用Keil软件编写程序
(5)在proteus里模拟并调试程序达到期望功能
第二章总体设计及核心器件简介
2.1总体设计
整个设计以MCS-51单片机为核心,由LED数码管显示,控制开关,复位电路等组成。
模块电路如图
2.280C51简介
2.2.180C51单片机简介
80C51是MCS-51系列单片机中的一个子系列,是一族高性能兼容型单片机。
其内部资源分配和性能如下;8位CPU;寻址能力2X64K;4KB的内部ROM和128B内部RAM;四个8位I/O接口电路;一个串行全双工异步接口;五个中断源和两个中断优先权;采用CMOS工艺电流小,低功耗。
2.2.280C51各管脚主要功能简介
下图为80C51PCB图:
图2.1
(1)Vss(20脚):
接地
(2)VCC(40脚):
主电源+5V
(3)XTAL1(19脚):
接外部晶体的一端。
在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚):
接外部晶体的另一端。
在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。
若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。
(4)RST(9脚):
单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
(5)PSEN(29脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
(6)ALE/PROG(30脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
(7)EA/VPP(31脚):
当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。
当地址超出4KB时,将自动执行片外程序存储器的程序。
当EA输入低电平时,CPU仅访问片外程序存储器。
在对87C51EPROM编程时,此引脚用于施加编程电压VPP。
(8)输入/输出引脚:
1)P0.0—P0.7(39脚—32脚)
2)P1.0—P1.7(01脚—08脚)
3)P2.0—P2.7(26脚—21脚)
4)P3.0—P3.7(10脚—17脚)
第三章单元电路模块设计
3.1按键电路的选择与设计
连接形式如下:
图3.1按键电路
本设计中有四个按键,分别实现启动、调时和复位功能。
这四个键可以采用中断或是查询的方法来识别。
对于开始键,主要功能在于开始走时和实时显示,对复位键采用查询的方式,而对于开始键采用外部中断,调时键采用外部中断和定时中断。
按键电路与调时电路中由于均采用了外部中断,所以需要用到P3口的第二功能。
P3口引脚的第二功能如下表
P3口引脚第二功能表
P3口引脚
特殊功能
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(片内数据存储器读选通信号输出端)
3.2时钟电路的选择与设计
单片机的时钟信号用来提供单片机内各种微操作的时间基准,80c51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,80c51单片机的时钟信号通常用两种电路形式得到:
内部振荡方式与外部振荡方式。
外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。
对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。
本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。
本设计系统的时钟电路如图3.2所示。
只要按照所示电路进行设计连接就能使系统可靠起振并能稳定运行。
图中,电容器C1 、C2起稳定振荡频率、快速起振的作用,电容值一般为5~33pF。
但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,本设计中采用大小为22pF的电容和12MHz的晶振。
图3.2振荡电路
3.3LED数码管显示电路
选用的共阴极LED显示数码管如下:
数码显示管分为共阳极数码管和共阴极数码管两种。
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,如图3.3(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,如图(c),通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
图3.3(a)数码管引脚图(b)共阳极内部结构图(c)共阴极内部结构图
本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、h引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示0~9的编码见表3.1。
表3.1共阴极数码显示管字型代码
字型
共阴极代码
字型
共阴极代码
0
3FH
5
6DH
1
06H
6
7DH
2
5BH
7
07H
3
4FH
8
7FH
4
66H
9
6FH
3.4复位电路的选择与设计
关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
当80c51单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就完成了复位操作。
如果RST持续为高电平,单片机就处于循环复位状态,而无法执行程序。
因此要求单片机复位后能脱离复位状态。
而本系统选用的是12MHz的晶振,因此一个机器周期为1μs,那么复位脉冲宽度最小应为2μs。
在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。
根据应用的要求,复位操作通常有两种基本形式:
上电复位、手动复位。
上电复位要求接通电源后,自动实现复位操作。
80C51单片机的上电复位POR(PowerOnReset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。
在单片机每次初始加电时,首先投入工作的功能部件是复位电路。
复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。
上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。
典型复位电路如图3.4(a)所示,其中的阻容值是原始手册中提供的。
在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。
在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号[8]。
图3.4上电复位延时电路
由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。
标准80C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图3.4(a)所示。
其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。
因此,在图3.4(a)基础上,上电复位延时电路还可以精简为图3.4(b)所示的简化电路(其中电容C的容量也相应减小了)。
在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。
否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。
因此,在图3.4(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图3.4(c)所示的改进电路。
也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。
于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。
二极管D只有在单片机断电的瞬间(即VCC趋近于0V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。
手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。
单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。
本设计采用上电且开关复位电路,如图3.5所示上电后,由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。
图3.5单片机复位电路
3.5总体功能介绍及电路原理图。
在本设计中,首先打开电源开关后显示2013-06-19-12-00-00-00,按开始键时钟开始计时,实时显示时间,按调时键调时,精确到0.01秒,量程为一万年。
系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。
系统总电路图如上图所示。
80c51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。
80c51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。
复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。
按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键设为低电平有效。
而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.3和P3.2,这两个I/O口的第二功能分别为单片机的外部中断1端口和外部中断0端口。
同样设置为位低电平有效。
显示电路由16个数码管组成,采用动态显示方式,八位段控制接P0口,P0.0~P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,80c51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。
八位位控制则由低位到高位分别接到P1.0~P1.7口,NPN三极管2N1711做为位控制端的开关,当P1.0~P1.7端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。
通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子时钟的全部功能。
第四章软件编程设计
本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。
汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。
使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。
其中主程序是整个程序的主体。
可以对各个中断程序进行调用。
协调各个子程序之间的联系。
设计程序如下:
ORG0000H
LJMPMAIN
ORG0003H
LJMPKAISHI
ORG000BH
LJMPUPDATE
ORG0013H
LJMPTIAOSHI1
ORG001BH
LJMPTIAOSHI2
MAIN:
MOVSP,#30H;初始化设置一固定指针
MOVDPTR,#TAB;表格首地址送给DPTR
MOVTMOD,#51H;T0为工作方式1,T1为计数方式1
MOVTH0,#0E9H;设置T0计数初值
MOVTL0,#45H
MOVTH1,#0FFH;设置T1计数初值
MOVTL1,#0FFH
MOV70H,#00H;初始化
MOV71H,#00H
MOV72H,#00H
MOV73H,#00H
MOV74H,#00H
MOV75H,#00H
MOV76H,#02H
MOV77H,#01H
MOV78H,#00H
MOV79H,#02H
MOV7AH,#06H
MOV7BH,#00H
MOV7CH,#04H
MOV7DH,#01H
MOV7EH,#00H
MOV7FH,#02H
MOVR0,#73H
MOVIP,#02H;设置T0中断较高优先级
SETBEA;开中断
SETBEX0;外部中断0允许中断
SETBEX1;外部中断1允许中断
SETBIT0;外部中断0为下降沿中断
SETBIT1;外部中断1为下降沿中断
SETBET0;定时器0允许中断
SETBET1;定时器1允许中断
SETBPT1;设置T1优先级
XIAN:
MOVA,70H;用于扫描,显示时间
MOVCA,@A+DPTR
MOVP0,A
MOVA,78H
MOVCA,@A+DPTR
MOVP2,A
SETBP1.0
LCALLDELAY1
CLRP1.0
MOVA,71H
MOVCA,@A+DPTR
MOVP0,A
MOVA,79H
MOVCA,@A+DPTR
MOVP2,A
SETBP1.1
LCALLDELAY1
CLRP1.1
MOVA,72H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7AH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.2
LCALLDELAY1
CLRP1.2
MOVA,73H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7BH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.3
LCALLDELAY1
CLRP1.3
MOVA,74H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7CH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.4
LCALLDELAY1
CLRP1.4
MOVA,75H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7DH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.5
LCALLDELAY1
CLRP1.5
MOVA,76H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7EH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.6
LCALLDELAY1
CLRP1.6
MOVA,77H
MOVCA,@A+DPTR
MOVP0,A
MOVA,7FH
MOVCA,@A+DPTR
MOVP2,A
SETBP1.7
LCALLDELAY1
CLRP1.7
CLRP3.0
LJMPXIAN
KAISHI:
LCALLDELAY;开始
CPLTR0
RETI
UPDATE:
;时间更新
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVA,70H
ADDA,#01H
MOV70H,A
CJNEA,#0AH,EXIT1
MOV70H,#00H
MOVA,71H
ADDA,#01H
MOV71H,A
CJNEA,#0AH,EXIT1
MOV71H,#00H
MOVA,72H
ADDA,#01H
MOV72H,A
CJNEA,#0AH,EXIT1
MOV72H,#00H
MOVA,73H
ADDA,#01H
MOV73H,A
CJNEA,#06H,EXIT1
MOV73H,#00H
MOVA,74H
ADDA,#01H
MOV74H,A
CJNEA,#0AH,EXIT1
MOV74H,#00H
MOVA,75H
ADDA,#01H
MOV75H,A
CJNEA,#06H,EXIT1
MOV75H,#00H
MOVB,#0AH
MOVA,77H
MULAB
ADDA,76H
MOVR5,A
ZD:
SETBP3.0
LCALLDELAY
CLRP3.0
NOP
NOP
DJNZR5,ZD
MOVA,76H
ADDA,#01H
MOV76H,A
CJNEA,#04H,L1
MOVA,77H
CJNEA,#02H,EXIT1
MOV76H,#00H
MOV77H,#00H
LJMPL2
L1:
CJNEA,#0AH,EXIT1
MOV76H,#00
MOVA,77H
ADDA,#01H
MOV77H,A
LJMPEXIT1
EXIT1:
RETI
L2:
MOVA,78H
ADDA,#01H
MOV78H,A
CJNEA,#01H,L3
MOVA,79H
CJNEA,#03H,EXIT1
MOV78H,#01H
MOV79H,#00H
LJMPL4
L3:
CJNE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 精确 时钟 设计