单片机C语言错误411什么意思,单片机c语言错误,提示为FMQ.C(12): error C141: syntax error near 'void', expected ';'...

满意答案

00e27ab806e4881f8254fe7ae8741834.png

saga9078

推荐于 2018.05.09

00e27ab806e4881f8254fe7ae8741834.png

采纳率:50%    等级:13

已帮助:6668人

少了一个分号;修改如下:

#include 

#include 

#define uint unsigned int

#define uchar unsigned char

sbit s=P1^0; //定义方波输出口

/**************************************************************/

void Delay_1ms(uint x)

{

uint i;

uchar j;

for(i = 0; i 

}

/**************************************************************

***************************************************************/

uchar Keyscan(void)

{

uchar i, temp, Buffer[4] = {0xef, 0xdf, 0xbf, 0x7f};

if(P0!=0xff || P2!=0xff)

{

for(i = 0; i 

{ //循环8次

if(!(P0 & temp)) //从P0截取1位

return (i ); //返回取得的按键值

temp <<= 1; //判断的位,左移一位

}

for(i = 0; i 

{ //循环8次

if(!(P2 & temp)) //从P1截取1位

return (i+8 ); //返回取得的按键值

temp <<= 1; //判断的位,左移一位

}

}

return 16; //判断结束,没有键按下,返回16

}

void Display(uchar k)

{

uchar i;

switch(k)

{

case 0:for(i=800;i<0;i--){ s=~s;Delay_1ms(1);}break;

case 1:for(i=400;i<0;i--){ s=~s;Delay_1ms(2);}break;

case 2:for(i=200;i<0;i--){ s=~s;Delay_1ms(4);}break;

case 3:for(i=100;i<0;i--){ s=~s;Delay_1ms(8);}break;

case 4:for(i=50;i<0;i--){ s=~s;Delay_1ms(16);}break;

case 5:for(i=25;i<0;i--){ s=~s;Delay_1ms(32);}break;

case 6:for(i=5;i<0;i--){ s=~s;Delay_1ms(160);}break;

case 7:for(i=160;i<0;i--){ s=~s;Delay_1ms(5);}break;

case 8:for(i=32;i<0;i--){ s=~s;Delay_1ms(25);}break;

case 9:for(i=16;i<0;i--){ s=~s;Delay_1ms(50);}break;

case 10:for(i=8;i<0;i--){ s=~s;Delay_1ms(100);}break;

case 11:for(i=4;i<0;i--){ s=~s;Delay_1ms(200);}break;

case 12:for(i=2;i<0;i--){ s=~s;Delay_1ms(100);}break;

case 13:for(i=10;i<0;i--){ s=~s;Delay_1ms(80);}break;

case 14:for(i=20;i<0;i--){ s=~s;Delay_1ms(40);}break;

case 15:for(i=40;i<0;i--){ s=~s;Delay_1ms(20);}break;

default:s=1;

}

}

void Main(void)

{

uchar Key_Value = 16, Key_Temp1, Key_Temp2; //两次读出的键值

while(1)

{

//---------以下读入按键、消抖、等待按键释放

P1 = 0xff;

Key_Temp1 = Keyscan(); //先读入按键

if(Key_Temp1 != 16)

{ //如果有键按下

Delay_1ms(10); //延时一下

Key_Temp2 = Keyscan(); //再读一次按键

if (Key_Temp1 == Key_Temp2)

{//必须是两次相等

Key_Value = Key_Temp1; //才保存下来,这就是消除抖动

while(Keyscan() 

{Display(Key_Value);} //蜂鸣器鸣叫

}

}

Display(16); //不发声

}

}

12分享举报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值