蓝桥杯开发板CT107D---使用定时器中断动态刷新数码管的消隐

CT107D开发板的定时器中断刷新数码管的消隐

名词

位选:选择第几个数码管亮
段暄:选择数码管亮什么内容

原理

定时器中断刷新数码管原理基于金沙滩51单片机的教程不做过多解释

数码管在动态刷新过程中,可能存在本应不亮的地方发生微微的弱光,这种情况该怎么办呐?

造成这种情况的原因是,程序每执行一次位选片选的刷新,下一次刷新P0原本的数据就会干扰位选段选。
所以我们需要在刷新前进入段选,写入P0=0xff,提前先使数码管阴极的锁存器变成全暗状态,这样P0残留的数据就难以干扰位选段选

代码

void SMG_Scan()				//中断进入数码管扫描刷新
{
	static int8 index = 0;  //刷管位选计数
	Sel_HC138(7); 			//三八译码器进入段选模式
	P0 = 0xff;				//消隐,消除上次段选或者其它情况下P0的数据
	Sel_HC138(0);			//三八译码器关闭段选模式
	
	Sel_HC138(6);			//三八译码器进入位选模式
	P0 = (0x80>>index);		//位选
	Sel_HC138(0);			//三八译码器关闭位选模式
	
	Sel_HC138(7);			//三八译码器进入段选模式
	P0 = SMG_SHOW[index];	//段选
	Sel_HC138(0);			//三八译码器关闭段选模式
	
	index++;				//位选计数
	index = (index&0x07);
}

后记

因为把段选位选搞混,导致自己弄了好久才成功消影,属实five
QWQ

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值