/*头文件*/
#include
/*端口定义*/
#define sled_dm_port P0 /*定义LED显示的段码数据脚*/
#define sled_wm_port P2 /*定义LED显示的位码数据脚*/
/*1MS为单位的延时程序*/
void delay_1ms(char x)
{
char j;
while(x--){
for(j=0;j<125;j++)
{;}
}
}
/*主程序*/
void main()
{
char i;
char j;
int count=0;
char sled_disp_buff[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff}; /*数码管数据*/
char sled_bit_table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};/*定义需要点亮的数码管*/
while(1){
for(j=0;j<100;j++){ /*单次字符显示延时*/
for(i=0;i<8;i++){ /*扫描输出8位数码管*/
sled_wm_port = 0xff; /*关闭显示*/
sled_dm_port = sled_disp_buff[i+count]; /*输出字符代码*/
sled_wm_port = sled_bit_table[i]; /*点亮某位数码管*/
delay_1ms(1);
}
}
count++;
if(count>=24) count=0; /*把数码管数组的数据输出完成后重新开始*/
}
}