用51单片机在数码管上实现 P.移动

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/* P.显示程序*/

/* crystal=12Mhz */

/* P2口位控口,P0口段控口*/

#include"reg52.h"

#include

/*共阳数码管字型码*/

/*0,1,2,3,4,5,6,7,8,9,p.,灭*/

char code dis_code[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x0c,0x8c,0xff};

/*"P."显示代码序号*/

char code find_code[8]={10,10,10,10,10,10,10,10};

/********************************************************/

//函数名:void DelayX1ms(uint count)

//功能:延时时间为1ms

//调用函数:

//输入参数:count,1ms计数

//输出参数:

//说明:总共延时时间为1ms乘以count,crystal=12Mhz

/********************************************************/

#define uchar unsigned char

#define uint unsigned int

void DelayX1ms(uint count)

{

uint j;

while(count--!=0)

{

for(j=0;j<80;j++);

}

}

/*显示函数*/

void disp()

{

char i,j=0xfe;

char k;

for(i=0;i<8;i++)

{

P2=j;

k=find_code[i];

P0=dis_code[k];

DelayX1ms(1);

j=_crol_(j,1);

}

}

/*主函数*/

void main()

{ char m,n=0xfe;

char k;

while(1)

{

disp();

P0=0xff;

for(m=0;m<8;m++)

{

P2=n;

k=find_code[m];

P0=dis_code[k];

DelayX1ms(1000);

n=_crol_(n,1);

}

}

}

相关文档
最新文档