蓝桥杯STC15单片机复习——数码管的使用

蓝桥杯STC15单片机复习——数码管的使用,第1张

STC15F2K60S2单片机——数码管的使用 前言

下面进行数码管的使用复习
主要分为静态显示与动态显示
静态显示
当我们对数码管的显示需求仅为一位时,可以直接通过数码管的静态显示实现,即将对应的位选选通,随后直接向段选输入段码信号即可。

国信长天的板子的数码管模块的原理图如上图所示,该数码管为共阳数码管,其位选通过74LS138控制为Y6通道,即当P25 = 0;P26 = 1;P27 = 1;时,P0口为数码管位选;其段选为74LS138的Y7通道,即当P25 = 1;P26 = 0;P27 = 1;时,P0口为数码管段选。
1、数码管静态显示

#include 
#include 
#define uint unsigned int
#define uchar unsigned char

void ALL_Init();
void delay_ms(uint ms);

uchar SEG_num[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

void main()
{
	ALL_Init();
	while(1)
	{
		P25 = 0;P26 = 1;P27 = 1;
		P0 = 0x01;
		P25 = 1;P26 = 1;P27 = 1;
		P0 = SEG_num[1];
		delay_ms(100);
	}
}

/*
	函数功能:毫秒级延时函数
	函数参数:时间,单位为ms
	函数返回值:void
*/
void delay_ms(uint ms)
{
	int i;
	for(;ms>0;ms--)
		for(i = 864;i>0;i--);
}

void ALL_Init()
{
	P25 = 1;P26 = 0;P27 = 1;
	P0 = 0x00;
	P25 = 0;P26 = 1;P27 = 1;
	P0 = 0x00;
	P25 = 0;P26 = 0;P27 = 1;
	P0 = 0xff;
}

2、动态显示
数码管的动态显示即利用了人眼的视觉暂留原理,通过数码管的高速刷新,让我们的肉眼看起来数码管各个位像是同时亮起的样子,但是要注意他们其实不是一起亮的,在任一时间点,是只有一位数码管被点亮的。

void main()
{
	ALL_Init();
	while(1)
	{
		SEG_show(1314);
//		P25 = 0;P26 = 1;P27 = 1;
//		P0 = 0x01;
//		P25 = 1;P26 = 1;P27 = 1;
//		P0 = SEG_num[1];
//		delay_ms(100);
	}
}

/*
	函数功能:数码管的动态显示
	函数参数:显示的数字,4位
	函数返回值:void
*/
void SEG_show(int num)
{
	//第一位,千位显示
	P25 = 0;P26 = 1;P27 = 1;P0 = 0x01;
	P25 = 1;P26 = 1;P27 = 1;
	P0 = SEG_num[num/1000];
	delay_ms(10);
	
	//第二位,百位显示
	P25 = 0;P26 = 1;P27 = 1;P0 = 0x02;
	P25 = 1;P26 = 1;P27 = 1;
	P0 = SEG_num[num/100%10];
	delay_ms(10);
	
	//第三位,十位显示
	P25 = 0;P26 = 1;P27 = 1;P0 = 0x04;
	P25 = 1;P26 = 1;P27 = 1;
	P0 = SEG_num[num/10%10];
	delay_ms(10);
	
	//第四位,个位显示
	P25 = 0;P26 = 1;P27 = 1;P0 = 0x08;
	P25 = 1;P26 = 1;P27 = 1;
	P0 = SEG_num[num%10];
	delay_ms(10);
	
	P25 = 0;P26 = 1;P27 = 1;P0 = 0x00;
}
结语

至此,完成了数码管的静态显示与动态显示,其实数码管的动态显示调节是个十分麻烦的问题,当主函数中处理的内容过多时,数码管刷新时间及显示效果调节将变成一个烦人的东西,不过这是后话,后面我们也可以通过定时器进行实现数码管动态显示,这样就不会受主函数其他程序执行的干扰了。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1498258.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-25
下一篇 2022-06-25

发表评论

登录后才能评论

评论列表(0条)

保存