单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)
EA 是 中断总开关, 不管是定时器,串口还是外部中断,都需要打开 EA 才能触发中断;
ET0 是 定时器0 的专用中断开关, 也就是说: 打开了EA.而不打开ET0,定时器0是无法触发中断的;
TR0 是 启动定时器开始定时计数 的开关,如果打开 EA 和 ET0, 就代表允许定时器 0 触发中断, 但是定时器0 何时开始触发,由 TR0 来启动和停止.
51 单片机 12 分频,
一个 机器周期 = 12/nHz //(n指 晶振频率)
如要定时的时间为 M
初值 = M / 机器周期;
TH0 = (65536 - 初值) % 256; // 高 8 位;
TL0 = (65536 - 初值) / 256; // 低 8 位;
案例:
12M 晶振 做 1ms 定时计算
1. 机器周期: = 12 /(12*10^6)=1us(微秒)
2. 定时初值:(1*10^-3)/(1*10^-6) = 1ms/1us = 1000; (倍率)
将 高 位 与 低位 进行分离;转化成 16进制 数据;
3. TH0 = (65536 - 1000) % 256 = 64536 % 256 (10 进制数) --> 0xFC
3. TL0 = (65536 - 1000) / 256 = 64536 / 256 (10 进制数) --> 0x18
每次内部 自加 1bit 时,耗费 1us; 所以,要累加 1000 次,形成 1ms 中断溢出;
//定时器 初始化函数
void Init_Timer()
{
count = 0; // 用于 中断后 计数,判断;
TMOD = 0x01; //T0 工作方式 1;16位 计数器;
TH0=(65536-50000)/256; // 初值高 8 位 走 1000 次,每次 1us :晶振 12MHz;
TL0=(65536-50000)%256; // 初值低 8 位 走 1000 次,每次 1us :晶振 12MHz;
TR0 = 1; // 开启 T0 定时器;
ET0 = 1; // 允许 T0 定时器中断;
EA = 1; // 开启 总中断 允许;
}
// 中断函数;
void Timer0(void) interrupt 1 using 1
{
TH0 = (65536-50000)/256; // 中断后,赋初值;
TL0 = (65536-50000)%256;
count++; // 每次中断,计数 累加 1;
if(count >=某个值时)
{
count = 0; // 计数值 清0 ;
// 控制体;
}
}
单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)相关推荐
- c语言单片机定时器的应用程序,51单片机定时器中断程序(C语言)
51c程序 51单片机定时器中断程序(C语言) 用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶 ...
- c语言编写51单片机中断程序,执行过程是怎样的?
Q:c语言编写51单片机中断程序,执行过程是怎样的? 例如程序: #include<reg52.h> void main(void) { EA=1; //开放总中断 ...
- 8255A红绿灯c语言程序,51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序).doc...
51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序) 51单片机外接8255A做成的交通灯程序及PROTEUS仿真结果(附对应C语言程序)2010-04-21 22:0 ...
- c51c语言编程的音乐程序,51单片机唱歌C51音乐程序.doc
51单片机唱歌C51音乐程序 51单片机唱歌 C51音乐程序 unsigned char n 0; //n为节拍常数变量 unsigned char code music_tab[] 0x18, 0x ...
- 【C 语言实现51单片机计时器】
C语言实现51单片机计时器 代码如下 接线如下 代码如下 #include <reg51.h>sbit Hc38A=P2^2; sbit Hc38B=P2^3; sbit Hc38C=P2 ...
- 《电子DIY》之《单片机实践项目》之(51单片机)proteus中带编码信号的电机的详细讲解及电路图绘制(motor encoder)
此课程主要讲解如何使用51单片机进行实战应用,分为多次课,每次课都会分别围绕一个课程设计或毕业设计(实践项目)展开.手把手叫你学51单片机."Proteus仿真","电子 ...
- 单片机原理与实践学习记录之51单片机I/O口简单应用
单片机原理与实践学习记录 第二课(更新时间:2021.9.3) 51单片机I/O口简单应用 C51中常用的头文件 通常有reg51.h,reg52.h,math.h, ctype.h, stdio ...
- 基于51单片机的太阳能追光系统 基于51单片机的锂电池太阳能充电器
基于51单片机的太阳能追光系统 基于51单片机的锂电池太阳能充电器 基于51单片机的锂电池追光充电系统 具体功能:根据太阳光照方向改变光板朝向,利用太阳能给锂离子电池充电,实时显示上下左右四个方向不同 ...
- 《电子DIY》之《单片机实践项目》之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解
<电子DIY>之<单片机实践项目>之基于51单片机+光敏电阻的简易光照强度测量系统设计电路图绘制及讲解 添加链接描述
- M40 定时器 中断程序形象化理解
框架与要点 编写单片机类的程序,最核心.最重要的是上面的框架. 硬件支持:单片机 软件框架 初始化代码 时钟配置 定时器配置 中断配置 功能代码 通过此框架我们会明白,初始化代码是重中之重.实际初始化 ...
最新文章
- R密度聚类之DBSCAN模型
- Docker - 安装
- insertAdjacentHTML方法详解
- 5G 在轨道运输网络中的需求
- python3.8.5 应用程序无法启动-macos python3.8.5 打开摄像头问题
- 像证券交易员一样思考和行动_3纪律与心态
- svn教程----示例二:测试人员拥有读权限
- python自建模块导入_Python模块的使用及自建模块的导入方法举例
- 深入理解PHP异常和错误处理(6)PHP如何优雅的处理错误
- 四因素三水平正交试验表_测试用例设计方法(二)——正交实验法
- Kibana安装配置
- H3C FTP配置示例
- seleniuim面试题1
- 新手引导动画的4种实现方式 1
- mybatis动态sql片段与分页,排序,传参的使用与一对多映射与resultMap使用
- java编程比赛_[阶段一]java基础编程比赛
- 语音识别—声学模型训练(Viterbi-EM)
- 计算机代表学校拿什么奖,学校荣获第十届中国大学生计算机设计大赛优秀组织奖...
- isis和ospf比较
- PHP常用的文件操作函数集锦
热门文章
- php 扩展包是什么意思,大家知道扩展用户组是什么意思么??
- linux grub设置cpu频率,Linux:使用性能调控器时,为什么CPU频率会发生波动?
- python中的__str__ __name__ 和__call__方法
- Python的序列化与反序列化
- python 将文件描述符包装成文件对象
- mysql+用户批量导出,python批量导出导入MySQL用户的方法
- C语言什么时候必须用到二级指针?(需要调用函数为一维空指针确定值的情况下,需要传入二维指针,也就是那个一维指针的指针)
- 目标检测中准确率accuracy的计算(precision是精度、查准率)(Recall是召回率、查全率)
- 博本 微型 电脑 linux,博本电脑下载与安装Windows7iso镜像系统教程
- Java动态代理详解(Proxy+InvocationHandler)