这里通过51单片机控制数码管的静态显示.详细介绍见附件.
平台:FDR51开发板
#include
/********************数码管常量****************************/
unsigned char code table[]={0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70,0x80,0x90}; //LED段码
unsigned char code position[]={1,2,4,8}; //LED选位码
/********************延时函数*************************
延时t毫秒
******************************************************/
void delay_ms(unsigned char t)
{
unsigned char t2=126;
while(t--)while(t2--);
}
/************** 数码管显示函数 ************************************
参数: dat 待显示的数据 pos 显示该数据的位置
*************************************************************/
void led_display(unsigned char dat ,unsigned char pos)
{
unsigned int dat1=dat%10; //一个数码管只能显示到9,此处用于防止溢出
P0=table[dat1]|position[pos];
delay_ms(2);
}
/****************************************************************
主函数
效果:依次点亮一个数码管,
******************************************************************/
void main()
{
unsigned char t="0",
time=90,
position=0;
while(1)
{
t++;
t=t%4; //l令t为0~99;
position++;
position=position%4;
time=255;
while(time--)led_display(t,position);
}
}
文章评论(0条评论)
登录后参与讨论