找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1663|回复: 6
收起左侧

51普中单片机数码管滚动显示

[复制链接]
ID:1055060 发表于 2023-1-10 21:54 来自手机 | 显示全部楼层 |阅读模式
如何让数码管像广告牌一样滚动显示0-8这个数字串
回复

使用道具 举报

ID:161164 发表于 2023-1-11 14:18 | 显示全部楼层
开一个缓存数组
数码管显示缓存数组的内容
缓存数组想放什么就放什么
回复

使用道具 举报

ID:629502 发表于 2023-1-11 15:33 | 显示全部楼层
把0-8这些要显示的数字对应的存起来,然后调用。
回复

使用道具 举报

ID:213173 发表于 2023-1-11 17:30 | 显示全部楼层
你试试
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar table[]={        //0~F数组
  5.         0x3f,0x06,0x5b,0x4f,
  6.         0x66,0x6d,0x7d,0x07,
  7.         0x7f,0x6f,0x77,0x7c,
  8.         0x39,0x5e,0x79,0x71};
  9. uchar data dis_buf[8];//缓存
  10. uchar temp;

  11. void delayms(uint k)
  12. {
  13.         uint i,j;  
  14.         for(i=k;i>0;i--)
  15.                 for(j=110;j>0;j--);
  16. }

  17. void main(void)
  18. {
  19.         uint t;
  20.         uchar i,j;
  21.         for(i=0;i<8;i++)
  22.                 dis_buf[i]=table[i];//初始化缓存
  23.         while(1)
  24.         {
  25.                 if(++t>=500)
  26.                 {
  27.                         t=0;
  28.                         temp=table[0];
  29.                         for(i=0;i<15;i++)                               
  30.                                 table[i]=table[i+1];//循环移动字符
  31.                         table[15]=temp;
  32.                         for(i=0;i<8;i++)
  33.                                 dis_buf[i]=table[i];//更新缓存
  34.                 }
  35.                 P0=0x00;                        //段消隐
  36.                 P2&=0xe3;                //清位码
  37.                 P2|=(j*4);                //送位码
  38.                 P0=dis_buf[j];        //送段码
  39.                 j=++j%8;
  40.                 delayms(1);//延时控制循环周期
  41.         }
  42. }
复制代码
回复

使用道具 举报

ID:634587 发表于 2023-1-11 21:23 | 显示全部楼层
学了Arduino,才知道原来C51里面很难搞的程序随便下个库就有了。
回复

使用道具 举报

ID:1061002 发表于 2023-1-12 10:43 | 显示全部楼层
table数表对应数码管编码
回复

使用道具 举报

ID:963677 发表于 2023-1-12 15:31 | 显示全部楼层
可以用数组放置数字串的信息,在数码管中用for循环循环显示数据中的信息,然后不断左右移动就行,左右移动可以用原本显示的位置循环加上位移距离即可
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表