单片机编程

采用定时/计数器(T0)对外部脉冲进行计数,每计数100个脉冲后,T0转为定时工作方式,定时1ms后,有转为计数方式,如此循环不止。假定MCS-51单片机的晶振频率为6MHZ,计数使用方式2实现,定时使用方式一实现,要求编写出程序。
能不能用汇编编程啊?

/************** 数码管时钟的设计 *******************
/* MCU: AT89s52
/* MCU-crystal: 6M
/* Version: 0.1
/* Last Updata: 2009-4-28
/* Author:
/* Description: 如题
/****************************************************/

#include <reg52.h>

unsigned char flag=0;//0标记为计数状态,1为定时状态
unsigned char sign=0;//0标记为定时时间未到,1标记为定时时间到

main()
{
TMOD=0x06;//定时器0,方式2,计数模式
TL0=0;//赋0初值
IT0=1;//外部脉冲负跳变有效
EA=1;
ET0=1;
TR0=1;

while(1)
{
if(flag==0&&TL0==100)
{
EA=0;//关总中断
TMOD=0x01;//方式1
TH0=0xfc;//定时1ms
TL0=0x17;
EA=1;//开
flag=1;
}
if(sign==1)
{
EA=0;
sign=0;
TMOD=0x06;
TL0=0;
flag=0;
EA=1;
}
}

}
void timer0()interrupt 1
{
if(flag==1)sign=1;
}
温馨提示:答案为网友推荐,仅供参考