标题:
单片机按键控制数码管输出字符程序
[打印本页]
作者:
小淑女
时间:
2020-5-8 19:14
标题:
单片机按键控制数码管输出字符程序
附件中包含原理图和程序全部内容。主要练习51单片机按键的应用,是一个非常简单和基础的内容,适合新手学习过程当中去做练习
51hei.png
(11.08 KB, 下载次数: 63)
下载附件
2020-5-9 03:16 上传
按键控制数码管输出.zip
(53.6 KB, 下载次数: 12)
2020-5-8 19:08 上传
点击文件名下载附件
程序+仿真
下载积分: 黑币 -5
#include<reg51.h>
unsigned char scan_key( );
void display(unsigned char i);
void delayms(unsigned int t);
unsigned char key;
unsigned char a[] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void main()
{
while(1)
{
scan_key();
display(key);
}
}
void display(unsigned char i)
{
P2=a[i];
}
void delayms(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<120;j++);
}
unsigned char scan_key () //???????
{
unsigned char hang,lie;
P1=0x0f; //???????????
if(P1!=0x0f)
delayms(10);
if(P1!=0x0f)
{
switch(P1&0x0f) //????к?
{
case 0x0e:hang=0;break;
case 0x0d:hang=1;break;
case 0x0b:hang=2;break;
case 0x07:hang=3;break;
}
P1=0xf0; //?????????????????к?
switch(P1&0xf0)
{
case 0xe0:lie=0;break;
case 0xd0:lie=1;break;
case 0xb0:lie=2;break;
case 0x70:lie=3;break;
}
P1=0x0f;
while(P1!=0x0f); //??????????
key=hang*4+lie;
}
return (key);
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1