资源描述:
《中断扫描法行列式键盘》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、中断扫描法行列式键盘设计报告院系:班级:学号:姓名:指导老师:目录1芯片功能及简介21.180C51单片机引脚简介21.1.1电源引脚(2个)31.1.3控制引脚(4个)31.1.4输入/输出引脚(32个)31.2七段LED数码管工作原理41.34082的使用与功能42中断及行列式键盘设计42.1硬件电路设计42.1.1设计思路42.1.2设计电路图52.2源程序设计62.2.1设计思路62.2.2源代码63中断及行列式键盘设计最终效果73.1开始进入调试阶段73.2按下5号键8参考文献9第7页中断扫描法行列式键盘甘肃省庆阳市陇东学院摘要:中断扫描法行
2、列式键盘中的中断是在键盘按下时才执行键盘扫描程序,如果没有键盘按下,则将键盘视为不存在。行列式键盘的检测可采用软件扫描查询法进行,即根据按键压下后所在行线的端口电平是否出现反转,判断有无按键闭合动作。如果有按键操作根据给该键赋予的键码在数码管上显示相应的0~f中的任一数字。该设计电路中还增加了一个型号为4082的4与门集成元件。当各电平都为0时,无论压下哪个按键,与门的输出端都可形成INT0的中断请求信号。这样便可以将按键的扫描查询工作放在中断函数中进行,从而就能达到既快速响应按键动作,又提高CPU工作效率的目的。关键词:中断;行列式键盘;80C51;
3、数码管1芯片功能及简介1.180C51单片机引脚简介80C51单片机共有40个引脚,其中有2个是电源引脚,2个外接晶体振荡器引脚,4个控制引脚,还有4个端口(P0~P3),即32个输入/输出引脚。80C51的封装如图1.1下:图1.1图1.2第7页1.1.1电源引脚(2个)vVcc(40脚):电源端,接+5V电源。vVss(20脚):接地端。1.1.2外接晶振引脚(2个)vXTAL1(19脚)和XTAL2(18脚):接石英晶体振荡器。1.1.3控制引脚(4个)vRST(9脚):复位信号引脚。当石英晶体振荡器运行时,在此脚上出现两个机器周期的高电平,使单
4、片机复位。vALE/PROG(30脚):地址锁存允许信号端。当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低8位。当不访问外部锁存器时,ALE端仍以不变的频率周期性地输出脉冲信号,此频率为石英晶振振荡频率的1/6。因此它可用作对外输出的时钟或用于定时。vPSEN(29脚):外部存储器的读选通信号端。在读外部(ROM)时PSEN有效,以实现对外部程序存储器的读操作。vEA/VPP(31脚):访问程序存储器选择控制信号。当EA信号接低电平时,对ROM的读操作限定在外部程序存储器;当EA接高电平时,对ROM的读操作从内部开始。1.1.4输入/
5、输出引脚(32个)vP0端口:P0.0~P0.7(32~39脚)在外部扩充存储器时,可用作数据总线或地址总线,但内部无上拉电阻;不扩充时,可用作一般I/O端口使用,当作为输入或输出时应在外部接上拉电阻。vP1端口:P1.0~P1.7(1~8脚)只做I/O使用,其内部有上拉电阻。vP2端口:P2.0~P2.7(21~28脚)用作一般I/O使用,其内部有上拉电阻。在扩充外部存储器时,也可当作地址总线使用。v第7页P3端口:P3.0~P3.7(10~17脚)除了用作I/O使用外还有一些特殊功能,也称第二功能。1.2七段LED数码管工作原理这种显示器分为共阴极
6、和共阳极两种:共阳极LED数码管的所有阳极连接在一起,为公共端;共阴极LED显示器的发光二极管的所有阴极连接在一起,为公共端。单个数码管的引脚配置如图1.2所示,其中com为公共端。本篇文章借助共阴极数码管进行说明。1.34082的使用与功能4082为4与门集成元件。4082的装载形式如图1.3所示:图1.3当各电平都为0时,无论压下哪个按键,与门的输出端都可形成INT0的中断请求信号。这样便可以将按键的扫描查询工作放在中断函数中进行,从而就能达到既快速响应按键动作,又提高CPU工作效率的目的。2中断及行列式键盘设计2.1硬件电路设计2.1.1设计思路
7、第7页返回开始扫描4次P3键扫描码(P3&0F)=0f?键值=0~f查找按下键键值键值=-1图1.42.1.2设计电路图图1.5第7页2.2源程序设计2.2.1设计思路本次实验要经过外部中断实现数码管的数值变化,所以外部中断0的中断触发方式控制位(IT0)置1;外部中断允许位(EX0)置1;中断允许总控制位(EA)置1。2.2.2源代码#includecharled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x7
8、1};charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd