数码管

导读:本篇文章讲解 数码管,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

.H文件

#ifndef _SMG_H_
#define _SMG_H_

#include "STC15F2K60S2.h"

extern unsigned char SMGOut[12];
extern unsigned char SMGBit[8];
extern unsigned char SMGCount;

void SMG_display();


#endif

.C文件

#include "SMG.h"

unsigned char SMGOut[12]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90, 0xbf, 0xff};
unsigned char SMGBit[8]={11,11,11,11,11,11,11,11};
unsigned char SMGCount;

void SMG_display()
{
	P2=(P2&0X1F)|0xe0;
	P0=0XFF;
	P2=(P2&0X1F);
	
	P2=(P2&0X1F)|0xC0;
	P0=1<<SMGCount;
	P2=P2&0X1F;
	
	P2=(P2&0X1F)|0xE0;
	P0=SMGOut[SMGBit[SMGCount]];
	P2=P2&0X1F;
	
	if(++SMGCount==8)SMGCount=0;
}

      我习惯数码管用定时器中断服务函数实现,定时器用2ms,所以定时器中断服务函数里尽量少放一些执行起来耗时的程序,如果非要放,可以用flag=1,然后在主函数中实现,否则会看到明显的数码管闪烁。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/82556.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!