YangYu007254 2022-11-04 18:37 采纳率: 33.3%
浏览 21
已结题

51单片机通过矩阵键盘完成数值的输入,已经学会以为了,怎么变成多位

51单片机通过矩阵键盘完成数值的输入,已经学会以为了,怎么变成多位
#include<reg52.h>
#include<reg51.h>

#define uint unsigned int

#define uchar unsigned char

sbit duanx = P2 ^ 6;

sbit weix = P2 ^ 7;

uchar key, k_tmp, view;

uchar show[] =
{
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f,
0x77,
0x7c,
0x39,
0x5e,
0x79,
0x71,
0x40
};

void keyscan(void)

{

key = 16;

P3 = 0xf0;  k_tmp = P3 & 0xf0;

if (k_tmp == 0x70) key = 0;

else if (k_tmp == 0xb0) key = 1;

else if (k_tmp == 0xd0) key = 2;

else if (k_tmp == 0xe0) key = 3;

P3 = 0x0f;  k_tmp = P3 & 0x0f;

if (k_tmp == 0x07) key = key + 12;

else if (k_tmp == 0x0b) key = key + 8;

else if (k_tmp == 0x0d) key = key + 4;

else if (k_tmp == 0x0e) key = key + 0;


view = show[key];

}

void display(uchar view)

{

P0 = view; duanx = 1; duanx = 0;

P0 = 0xfe; weix = 1;  weix = 0;

}

main()

{

while (1) {

    keyscan();

    display(view);

}

}

  • 写回答

1条回答 默认 最新

  • qllaoda 2022-11-04 19:14
    关注

    遇到问题自己先多想一想

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么