Board logo

标题: 单片机程序架构3 [打印本页]

作者: 海洋狂吻    时间: 2014-3-1 16:18     标题: 单片机程序架构3

2

数码管的显示

一般情况下我们用的八位一体的数码管,采用动态扫描的方法来完成显示;非常庆幸人眼在高于50hz以上的闪烁时发现不了的。所以我们在动态扫描数码管的间

隔时间是充裕的。这里我们定其时限为4ms(250HZ)

,用定时器定时为2ms,在定时中断程序中进行扫描的显示,每次只显示其中的一位;当然时限也可以弄长一些,更推荐的方法是把显示函数放入主循环中,而定

时中断中置位相应的标志位即可;


// Timer 0 比较匹配中断服务,4ms定时

interrupt

[TIM0_COMP] void timer0_comp_isr(void)

{

display(); //
调用LED扫描显示


……………………

}

void display(void) //
8位LED数码管动态扫描函数

{


PORTC = 0xff; //
这里把段选都关闭是很必要的,否则数码管会产生拖影

PORTA =
led_7[dis_buff[posit]];


PORTC = position[posit];

if (++posit
>=8 )

posit
= 0;

}





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0