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

188数码管新版本,简单易懂

LED188.c

新版本解决以下问题

1.减少占用内存,仅需一个数组便可解决0-9的显示,如果需要显示abcdef,可以在数组后面增加元素,且存放在ROM中。

2.解决了亮度不均匀的问题,逐段扫描,所有段码点亮的时间是一致的,如果再出现亮度不均,必定是硬件问题了。

3.残影问题和本程序没关系,主要是MCU管脚翻转频率过慢,导致管脚还有残留电压,所以需要设置到最大频率,另外尽可能提高扫描速度。

4.这是最终版本,也是量产产品的版本,分享不易,大家看后点赞收藏吧。

#include "LED188.h" uc8 number_table[11]={ 0x77,//0 0x42,//1 0x6D,//2 0x6E,//3 0x5A,//4 0x3E,//5 0x3F,//6 0x46,//7 0x7F,//8 0x7E,//9 0x00//nop }; void Set_ALL_LED_IN(void) { LED1_IN();LED2_IN();LED3_IN();LED4_IN();LED5_IN(); } void Set_ALL_LED_Low(void) { LED1_L();LED2_L();LED3_L();LED4_L();LED5_L(); } DisplayData Disp_data; void Refresh_displaysram(void) { Disp_data.ESsram =number_table[Disp_data.eshi]; Disp_data.EGsram =number_table[Disp_data.ege]; } void Display_Tube(void)//放在定时器中断,1ms运行 { static u8 case_cnt=0x00; if(!Disp_data.B_EN) { Set_ALL_LED_Low(); return; } Set_ALL_LED_IN(); if(case_cnt<4) {LED1_L();LED1_OUT();} else if(case_cnt<8) {LED2_L();LED2_OUT();} else if(case_cnt<12) {LED3_L();LED3_OUT();} else if(case_cnt<16) {LED4_L();LED4_OUT();} else if(case_cnt<18) {LED5_L();LED5_OUT();} else { case_cnt=0; LED1_L();LED1_OUT(); } switch(case_cnt) { case 0x00:if(GetBit(Disp_data.EGsram,6))LED2_H(); break;//1 case 0x01:if(GetBit(Disp_data.EGsram,5))LED3_H(); break; case 0x02:if(GetBit(Disp_data.EGsram,4))LED4_H(); break; case 0x03:if(GetBit(Disp_data.EGsram,3))LED5_H(); break; case 0x04:if(GetBit(Disp_data.EGsram,2))LED1_H(); break; case 0x05:if(GetBit(Disp_data.ESsram,6))LED3_H(); break; case 0x06:if(GetBit(Disp_data.ESsram,5))LED4_H(); break; case 0x07:if(GetBit(Disp_data.ESsram,0))LED5_H(); break;//2 case 0x08:if(GetBit(Disp_data.EGsram,1))LED1_H(); break; case 0x09:if(GetBit(Disp_data.ESsram,2))LED2_H(); break; case 0x0A:if(GetBit(Disp_data.ESsram,1))LED4_H(); break; case 0x0B:if(GetBit(Disp_data.ESsram,4))LED5_H(); break; case 0x0C:if(GetBit(Disp_data.EGsram,0))LED1_H(); break; case 0x0D:if(Disp_data.B_EBAI) LED2_H(); break; case 0x0E:if(Disp_data.B_EBAI) LED3_H(); break; case 0x0F:if(GetBit(Disp_data.ESsram,3))LED5_H(); break; case 0x10:if(Disp_data.B_PER) LED2_H(); break; case 0x11:if(Disp_data.B_FCHG) LED3_H(); break; default:case_cnt=0; break; } case_cnt++; } void Dispdata_Init(void) { Disp_data.init_cnt =2;//开机全显2s Disp_data.B_EN =1;//0=关屏 Set_ALL_LED_Low(); //熄灭所有管脚 } void Refresh_188Data(void) { if(!Disp_data.B_JC) return; Disp_data.B_JC=0; Disp_data.B_PD=0; Disp_data.B_LowV=0; Disp_data.B_PER=1; Disp_data.B_TOG=!Disp_data.B_TOG; Disp_data.SOC=88; //可以显示0-199的数字 Disp_data.B_CHGING=0;//1=充电个位闪烁 Disp_data.B_LowV=0; //1=低电个位闪烁 if(Disp_data.SOC>99) { Disp_data.B_EBAI=1; Disp_data.eshi=(Disp_data.SOC-100)/10; Disp_data.ege=Disp_data.SOC%10; } else { Disp_data.B_EBAI=0; Disp_data.eshi=Disp_data.SOC/10; Disp_data.ege=Disp_data.SOC%10; if(!Disp_data.eshi) Disp_data.eshi=0x0A; if(Disp_data.B_TOG && (Disp_data.B_CHGING||Disp_data.B_LowV)) Disp_data.ege=0x0A; } if(Disp_data.init_cnt)//修改此值,实现开机全显,错误全闪的时间和次数 { Disp_data.init_cnt--; if(Disp_data.init_cnt<2) Disp_data.B_TOG=1; if(Disp_data.B_TOG) { Disp_data.B_PER =1; Disp_data.B_PD =1; Disp_data.B_EBAI=1; Disp_data.eshi =8; Disp_data.ege =8; } else { Disp_data.B_PER =0; Disp_data.B_PD =0; Disp_data.B_EBAI=0; Disp_data.eshi =10; Disp_data.ege =10; } } Refresh_displaysram(); }
http://www.rkmt.cn/news/1499734.html

相关文章:

  • 2026北京公司注册代办机构实测排行:合规性+效率双维度对比(附避坑指南) - 互联网科技品牌测评
  • 重力场模型计算的布格重力异常值用于一、二等水准重力异常改正计算
  • 题解:学而思编程 降雨统计
  • 2026年6月最新版贺州第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • Triton Inference Server自动扩缩容与负载均衡:生产环境最佳实践
  • 题解:学而思编程 优秀的排列
  • Sideloader跨平台支持对比:Linux、Windows、macOS三大平台安装与配置指南
  • 2026济南车灯实测|后浪灯改灯光升级,澳兹姆透镜夜间实景效果,后浪灯改实惠,靠谱 - Ayu8888
  • 礼品定制避坑与选型:五大实战服务商深度横评 - 品牌报告
  • Orz与其他压缩库对比:何时选择Orz最合适?
  • Apache 虚拟主机配置指南:从单站点到多站点
  • BRFlabbyTable与FlabbyListView对比:iOS与Android弹性列表实现差异终极指南
  • OpenAI最强编程助手Codex:下载安装、使用指南(含使用方式、提示技巧、趋势)
  • RollToolsApi架构深度解析:构建稳定聚合API接口源的技术实践
  • 2026年6月最新版东营第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • Polyglot-Ko-1.3B应用场景探索:客服机器人、内容创作与教育辅助
  • CAD如何修改快捷键?CAD如何自定义快捷键。
  • 2026年6月最新版大庆第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 从3D Tiles到I3S:使用loaders.gl实现不同瓦片格式的转换
  • Progenitor客户端高级配置:自定义请求头、超时和认证的实用技巧
  • 5个Claudian插件使用技巧:快速提升AI交互效率的完整指南
  • PVC 橡胶阻燃剂应用分类解析 优质生产厂家甄选指南 - 变量人生001
  • 批量改图片DPI的Python脚本
  • 3个核心场景:从零开始配置yuzu Switch模拟器,让电脑流畅运行任天堂游戏
  • 2026年6月最新版大同第三方CMACNAS甲醛检测治理机构口碑名单:万清CMA检测中心等5家公司深度测评万清CMA检测中心TOP1推荐 - 一修哥咨询
  • 3步掌握LLPlayer:从零开始的语言学习终极指南
  • cann/asc-devkit SinCosCompute性能调优样例
  • 人生第一双高跟鞋品牌排行:轻奢舒适兼具纪念意义 - 起跑123
  • 青岛海边小区漏水频发?盐雾气候对防水层的致命影响 - 青岛防水品牌推荐
  • StateSmith开发指南:从源码解析到贡献代码,成为开源项目参与者