为8051单片机扩展行列式按键,1个并行口最多可以

作者&投稿:骑厚 (若有异议请与网页底部的电邮联系)
单片机行列式键盘扫描原理?~

单片机行列式键盘扫描原理如下:
1、行线P10~P13为输出线,列线P14~P17为输入线。一开始单片机将行线(P10~P13)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。
2、延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下。最后一步确定键值。当判断确实有键按下之后,行线轮流输出低电平,根据读入列线的数据可以确定键值。
3、单片机将P10输出为低电平,其它P11~P13输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P11输出低电平,其它P10、P12、P13仍为高电平。
4、此时再来读取列线数据,发现列线读到的数据有低电平,数值为1011(0x0B),如果我们的键盘布局已经确定,那么0x0B就代表S5的值了。转到S5键功能处理子程序就可以达到目的。

扩展资料
单片机学习方法
1、基础理论知识学习
基础理论知识包括模拟电路、数字电路和C语言知识。。在学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加强基础。
2、单片机实践
准备一台电脑、一块单片机开发板、一套视频教程、一本单片机教材和一本C语言教材。电脑是用来编写和编译程序,并将程序代码下载到单片机上;开发板来运行单片机程序,验证实际效果。

  现在的笔记本键盘一般都是16+8的方式,即16个pin输出,对应列;8个输入pin脚,对应行。
  键盘输入与输出的结构如下:

  在Idel状态下,EC把16条输出线全部拉低,使能键盘扫描中断,这样当任意一个按键按下时,就会触发中断(ICU的INT11h),然后EC就开始逐列扫面,比如OUT(0,1,……,15)输出(1,1,……,1,0),(1,1,……,0,1)……(0,1,……,1,1),当数一个列扫描码,得到的行如输入信号为有一个为0的时候,这是得到的列扫描码与行扫描码就是这个键的扫面码。比如上图按下S6的时候,列与行扫描码就分别为1101,1011。然后通过扫描码在Scan table里面找对应的键码,传给OS,确定是哪个键。
  在上面的图中,我们看到,在输入信号每个上面都有上拉电阻,这个电阻必须有除非EC的输入pin脚上面的有足够的上拉能力,否则扫描就会出现错误。
  下图中,是一个正常的键盘矩阵图。键盘上面的数字就与下面矩阵里面相同的数字对应。

  普通键盘结构及工作原理
  键盘一般有独立式和行列式(矩阵式)两种。当然还有其它的结构,比如交 互式结构等等,不过其它的结构比较少用,在这里就不介绍了。在中颖的单片机 中,有些单片机的LCD 驱动引脚的SEGMENT 口可以共享按键扫描口,当选择为按 键扫描口时,可以使用这些口来扫描按键,所以在外部电路可以连接LCD 和按键 矩阵,采用分时扫描进行处理。

4×4=16 ,其余 3×5只有15 个 2X6 只有12个
1×7的话还不如独立按键多


8051单片机片外程序存储器和片外数据存储器是用户自己扩展的吗
片外的储存器当然都是用户自己扩展的。针对于你提出的问题,我之前也有过相似的疑问,后来我觉得所谓rom,即只读存储器并不是说你根本就不能改变里面的数据,而是说在单片机运行期间里面的东西是不能改变的,因为里面存的是程序。(你想想,程序在运行期间,自己改变了,那还能当程序吗???)比如说...

一个8051扩展系统,用线选法最多可以扩展几片6264?画出原理图,并确定每...
一个8051扩展系统,用线选法最多可以扩展3片6264 电路中 6264 的地址线A12~A0 与锁存器的输出及P2 的对应线相连,6264 的数据线D7~D0 与P0口对应相连,6264 的控制线 和 与8051 的 和 对应相连,三个 分别接8051 的P2.5, P2.6, P2.7。第一片 (1100 )0000 0000 0000 ———(...

8051单片机内部有4 KB的ROM,外部可扩张64KB的ROM,可用ROM68KB,这句...
不对,应该是在 4K 的基础上扩展的。C51 的内部资源:2、一个串口3、128B的RAM4、4个IO口5、8位数据总线6、16位地址总线7、2个外部中断8,有4K的ROM ,8051外扩RAM和ROM最大都为64K 应该是在 4K 的基础上扩展的。

8051单片机的c语言原程序的扩展名
扩展名是XX.c可以记事本打开。、、

MCS-51单片机问题。
正确答案如下:1、8051单片机扩展了16K外部RAM,高位剩余地址线没有使用,则地址为0200H的单元还有其他哪些地址。扩展了16K,就要使用14条地址线。那么,还有两条地址线可以随意变化,能够找到0200H。即有:4200H、8200H、C200H,三个地址。--- 2、8051单片机扩展了一片8255芯片,A1、A0按常规连接,...

89c51单片机中rom,ram的扩展范围是多少
8051单片机RAM和ROM的扩展范围都是:0000H~FFFFH,也就是64K

8051单片机功能简介
从这里我们可以看到,当系统没有进行扩展时ALE会以1\/6振荡周期的固定频率输出,因此可以做为外部时钟,或者外部定时脉冲使用。PORG为编程脉冲的输入端 在第五课 单片机的内部结构及其组成中,我们已知道,在8051单片机内部有一个4KB或8KB的程序存储器(ROM),ROM的作用就是用来存放用户需要执行的程序的...

以8051单片机为核心,对其扩展8KB的外部程序储存器。要求采用一片2764芯...
以8051单片机为核心,对其扩展8KB的外部程序储存器。要求采用一片2764芯片。---满足这种要求的电路,至少有十几种画法。题目要求的是逻辑连接图,更是一种简略的、抽象的画法。到底应该简略到什么程度,谁也不知道。只有看到你的教材的例题,才能了解。下面给出一种扩展一片2764的完整电路图。电路中,...

在8051单片机片外扩展16K*8bit数据存储器,选用6264(8K*8bit)芯片,74L...
需要2片6264,电路图如下:

给8051单片机扩展一片规格为27128 EPROM程序存储器,请画出系统连接图...
虽然简单,不作答,强烈谴责出这种题的老师,现在根本用不着扩展程序存储器。大容量单片机很便宜,扩展程序存储器只是白白增加成本,并降低系统可靠性和安全性。RAM同样也不用扩展。

建华区18010772909: 通过单片机外接一个4*4矩阵键盘,设置“0 - 9”启动”10个按键,进行30秒倒计时显示通过2位数码管实时显示 -
愈殷三黄: 1.编码按钮分别为0,1,2,……,9十个按键:可以用矩阵键盘实现,2.用发光二极管作为输出指示灯,灯亮代表锁“开”,灯灭代表锁“不开”,用一个IO口,接上二极管,接上限流电阻,接地.密码正确,另该IO口值为1,否则为0;3.设置开锁密码...

建华区18010772909: 8051单片机c语言编一个程序 8个按键按下显示相应1到8 -
愈殷三黄: 8 个独立按键? #include<reg51.h>#define uchar unsigned char#define uint unsigned int uchar i; uchar code tab[]={ 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ }; sbit key1=P1^0; sbit key2...

建华区18010772909: 如果8051构成的单片机系统有十个键输入,可以采用什么键盘,各占用多少根输入接口线 -
愈殷三黄: 单片机系统有十个键输入,就比较多了,就不能再用独立式按键了,可采用矩阵式按键.3X4矩阵就行了,这可以有12个键呢,不要这么多,只要10也行的.这样,只用7个引脚.如果用独立式按键,要10个引脚.假如,单片机的引脚有剩余,就算是按键用了10也够,那用独立式按键好啦,写程序好写的.

建华区18010772909: 谁能帮我用C语言编一个80C51的按键程序
愈殷三黄: 你先凑合着看看,有时间我再来完善.你应该可以自己改改吧? unsigned char key,key_h,kpush; unsigned int key_l; //按键连接到p1.0、p1.1、p1.2 void int_t0(void) interrupt 1 { unsigned char dd,i; TL0=TL0+30;TH0=0xfb; //800 /* 按键判别 */ if ((P...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网