单片机矩阵键盘c语言程序,stc89c52单片机下的矩阵键盘程序

单片机矩阵键盘c语言程序,stc89c52单片机下的矩阵键盘程序stc89c52单片机就是51&52系列单片机,就和AT89C52差不多,没有什么大的区别,可以直接替换,只是内部多了一个EEPROM空间,可以串口下载程序,指令执行速度快一倍。STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能C…

stc89c52单片机 就是 51 & 52 系列单片机,就和 AT89C52 差不多,没有什么大的区别,可以直接替换,只是 内部多了一个 EEPROM 空间,可以 串口下载程序,指令执行速度 快一倍。

STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-Flash Programable and Erasable Read Only Memory )的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

878e19071577eb3b0f8d8602ae918a16.png

下面是一个stc89c52单片机下的矩阵键盘程序,P0口接键盘,显示在P2口。

#include

#define uchar unsigned char

#define uint unsigned int

sbit key1=P3^2;

sbit key2=P3^3;

uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //定义八个灯的工作状态。

uchar code wep[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};

void yanshi(uint t)

{

while(–t);

}

void main()

{

uchar han,lei,key;

while(1)

{

P0=0xf0; //初始化为开关状态。11110000

han=P0; //han变量读取P0口的值。第一次扫描键盘。

han=han&0xf0; //对han变量与0xf0与。

//如果结果等于P0口初值(0xf0)说明没有键被按下。

//如果结果不等于P0(0xf0)口初值,说明有键按下。

if(han!=0xf0)

yanshi(125*5); //延时消抖。

if(han!=0xf0) //语句执行到这里说明真的有键按下。

{ //例如按下S1键。则P0=1110 0000

lei=P0&0xf0; //lei读取P0口的值。

lei=lei|0x0f; //lei=11101111

P0=lei; //P0=11101111

han=P0; //han=11101110 第二次扫描键盘,

//因为这里按键S1还是闭合的状态。

han=han&0x0f; //han=00001110

lei=lei&0xf0; //lei=11100000

key=han+lei;

}

switch(key)

{

case 0xee: P2=tab[0]; break;

case 0xde: P2=tab[1]; break;

case 0xbe: P2=tab[2]; break;

case 0x7e: P2=tab[3]; break;

case 0xed: P2=tab[4]; break;

case 0xdd: P2=tab[5]; break;

case 0xbd: P2=tab[6]; break;

case 0x7d: P2=tab[7]; break;

case 0xeb: P2=tab[8]; break;

case 0xdb: P2=tab[9]; break;

case 0xbb: P2=tab[10]; break;

case 0x7b: P2=tab[11]; break;

case 0xe7: P2=tab[12]; break;

case 0xd7: P2=tab[13]; break;

case 0xb7: P2=tab[14]; break;

case 0x77: P2=tab[15]; break;

}

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/38839.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注