独立按键控制数码管

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

/*独立键盘控制数码管*/

#include

//#include "intrins.h"

sbit P34=P3^4; // LCDEN

sbit P35=P3^5; // RS

sbit P36=P3^6; //WR

sbit P37=P3^7; //RD

sbit dula=P2^6; //段选

sbit wela=P2^7; //位选

#define uint unsigned int

#define uchar unsigned char

uchar display_code[]={0x3f,0x06,0x5b,0x4f,0x66,0x00}; //0、1、2、3、4、关闭数码管段选uchar display_data[]={0x3d,0x3b,0x37,0x2f,0x1f,0xff}; //第1、2、3、4位数码管、关闭位选

void delay(uint k) //延时程序

{

uchar i,j;

for(j=k;j>0;j--)

for(i=250;i>0;i--);

}

void display(uchar i) //显示函数程序

{

uchar j;

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

{

P0=display_data[i]; /*位值送入位寄存器*/

wela=1;

// _nop_();

// _nop_();

wela=0;

P0=display_code[i]; /*段值送入段寄存器*/

dula=1;

// _nop_();

// _nop_();

dula=0;

delay(1);

}

}

void main()

{

while(1)

{

P2=0x00;

if(P34==0) //按键LCDEN按下

{

delay(20);

if(P34==0)

{

display(1); //在第四位显示1

while(P34==0) ;

}

}

if(P35==0) //按键LCDEN按下

{

delay(20);

if(P35==0)

{

display(2); //在第三位显示2

while(P35==0) ;

}

}

if(P36==0) //按键LCDEN按下

{

delay(20);

if(P36==0)

{

display(3); //在第二位显示3

while(P36==0) ;

}

}

if(P37==0) //按键LCDEN按下

{

delay(20);

if(P37==0)

{

display(4); //在第一位显示4

while(P37==0) ;

}

}

display(5); //放开按键时不显示}

}

相关文档
最新文档