动态数码管显示(C源码)

来源:互联网 发布:千里眼淘宝插件mac 编辑:程序博客网 时间:2024/06/14 01:07

在学习了郭天祥老师的那段代码以后,颇有收益,于是自己写了这段代码,并在protues 7.5的仿真模式下测试通过的,使用了两个74HC573锁存器和6个共阴极LED数码管.

 

#include <reg51.h>

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //段码

unsigned char code wei_table[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};   //位选码

void delayms(unsigned int xms); //延时

void duan(unsigned int duan); //段码显示

void wei(unsigned int wei); //选送位码

 

sbit weixuan=P2^1;  //位选

sbit duanxuan=P2^0;  //段选

unsigned int view_num; //显示形参

 

void main()

{

while(1)

{

for(view_num=0;view_num<6;view_num++)

{

wei(view_num);  //送位码

duan(view_num);  //送段码

}

}

}

 

void wei(unsigned int wei)  //选送位码

{

weixuan=1;  //位选打开

P0=wei_table[wei]; //送位码

weixuan=0; //位选关闭

}

 

void duan(unsigned int duan)   //段码显示

{

duanxuan=1;  //段选打开

P0=table[duan]; //送段码

duanxuan=0; //段选关闭

P0=0xff; //消影

delayms(5); //延时5ms

}

 

void delayms(unsigned int xms) //延时

{

unsigned int time_one,time_two; //延时变量

for(time_one=xms;time_one>0;time_one--)

{

for(time_two=110;time_two>0;time_two--);

}

 

}

 

运行后的效果:

 

 

 

原创粉丝点击