单片机简易计算器的设计要求用2*8矩阵键盘,程序如下,求大神把下面4*4键盘程序改成2*8的,可追加分数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机简易计算器的设计要求用2*8矩阵键盘,程序如下,求大神把下面4*4键盘程序改成2*8的,可追加分数相关的知识,希望对你有一定的参考价值。
/***键值转化为键盘上按键值函数******/
uchar Keyscan(void)
uchar i, j, temp, Buffer[4] = 0xef, 0xdf, 0xbf, 0x7f;
for(j = 0; j < 4; j++)
//循环四次
P2 = Buffer[j]; //在P1高四位分别输出一个低电平
temp = 0x01; //计划先判断P1.0位
for(i = 0; i < 4; i++)
//循环四次
if(!(P2 & temp)) //从P1低四位,截取1位
return (i + j * 4); //返回取得的按键值
temp <<= 1; //判断的位,左移一位
return 16; //判断结束,没有键按下,返回16
char translate(int keycode)
switch(keycode)
case 0:
return '7';
break;
case 1:
return '4';
break;
case 2:
return '1';
break;
case 3:
return 'c';
break;
case 4:
return '8';
break;
case 5:
return '5';
break;
case 6:
return '2';
break;
case 7:
return '0';
break;
case 8:
return '9';
break;
case 9:
return '6';
break;
case 10:
return '3';
break;
case 11:
return '=';
break;
case 12:
return '/';
break;
case 13:
return '*';
break;
case 14:
return '-';
break;
case 15:
return '+';
break;
//case 16:
//return ' ';
//break;
课程设计的题目是单片机简易计算器,要求实现100以内的,加减乘除运算,用2*8矩阵键盘,用LCD或LED显示,现在遇到点问题,仿真程序里的是4*4键盘,而试验箱上的是2*8的矩阵键盘,需要做一下改动,多谢大家的帮助,如果程序适合的话,我会再多追加100分的
uchar Keyscan(void)
uchar i, j, temp, Buffer[4] = 0xef, 0xdf, 0xbf, 0x7f;
for(j = 0; j < 4; j++) //循环四次
P2 = Buffer[j]; //在P1高四位分别输出一个低电平
temp = 0x01; //计划先判断P1.0位
for(i = 0; i < 4; i++) //循环四次
if(!(P2 & temp)) //从P1低四位,截取1位
return (i + j * 4); //返回取得的按键值
temp <<= 1; //判断的位,左移一位
return 16; //判断结束,没有键按下,返回16
程序,用了一个 8 位的并口:P1,或 P2,都行。
改成2*8的,就要使用两个接口了,用什么?楼主应该指定出来。追问
这是我们的实验仿真图,实现的是加减乘除100以内的运算,这个仿真程序用的是4x4的键盘,P1口连接LCD,P2口连接键盘P3.4-3.6连接LCD上的相应键,现在要求是2x8的,要把4x4的改一下,你能不能看看怎么改,需要更详细的信息的话,我会贴上实验板上的键盘图的,多谢帮忙了,如果程序没问题的话,我会再给100分的,
前面,我不是已经说了:使用什么接口?楼主应该指定出来。
你要用实验箱,就应该把实验箱中,可以利用的引脚公布出来。
别人也不知道你的实验箱的情况,谁知道能改不能改呀 !
既然想用实验箱,你还显示仿真电路干什么 ?
www.baidu.com/p/schoolboyzhang?from=super在这个页面的相册里有,不好意思,相片太大,上传不上去,只能在相册里了
追答看到了实验箱的外形图片,但不知你的电路是怎么接的?
你说了:《P1口连接LCD,P2口连接键盘P3.4-3.6连接LCD上的相应键,现在要求是2x8的,》
那么,这2x8的,共十条线,你都连接到那儿啦?
这个实验箱,它既然是2*8的键盘,它,难道没有自己的配套程序么?
仔细找找,应该有的。
用它自己的,比修改其它的,要简单的多。
关键是没有配套程序,都要自己写的,这个是我们的完整程序http://hi.baidu.com/schoolboyzhang
第一篇单片机就是,能不能帮着改一改?
硬件,只有照片,没有电路图。
没有电路图,就没有办法编写程序。
那么,还是用仿真的吧,就别弄真的了。
电路图我们就是按照仿真图连线的,就是P1口连接LCD,P2口连接键盘,P3.4-3.6连接RS,RW,E,具体的连线还在那个图册里www.baidu.com/p/schoolboyzhang?from=super键盘还有两个独立的接口怎么连不是很明白
追答键盘的电路图,只有你自己,才能弄出来。你可以用万用表,测试一下。
别人没有这个硬件,谁能知道应该怎么接线?
呵呵,你的问题,不应该是编程。
而是请教:这个电路板,谁有电路图,如何与单片机连接。
你连电路都弄说不清楚,就让大家编程 !
没有明确的电路,谁能编出来程序?
即使是编出来了,你以为,就能用吗?
对,我姐课程设计的题目是单片机简易计算器,要求实现100以内的,加减乘除运算,用2*8矩阵键盘,用LCD或LED显示,现在遇到点问题,仿真程序里的是4*4键盘,而试验箱上的是2*8的矩阵键盘,需要做一下改动。
Proteus仿真4X4矩阵按键扫描组成的简易加法器
【Proteus仿真】4X4矩阵按键扫描组成的简易加法器
- 相关篇《51单片机8x9矩阵键盘+数码管+74HC595+Proteus仿真》
- 《51单片机8x8矩阵键盘+数码管+74HC595+Proteus仿真》
- 《51单片机4x4矩阵键盘扫描+数码管显示(三)》
- 本实验基于Proteus VSM Studio仿真
VSM Studio程序代码
/* Main.c file generated by New Project wizard
*简易加法计算器
* Created: 周二 6月 14 2022
* Processor: AT89C52
* Compiler: Keil for 8051
*/
以上是关于单片机简易计算器的设计要求用2*8矩阵键盘,程序如下,求大神把下面4*4键盘程序改成2*8的,可追加分数的主要内容,如果未能解决你的问题,请参考以下文章
51单片机,用c语言,如何用矩阵键盘为一个变量char a赋值?已设计出一个函数,使得每按一个矩阵
基于51单片机LCD1602矩阵键盘电子密码锁proteus仿真设计