标题:
单片机程序架构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