这是源程序,跟着视频教程上写的
#include<reg52.h>
#include <intrins.h>//函数声明
#define uchar unsigned char
#define uint unsigned int
//宏定义
void init()
uchar temp,t0; //用于流水灯的循环移位,给P1口赋值
void main()
{
init();//调用函数前需要在主函数中声明一下
while(1)
{
}
}
void init()//初始化函数
{
temp=0xfe;
P1=temp;//初始化流水灯
//初始化定时器
TMOD=0x11;//将两个定时器同时设置为方式1
TH0=(65536-50000)/256;//对高八位赋值
TL0=(65536-50000)%256;//对低八位赋值
EA=1;//把总中断打开
ET0=1;//定时器中断打开
TR0=1;//启动定时器
}
//中断函数程序
void timer0() interrupt 1
( //写中断函数首先要对函数
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(t0==10)
{
t0=1; //对t0进行清零
temp=_crol_(temp,1);//移位
P1=temp;
}
)
第一个是中断函数的声明语句后面缺少分号
第二个是中断函数的方括号被你打错了
改完的程序如下,编译没问题
另外,主循环内如果没有语句,可以不用方括号的,直接在后面加个分号即可
节约行数,看着直观些,若满意请记得采纳下,谢谢!
#include<reg52.h>
#include <intrins.h>//函数声明
#define uchar unsigned char
#define uint unsigned int
//宏定义
void init();
uchar temp,t0; //用于流水灯的循环移位,给P1口赋值
void main()
{
init();//调用函数前需要在主函数中声明一下
while(1);
}
void init()//初始化函数
{
temp=0xfe;
P1=temp; //初始化流水灯
//初始化定时器
TMOD=0x11; //将两个定时器同时设置为方式1
TH0=(65536-50000)/256; //对高八位赋值
TL0=(65536-50000)%256; //对低八位赋值
EA=1; //把总中断打开
ET0=1; //定时器中断打开
TR0=1; //启动定时器
}
//中断函数程序
void timer0() interrupt 1
{ //写中断函数首先要对函数
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t0++;
if(t0==10)
{
t0=1; //对t0进行清零
temp=_crol_(temp,1);//移位
P1=temp;
}
}