标题: 用按键和定时器中断来控制,单片机程序编译错误,帮我看一看 [打印本页]

作者: 开心了    时间: 2018-10-19 20:28
标题: 用按键和定时器中断来控制,单片机程序编译错误,帮我看一看
程序如下:
  1. #include<at89x52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned uint
  4. sbit k1=P3^2;
  5. uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

  6. void delay10ms(uchar a)
  7. {
  8.     uchar b,c;
  9.     for(c=1;c>0;c--)
  10.         for(b=38;b>0;b--)
  11.             for(a=130;a>0;a--);
  12. }

  13. void keyscan()
  14. {
  15. uint flag=0;
  16. if(k2==0X00)
  17. {
  18.   delay10ms(1);
  19.   if(k2==0X00)
  20.    {
  21.      P2=0xFF;
  22.      flag=!flag;
  23.    }
  24. }
  25. }
  26. void main()
  27. {
  28.   TMOD=0x02;
  29.   TH0=0xf6;
  30.   TL0=0xf6;
  31.   ET0=1;EA=1;
  32.   TR0=1;
  33.   while(1);
  34. }
  35. void time() interrupt 1 using 0
  36. {
  37.   uint flag=0;
  38.   uchar temp;
  39.   uchar i;
  40.   if(flag==1)
  41.   {
  42.     temp=0x80;
  43.     for(i=0;i<4;i++)
  44.     {
  45.      P0=tab[i+1];
  46.      P2=~temp;
  47.      temp=temp>>1;
  48.      P2=0xff;
  49.     }
  50.   }

  51. }
复制代码


11111.jpg (80.02 KB, 下载次数: 18)

编译结果

编译结果

作者: 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