栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

51单片机-动态显示多个数字

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

51单片机-动态显示多个数字

知道了怎么静态显示数码管,那么我们就直接再依次调用函数但是如果直接调用就会出现影子。
根据数码管显示的原理,显示的顺序是 位选 -->段选–>位选–>段选–>位选 这样循环,而问题就出现在段选–>位选这里,虽然单片机工作频率很快但是也是需要一定的时间来工作,当完成一个操作内的位选之后,段选之前的这段单片机还在工作的时间里,我称之为“空白时间”。在“空白时间”内,由于还未进行下一个段选,此时的段选还是上一个操作里的段选,导致LED模块显示的是上一个LED模块的样子。
所以要消影

void xianshi(unsigned char location,number)
{
	switch(location)//位选
	{
		case 1:P2_2=1;P2_3=1;P2_4=1;break;
		case 2:P2_2=0;P2_3=1;P2_4=1;break;
		case 3:P2_2=1;P2_3=0;P2_4=1;break;
		case 4:P2_2=0;P2_3=0;P2_4=1;break;
		case 5:P2_2=1;P2_3=1;P2_4=0;break;
		case 6:P2_2=0;P2_3=1;P2_4=0;break;
		case 7:P2_2=1;P2_3=0;P2_4=0;break;
		case 8:P2_2=0;P2_3=0;P2_4=0;break;
	}
			P0=numbertable[number];//片选
	    Delayms(1);//要延迟一毫秒,直接清零数码管会比较暗
	    P0=0x00;Ï//消影
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号