MCS-51单片机的系统时钟频率:f=12MHz,利用定时器T0,采用工作方式2,T0以中断方式工作,

试编写又P1.0输出如下的连续脉冲波形的程序。上升沿延时50us,下降沿延时350us,上升沿延时50us,下降沿延时350us…………(C语言版)哪位高手给指点指点……... 试编写又P1.0输出如下的连续脉冲波形的程序。上升沿延时50us,下降沿延时350us,上升沿延时50us,下降沿延时350us…………(C语言版)哪位高手给指点指点……小弟在这谢了 展开
 我来答
随遇而安云凡
2011-12-13 · TA获得超过2537个赞
知道小有建树答主
回答量:711
采纳率:0%
帮助的人:551万
展开全部
楼主:
1,你首先要知道:T0,采用工作方式2最大延迟时间为256us.
2,你可以通过计算公式:初值=256-t*F/12。t为定时时间,F就是你选用的晶体频率。
3,因此,你先编写一个50us的T0中断函数,350US通过设置一个全局的变量,让定时器T0产生7次中断后清0,这样你的两个延时都兼顾了。
4,你在MAIN函数初始化时,要将工作方式为你设置的方式。
如有其它问题,你go on...........
深圳市兴威帆电子技术有限公司
2020-04-21 广告
实时时钟模块可以找深圳市兴威帆电子技术有限公司,本公司具有经验丰富的开发工程师和应用工程师,致力于公司自主知识产权IC等产品的研发和技术支持,已开发出多款成熟的产品并大量生产、销售及出口,我公司高精度实时时钟模块产品获得多项国家专利,打破了... 点击进入详情页
本回答由深圳市兴威帆电子技术有限公司提供
duyin2011
2011-12-13 · TA获得超过2400个赞
知道大有可为答主
回答量:1723
采纳率:100%
帮助的人:669万
展开全部
#include<reg51.h>
sbit P1_0=P1^0;
unsigned char i;
main()
{
i=0;
TMOD=0x02; //定时器0方式1
EA=1; //允许中断
ET0=1; //TI中断
TR0=1; //TI计数
while(1);
}

void timer_int(void) interrupt 1
{

TH0=199;//重新装入,考虑程序延时问题,大约6-7us
if(i==1)P1_0=0;
else if(i==7)
{
i=0;
P1_0=1;
}
i++; //方波实现
}
更多追问追答
追问
延时是那一句,能给说说嘛……
追答
因为下面执行的语句
if(i==1)P1_0=0;
else if(i==7)
{
i=0;
P1_0=1;
}
i++;

是需要时间的,大约是6-7us,是不能忽略的,如果是ms级的方波是可以忽略的,可以用
理论方式TH0=206;但稍微有误差的
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sd900178
2011-12-13
知道答主
回答量:29
采纳率:0%
帮助的人:10.9万
展开全部
工作方式1不行么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式