近日为师弟做的一个数码管驱动。以前用数码管不多,没有仔细考虑使用的通用性及方便,今天整理出一个方法,希望能对新手有点儿帮助!
数码管显示函数,在定时器中断中调用,我用的是毫秒中断,
void Display() 在定时器中断中调用,不需其他处理。最多可驱动8个数码管,如需要更多可自行修改
需要显示的数据放在Disp_Dat[DISPNUM];里
该驱动使用时有三个控制变量 Dsip_Hide,Disp_Flash,Disp_Point
Dsip_Hide 消隐控制变量 ; 每一位控制一个数码管,为1表示该位消隐,此时该位数码管不显示。比如0x01表示第一位数码管不显示
Disp_Flash 闪烁控制变量 ; 每一位控制一个数码管,为1表示该位闪烁,此时该位数码管处于闪烁状态,闪烁周期为1s,用法同Dsip_Hide
Disp_Point 小数点显示控制变量:每一位控制一个数码管,为1表示该位显示小数点,用法同Dsip_Hide
说明: 由于次驱动方法使用消隐控制位实现数码管的闪烁,因此在退出闪烁状态时消隐控制位可能处于消隐状态。是实际使用时退出消隐状态时注意把消隐控制位清零
编辑1.c
(5.35 KB, 下载次数: 51)
main.c
(11.42 KB, 下载次数: 59)
。第一个附近为整理出来的驱动,第二个附件为实际应用的例子。
[
本帖最后由 jishuaihu 于 2012-12-21 23:34 编辑 ]