单片机(AT89C51)外接键盘4*3扫描C程序

单片机(AT89C51)外接键盘4*3扫描C程序,第1张

这个是44的矩阵键盘,代码自己改一下就可以了

#include<reg51h>

#include<intrinsh>

#define uint unsigned int

#define uchar unsigned char

uchar code table[16] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

void Delay_1ms(uint i)//1ms延时

{

uchar x,j;

for(j=0;j<i;j++)

for(x=0;x<=148;x++);

}

uchar Keyscan(void)

{

uchar i,j, temp, Buffer[4] = {0xfe, 0xfd, 0xfb, 0xf7}; //让矩阵键盘的每行分别为低电平

for(j=0; j<4; j++)

{

P1 = Buffer[j];

temp = 0x10;

for(i=0; i<4; i++)

{

if(!(P1 & temp)) //判断P1口高4位某一列为低电平

{

return (i+j4); //返回键码

}

temp <<= 1;

}

}

}

void Main(void)

{

uchar Key_Value; //读出的键值

while(1)

{

P1 = 0xf0;

if(P1 != 0xf0) //判断有无按键按下

{

Delay_1ms(20); //按键消抖

if(P1 != 0xf0) //第二次判断有无按键按下

{

Delay_1ms(20); //按键消抖

if(P1 != 0xf0) //第三次判断有无按键按下

{

Key_Value = Keyscan();

}

}

}

P0 = table[Key_Value];

P2 = 0x07;

}

}

下面是一个我机子上调试好的8255程序、希望对你有所帮助。、 祝你好运~~~ 8255扫描键盘、显示程序 利用8255可编程并行口做一个扫描键盘实验, 把按键输入的键码,显示在由8279控制的七段数码管上。 8255PA口做键盘输入线,PB口作扫描线

代码很好写,但是关键是你的数码管属于硬件

也就是说,至少要知道 *** 作你数码管的API才行啊。

或者说要怎样传送数据给你的数码管,你的数码管需要接受怎样的数据。

键盘扫描很简单,给你个代码。

要求引用头文件

#include <iostream>

using namespace std;

#include <conioh>//kbhit API头文件

#include <timeh>

#include <windowsh>

#define ESC 0x1b

void loop()

{

int i;

if( kbhit() ) //判断是否有键盘按键按下。

{

char ch;

ch = getch(); //获取按下的键值

if( ESC == ch )//判断是否是你要的键,我以ESC为例

{

cout<<"ESC"<<endl;

system("pause");

}

}

while( !kbhit() )//没有按键是的 *** 作

{

balabalabala

}

}

int main()

{

loop();

}

以上就是关于单片机(AT89C51)外接键盘4*3扫描C程序全部的内容,包括:单片机(AT89C51)外接键盘4*3扫描C程序、用8255的C口做键盘扫描,怎么写程序、求编写一个键盘数码块扫描实验的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10125940.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存