设89C52单片机Fosc=12MHz。试编写一段程序,对定时器T1初始化,使之工作在模式2,产生200us定时, 130
并用查询T1溢出标志的方法,控制P1.1输出周期为2ms的方波。用C语言程序清单编写程序。谢谢哪位好心人帮忙一下,对我很重要,谢谢、...
并用查询T1溢出标志的方法,控制P1.1输出周期为2ms的方波。
用C语言程序清单编写程序。
谢谢哪位好心人帮忙一下, 对我很重要,谢谢、 展开
用C语言程序清单编写程序。
谢谢哪位好心人帮忙一下, 对我很重要,谢谢、 展开
展开全部
楼上用的是查询法,我来个中断函数的 呵呵
#include<reg52.h>
sbit a0=P1^1;//端口定义
int count=0;//计时变量初始化
/*******************************T1中断服务函数*****************/
void T0Int() interrupt 3 using 0 //
{
count++;//200us 加一次
if(count==100)//一百次之后,取反输出端口
{
count=0;//清零计数值
a0=~a0;//端口取反
}
}
void main()
{
TMOD=0X02; //设置T0工作方式与为方式2
TH0=256-200; //设置高位重装的初值
TL0=256-200; //设置低位计数值
TR1=1; //启动定时器0
ET1=1;
EA=1; //开总中断
while(1);//等待中断
}
#include<reg52.h>
sbit a0=P1^1;//端口定义
int count=0;//计时变量初始化
/*******************************T1中断服务函数*****************/
void T0Int() interrupt 3 using 0 //
{
count++;//200us 加一次
if(count==100)//一百次之后,取反输出端口
{
count=0;//清零计数值
a0=~a0;//端口取反
}
}
void main()
{
TMOD=0X02; //设置T0工作方式与为方式2
TH0=256-200; //设置高位重装的初值
TL0=256-200; //设置低位计数值
TR1=1; //启动定时器0
ET1=1;
EA=1; //开总中断
while(1);//等待中断
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
;
ORG 0000H
MOV TMOD, #02H
MOV TH0, #56
MOV TL0, #56
SETB TR0
MOV R7, #5
JNB TF0, $
CLR TF0
DJNZ R7, $ - 5
CPL P1.2
JMP $ - 11
END
ORG 0000H
MOV TMOD, #02H
MOV TH0, #56
MOV TL0, #56
SETB TR0
MOV R7, #5
JNB TF0, $
CLR TF0
DJNZ R7, $ - 5
CPL P1.2
JMP $ - 11
END
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <reg51.h>
sbit P11=P1^1;
main()
{
unsigned char us200=0;
bit bb;
TMOD=0x20;
TH1=256-200;
TR1=1;
do
{
while(TF1==0);
TF1=0;
us200++;
if(us200>4)
{
us200=0;
P11=bb;
bb=!bb;
}
}
while(1);
}
sbit P11=P1^1;
main()
{
unsigned char us200=0;
bit bb;
TMOD=0x20;
TH1=256-200;
TR1=1;
do
{
while(TF1==0);
TF1=0;
us200++;
if(us200>4)
{
us200=0;
P11=bb;
bb=!bb;
}
}
while(1);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询