📄 w4.c
字号:
//单片机P1 口接8 只发光二极管,P3.2~P3.5 接有K1~K4 共四个按键,使用串行
//口编程,1)由PC 机控制单片机的P1 口,将PC 机送出的数以二进制形式显示在发光二极
//管上;2)按下K1 向主机发送数字0x55,按下K2 向主机发送数字0xAA,使显示转下一行。
#define uchar unsigned char
#include "string.h"
#include "reg51.h"
void SendData(uchar Dat)
{ uchar i=0;
SBUF=Dat;
while(1){ if(TI)
{ TI=0;
break;}}
}
void mDelay(unsigned int DelayTime)
{ unsigned char j=0;
for(;DelayTime>0;DelayTime--)
{ for(j=0;j<125;j++)
{;}
}
}
uchar Key()
{ uchar KValue;
P3|=0x3e; //中间4 位置高电平
if((KValue=P3|0xe3)!=0xff)
{ mDelay(10);
if((KValue=P3|0xe3)!=0xff)
{ for(;;)
if((P3|0xe3)==0xff)
return(KValue);
}
}
return(0);
}
void main()
{ uchar KeyValue;
P1=0xff; //关闭P1 口接的所有灯
TMOD=0x20; //确定定时器工作模式
TH1=0xFD;
TL0=0xFD; //定时初值
PCON=0x80; //SMOD=1
TR1=1; //开启定时器1
SCON=0x40; //串口工作方式1
REN=1; //允许接收
for(;;)
{ if(KeyValue=Key())
{ if((KeyValue|0xfb)!=0xff) //K1 按下
SendData(0x55);
if((KeyValue|0xf7)!=0xff)
SendData(0xaa);
}
if(RI)
{ P1=SBUF;
RI=0;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -