51单片机 定时器#include#define uint unsigned int uint pp;sbit led=P1^0;void main(){TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1).TR0=1; //打开定时器TH0=0Xff; //定时器设置,每隔100微

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/06 04:54:43

51单片机 定时器#include#define uint unsigned int uint pp;sbit led=P1^0;void main(){TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1).TR0=1; //打开定时器TH0=0Xff; //定时器设置,每隔100微
51单片机 定时器
#include
#define uint unsigned int
uint pp;
sbit led=P1^0;
void main()
{
TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1).
TR0=1; //打开定时器
TH0=0Xff; //定时器设置,每隔100微秒发起一次中断.
TL0=0Xa4;
ET0=1; //开定时器0中断
EA=1; //开总中断
while(1)
{
if(pp==10000)led=0;//时隔1s后,led被点亮.
if(pp==20000)led=1;//led亮了一秒之后会灭.
}
}
void time0() interrupt 1
{TH0=0Xff;
TL0=0Xa4;
pp++;
}
单片机运行的结果是一秒后第一个LED会亮,然后亮了一秒之后会灭,但是为什么灭了之后等好几秒之后会再次亮起,之后重复循环?

51单片机 定时器#include#define uint unsigned int uint pp;sbit led=P1^0;void main(){TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1).TR0=1; //打开定时器TH0=0Xff; //定时器设置,每隔100微
试分析你的程序.你的time0中断里面只有pp++,也就是在第一次灭了以后,pp是20000,而这个时候你没有对pp清零,pp还会一直+下去,20001,20002,20003……一直循环下去,如果p变量无界的话,你这个程序就只能亮一次,灭一次,以后就再也亮不起来了,但为什么过了好多秒又亮了呢?因为pp的类型是uint,可以查得uint型变量的最打值是65535,如果pp=65535的时候,再+1的话,pp就变成了0,而这个时候再过1秒钟,LED就亮了起来了,而pp从20000到65535需要大概4.5秒,再从0到10000又需要大概1秒,所以需要大概5.5秒!
改正方法:
再你的time0中断里加入判断,如果pp>20000,则将pp清零,也就是在pp++后加入
if (pp>20000) pp=0;
这样应该就正常了,试验一下吧,如果对您有用,请麻烦点击一下【采纳】,你我才都能得到知道经验,谢啦~

51单片机 定时器#include#define uint unsigned int uint pp;sbit led=P1^0;void main(){TMOD=0x01; //模式设置,00000001,可见采用的是定时器0,工作与模式1(M1=0,M0=1).TR0=1; //打开定时器TH0=0Xff; //定时器设置,每隔100微 单片机定时器1的中断函数 c8051f120单片机定时器自动重装载是什么意思? 单片机定时器为什么要分频呢 51单片机定时器1方式2怎么设置为什么TMOD=0x20(是怎么换算得) 定时器0方式2TMOD又是多少? 51单片机中设置定时器模式时,TMOD|=0x01和TMOD=0x01有什么区别 基于51单片机的定时器设计谁能帮我画个基于89C51单片机的定时器设计的电路图啊. 220v输入,用单片机控制是定时输出.程序我自己能编.只是模电学的不好,不知道电路图该怎么画.哭……小弟有 怎样用51单片机检测频率?例如怎样辨别频率小于10Hz,怎样有大于等于10Hz?最好不要用定时器中断来做! 单片机题目,加100分!按键开始报警,红灯亮0.5秒,灭0.5秒,循环不止,要定时器.(写代码)最好能有连线图!单片机型号为mcs-51 单片机题目,加100分!按键开始报警,红灯亮0.5秒,灭0.5秒,循环不止,要定时器.(写代码)最好能有连线图!单片机型号为mcs-51 单片机定时器 和 555定时器区别我现在有个项目.用的555定时器做出方波来驱动LED,频率2K.单片机的定时器应该也能做出这种定时器.大家谈谈自己的看法.硬件是实现的定时器和单片机软件模拟 STC89C52单片机用定时器2怎么写1分钟延时的C程序?只要用定时器2的,定时器0和定时器1我都会了!会的大神请带上C程序,百度上复制粘贴的就算了, 单片机中用定时器 和计数器来求频率 计算公式是怎么写的? 定时器中断实验,工作方式2 ,延时1秒,是一盏LED灯亮灭 求单片机实验 单片机设计一个定时器|计数器,能使发光二极管亮一秒熄灭一秒,周而复始 单片机c8051f120的定时器的捕捉功能是什么意思?咱是初学者? MCS-51单片机定时器/计数器作定时和计数作用时,其计算脉冲分别由谁提供?其定时时间与哪些因素有关?很急,望大家帮忙 FPGA中一个机器周期包含12个时钟周期(晶振周期)?它的定时器计时是跟51单片机一样以机器周期为基准吗