当前位置:首页 > 嵌入式 > 嵌入式硬件

;;; 摘要:I/O端口是单片机实现对目标控制的端口,一般小型单片机的I/O端口都十分宝贵。文中介绍了一种可节省单片机I/O端口的键盘电路,分析了新型键盘电路结构和工作原理。最后给出了基于该键盘电路C51语言程序和软件处理过程。 ;;; 关键词:单片机 I/O端口 键盘 组合 扫描 1 新型键盘电路 键盘电路是单片机应用系统最常用的人机接口,往往要占用较多的I/O端口,利用本文介绍的电路,可以最大限度地减少键盘电路对I/O端口的点用。本电路特别适合一些引脚少、结构紧凑的单片机,可为其节省宝贵的I/O资源。 这里以3根I/O线为例,普通接法只能接3个键,即使是采用改进后的组合接法[1],最多也只能接7个链,本文介绍的电路是在组合接法的基础上增加了3个二极管,并采用了新的接法。其软件处理使用了端口访问和扫描检测两种方法,从而使按键数可达到16个,同时由于采用了组合逻辑来直接对端口进行读取,因此极大地简经了程序的处理过程,同时也节省了宝贵的存储器和CPU运算资源。图1是该电路的电路原理图。

2 软件过程和程序 该电路在程序处理时,由处理器首先向I/O1~I/O3写高电平,然后读入。如果非全“1”,说明,K0~K6中有键按下,此时可根据读入的端口状态判断键的状态,如果读入的结果为全“1”,则I/O1~I/O3轮流输出低电平,再读入,这样就可根据另外两根I/O线的状态来判别是K7~K15中的哪一个键被按下。重复调用键盘处理子程序可将读取的键值与上次的值进行比较,甚至两次读数相同为止,这样即可消除按键抖动所造成的误读。该电路选用的单片机为AT89C2051,用C51语言编写的按键电路处理程序如下: #include<c:eg51.h> #define uchar unsigned char uchar getkey(void); uchar keyvol; void main(void) { keyvol=getkey(); /*调用键处理函数,返回的数据等于16表示同有键按下,0至15对应k0至K15*/ } 以下为键盘处理子程序: uchar getkey(void) { uchar x P1=P1|0x07; /*I/O1至I/O3写“1”*/ xP1&0x07; /*读入I/O1至I/O3并屏蔽其它位*/ if(x= =10) { P1=P1|0x07; P1=P1&0xfd; /*I/O2写“0”*/ x=P1&0x07; x=(x+1)/2+10; /*屏蔽I/O2并转换K10至K12的键值*/ if(x = =13) { P1=P1|0x07; P1=P1&0xfb; /*I/O3写“0”*/ x=P1&0x07; x=x+13; /*屏蔽I/O3并转换K13至K15的键值*/ } }

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在现代人的生活中,断路器绝对是一种举足轻重的电路装置,而且是家用电路中最重要的安全机制之一。

关键字: 断路器 电路 灭弧系统

电力系统呈现出电力电子化趋势,在电磁暂态仿真计算中,针对不同的仿真对象以及不同的仿真精度要求,使用的数值计算方法不尽相同 。

关键字: 电力电子 电路 仿真

电路功率元件由标准的boost电路组成,通过电压和电流的双重反馈,其中电压位于外环,而电流位于内环。因此,APFC在保证输出端恒定电压的同时,使得电流的波形为正弦波。

关键字: 电路 功率元件 电压

本设计的控制系统主要包括:倾斜模块、超声波模块、语音模块、光敏电阻模块及电源等。

关键字: 单片机 STC51

本文针对电动两轮车自燃防控装置的开发与分析进行了研究。通过电动两轮车自燃原因分析,提出了电动两轮车的自燃防控智能装置设计思路,介绍了电动两轮车的自燃防控智能

关键字: STC89C52RC 单片机 微控制器

现在市面上还不存在一种方便实验人员选取芯片,以及方便管理人员对芯片进行智能化管理的芯片柜,为此希望通过研发这款智能芯片柜,来解决以上问题。​

关键字: 单片机 芯片

这款全新的中端MCU系列为设计人员提供了更高水平的安全性和灵活性

关键字: 嵌入式 单片机

单片机是一种嵌入式系统,它是一块集成电路芯片,内部包含了处理器、存储器和输入输出接口等功能。

关键字: 单片机 编写程序 嵌入式

在现代电子技术的快速发展中,单片机以其高度的集成性、稳定性和可靠性,在工业自动化、智能家居、医疗设备、航空航天等诸多领域得到了广泛应用。S32单片机,作为其中的佼佼者,其引脚功能丰富多样,是实现与外部设备通信、控制、数据...

关键字: s32单片机引脚 单片机
关闭
关闭