当前位置: 首页 > backend >正文

【51单片机6位数码管显示矩阵键值至右向左自左向右】2022-11-29

缘由51单片机实训实验报告-编程语言-CSDN问答

使用矩阵键盘模拟数字输入(s1-s9分别对应数字1-9,s10对应数字0)
显示于数码显示管上,最多显示6个数据,第一次按键的数字显示在最左侧,随
着后续键按下,前序数字随之右移,最新的数字显示在最左侧。(使用c语言)

#include "reg52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77
,0x7c,0x39,0x5e,0x79,0x71}; //共阴0~15
unsigned char code ShaoMiaoZhi[]={238,237,235,231,222,221,219,215,190,189,187,183
,126,125,123,119};
unsigned char JianPanShaoMiao(/*使用行列反转扫描法*/)
{	unsigned char H=15,L=240,Ys=0;P1=15;if(P1!=15){		while(++Ys);//消抖H=P1;P1=240;L=P1;while(P1!=240);}P1 = 255;return (H+L);
}
unsigned char JianPanQuZhi(/*定义按钮*/)
{	unsigned char Jian_Zhi=0,LinShi=JianPanShaoMiao();if(LinShi==255)return LinShi;else//减小对延时影响提高运行效率while(LinShi!=ShaoMiaoZhi[Jian_Zhi])if(++Jian_Zhi > 15)break;return Jian_Zhi;//按键排列//12 08 04 00//13 09 05 01//14 10 06 02//15 11 07 03
}
void main()
{//缘由https://bbs.csdn.net/topics/396577304?page=1#post-411560687 https://ask.csdn.net/answers/1282564/editunsigned char jz=0,wei=128,ge=0,ys=0;//键值 位 数据2^8=256unsigned int Ys=747;//数据2^16=65536unsigned long m=1,zhi=0,ls=0;//模 值 存储 数据2^32=4294967296while(1){jz=JianPanQuZhi();//矩阵值查看JianPanQuZhiif(jz!=255&&jz<10){ls=ls+jz*m;if(m<1000000)m*=10;else ls/=10;zhi=ls;}
//以下数码管显示,以上矩阵取值和运算P3=~wei;ge=zhi-zhi/10*10;P2=smgduan[ge];//数码管静态显示zhi/=10;if(!wei)wei=128;else wei/=2;//数码管动态显示if(!zhi){zhi=ls;wei=128;}while(++ys);P2=0;}
}
#include "reg52.h"
unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77
,0x7c,0x39,0x5e,0x79,0x71}; //共阴0~15
unsigned char code ShaoMiaoZhi[]={238,237,235,231,222,221,219,215,190,189,187,183
,126,125,123,119};
unsigned char JianPanShaoMiao(/*使用行列反转扫描法*/)
{	unsigned char H=15,L=240,Ys=0;P1=15;if(P1!=15){		while(++Ys);//消抖H=P1;P1=240;L=P1;while(P1!=240);}P1 = 255;return (H+L);
}
unsigned char JianPanQuZhi(/*定义按钮*/)
{	unsigned char Jian_Zhi=0,LinShi=JianPanShaoMiao();if(LinShi==255)return LinShi;else//减小对延时影响提高运行效率while(LinShi!=ShaoMiaoZhi[Jian_Zhi])if(++Jian_Zhi > 15)break;return Jian_Zhi;//按键排列//12 08 04 00//13 09 05 01//14 10 06 02//15 11 07 03
}
void main()
{//缘由https://bbs.csdn.net/topics/396577304?page=1#post-411560687 https://ask.csdn.net/answers/1282564/editunsigned char jz=0,wei=1,ge=0,ys=0,w=0;//键值 位 数据2^8=256unsigned int Ys=747;//数据2^16=65536unsigned long m=1,zhi=0,ls=0;//模 值 存储 数据2^32=4294967296while(1){jz=JianPanQuZhi();//矩阵值查看JianPanQuZhiif(jz!=255&&jz<10){ls=ls*10+jz;if(++w>6)ls=ls-ls/1000000*1000000;zhi=ls;}
//以下数码管显示,以上矩阵取值和运算P3=~wei;ge=zhi-zhi/10*10;P2=smgduan[ge];//数码管静态显示zhi/=10;if(!wei)wei=1;else wei*=2;//数码管动态显示if(!zhi){zhi=ls;wei=1;}while(++ys);P2=0;}
}

http://www.xdnf.cn/news/19600.html

相关文章:

  • Linux驱动开发学习笔记
  • web自动化测试(selenium)
  • [架构之美]pdf压缩实战笔记(十五)
  • FlutterUnit 3.3.0 | 全组件、全属性、鸿蒙支持来袭
  • 高德开放平台智能眼镜解决方案,Rokid Glasses AR导航实测
  • Proxy 我踩过的那些坑
  • apache-jmeter-5.1.1安装部署与使用教程(小白一看就会)​
  • 【游戏开发】街景风格化运用到游戏中,一般有哪些风格可供选择?
  • 【实测】安装最新Unity6的常规操作
  • intellij idea2021.3.3版本如何获取永久权限
  • 第二章:技术基石:写出“活”的代码(1)
  • 基础算法之二分算法 --- 1
  • AI-调查研究-67-具身智能 核心技术构成全解析:感知、决策、学习与交互的闭环系统
  • DVWA靶场通关笔记-DOM型XSS(Impossible级别)
  • 服务器托管需要注意什么事项?
  • STM32CUBEMX配置LAN8720a实现UDP通信
  • pycharm无法添加本地conda解释器/命令行激活conda时出现很多无关内容
  • 阿里云国际代理商:如何重置阿里云服务器密码?
  • 【ComfyUI】SDXL Turbo一步完成高速高效的图像生成
  • UNet改进(37):AxialDynamicConv2D原理剖析与实战应用
  • 【开发技术】Lucene.NET入门指南
  • 消息存储机制-索引文件及页缓存
  • 爬虫逆向--Day20Day21--JS逆向案例之Webpack逆向
  • GPT-5在医疗领域应用的研究效能初探(下)
  • iOS混淆工具实战 视频流媒体类 App 的版权与播放安全保护
  • 【Python语法基础学习笔记】竞赛常用标准库
  • 在 macOS 下升级 Python 几种常见的方法
  • 矩阵scaling预处理介绍
  • 自动化运维-ansible中的循环应用
  • Maven + JUnit:Java单元测试的坚实组合