四位数码管流动显示10位数
数码相框的简单操作:->图片导入和显示设置 #生活技巧# #数码产品使用技巧# #数码产品入门教程#
一.图
二.代码
#include"at89x51.h" unsigned char code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x7c}; unsigned char b[]={0,0,0,0}; unsigned char c[]={2,0,1,7,1,2,4,0,5,6};//把c的值轮流赋给b unsigned char i,j,k,m,n,cz; unsigned int q; tv() {for(i=0;i<7;i++)//把c的值轮流赋给b,组一个四个数的窗口,从b[0]-b[3]开始,每循环一次,窗口向前移动一位数{q=0;//延时用的,与下方的while循环配合,这句是q的初始化b[0]=c[0+i];b[1]=c[1+i];//第一个循环为c[0]-c[3]即2017,第二个循环后i由0变为1,窗口向前移一位b数组变为0171.。。。b[2]=c[2+i];b[3]=c[3+i];while(q<1000)//这个循环在for循环内,每一个for循环它都要执行1000次,//这个循环里语句的功能是把b数组的四个数展示在数码管上{cz=0xfe;for(n=0;n<4;n++){P2=0xff;//消隐,proteus7一定要加,不然仿真看不出效果k=b[n];P0=a[k]; P2=cz;for(j=0;j<20;j++);cz=(cz<<1)+1;}q=q+1;}} } void main(void) {while(1){tv();} }
123456789101112131415161718192021222324252627282930313233343536373839404142思考:这个滚动显示一开始就是4位全部显示出来,滚动的效果不明显,别人家的LED显示屏的内容都是从屏幕右侧从无到有显示出来的,能不能对代码改进一下让它实现从右侧从无到有滚动显示出来呢?
我还是太菜了,费了老久才想出来
#include"at89x51.h" unsigned char code a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x7c}; unsigned char b[]={0,0,0,0}; unsigned char c[]={2,0,1,7,1,2,4,0,5,6};//把c的值轮流赋给b unsigned char i,j,k,m,n,cz; unsigned int q; tv() {for(i=0;i<4;i++){q=0;b[3]=c[i-4];//这里我本来是写的b[2]=c[i-2],其他的b数组相应减一b[2]=c[i-3];//可是仿真结果出来是0开头,0,01,017,2017....b[1]=c[i-2];//所以我试着把i-x都减小了一位,仿真结果达到了我想要的结果,b[0]=c[i-1];//可是我有点想不通,为什么会这样子呢?while(q<3000){cz=0xf7;for(n=0;n<i;n++){P2=0xff;k=b[n];P0=a[k]; P2=cz;for(j=0;j<20;j++);cz=(cz>>1);}q=q+1;}}for(i=0;i<7;i++)//把c的值轮流赋给b,组一个四个数的窗口,从b[0]-b[3]开始,每循环一次,窗口向前移动一位数{q=0;//延时用的,与下方的while循环配合,这句是q的初始化b[0]=c[0+i];b[1]=c[1+i];//第一个循环为c[0]-c[3]即2017,第二个循环后i由0变为1,窗口向前移一位b数组变为0171.。。。b[2]=c[2+i];b[3]=c[3+i];while(q<2000)//这个循环在for循环内,每一个for循环它都要执行2000次,//这个循环里语句的功能是把b数组的四个数展示在数码管上{cz=0xfe;for(n=0;n<4;n++){P2=0xff;//消隐,proteus7一定要加,不然仿真看不出效果k=b[n];P0=a[k]; P2=cz;for(j=0;j<20;j++);cz=(cz<<1)+1;}q=q+1;}} } void main(void) {while(1){tv();} }
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465网址:四位数码管流动显示10位数 https://www.yuejiaxmz.com/news/view/540136
相关内容
动态数码管详解数码管使用方法
万兴数据管家64位
数据表示——原码、反码、补码、移码
请使用千位分隔符(逗号)表示web网页中的大数字 « 张鑫旭
手机数码
数码产品门店展示及后台管理系统Axure原型模板
科技数码
京东3C数码发布2024电子数码六大潮流消费趋势 跟着京东了解前沿潮流
[华为智能生活馆·上海太平洋数码二期]详细地址,位置示意图,地图位置,交通指引,附近酒店