c语言某字符未定义,学习(单片机C语言程序设计实训100例)遇到问题 未定义的标识符 请教解决办法!...

学习(单片机C语言程序设计实训100例)遇到问题 未定义的标识符 请教解决办法!

[复制链接]

单片机C语言程序设计实训100例——基于8051+Proteus仿真(第2版)

04 1602LCD显示仿手机键盘按键字符  用Keil C51编译  出现错误 SHOW_MOBILE_KEY 未定义的标识符

我在书本和网上查找  没有解决   在网上看 程序就是这样的   没有定义 SHOW_MOBILE_KEY

请求给予指导     非常感谢!!!

//-----------------------------------------------------------------

// 主程序

//-----------------------------------------------------------------

void main()

{

INT8U Pre_KeyNo = -1;

IE = 0x82;                         //使能T0中断

TMOD = 0x01;                       //T0工作于模式1(16位模式)

TH0 = - 50000 >> 8;                //定时50ms

TL0 = - 50000 & 0xFF;

Initialize_LCD();                  //液晶初始化

//显示固定信息部分(初始显示ENG>表示输入英文字符序列)

LCD_ShowString(0, 0, "Mobile KeyPad ");

LCD_ShowString(1, 0, "ENG>         ");

while(1)

{   //有键按下则扫描,否则不进行任何处理

if(KeyMatrix_Down()) Keys_Scan();  else continue;

if(KeyNo == 0xFF) continue;

//功能键处理(9[*]:切换英文/数字,11[#]:清除所有输入)

if(KeyNo == 9 || KeyNo == 11)

{  Function_Key_Process(); Beep(); continue;  }

//如果是输入数字则直接显示

if(!ENG_TEL) goto SHOW_MOBILE_KEY;

//如果输入的不是英文字母则继续(英文字符在0~8号键,包括空格)

if(KeyNo < 0 || KeyNo > 8) continue;

//否则输入的是英文字符序列,以下代码将根据是否为同位按键进行相应处理

if(Pre_KeyNo != KeyNo)       //按下新按键-----------------------

{   Pre_KeyNo = KeyNo;       //保存当前按键

Inner_Idx = 1;           //输入英文时内部索引起点为1

}

else           //否则按下的是相同位置按键-----------------------

{   //同位按键时间间隔在50msx30=1.5s内则认为是连续按键

if(tSpan < 31)

{   //连续按键时在键内循环递增字符索引

if(++Inner_Idx == strlen(Keypad_Chars[KeyNo]))

Inner_Idx = 1;

//因为是连续短按,故将每次显示后递增的输入缓冲索引后退一格,

//以便替换此前输入的字符

--Buffer_Index;

} else Inner_Idx = 1;    //否则按键内英文字符索引回归起点索引1

}

tSpan = 0;  TR0 = 1;         //时间间隔归零,计时开始

SHOW_MOBILE_KEY;             //显示按键字符

if(Buffer_Index >= 12) continue; //输入缓冲限制在12个字符以内

//更新输入缓冲字符串并送LCD显示

Input_Buffer[Buffer_Index++] = Keypad_Chars[KeyNo][Inner_Idx];

Input_Buffer[Buffer_Index] = '\0';

LCD_ShowString(1, 4, Input_Buffer);

Beep();                      //输出提示音

while(KeyMatrix_Down());     //等待释放按键

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值