单片机数码管显示0到9_单片机入门 数码管的静态显示和动态显示 壁纸

eb6ff59f67a095e2f30b09e2da08cdd9.png

首先是静态显示,代码如下

#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);
}

e253415028fcc6d8561939cf19c21707.png
运行效果

接下来是动态显示,代码如下,显示内容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;
		}
	}
}

8475130fa2ee897895ad74db88ead209.png

e1f145a931a954b7291729581223a038.png

天祥电子速来打钱 哦吼吼~

最后是壁纸,点赞私信有高清壁纸嗷~

麻烦点个赞,谢谢各位大佬了

12c1a8aa8fdf23b602413b81e7e6dae5.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值