ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

基于51单片机的电子时钟设计---其一

2021-06-26 12:57:58  阅读:166  来源: 互联网

标签:定时器 数码管 中断 51 --- 单片机 计数器 TMOD 定时


功能介绍
只支持时间显示,定时器中断0控制秒,通过条件判断语句对时,分进行加一操作。从而完成不可调节时间的电子时钟设计,在讲解电路前首先要了解二个集成芯片定时器中断等知识。

74HC138
俗称38译码器,是一个3输入8输出的集成芯片,根据芯片资料可以查询它的真值表,根据真值表来完成定义
真值表部分内容
例如:输入:000,对应输出:011111111
74HC573
锁存器,可以理解为开关,当锁存端为高电平时,输入端到输出端导通,当锁存端为低电平时,输入端到输出端不导通,输出端将保留上次输入的电平状态,其具体用途就是避免引脚干扰,节约I/O口。
定时器中断
定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。
TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。
TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。

定时器工作的流程可以按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)
1、确定使用哪个定时器,使用哪种方式,这一步通过TMOD设置,TMOD的低四位是设置定时器0的,高四位是用来设置定时器1的,其中的M0,M1是用来设置定时器工作在哪种方式,GATE一般用不要设置,C/T是选择计数模式还是定时模式的,如:TMOD = 0X01,就说明定时器0工作在方式1。
2、接下来就要设置定时的时间,用定时器定时50毫秒,可以用这种方式TH0 = (65535 - 50000) / 256,TL0 = (65535 - 50000) % 256;可以这样理解:因为这是定时器的初值,也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断。
3、第三步打开中断,使用IE寄存器,首先打开总中断EA = 1,这一步是所有中断所必须的,然后打开定时器0中断,ET0 =1。
4、这时准备工作结束,启动定时器,使用TCON寄存器,TR0 = 1,实现了一个50毫秒的定时。

电路原理
电路图
该案例是通过74HC573锁存器控制数码管段选电平(LE锁存端默认高电平,此时是一根导线),再通过74HC138译码器控制数码管位选电平,当数码管中的二极管达到点亮条件时,即可完成对应字符显示,然后再采用动态数码管扫描和消影技术的结合完成时钟的显示,再使用定时器(与单片机主程序同时运行,起计时作用)中断对时间精确控制,电子时钟就做好了。

讲到这不妨自己拿起手中的键盘试一试,看看多少行代码可以搞定他,看看有没有哪个小可爱比我的代码还要简洁明了。
我的代码量
完整代码+仿真工程+芯片资料请进群获取(获取路径:群文件—》51单片机相关程序–》clock - PZ.rar),本群并非完全技术群,可以闲聊交朋友。
QQ

标签:定时器,数码管,中断,51,---,单片机,计数器,TMOD,定时
来源: https://blog.csdn.net/mmg5j64/article/details/118245578

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有