EDN首页   博客首页

日志档案

发表于 2008-5-11 23:00:44

0

标签: 无标签

51 数码管静态显示 实验(四)

pdf

这里通过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);  
 }
}

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

    阅读(236)    回复(0)  

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