#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
void delay(uint z);
uchar temp , a, num;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71}
void main()
{
num=0; //赋值初始化设置
a=0; //赋值初始化设置
temp=0xfe;
P1=temp;
wela=1;
TMOD=0x01; //定时器开始设置
TH0=(6553-5000)/256;
THL=(65536-5000)%256
EA=1;
ET0=1;
TRO=1; //共5不,全部设置完成后定时器0开始工作
P0=0xc0;
wela=0;
dula=1;
P0=table[0];
dula=0;
while(1)
{
delay(1000); //赋值1000,延时1秒钟
temp=_crol_(temp,1); //循环左移
P1=temp;
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); //两个for 共延时1毫秒
}
void timer0() interrupt 1 //定时器0函数 timer0为这个定时器0函数的名称 interrupt
//interrupt 表示为中断服务程序,
//0为外部中断0,1位定时计数器1;2为外部中断1;3为定时计数器1;4为串行口中断标志
{
TH0=(65536-5000)/256;
THL=(65536-5000)%256;
a++; //每执行一次定时函数,即每执行一次50毫秒,aa自加1次。
if(a==40)
{
a=0;
num++;
if(num==16)
num=0;
dula=1;
P0=table[num];
dula=0;
}
}
程序报错,未找到原因,求解!!![img][/img] |