本人刚学
单片机,学到中断时停住了,很困难,下面这个程序是用计数/定时器T0定时1秒,但是运行时程序错误,不知哪里错了,请各位帮忙看下。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint num,tt;
uchar code table[]={
0xFC,0x60,0xDA,0xF2,
0x66,0xB6,0xBE,0xE0,
0xFE,0xF6,0xEE,0xFE,
0x9C,0xFC,0x8E
};
void delay(uint);
void main()
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
P0=0x00;
while(1)
{
if(tt==20)
{
tt=0;
num++;
if(num==16)
num=0;
P2=table[num];
delay(800);
}
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}
void exter0 () interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
原来是我把两个程序一起跑了,所以提示错误了。
一周热门 更多>