ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

蓝桥杯单片机之学习模块篇一(动态数码管)

2021-02-28 15:32:43  阅读:214  来源: 互联网

标签:P2 P0 单片机 void 存器 蓝桥 数码管 0x1f


动态数码管模块
在这里插入图片描述

共有八个数码管,八个数码管采用2个74HC573锁存器对单片机P0口的输出信号进行锁存,并增强信号驱动能力进而驱动8个数码管,其中U7的锁存输入Y7C是段选,U8的锁存输入Y6C是位选。
每个数码管共有8个字段:dp g f e d c b a, 控制数码管的显示实际上就是控制数码管字段的高低电平显示,通过控制字段的发光来表示字符。这是共阴极数码管,比如:要使数码管显示为0,则数码管段表示为:1100 0000 ,十六进制为0xc0,要表示其他数字亦然。
因为这是用两个锁存器来控制的,在段选之前,我们要先通过U8锁存器进行位选,也就是选择对应的几号数码管亮起,当然,如果需要全部亮起,只需要把延时时间变短即可(只是肉眼看不出来的频率)。
比赛常用数码管代码模板
1)扫描动态数码管

uchar code duan[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8,
										0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e,
										0xff, 0xbf};		//16 17
uchar Table[8];
//数码管扫描
void Smg_Scan(void)
{
		static uchar index = 0;
		P2 = P2&0x1f|0xe0;
		P0 = 0xff;
		P2 = P2&0x1f;
	
		P2 = P2&0x1f|0xc0;//打开Y6
		P0 = 1<<index;//位选
		P2 = P2&0x1f;
	
		P2 = P2&0x1f|0xe0;//打开Y7
		P0 = ~duan[Table[index]];//显示段码
		P2 = P2&0x1f;	
		index++;
		index &= 0x07;
}

2)显示数码管

void Smg_show()
{
    if(mode == 0)
    {
    	//模式0的操作
	}
	else if(mode == 1)
	{
		//模式1的操作
	}
	//以此类推
}

3)显示LED

//LED显示
void LED_work(u8 dat)
{
	P2 = (P2 & 0x1f) | 0x80;
	P0 = dat;
	P2 = P2 & 0x1f;
}

标签:P2,P0,单片机,void,存器,蓝桥,数码管,0x1f
来源: https://blog.csdn.net/qq_46495964/article/details/114224442

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有