日志档案

发表于 2008-5-12 10:41:50

0

标签: 51单片机  数码管  动态显示  

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

点击下载

这个实验将实现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);
 }
}

系统分类: 单片机   |   用户分类: 51单片机专区   |   来源: 原创   |   【推荐给朋友】

    阅读(227)    回复(0)  

投一票您将和博主都有获奖机会!