标题:
单片机8个键的次数检测 源程序 原理图与Proteus仿真 代码注释很详细
[打印本页]
作者:
51黑电子迷
时间:
2017-5-7 20:51
标题:
单片机8个键的次数检测 源程序 原理图与Proteus仿真 代码注释很详细
下面是单片机8个键的次数检测的proteus仿真原理图(工程文件可到本帖附件中下载):
0.png
(18.53 KB, 下载次数: 80)
下载附件
2017-5-7 20:48 上传
单片机源程序:
//#include <reg51.h>
#include<STC12C5A60S2.H>
#define uchar unsigned char
void delay(uchar);
sbit k8=P1^0;
sbit k7=P1^1;
sbit k6=P1^2;
sbit k5=P1^3;
sbit k4=P1^4;
sbit k3=P1^5;
sbit k2=P1^6;
sbit k1=P1^7;
/*
// 检测单键次数
main()
{ //m1:m0 00=标准; 01=推挽; 10=输入; 11=开漏输出
uchar num;
P1M1 = 0Xff;
P1M0 = 0X00; //设定P1输入
P2M1 = 0X00;
P2M0 = 0Xff; //设定P2推挽输出
num=0; //次数初始化为0
while(1)
{
if(!k3) //检测K3是否被按下
{
//已被按下
num++; // 次数加1
P2=~num; // 显示次数
delay(200); // 延时200MS
}
}
}
*/
//检测8个键的次数
main()
{ //m1:m0 00=标准; 01=推挽; 10=输入; 11=开漏输出
uchar num[8]={0,0,0,0,0,0,0,0}; //各键的次数初始化为0
uchar key=0;
P1M1 = 0Xff;
P1M0 = 0X00; //设定P1输入
P2M1 = 0X00;
P2M0 = 0Xff; //设定P2推挽输出
// num=0; //次数初始化为0
while(1)
{
key=P1^0x80;//k2这个脚反了,需要取反
///////////////////////
if(key!=0xff) //检测K3是否被按下
{
//已被按下
switch(key)
{
case 0xfe: //k8被按下
num[0]++; // 次数加1
P2=~num[0]; // 显示次数
delay(200); // 延时200MS
break;
case 0xfd: //k7被按下
num[1]++; // 次数加1
P2=~num[1]; // 显示次数
delay(200); // 延时200MS
break;
case 0xfb: //k6被按下
num[2]++; // 次数加1
P2=~num[2]; // 显示次数
delay(200); // 延时200MS
break;
case 0xf7: //k5被按下
num[3]++; // 次数加1
P2=~num[3]; // 显示次数
delay(200); // 延时200MS
break;
case 0xef: //k4被按下
num[4]++; // 次数加1
P2=~num[4]; // 显示次数
delay(200); // 延时200MS
break;
case 0xdf: //k3被按下
num[5]++; // 次数加1
P2=~num[5]; // 显示次数
delay(200); // 延时200MS
break;
case 0xbf: //k2被按下
num[6]++; // 次数加1
P2=~num[6]; // 显示次数
delay(200); // 延时200MS
break;
case 0x7f: //k1被按下
num[7]++; // 次数加1
P2=~num[7]; // 显示次数
delay(200); // 延时200MS
break;
default:
break;
}
} //*/
}
}
void delay(uchar k )
{
uchar x,y,z;
for(x=k;x>0;x--)
for(y=20;y>0;y--)
for(z=250;z>0;z--);
}
复制代码
给大家分享一些我们老师给的一些经典的单片机程序源码, 一共有十多个.都有详细的注释,然大家快速的理解每一行代码的意思。而且有proteus仿真原理图。大家可以直接验证程序的对错.
本系列所有源码打包下载地址(含proteus仿真工程文件和源程序):
http://www.51hei.com/bbs/dpj-82474-1.html
本例程下载:
keytest.rar
(53.32 KB, 下载次数: 9)
2017-5-7 20:49 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1