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日

悬赏问题

  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求
  • ¥20 antv g6 折线边如何变为钝角
  • ¥30 如何在Matlab或Python中 设置饼图的高度
  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别