设单片机晶振频率是12MHz,试用中断技术,利用定时器控制一发光二极管LED闪烁,闪烁周期为1S,要求亮0.5S

(接上面),再暗0.5S。

main ()
{
TMOD = 0x01;//使能T0定时器工作于16位定时/计数方式
TH0 = 0x3C;//T0定时器50mS定时初值,此值按照12MHz频率计算出来的(假定是51单片机
TL0 = 0xC0;
ET0 = 1;//允许定时器T0中断
EA = 1;//开中断
TR0 = 1;//定时器T0开始计数
while(1);//在这里死循环,等待T0中断发生
}

Timer0_int() interrupt 1 //定时器T0中断函数,每中断1次50mS
{
static unsigned char i = 10;//定义1个用于中断次数计数的静态变量
if(i)i--;//如果变量为真,减量计数
else{ //中断次数达到10次,10 * 50mS = 0.5S
LED = ~LED;//LED的状态取反(由亮变灭或由灭变亮)//LED用那根I/O自己定义
i = 10;//为下1个0.5S的中断次数计数重新赋值
}
TH0 = 0x3C;//恢复定时器T0初值
TL0 = 0xC0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-28
设置定时器定时50毫秒中断一次,然后对中断计数,计数10次为500毫秒,每计数500毫秒把发光二极管取反后,再把计数次数清零。就可以了。

设单片机晶振频率是12MHz,试用中断技术,利用定时器控制一发光二极管LED...
TH0 = 0x3C;\/\/T0定时器50mS定时初值,此值按照12MHz频率计算出来的(假定是51单片机)TL0 = 0xC0;ET0 = 1;\/\/允许定时器T0中断 EA = 1;\/\/开中断 TR0 = 1;\/\/定时器T0开始计数 while(1);\/\/在这里死循环,等待T0中断发生 } Timer0_int() interrupt 1 \/\/定时器T0中断函数,每中断1次...

假设单片机的晶体震荡器的频率是12MHz,利用定时器1采用方式1定时2ms...
51单片机指令频率是晶振频率的12分频,所以单片机的指令周期为1\/1MHz=1uS,所以定时器计一个数就是1uS,要定时2mS需要计数的数量为:2mS\/1uS=2000,定时器计满溢出定时器产生中断,所以初值为:65536-2000=63536,希望对你有帮助

假设单片机的晶体振荡器的频率是12MHz,利用定时器1采用方式1定时20ms...
定时器的初值的计算如下:在定时器模式下,计数器的计数脉冲来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12M晶振,则定时器的计数频率为1MHZ。假设定时时间为T,机器周期为T1,即12\/晶振频率。X为定时器初值。则 X=2^n-T\/T1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8 ...

设MCS-51单片机的晶振频率为12MHZ,使用定时器1工作方式1中断方式在P1...
;ORG 0000H SJMP START ORG 0001BH MOV TH1, #(65536 - 50000) \/ 256 MOV TL1, #LOW(65536 - 50000)CPL P1.0 RETI START:MOV TMOD, #10H MOV TH1, #(65536 - 50000) \/ 256 MOV TL1, #LOW(65536 - 50000)SETB TR1 MOV IE, #88H SJMP END ...

AT89C51单片机系统的晶振频率是12MHZ,阅读以下汇编代码回答问题..求...
LEDRET:RETI END --- 请对代码进行修改,以利用T1的工作方式0实现同样的功能:ORG 0000H LJMP MAIN ORG 001BH LJMP INTT1 ORG 0100H MAIN:MOV TMOD, #00H ;方式0 MOV TH1, #63H ;定时5000us MOV TL1, #18H SETB ET1 SETB EA MOV R7, #0AH SETB...

设晶振为12MHz,选用定时器0的工作方式1产生20ms定时中断,并实现驱动2...
若单片机的晶振频率为12MHz,用51单片机内部定时\/计数器T0,工作方式为1,在单片机P1.0口产生周期为20ms的方波,波形占空比为50%。试解答下列问题: 1) 计算定时器的装入初值; 2) 用中断的方式使用定时器,编写相关程序序

单片机:若系统晶振频率是12MHZ,利用定时器\/计数器1定时1ms,在方式0下...
在单片机系统中,当晶振频率设定为12MHz时,理解定时器\/计数器1定时1毫秒(1ms)的设置至关重要。首先,我们来计算基本的机器周期:12MHz等于12000000赫兹,因此每个机器周期为12\/12MHz,即1微秒(us)。1毫秒等于1000个微秒,要让定时器\/计数器1定时1ms,我们需要确保计数在1000个机器周期后溢出以触发...

.已知51单片机系统晶振频率为12MHz,请利用定时器1工作方式1,中断方式...
MOVIE,#10001000B;开放总中断和T1中断。SETBTR1;启动T1 MOVTH1,#(65536-50000)\/256;重新送入初始值。MOVTL1,#(65536-50000)MOD256;定时50000us@12MHz RETI;中断返回 END;完 功能特性 1,可以仿真63K程序空间,接近64K的16位地址空间;2,可以仿真64Kxdata空间,全部64K的16位地址空间;3...

...51单片机使用的晶振是12MHz,欲使用定时器\/计数器1实现50ms定时中断...
一、使用方式一:晶振频率为12MHz,机器周期为1us,50ms时间需要计数50000次,故计数器初值为(65536-50000),65536是因为方式一中,定时\/计数器的最大值为65536(2^16),当然写程序时不一定非要这么计算,因为定时\/计数器是溢出产生中断,也就是从最大加1就溢出,最大加1就是等于0的,只要计数个...

8051单片机的晶振频率为12MHz,试用定时器中断方式编程实现从P1.0引脚...
ORG 0000H LJMP MAIN ORG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#02 MOV TH0,#6 MOV TL0,#6 SETB TR0 SETB ET0 SETB EA MOV R2,#4 SJMP T0ISR:DJNZ R2,T0E MOV R2,#4 CPL P1.0 T0E:RETI END

相似回答