单片机C语言用定时器1工作方式1怎么写
#include<reg52.h>#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0xc0...
#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};uint i,num;void main(){ i=0; num=0; TMOD=0x10;//设置定时器1为工作方式1 EA=1; //开总中断 ET1=1; //开定时器1中断 TR1=1; //启动定时器0 TH0=(65536-50000)/256; TL0=(65536-50000)%256; P2=0xFE; P0=0xc0; while(1) { if(i==10) { P2=0xff; } if(i==20) { i=0; P2=0xfe; num++; if(num==10) num=0; P0=table[num]; } }}
void time() interrupt 1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; i++;} 展开
void time() interrupt 1{ TH0=(65536-50000)/256; TL0=(65536-50000)%256; i++;} 展开
3个回答
展开全部
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uint i,num;
void main()
{
i=0;
num=0;
TMOD=0x10;//设置定时器1为工作方式1 【查看TMOD每一位的含义,你就知道怎么设置了】
EA=1; //开总中断
ET1=1; //开定时器1中断
TR1=1; //启动定时器0
TH0=(65536-50000)/256; //定时器0计数初值 高位
TL0=(65536-50000)%256; //定时器0计数初值 低位
P2=0xFE;
P0=0xc0;
while(1)
{
if(i==10)
{
P2=0xff;
}
if(i==20)
{
i=0;
P2=0xfe;
num++;
if(num==10) num=0;
P0=table[num];
}
}
}
void time() interrupt 1
{
TH0=(65536-50000)/256; //计数初值重载
TL0=(65536-50000)%256;
i++;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询