void delay1s()
{
unsigned char i;
for(i=0;i<0x14;i++) //设置20次循环次数
{
TH1=0x3c; //设置定时器初值为3CB0H
TL1=0xb0;
TR1=1; //启动T1
while(!TF1); //查询计数是否溢出,即定时50ms时间到,TF1=1
TF1=0; //50ms定时时间到,将T1溢出标志位TF1清零
}
}
void main() //主函数
{
unsigned char i,w;
TMOD=0x10; //设置T1为工作方式1
while(1) {
w=0x01; //显示码初值为01H
for(i=0;i<8;i++)
{
P1=~w; //w取反后送P1口,点亮相应LED灯
w<<=1; //点亮灯的位置移动
delay1s(); //调用1秒延时函数
}
}
}
晶振为12Mhz。16位计时器
请问当晶振为11.0592Mhz时,13位计时器跟8位计时器的定时器初值应该为多少?
单片机计时器
答案:1 悬赏:20 手机版
解决时间 2021-05-03 09:10
- 提问者网友:鐵馬踏冰河
- 2021-05-02 19:47
最佳答案
- 五星知识达人网友:英雄的欲望
- 2021-05-02 20:45
51 中定时器是一种中断函数
应该是void delay1s() interrupt 1
如果要定时50ms,那应该设为:TH1=(65533-45872)/256;
TL1=(65536-45872)%256;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯