首先是静态显示,代码如下
#include "reg52.h"sbit dula=P2^6;sbit wela=P2^7;main(){wela=1;//打开位选,控制哪个数码管亮P0=0xc0;//六个数码管都显示wela=0;//关闭位选,再改变P0口的数据时,位选也不会再改变。dula=1;//打开段选,显示什么内容P0=0x06;//六个数码管都显示1dula=0;while(1);}
接下来是动态显示,代码如下,显示内容123456:
#include "reg52.h"typedef unsigned char uchar;sbit dula=P2^6;sbit wela=P2^7;void delay1ms(void);void delay1ms(void) //误差 0us{unsigned char a,b;for(b=199;b>0;b--)for(a=1;a>0;a--);}main(){while(1){int i;uchar code we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0x00};//在编译编码表的时候,//也就是数组,最好要加“code”因为有code,数据会被保存在数据存储器中,不加会被放在随机存储器中,//每个单片机的随机存储器是有限的,很宝贵uchar code du[]={0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x00};//显示1,2,3,4,5,6for(i=0;i<6;i++){wela=1;//打开位选,控制哪个数码管亮P0=we[i];wela=0;//关闭位选,再改变P0口的数据时,位选也不会再改变。dula=1;//打开段选,显示什么内容P0=du[i];delay1ms();//如果不延时,会很暗P0=0x00;//每显示一个数字要消影一次dula=0;}}}
天祥电子速来打钱 哦吼吼~
最后是壁纸,点赞私信有高清壁纸嗷~
麻烦点个赞,谢谢各位大佬了