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

【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.dtcms.com/a/362525.html

相关文章:

  • 企业DevOps的安全与合规关键:三大主流DevOps平台能力对比
  • 图像加密安全传输--设备端视频流加密,手机端视频流解密,使用ChaCha20-Poly1305 进行系统分析
  • TLS终止位置的安全影响深度解析:三种模式技术对比与选择建议
  • 网络安全法合规视角下的安全运维体系建设:关键控制点与实施细节深度解析
  • 基于STM32的居家养老健康安全检测系统
  • OpenHarmony HVB安全启动一键启停全栈实践:从U-Boot签名到fastboot解锁的闭环避坑指南
  • Parasoft C/C++test如何实现开发环境内嵌的安全检测
  • 互联网大厂Java面试三大回合全解析:从语言特性到性能安全
  • 分公司、工厂、出差人员远程访问办公系统,如何安全稳定又省钱?
  • 【数据结构】八大排序之快速排序:分而治之的艺术
  • BeaGo-李开复旗下公司推出的AI搜索助手
  • 史上最全,Web自动化测试面试题整理(附答案)
  • go 语言map是线程不安全的如何处理
  • Go 语言的 panic
  • WIFI协议全解析08:WiFi连接背后的握手过程,你的设备是如何“入网”的
  • USB4与PCIe的技术融合:新一代接口协议的架构革新
  • 2025 全球 GEO 服务商 TOP10 揭晓|硕芽科技引领生成搜索优化新时代
  • Java全栈学习笔记28
  • GitHub宕机自救指南
  • MyBatis Plus 【详解】| 学习日志 | 第 17 天
  • 【ES9.X】GitHub-events 聚合方案
  • 【系统架构设计(12)】系统运行与软件维护
  • 机器学习笔记-第二周
  • ansible判断
  • 【系统架构设计(11)】软件测试全景解析:从方法论到实践策略
  • 163起融资,梅卡曼德融资额夺冠,钉钉、百度智能云10周年,汉桑科技IPO| 2025年8月人工智能投融资观察 · 极新月报
  • 开发组件库【详细教程】含同时支持【完整引入】和【手动导入】,核心配置文件,本地调试,依赖的安装和声明,发布组件库等
  • @JsonFormat格式化日期
  • FastAPI 介绍及示例开发
  • 飞牛OS Nas,SSH安装宝塔后,smb文件不能共享问题