单片机程序大全

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

独立按键

#include

#define uchar unsigned char

#define uint unsigned int

sbit P27=P2^7;

sbit K5=P1^4;

sbit fmq=P3^6;

uchar num;

unsigned char code s8[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0 x83,0xc6,0xa1,0x86,0x8e};

void delay1ms(uint i)

{uchar j;

while(i--)

{for(j=0;j<115;j++) //1ms基准延时程序

{;}

}

}

void beep() //产生1KHZ频率声音的函数

{

fmq=0;

delay500us();

fmq=1;

delay500us();

}

void delay500us()

{

unsigned char j;

for(j=0;j<57;j++) //500us基准延时程序{; }

}

void main()

{ uchar t;

P27=0;

while(1){

if(K5==0){

delay1ms(15);

if(K5==0){

for(t=0;t<100;t++)

{ beep();}

num=num+1;

if(num==16){

num=0;

}

while(!K5);//等待按键释放

}

}

P0=s8[num];

}

}

#include

#define uchar unsigned char //数据类型的宏定义

#define uint unsigned int //数据类型的宏定义

sbit P27=P2^7;

unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88, 0x83,0xC6,0xA1,0x86,0x8E,0xBF};

//共阳数码管显示字型码数组1011 1111 "-"

void delay1ms(uint i)

{

uchar j;

while(i--)

{

for(j=0;j<115;j++);//1ms基准延时程序

}

}

void display(unsigned char i)

{

P27=0; //选通最有端的数码管显示P0=table[i]; //显示i参数传来的字型码}

void main(void)

{

unsigned char temp;

display(16); //初始显示"-"

while(1)

{

P1=0xff; //先向P1口写1;端口读状态

P1=0xf0;

temp=P1;

if(temp!=0xf0)

{

delay1ms(15);

if(temp!=0xf0)

{

P1=0xfe;

temp=P1;

switch(temp)

{

case(0xee):display(0);break;

case(0xde):display(1);break;

case(0xbe):display(2);break;

case(0x7e):display(3);break;

}

P1=0xfd;

temp=P1;

switch(temp)

{

case(0xed):display(4);break;

case(0xdd):display(5);break;

case(0xbd):display(6);break;

case(0x7d):display(7);break; }

P1=0xfb;

temp=P1;

switch(temp)

{

case(0xeb):display(8);break;

case(0xdb):display(9);break;

case(0xbb):display(10);break;

case(0x7b):display(11);break;

}

P1=0xf7;

temp=P1;

switch(temp)

{

case(0xe7):display(12);break;

case(0xd7):display(13);break;

case(0xb7):display(14);break;

case(0x77):display(15);break;

}

}

}

}

}

/*行线接P1.0-P1.3,列线接P1.4-P1.7。

根据线反转法扫描键盘返回的键值编码查键值编码表,从而得到键值并送数码管显示。

开机时,数码管显示“-”。*/

相关文档
最新文档