蓝桥杯单片机CT107D 数码管显示
定义display.h
#ifndef _display_h
#define _display_h
#include "common.h" //包含通用的头文件
void display(uint32 dat);
#endif
定义相应的.c文件
#include "display.h"
uint8 wei[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
uint8 duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void display(uint32 dat) //参数dat即为要显示的数字 若要显示其他内容,修改相应内容即可
{
uint8 i;
uint8 str[8];
str[0]=dat%100000000/10000000;
str[1]=dat%10000000/1000000;
str[2]=dat%1000000/100000;
str[3]=dat%100000/10000;
str[4]=dat%10000/1000;
str[5]=dat%1000/100;
str[6]=dat%100/10;
str[7]=dat%10;
for(i=0;i<8;i++) //通过控制i的值改变显示的位数
{
P2=P2&0x1f|0xc0;
P0=wei[i];
P2=P2&0x1f|0xe0;
P0=duan[str[i]];
P2=P2&0x1f;
delay_ms(1);
}
P2=P2&0x1f|0xc0; //关闭位选,消除最后一位过亮
P0=0;
P2=P2&0x1f;
}