采用定时器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式,定时1ms后 又转为

采用定时器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式,定时1ms后又转为计数方式,如此循环不止。51单片机晶振为6MHZ,计数使用方式2实现,定时... 采用定时器T0对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式,定时1ms后 又转为计数方式,如此循环不止。51单片机晶振为6MHZ,计数使用方式2实现,定时使用方式1实现,编程 展开
 我来答
catastroiphone
推荐于2017-05-21
知道答主
回答量:15
采纳率:100%
帮助的人:2.9万
展开全部
#include <reg51.h>

sbit key = P3^2;
unsigned char count = 0;

void Init();
void delay(unsigned int ms);

void main()
{
while(1)
{
void Init();
if(count == 100)
{
TMOD = 0x01;// 0110 计数,方式2; dingshi:0001 定时,方式1
TH0 = 0xFE;
TL0 = 0x0C; //jishu 1ms
TR0 = 1;//打开T0
ET0 = 1;
EA = 1;
count = 0;
}
}
}

void Init()
{
TMOD = 0x06;// 0110 计数,方式2; dingshi:0001 定时,方式1

IT0 = 1;//下降沿触发
EX0 = 1;

EA = 1;
}

void Interr0() interrupt 0
{
delay(1);
if(key == 0)
count ++;
}

void delay(unsigned int ms) //延时50us误差 0us
{
unsigned char a,b;
for(;ms>0;ms--)
{
for(b=1;b>0;b--)
for(a=22;a>0;a--);
}
}
目前也接触到这方面的内容,还望指正!
追问
我们学的是汇编语言
追答
高大上,不懂。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式