历史上的今天
今天是:2025年10月13日(星期一)
2022年10月13日 | 51单片机基础之定时器中断(一)
2022-10-13 来源:csdn
TH和TL定时换算:
定时器说白了倒数的,时间到了触发一次中断,那么必须设置倒数时间,
TH0和TL0就是高八位和第八位
假设定时1ms一次,那么2的16次方等于65536,定时1ms,就等于65536-1000=64536,再把十进制换成十六进制,如下图的例子。

代码:
#include sbit LED=P2^0; //等下要用到,会看到LED闪烁,闪烁一次说明定时器中断触发了100次 typedef unsigned char u8;//typedef关键字的作用是自己重定义数据类型 typedef unsigned int u16; u16 i=0; //定义一个全局变量,有的时候一个函数会被执行很多次,如果要让变量的值保存或者累加,则不要定义局部变量。 //配置定时器的基本操作 void time0_init(void) { TMOD|=0X01;//选择为定时器0模式,工作方式1 TH0=0XFC; //给定时器赋初值,定时1ms TL0=0X18; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 } void main(void) { time0_init(); //初始化定时器 while(1) { } } void time0(void) interrupt 1 //中断服务函数 { TH0=0xFC; //这里为什么重新赋值呢。因为已经触发了一次,TH0和TL0已经变成了0,想要再次实现定时器中断,必须重新赋值 TL0=0x18; i++; if(i==1000) //假设触发了一千次,也就是1s,LED就闪烁一次 { i=0; LED=!LED; } } 运行结果: 因为不能上传视频,所以拍两个图片,效果就是1秒左右闪烁一次。
上一篇:51单片机基础之定时器中断(二)
下一篇:51单片机基础之矩阵键盘4X4
史海拾趣
|
修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。 修改了WINCE下自带的源代码,如何快速编译把修改的情况及时反应到新的NK里面去?要求对系统不进行全部编译。… 查看全部问答> |
|
我在网上投递了他们公司的嵌入式开发工程师,今天他们打电话给我说要先培训四个月,然后才能上班,并且让我交5000元的培训费,这个公司我咋感觉是骗子公司呢!~… 查看全部问答> |
|
MOV #00H, R4 ; MOV #05H ,R8 ; MOV #200H ,R6 ; LOOP_M1 MOV.B M_S(R4),R6 ;标准读写模式设置将模式数据放到RJ6指向的地址中 ...… 查看全部问答> |
|
摘要:在μC/OS-II下,设计了一个通用的设备管理模型,称为通用驱动框架,通过该驱动框架,可以实现对硬件设备的 统一、一致的管理,同时,也为上层应用程序提供了统一、一致的设备访问接口,并在以ARM7TDMI ...… 查看全部问答> |
|
ADC10DTC0中TB设置的两块数据传送模式是啥意思?和多通道模式有关么?还有ADC10DCT1=0X10;是指每次转换的位数为32位么?那我读取ADC10SA的时候是不是也要每一个地址读取32位的数据?请指点…………… 查看全部问答> |
|
电源纹波和瞬态规格会决定所需电容器的大小,同时也会限制电容器的寄生组成设置。图1显示一个电容器的基本寄生组成,其由等效串联电阻(ESR)和等效串联电感(ESL)组成,并且以曲线图呈现出三种电容器(陶瓷电容器、铝质电解电容器和铝聚合物电容 ...… 查看全部问答> |
|
基于瑞萨RL78G14的无传感矢量风扇 1. 能实现无级调速,噪音比传统风扇小很多 2. 节省成本,去掉了霍耳传感器,同时有过流,过压及过载保护,实现产品级方案 1. 瑞萨RL78G14AE主控制芯片 * 1 2. 瑞萨IGBT功率器件RJH60D2 * 6… 查看全部问答> |




