首先是静态显示,代码如下
#include "reg52.h"
sbit dula=P2^6;
sbit wela=P2^7;
main()
{
wela=1;//打开位选,控制哪个数码管亮
P0=0xc0;//六个数码管都显示
wela=0;//关闭位选,再改变P0口的数据时,位选也不会再改变。
dula=1;//打开段选,显示什么内容
P0=0x06;//六个数码管都显示1
dula=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,6
for(i=0;i<6;i++)
{
wela=1;//打开位选,控制哪个数码管亮
P0=we[i];
wela=0;//关闭位选,再改变P0口的数据时,位选也不会再改变。
dula=1;//打开段选,显示什么内容
P0=du[i];
delay1ms();//如果不延时,会很暗
P0=0x00;//每显示一个数字要消影一次
dula=0;
}
}
}
天祥电子速来打钱 哦吼吼~
最后是壁纸,点赞私信有高清壁纸嗷~
麻烦点个赞,谢谢各位大佬了