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

(接上面),再暗0.5S。... (接上面),再暗0.5S。 展开
 我来答
c3344c
推荐于2018-04-02 · TA获得超过2418个赞
知道小有建树答主
回答量:966
采纳率:57%
帮助的人:680万
展开全部
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;
}
一万光年MEGn0
2013-03-28 · TA获得超过3712个赞
知道大有可为答主
回答量:4602
采纳率:67%
帮助的人:1067万
展开全部
设置定时器定时50毫秒中断一次,然后对中断计数,计数10次为500毫秒,每计数500毫秒把发光二极管取反后,再把计数次数清零。就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式