设89C52单片机Fosc=12MHz。试编写一段程序,对定时器T1初始化,使之工作在模式2,产生200us定时, 130

并用查询T1溢出标志的方法,控制P1.1输出周期为2ms的方波。用C语言程序清单编写程序。谢谢哪位好心人帮忙一下,对我很重要,谢谢、... 并用查询T1溢出标志的方法,控制P1.1输出周期为2ms的方波。

用C语言程序清单编写程序。

谢谢哪位好心人帮忙一下, 对我很重要,谢谢、
展开
 我来答
ball648500361
2013-05-13 · TA获得超过606个赞
知道小有建树答主
回答量:270
采纳率:50%
帮助的人:186万
展开全部
楼上用的是查询法,我来个中断函数的 呵呵
#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);//等待中断
}
追问
TMOD难道不等于0X08么?
追答

你这是计时,不是计数,所以不用0x80    。看看下面这个寄存器定义就知道了

                                                                                              步行者===电子单片机碳

                                                                                  qq:1320249827

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2013-05-26 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
seuzhouww
2013-05-13 · TA获得超过1386个赞
知道小有建树答主
回答量:658
采纳率:0%
帮助的人:300万
展开全部
#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);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2018-05-19
知道答主
回答量:30
采纳率:33%
帮助的人:3.7万
展开全部
各个版本都有啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式