|
本帖最后由 lkc8210 于 2021-9-5 23:07 编辑 根据unsigned char code LedChar[] = { 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E};//数码管显示字符转换表 LedChar[0]=0xC0=B11000000 这是用于共阳数码管的转换表 所以段位是高电平开启,低电平关闭 在第66行的switch内 各个case的内容都是先关闭后开启自己的段位 于是在第一个循环之后 所有段位都长时期开启 建议在第66行的switch之前加上P3 = 0;先关闭所有段位 第37行LedBuff[0] = LedChar[sec%10]; 代表将个位数放进数组0中 但第68行表示数组0会于LED1段显示 令数码管的显示方向上下反转了 需改成LedBuff[5] = LedChar[sec%10]; 把个位数放到最下 |
boboj 发表于 2021-9-7 11:32 访问我的博客搜索51有很多数码管的例子看我怎么写有用数组?https://blog.csdn.net/xianfajushi |
xianfajushi 发表于 2021-9-6 11:08 我是初学的,能不能具体讲解一下,我之前一直这么干的 |
| 而且数据有存储数组的必要?直接把数据处理送去显示即可,用数组没多大意义. |
| unsigned char LedBuff[6] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//如果数组内的所有值都一样这样使用数组纯属浪费 |
lkc8210 发表于 2021-9-5 22:23 非常感谢,这个乱码关键是P2最后没有置零。还指出了我位的错误 |