原创 51 数码管动态显示 实验(五)

2008-5-12 10:41 4104 9 9 分类: MCU/ 嵌入式

点击下载


这个实验将实现51控制数码管的动态显示.详细介绍见附件


平台:FDR51开发板


#include<AT89X52.H>           
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--);  
}


/**************  数码管显示函数  ************************************
参数:待显示的数据
*************************************************************/


void led_display(unsigned int dat )                 
{                      
 unsigned int dat1=dat%10000;  //四位数码管只能显示到一千,此处用于防止溢出 
 P0=table[dat1/1000]|position[0];
 delay_ms(2);
 P0=table[(dat1%1000)/100]|position[1];
 delay_ms(2);
 P0=table[dat1%100/10]|position[2];
 delay_ms(2);                                   
 P0=table[(dat1%10)]|position[3];
 delay_ms(2);
}  
/**************************************************************************
              主函数


******************************************************************************/
void main()
{
 unsigned char t="0",time=90;
 while(1)
 {
  t++;
  t=t%100;                //l令t为0~99;
  time=90;
  while(time--)
  led_display(t);
 }
}

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /1 下一条