标题:
数码管显示+矩阵按键的单片机源码与电路图
[打印本页]
作者:
761483478
时间:
2018-6-9 19:27
标题:
数码管显示+矩阵按键的单片机源码与电路图
这是我先前编写的数码管显示+矩阵按键程序:
矩阵按键:按下
4*4
矩阵按键分别代表
0
~
F;
独立按键
K3
为清屏按键,按下后数码内容清空。
电路原理图如下:
8_TO7AH6Z@BTP9NFOAYXPYI.png
(60.68 KB, 下载次数: 30)
下载附件
2018-6-9 19:27 上传
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit k3=P3^5;
uchar k;
uchar duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e} ;
void delays(s)
{
int i,j;
for(i=s;i>0;i--)
for(j=120;j>0;j--);
}
void keypros()
{
uchar a,b;
P1=0xf0;
delays(10) ;
a=P1;
P1=0x0f;
delays(10);
b=P1;
a=a+b;
switch(a)
{
case 0x7e:k=0;break;
case 0xbe:k=1;break;
case 0xde:k=2;break;
case 0xee:k=3;break;
case 0x7d:k=4;break;
case 0xbd:k=5;break;
case 0xdd:k=6;break;
case 0xed:k=7;break;
case 0x7b:k=8;break;
case 0xbb:k=9;break;
case 0xdb:k=10;break;
case 0xeb:k=11;break;
case 0x77:k=12;break;
case 0xb7:k=13;break;
case 0xd7:k=14;break;
case 0xe7:k=15;break;
}
}
void main()
{
P2=0x00;
while(1)
{
if(k3==0)
{
delays(10);
if(k3==0)
{
k=0xff;
}
}
keypros();
if(k!=0xff)
{
P0=duan[k];
}
else if(k==0xff)
{
P0=k;
}
}
}
复制代码
所有资料51hei提供下载:
实验三.zip
(17.46 KB, 下载次数: 17)
2018-6-9 19:26 上传
点击文件名下载附件
实验程序
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1