求助求助求助,我这个模块是按键模块,四个按键对应四个功能,为什么编出来之后四个函数都调用不了?求解答

weiweiwei_414 2022-06-04 20:41:12

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit K1 = P1^1;  //启停
sbit K2 = P1^2;  //清零
sbit K3 = P1^3;     //加
sbit K4 = P1^4;     //减
sbit IN1 = P2^0;
sbit IN2 = P2^1;
sbit ENA = P1^5;
sbit IN3 = P2^2;
sbit IN4 = P2^3;
sbit ENB = P1^6;  //定义单片机的变量

uchar keyval;
uint group;     //当前组包装产品个数
uint day;    //组当前包装个数,天组数
uint number; // 每包装一组的数量

void delay_ms(uint z)
{
 uint i,j;
  for(i=z;i>0;i--)
   for(j=110;j>0;j--);  //延时1ms的函数
}
void key_scan()
{
  if((P1&0xff)!=0xff)
  {
    delay_ms(10);
    if(K1==0)
    keyval = 1;
    if(K2==0)
    keyval = 2;
    if(K3==0);
    keyval = 3;
    if(K4==0)
    keyval = 4;
  }
}
void start_stop()  //启动/停止
{
  IN2 = !IN2;
  IN4 = !IN4;
}
void add()           //加1
{
  number = number+1;
  delay_ms(1);
}
void subtract()       //减1
{
  number = number-1;
  delay_ms(1);
}
void zero()           //清0
{
  group = 0;
  delay_ms(1);
  day = 0;


void main()  //主函数

  keyval = 0;
  while(1)
  {
      key_scan(); 
      switch(keyval)
      {
        case 1:start_stop();
          break;
        case 2:add();
          break;
        case 3:subtract();
          break;
        case 4:zero();
          break;
      }
  }
}

...全文
165 2 打赏 收藏 举报
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
冰山76 06-10
有,在全局变量中定义了,刚才没注意,不是这个问题
  • 打赏
  • 举报
回复
冰山76 06-10
这是照抄别人的程序吧?主函数中调用函数无返回值,你判断的值从何而来
  • 打赏
  • 举报
回复
相关推荐
发帖
单片机/工控

2.7w+

社区成员

硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
帖子事件
创建了帖子
2022-06-04 20:41
社区公告
暂无公告