求51单片机的P2口按键8个,P0口led8个,对应控制它的开或关,谢谢。要C语言?单片机编程设计要求如下:在的P0口接有发光二极管作为指示灯,P1.0~P1.3接有4个按键?
求51单片机的P2口按键8个,P0口led8个,对应控制它的开或关,谢谢。要C语言?
sbit P2^0 =key0;
sbit P2^1 =key1;
sbit P2^2 =key2;
sbit P2^3 =key3;
sbit P2^4 =key4;
sbit P2^5 =key5;
sbit P2^6 =key6;
sbit P2^7 =key7;
sbit P0^0 =led0;
sbit P0^1 =led1;
sbit P0^2 =led2;
sbit P0^3 =led3;
sbit P0^4 =led4;
sbit P0^5 =led5;
sbit P0^6 =led6;
sbit P0^7 =led7;
假设按键按下为低电平,点亮LED用高电平,则示意代码如下
if(key0 == 0)
led0 = 1;
if(key1 == 0)
led1 = 1;
if(key2 == 0)
led2 = 1;
if(key3 == 0)
led3 = 1;
...........
............
if(key7 == 0)
led7 = 1;
单片机编程设计要求如下:在单片机的P0口接有8个发光二极管作为指示灯,P1.0~P1.3接有4个按键?
#include<reg51.h>
#define uchar unsigned char
sbit key1=P1^0;
sbit key2=P1^1;
sbit key3=P1^2;
sbit key4=P1^3;
uchar LED=0xfe;
void delay(uchar a)
{
uchar i,j;
for(i=0;i<a;i++)
for(j=0;j<120;j++);
}
main()
{
P0=0xff;
while(1)
{
while(key1==0){P0=0x00;delay(200);P0=0xff;delay(200)}
while(key2==0){P0=0xff;}
while(key3==0){P0=LED;LED=(LED<<1)
0x01;if(LED==0xff)LED=0xfe;delay(200);}
while(key4==0){P0=LED;LED=(LED>>1)
0x80;if(LED==0xff)LED=0x7f;delay(200);}
}
}
留言与评论(共有 0 条评论) |