导航:首页 > 操作系统 > 单片机44矩阵键盘原理图

单片机44矩阵键盘原理图

发布时间:2023-09-10 04:20:38

‘壹’ 单片机最小系统原理图,求详细讲解

我是一名单片机老玩家.
STC89C52单片机最小系统比较复杂,需要
STC89C52芯片 1 个,芯片底座 1 个,单排针 2 排
晶振电路:晶振 1 个,30pF电容 2 个
复位电路:10K电阻 1 个,10uF/16V电容 1 个
P0口上拉:10K排阻一个
电源去耦:10uF/16V电容 1 个,104 电容一个

建议使用STC最新的单片机STC15W4K32S4
完全兼容STC89C52,单独一个芯片就是最小系统
内部集成了高精度晶振和复位电路
P0、P1、P2、P3、P4、P5 口都可以配置为
开漏输出(和STC89C52的P0口一样)
或者弱上拉输出(和STC89C52的 P1、P2、P3 口一样)
或者推挽输出(最大驱动电流 20 mA)

‘贰’ 理解89c52单片机开发板的电路原理图

这个图应该很清楚了,各个功能模块都归纳到一个方框里面:
1、LCD1602显示模块接口
2、LCD12864显示模块接口
3、LED接口
4、蜂鸣器接口
5、ISP下载接口
6、PL2303驱动电路
7、电源电路
8、数码管电路接口及独立按键接口
9、DS18B20温度传感器接口及红外接收电路接口
10、CPU
11、复位电路和时钟电路。
这个开发板缺少4*4矩阵键盘。

‘叁’ 这是单片机4X4的键盘识别程序,请帮我解释,最好每句执行操作和原理都有,特别是case 0X0e; key=7的原因

temp等于0x0e时,键值key等于7 : 这个键值是你自己定义的,就是起一个标志位的作用,然后用程序判断键值,当键值等于7时,该进行什么动作,这就相当于当你那个按键按下时执行什么动作

写单片机C程序 一定要活用标志位
还有你好像都大四了,怎么这样普通的矩阵键盘程序还看不懂,该好好学习呀 兄弟

I和J 只是一个变量 用来决定延时时间的长短 延时是为了消除按键的抖动
毕竟机械按键存在抖动(按下去并不是电平直接就跳变并稳定下来了)
延时是软件消抖 增强系统的稳定性

‘肆’ 单片机 4*4矩阵键盘

这个电路图,只是你使用哪几个口在程序中对应上就可以了

程序

//行列扫描程序,可以自己定义端口和扫描方式,这里做简单介绍

#include<reg52.h>//包含头文件

#defineucharunsignedchar

#defineuintunsignedint

unsignedcharconstdofly[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F

ucharkeyscan(void);

voiddelay(uinti);

voidmain()

{

ucharkey;

P2=0x00;//1数码管亮按相应的按键,会显示按键上的字符

while(1)

{

key=keyscan();//调用键盘扫描,

switch(key)

{

case0x7e:P0=dofly[0];break;//0按下相应的键显示相对应的码值

case0x7d:P0=dofly[1];break;//1

case0x7b:P0=dofly[2];break;//2

case0x77:P0=dofly[3];break;//3

case0xbe:P0=dofly[4];break;//4

case0xbd:P0=dofly[5];break;//5

case0xbb:P0=dofly[6];break;//6

case0xb7:P0=dofly[7];break;//7

case0xde:P0=dofly[8];break;//8

case0xdd:P0=dofly[9];break;//9

case0xdb:P0=dofly[10];break;//a

case0xd7:P0=dofly[11];break;//b

case0xee:P0=dofly[12];break;//c

case0xed:P0=dofly[13];break;//d

case0xeb:P0=dofly[14];break;//e

case0xe7:P0=dofly[15];break;//f

}

}

}

ucharkeyscan(void)//键盘扫描函数,使用行列反转扫描法

{

ucharcord_h,cord_l;//行列值

P3=0x0f;//行线输出全为0

cord_h=P3&0x0f;//读入列线值

if(cord_h!=0x0f)//先检测有无按键按下

{

delay(100);//去抖

if(cord_h!=0x0f)

{

cord_h=P3&0x0f;//读入列线值

P3=cord_h|0xf0;//输出当前列线值

cord_l=P3&0xf0;//读入行线值

return(cord_h+cord_l);//键盘最后组合码值

}

}return(0xff);//返回该值

}

voiddelay(uinti)//延时函数

{

while(i--);

}

不明白的在联系我,也可以直接访问我的Blog:hi..com/lyzhangxiang

阅读全文

与单片机44矩阵键盘原理图相关的资料

热点内容
大话存储pdf 浏览:520
中铭机器人怎么编程 浏览:812
把字母变为数字的加密法 浏览:523
噬血狂袭第三季哪个app能看 浏览:421
江苏螺杆压缩机 浏览:980
android底部弹出对话框 浏览:501
怎么查服务器同行fc号 浏览:999
什么服务器云鸟最便宜 浏览:220
vs编译器反汇编 浏览:570
程序员直播做项目创业 浏览:403
linux下samba配置 浏览:797
程序员面试银行岗位会有编制吗 浏览:414
ex表怎么加密码保护 浏览:173
小孩上编程课用哪款好 浏览:559
如何制作服务器商店 浏览:735
压缩气管阀门 浏览:465
pdf推文 浏览:360
69程序员 浏览:583
阿里云服务器镜像如何迁移到腾讯 浏览:991
安卓如何显示日期在状态栏 浏览:807