声明一下,我学单片机主要看的是小蜜蜂老师的课程,所以代码肯定会和老师讲的很类似,我现在还属于一个学习的过程,主要以模仿为主
今天写的是独立按键的代码
独立按键只用到S7、S6、S5和S4
下面是一段可以正常运行的代码
#include"reg52.h"
sbit S7=P3^0;//首先对按键和用到的LED灯进行位定义
sbit S6=P3^1;
sbit S5=P3^2;
sbit S4=P3^3;
sbit L1=P0^0;
sbit L2=P0^1;
sbit L3=P0^2;
sbit L4=P0^3;
sbit L5=P0^4;
sbit L6=P0^5;
void HC573(unsigned char channel)
{
switch(channel)
{
case 4:
P2=(P2&0x1f)|0x80;
break;
case 5:
P2=(P2&0x1f)|0xa0;
break;
case 6:
P2=(P2&0x1f)|0xc0;
break;
case 7:
P2=(P2&0x1f)|0xe0;
break;
}
}
void Delay(unsigned char t)
{
while(t--);
}
void chushihua()//关闭蜂鸣器
{
HC138_C=1;
HC138_B=0;
HC138_A=1;
P0=0x00;
}
void scankey()
{
if(S7==0)
{
Delay(100);//起到消抖的作用
if(S7==0)//再次确认
{
L1=0;
while(S7==1);
L1=1;
}
}
if(S6==0)
{
Delay(100);
if(S6==0)
{
L2=0;
while(S7==1);//受S7控制,S7按下的时候S6失效
L2=1;
}
}
if(S5==0)
{
Delay(100);
if(S5==0)
{
L3=0;
while(S7==1);
L3=1;
}
}
if(S4==0)
{
Delay(100);
if(S4==0)
{
L4=0;
while(S7==1);
L4=1;
}
}
}
void main()
{
chushihua();
HC573(4);//打开控制LED的锁存器
while(1)
{
scankey();
}
}
先简单分享这些哈,着急改论文呜呜
|