基于Proteus的简易机械时钟的设计和仿真 -(2)

2018-12-25 23:02

4硬件单元电路设计 4.1单片机最小系统[10]

单片机最小系统包括时钟电路、复位电路和主控制系统。时钟电路是时钟电路由一

个晶体振荡器12MHZ和两个30pF的瓷片电容组成。时钟电路用于产生单片机工作所需要的时钟信号,而时序所研究的是指令执行中各信号之间的相互关系。单片机本身就如一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地工作。复位电路是使单片机的CPU或系统中的其他部件处于某一确定的初始状态,并从这状态开始工作,除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位电路以重新启动。本设计采用的是按键复位电路。主控制器采用AT89S52,是ATMEL公司生产的一款性能稳定的8位单片机。AT89S52具有1个8KB的FLASH程序存储器,1个512字节的RAM,4个8位的双向可位寻址I/O端口,3个16位定时/计数器及1个串行口和6个向量二级中断结构。其最小系统电路图如下:

图 3

4.2特殊器件的介绍

(1)单片机的定时器[2] [3]

MCS-51 系列的单片机一般有两个内部的16位定时器/计数器,分别称为T0和T1。这两个计数器分别是两个8位的RAM单元组成的,即每个计数器都是16位的计数

4

器,最大的计数量是65536.

那么这个定时器/计数器是如何产生定时作用的呢?例如:如果将时钟定时到1分钟,那么秒针计数到60次,时钟闹铃就会响。这里有个计数和定时之间的概念转化,时间表示为秒针的计数值,即秒针每一次走动的时间正好是1s。

单片机中定时器和计数器是复用的,计数器是记录外部脉冲的个数,而定时器则是出单片机提供的一个非常稳定的计数源。定时器是又单片机的晶振经过12分频后获得的一个脉冲源。当单片机的晶振为12MHz时,计数值为1代表的时间就是1us。

计数器的容量是16位,也就是最大的计数值到65536,因此计数到65536就会产生溢出,当定时器/计数器溢出时,就会使得相关寄存器标志产生变化,单片机将由此而产生定时中断,在中断服务程序中处理定时到而需要完成的任务。

TMOD是一个8位的特殊功能寄存器,对应的地址为89H,不可位寻址,TMOD控制字中可以完成3个功能:

1, 确定选择定时器,还是计数器。 2, 选择何种工作方式。

3, 是否借用外中断控制定时器和计数器的启停。

TMOD的低4位是用于控制T0的字段,高4位用于控制T1。TMOD的控制字的格式和含义如下:

表1 TMOD的控制字

TMOD.7 GATE TMOD.6 C/T TMOD.5 M1 TMOD.4 M0 TMOD.3 GATE

TMOD.2 C/T TMOD.1 M1 TMOD.0 M0 这里,以TMOD的低4位来说明各位的定义和功能。

GATE:分为两种情况,GATE=0时,定时器的启停和INT1无关,在这种情况下,定时器的启停只取决TR0,GATE=1时,在这种情况下定时器/计数器的开关不仅要由TR0来控制而且还要受到INT1一脚的控制,只有TR1为1,且INT1引脚也是高电平,定时器才开始工作。

C/T:定时器/计数器即可做定时也可用于计数。选择何种功能,由C/T的控制字决定。如果C/T为0就用作定时器,如果为1就用作计数器。当然,一个定时/计数器同时要么作定时用,要么作计数用,不能同时用。

M1,M0:用M1,M0来控制定时器/计数器4种工作方式的选择。

5

1,工作方式0:M0=0,M1=0,13位定时/计数方式,它由TL(1/0)的低5位和TH(0/1)的8位构成13位计数器,此时TL(1/0)的高3位未用。

2,工作方式1:M0=0,M1=1,是16位的定时/计数方式,其他特性与工作方式0相同。

3,工作方式2:M0=1,M1=0,自动重装初值的8位定时/计数器。初值放在T(0/1) 的高8位,在工作方式2,只有低8位参与计数,而高8位不参与计数,用作预制数的存在,计数范围256.每当计数溢出,就会打开T(0/1)的高,低8位之间的开关,预制数进入8位,这是由硬件自动完成的,不需要由人工干预。定时器就是为了提供一个时间基准,计数溢出后重新装入预制数,再开始计数,不要任何延迟。

4,工作方式3:M0=1,M1=1,这种工作方式之下,定时/计数器0被拆成2个独立的定时/计数器来用,其中,TL0可以构成8位的定时器或计数器的工作方式,而TH0则只能作为定时器来用,一般情况下,只有在T1以工作方式2运行时,才让T0工作方式3。

接下来,介绍定时器/计数器的控制器TCON。

TCON是一个8位的特殊功能寄存器,对应的地址为88H,可位寻址。TCON中的低4位用于外部中断的控制,在后文中将加以介绍,此处只对高4位的T0,T1控制字及其控制原理进行介绍。TCON控制寄存器的格式和含义如表:

TCON.7 TF1

表2 TCON控制寄存器

TCON.6 TR1 TCON.5 TF0 TCON.4 TR0 TCON.3 IE1 TCON.2 TF1 TCON.1 IE0 TCON.1 IT0 TRO:T0的运行控制位。启动定时器T0没有专门的指令,而是通过位TR0进行制。TR0是由软件置位或清零的。当门控位GATE=0时,T0的运行只取决于TR0的0和1;当门控位GATE=1时,仅当TR0=1,并且外中断0引脚的输入值为高电平时,T0才开始计数,这两个条件有一个不满足,则禁止T0计数。

TF0:T0的溢出和中断申请标志位。当T0溢出时,硬件TF0,表示提出了中断申请。该标志位可以通过软件查询,也可以用软件清零和置位。在单片机响应中断申请后,硬件自动清零。

TR1:T1的运行控制位。

TF1:T1的溢出标志位和中断申请标志位。

表3 TCON中的控制字

6

TCON.7 TF1 TCON.6 TR1 TCON.5 TF0 TCON.4 TR0 TCON.3 IE1 TCON.2 IT1 TCON.1 IE0 TCON.0 IT0 外部中断申请求源 IT0:INT0 触发方式控制位,可由软件进行置位和复位,IT0=0,INT0为低电平触发方式:IT0=1,INT0为负跳变触发方式。

IE0:INT0中断请求标志位。当有外部的中断请求时,这位就会置1,cpu响应中断后,由硬件将IE0清0。

IT1:INT1触发方式控制位,可由软件进行置位和复位,用途IT0相同。

4.2 机械时钟显示模块[7]

机械时钟显示模块采用4个8*8的LED点阵模块组成一个16*16的LED点阵,通过单片机控制此显示模块显示机械时钟的外形及时间。由于AT89C52的I/O口较少,为节省I/O口资源,在此我们采用74HC154 4线-16 线译码器, 74154这种单片4 线—16 线译码器非常适合用于 高性能存储器的译码器。当两个选通输入G1 和G2 为低时, 它可将4 个二进制编码的输入译成16 个互相独立的输出之一。实现解调功能的办法是:用4 个输入线写出输出线的地址,使得在一个选通输入为低时数据通过另一个选通输入。当任何一个选通输入是高时,所有输出都为高。其真值表如下:

表4 74HC154的真值表

TRUTH TABLE真值表:

INPUTS 输入 SELECTED OUTPUT 选定输出(L) G1 L L L L G2 L L L L D L L L L C L L L L B L L H H A L Y0 H Y1 L Y2 H Y3 7

L L L L L L L L L L L L X H L L L L L L L L L L L L H X L L L L H H H H H H H H X X H H H H L L L L H H H H X X L L H H L L H H L L H H X X L Y4 H Y5 L Y6 H Y7 L Y8 H Y9 L Y10 H Y11 L Y12 H Y13 L Y14 H Y15 X NONE X NONE

引脚功能表: 表5

引脚端 No SYMBOL符号 NAME AND FUNCTION名称及功能 Outputs输出(Active LOW)低电平 Enable Inputs(Active LOW)使能输入(低电平) Address Inputs地址输入 Ground接地(0V) Positive Supply Voltage电源电压 1,2,3,4,5,6,7,8,9,10,11,13,14,15,16,17 Y0 to Y15 18,19 23,22,21,20 12 24 G1, G2 A to D GND VCC

8


基于Proteus的简易机械时钟的设计和仿真 -(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:铁板神数教程

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: