请问如何使用LCD1602与51单片机和外接简易键盘实现退格删除和数字的写入?

请问如何使用LCD1602与51单片机和外接简易键盘实现退格删除和数字的写入?,第1张

方法一,LCD1602在显示数字时,就是写入字符,在写字符时,通常是要调用一个写字符的子函数,并带有X坐标参数,每写入一个字符,X坐标加1,就会从左向右显示字符了。

方法二,如果是新写入的字符在最右边,每写入一个要向左移动,就稍麻烦一点,用采用一个字符串,每按一个数字,字符串的最后加一个新按的数字,字符串拦山族并唯拿向前移一位,然后显示一次字符串。

产生退格删除的效果,简弊前方法一,在前一个输入的字符X坐标位置写一个空格,就把前一个字符清除掉了。

方法二,把字符串向右移一位,把最后输入的字符移出字符串,再显示一次字符串。

用0x00替换原来弯姿输入的字符。

比如

a=1

b=2

c=3

d=4

e=5

变量x=a*10000+b*1000+c*100+d*10+e

具体代码你就自漏拿己写吧返闹搭

#include <stdio.h>

#include <conio.h> /*conio库,调用无回显getch()就是输入后不显示*/

#include <iostream>

using namespace std

int main ()

{

int j=0

int i

char code[10]

char s

for (i=3i!=0--i)

{

j=0

printf("你还有%d次机会,请输入密码:\n",i)

cout<<"888888"

cout<<"\桥明配b\b\b\b\b\b"

while ((s=getch())!='\r')

{

code[j]=s

if( s == '\b' ) //遇到退格键可以删除前一个输入敏指

{

printf("\b8\b")

code[--j]=code[--j]

}

else

{

//putchar('*') /*输入的信息将以*号输出*/

cout<<"F"

}

code[++j]='\0'

}

if (code[0]=='1'&&code[1]=='2'&&code[2]=='3'&&code[3]=='4'&&code[4]=='5'&&code[5]=='6'&&code[6]=='\0')

{

printf("\n密码正确\n")

break

}

/槐迟/system("cls")

}

return 0

}

不好意思,楼主,最近没怎么上百度,这个程序应该符合你的条件的,有什么不懂的可以找我呢,单片机我不知道呢,不过这个程序是符合你的条件的,HI我吧


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12487501.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存