标题:
用按键和定时器中断来控制,单片机程序编译错误,帮我看一看
[打印本页]
作者:
开心了
时间:
2018-10-19 20:28
标题:
用按键和定时器中断来控制,单片机程序编译错误,帮我看一看
程序如下:
#include<at89x52.h>
#define uchar unsigned char
#define uint unsigned uint
sbit k1=P3^2;
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delay10ms(uchar a)
{
uchar b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
}
void keyscan()
{
uint flag=0;
if(k2==0X00)
{
delay10ms(1);
if(k2==0X00)
{
P2=0xFF;
flag=!flag;
}
}
}
void main()
{
TMOD=0x02;
TH0=0xf6;
TL0=0xf6;
ET0=1;EA=1;
TR0=1;
while(1);
}
void time() interrupt 1 using 0
{
uint flag=0;
uchar temp;
uchar i;
if(flag==1)
{
temp=0x80;
for(i=0;i<4;i++)
{
P0=tab[i+1];
P2=~temp;
temp=temp>>1;
P2=0xff;
}
}
}
复制代码
11111.jpg
(80.02 KB, 下载次数: 18)
下载附件
2018-10-19 20:28 上传
编译结果
作者:
DKC_LIN_123
时间:
2018-10-19 20:44
第十八行中的K2 定义了吗?
作者:
小猫猫爱吃鱼
时间:
2018-10-19 21:10
#define uchar unsigned char
#define uint unsigned
uint
红字这里错了,去掉 u
作者:
开心了
时间:
2018-10-19 21:16
谢谢我大意了,第三行#define uint unsigned int写成#define uint unsiigned uint,还有上面k1写成下面k2了。
作者:
wxxl
时间:
2018-10-19 21:16
flag 应该定义为全局变量,K2的定义好象也有问题不细看了,
作者:
小浪浪
时间:
2018-10-19 21:43
第三行#define uint unsigned uint 写错了,这个应该是#define uint unsigned int
第四行sbit K1=P3^2; 按键函数里面你却用了K2,不出意外你应该是个初学者。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1