基于51单片机的精确时钟设计内容摘要:

定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 图 ( a)数码管引脚图 ( b)共阳极内部结构图 ( c)共阴极内部结构图 本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的 a、 b、 c、 d、 e、 f、 g、 h 引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示 0~ 9 的编码见表。 表 共阴极数码显示管字型代码 字型 共阴极代码 字型 共阴极代码 0 3FH 5 6DH 1 06H 6 7DH 2 5BH 7 07H 单片机课程设计 11 3 4FH 8 7FH 4 66H 9 6FH 复位电路的选择与设计 关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值 , 复位是一个很重要的操作方式。 但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。 当 80c51 单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高电平时,单片机就完成了复 位操作。 如果 RST 持续为高电平,单片机就处于循环复位状态,而无法执行程序。 因此要求单片机复位后能脱离复位状态。 而本系统选用的是 12MHz 的晶振,因此一个机器周期为 1μs,那么复位脉冲宽度最小应为 2μs。 在实际应用系统中,考虑到电源的稳定时间,参数漂移,晶振稳定时间以及复位的可靠性等因素,必须有足够的余量。 根据应用的要求,复位操作通常有两种基本形式:上电复位、手动复位。 上电复位要求接通电源后,自动实现复位操作。 80C51 单片机的上电复位 POR( Power On Reset)实质上就是上电延时复位,也就是在 上电延时期间把单片机锁定在复位状态上。 在单片机每次初始加电时,首先投入工作的功能部件是复位电路。 复位电路把单片机锁定在复位状态上并且维持一个延时(记作 TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟 2 个机器周期的延时。 上述一系列的延时,都是利用在单片机 RST 引脚上外接一个 RC 支路的充电时间而形成的。 典型复位电路如图 ( a)所示,其中的阻容值是原始手册中提供的。 在经历了一系列延 时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。 在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放 RST 信号,使得 CPU 脱离复位锁定状态;而 RST 信号一旦被释放,立刻在 ALE 引脚上就可检测到持续的脉冲信号 [8]。 单片机课程设计 12 图 上电复位延时电路 由于标准 80C51 的复位逻辑相对简单,复位源只有 RST 一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚 RST 上施加一定时间宽度的高电平信号来实现。 标准 80C51 不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图 (a)所示。 其实,外接电阻 R 还是可以省略的,理由是一些 CMOS 单片机芯片内部存在一个现成的下拉电阻 Rrst。 因此,在图 (a)基础上,上电复位延时电路还可以精简为图 (b)所示的简化电路(其中电容 C 的容量也相应减小了)。 在每次单片机断电之后,须使延时电容 C 上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。 否则,在断电后 C 还没有充分放电的情况下,如果很快又加电,那么 RC 支路就失去了它应有的延迟功能。 因此,在图 (a)的基础上添加一个放电二极管 D,上电复位延时电路就变成了如图 (c)所示的改进电路。 也就是说,只有 RC 支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。 于是附加一个放电二极管 D 来大力缩短放电持续时间,以便消除隐患。 二极管 D 只有在单片机断电的瞬间(即 VCC 趋近于 0 V,可以看作 VCC 对地短路)正向导通,平时一直处于反偏截止状态。 手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。 单片机要完成复位, 必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。 本设计采用上电且开关复位电路,如图 所示上电后, 由于电容充电,使 RST 持续一段高电平时间。 当单片机已在运行之中时,按下复位键也能使 RST 持续一段时间的高电平,从而实现上电且开关复位的操作。 单片机课程设计 13 图 单片机复位电路 总体功能介绍及电路原理图。 在本设计中,首先打开电源开关后显示 2020061912000000,按开始键时钟开始计时,实时显示时间,按调时键调时,精确到 秒,量程为一万年。 系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。 系统总电路图如 上图所示。 80c51 单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和单片机课程设计 14 协调各个电路的运行工作。 80c51 单片机提供了 XTAL1 和 XTAL2 两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。 复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。 按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键设为低电平有效。 而另外的开始键和暂停键 两键使用了外部中断,所以需要连接到单片机的特殊接口 和 ,这两个 I/O 口的第二功能分别为单片机的外部中断 1 端口和外部中断 0 端口。 同样设置为位低电平有效。 显示电路由 16 个数码管组成,采用动态显示方式,八位段控制接 P0 口, ~分别控制数码显示管的 a、 b、 c、 d、 e、 f、 g、 dp 显示, 80c51 的 P0 口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高 P0 的高电平驱动能力。 八位位控制则由低位到高位分别接到 ~ 口, NPN 三极管 2N1711 做为位控制端的开关,当 ~ 端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。 通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子时钟的全部功能。 第四章 软件编程设计 本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。 汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活 性。 使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。 本系统程序主要模块由主程序、定时中断服务程序、外部中断 0 服务程序和外部中断 1 服务程序组成。 其中主程序是整个程序的主体。 可以对各个中断程序进行调用。 协调各个子程序之间的联系。 单片机课程设计 15 设计程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP KAISHI ORG 000BH LJMP UPDATE ORG 0013H LJMP TIAOSHI1 ORG 001BH LJMP TIAOSHI2 MAIN: MOV SP,30H ;初始化设置一固定指针 MOV DPTR,TAB ;表格首地址送给。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。