51单片机动态数码管应用2

数码管

动态数码管实现原理

通过位选每次只打开一个数码管,然后给段选输送显示的值,然后延时,然后只打开下一个数码管的位选,给段选输出显示的值,通过每次只打开一个数码管后,设置延时时间,然后只打开下一个数码管,由于延时速度比较快,在程序操作中,第一个数码管已经不显示了,然后去显示第二个数码管,但是在人眼看到的第一个数码管和第二个数码管同时显示出来了。

通过每次打开一个数码管,然后延时,由于延时速度比较快,但是在人的肉眼中上一次显示的数码管也显示出来了,从而实现动态扫描,但是会出现一个问题,当我打开第一个数码管显示数字0,然后当打开第二个数码管显示数字1,可能在当我打开第二个数码管显示1的时候,会有打开上一次数码管显示0的残影,所以每次打开一个数码管并且显示完成后需要进行消影,如果是共阴极数码管那么段选是高电平有效,那么消影用0x00,如果是共阳极数码管那么段选是低电平有效,那么消影用0xff.用来清除给段选输送的值,起到一个清除的作用。

2.代码

c 复制代码
#include <reg51.h>

typedef unsigned int u16;
typedef unsigned char u8;

#define SMG_A_DP_POST P0 
sbit LSA = P2^2;
sbit LSB = P2^3; 
sbit LSC = P2^4;

u8 gsmg_code[17] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
				0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴数码管0-F

void delay_50ms(u16 us) {
	while(us--);
}
void smg_display(void) {
	u8 i = 0;
	for (i = 0; i < 8; i++) {
		switch(i) {
			case 0: LSA = 0; LSB = 0; LSC = 0; break;
			case 1: LSA = 1; LSB = 0; LSC = 0; break;
			case 2: LSA = 0; LSB = 1; LSC = 0; break;
			case 3: LSA = 1; LSB = 1; LSC = 0; break;
			case 4: LSA = 0; LSB = 0; LSC = 1; break;
			case 5: LSA = 1; LSB = 0; LSC = 1; break;
			case 6: LSA = 0; LSB = 1; LSC = 1; break;
			case 7: LSA = 1; LSB = 1; LSC = 1; break;
		}
		SMG_A_DP_POST = gsmg_code[i];
		delay_50ms(100);
		SMG_A_DP_POST = 0X00;//消影
	}
}

void main() {
	while(1) {
		 smg_display();
	}
	
}

3.实现结果

相关推荐
BSD_CGQ5 小时前
FSR传感器STM32 DMA高速采样工程实现(高精度、低CPU占用)
stm32·单片机·嵌入式硬件·压力传感器·源头工厂·柔性薄膜压力传感器·可变电阻压力传感器
芯岭技术郦8 小时前
32 位 ARM® Cortex®-M0+ 内核MCU普冉MS32C001-C
单片机·嵌入式硬件
骑着毛驴数星星8 小时前
STM32 CAN波特率与采样点计算,基于HAL库
stm32·单片机·嵌入式硬件
zhangrelay9 小时前
Arduino-MEGA-ESP单片机理论课笔记02-硬件-2026
笔记·单片机·嵌入式硬件
艾芯微科技9 小时前
钰泰 ETA5055V330DD1E|SOT-223 3.3V LDO,低压差、大电流线性稳压选型分享
网络·单片机·嵌入式硬件·集成测试·51单片机
新晨单片机设计10 小时前
S023A-基于STM32单片机智能插座【Proteus仿真+Keil程序+原理图】
stm32·单片机·proteus·单片机智能插座
威嵌神州11 小时前
恩智浦 T1022 性能怎么样?QorIQ 架构中端工业嵌入式优势解析
嵌入式硬件
weixin_6906547411 小时前
龙迅#LT9611EX 现MIPI转HDMI1.4功能主推型号,分辨率高达4K30HZ,IC内置I2C无需外部12C控制。
嵌入式硬件·音视频·信号处理
EatFans11 小时前
全栈自造 Status Deck(四):硬件终于到了,从点亮屏幕到跑通第一个 Demo
单片机·物联网
qq_4017004111 小时前
STM32 GPIO 精讲|推挽 / 开漏 / 上拉浮空,工程选型避坑
stm32·单片机·嵌入式硬件