已知单片机的晶振频率6MHZ,试利用定时器T1产生的中断,使P1.2引脚输出周期为2S
答案:2 悬赏:60 手机版
解决时间 2021-01-17 06:03
- 提问者网友:做自己de王妃
- 2021-01-16 14:07
已知单片机的晶振频率6MHZ,试利用定时器T1产生的中断,使P1.2引脚输出周期为2S
最佳答案
- 五星知识达人网友:山君与见山
- 2021-01-16 15:10
基本思路为50ms*40=2s定时
#include
sbit out=P1^2;
void main
{
TOMD = 0x10; //配置定时器1工作于方式一
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
ET1 = 1; //开定时器0中断
EA = 1; //开总中断
TR1 = 1; //启动定时器0
int count;
while(1);
}
void Timer1_int() interrupt 1
{
///重新装初值
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
count++;
if (count==40)
{
count=0;
out=!out;
}
}
#include
sbit out=P1^2;
void main
{
TOMD = 0x10; //配置定时器1工作于方式一
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
ET1 = 1; //开定时器0中断
EA = 1; //开总中断
TR1 = 1; //启动定时器0
int count;
while(1);
}
void Timer1_int() interrupt 1
{
///重新装初值
TH1 = (65536-50000)/256; //高八位装入初值
TL1 = (65536-50000)%256; //低八位装入初值
count++;
if (count==40)
{
count=0;
out=!out;
}
}
全部回答
- 1楼网友:第四晚心情
- 2021-01-16 15:40
晶振频率6MHz,一个指令周期为十二个机器周期,所以一个指令周期0.5us,
2S的方波:就是1S要翻转P1.2
定时器最大65536,65536*.05=32768,为了方便设置定时25ms,
初值65536-50000=15536=3CB0
然后中断一次进行计数值加一,40次cpl p1.2
40*25ms=1000ms=1S
tmod=01H
th0=3C
tl0=B0
2S的方波:就是1S要翻转P1.2
定时器最大65536,65536*.05=32768,为了方便设置定时25ms,
初值65536-50000=15536=3CB0
然后中断一次进行计数值加一,40次cpl p1.2
40*25ms=1000ms=1S
tmod=01H
th0=3C
tl0=B0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯