中断扫描法行列式键盘Word文档格式.doc
- 文档编号:931564
- 上传时间:2023-04-29
- 格式:DOC
- 页数:10
- 大小:163.70KB
中断扫描法行列式键盘Word文档格式.doc
《中断扫描法行列式键盘Word文档格式.doc》由会员分享,可在线阅读,更多相关《中断扫描法行列式键盘Word文档格式.doc(10页珍藏版)》请在冰点文库上搜索。
2.1.1设计思路 4
2.1.2设计电路图 5
2.2源程序设计 6
2.2.1设计思路 6
2.2.2源代码 6
3中断及行列式键盘设计最终效果 7
3.1开始进入调试阶段 7
3.2按下5号键 8
参考文献 9
中断扫描法行列式键盘
甘肃省庆阳市陇东学院
摘要:
中断扫描法行列式键盘中的中断是在键盘按下时才执行键盘扫描程序,如果没有键盘按下,则将键盘视为不存在。
行列式键盘的检测可采用软件扫描查询法进行,即根据按键压下后所在行线的端口电平是否出现反转,判断有无按键闭合动作。
如果有按键操作根据给该键赋予的键码在数码管上显示相应的0~f中的任一数字。
该设计电路中还增加了一个型号为4082的4与门集成元件。
当各电平都为0时,无论压下哪个按键,与门的输出端都可形成INT0的中断请求信号。
这样便可以将按键的扫描查询工作放在中断函数中进行,从而就能达到既快速响应按键动作,又提高CPU工作效率的目的。
关键词:
中断;
行列式键盘;
80C51;
数码管
1芯片功能及简介
1.180C51单片机引脚简介
80C51单片机共有40个引脚,其中有2个是电源引脚,2个外接晶体振荡器引脚,4个控制引脚,还有4个端口(P0~P3),即32个输入/输出引脚。
80C51的封装如图1.1下:
图1.1图1.2
1.1.1电源引脚(2个)
vVcc(40脚):
电源端,接+5V电源。
vVss(20脚):
接地端。
1.1.2外接晶振引脚(2个)
vXTAL1(19脚)和XTAL2(18脚):
接石英晶体振荡器。
1.1.3控制引脚(4个)
vRST(9脚):
复位信号引脚。
当石英晶体振荡器运行时,在此脚上出现两个机器周期的高电平,使单片机复位。
vALE/PROG(30脚):
地址锁存允许信号端。
当访问外部存储器时,ALE(允许地址锁存)的输出用于锁存地址的低8位。
当不访问外部锁存器时,ALE端仍以不变的频率周期性地输出脉冲信号,此频率为石英晶振振荡频率的1/6。
因此它可用作对外输出的时钟或用于定时。
vPSEN(29脚):
外部存储器的读选通信号端。
在读外部(ROM)时PSEN有效,以实现对外部程序存储器的读操作。
vEA/VPP(31脚):
访问程序存储器选择控制信号。
当EA信号接低电平时,对ROM的读操作限定在外部程序存储器;
当EA接高电平时,对ROM的读操作从内部开始。
1.1.4输入/输出引脚(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使用,其内部有上拉电阻。
在扩充外部存储器时,也可当作地址总线使用。
vP3端口:
P3.0~P3.7(10~17脚)除了用作I/O使用外还有一些特殊功能,也称第二功能。
1.2七段LED数码管工作原理
这种显示器分为共阴极和共阳极两种:
共阳极LED数码管的所有阳极连接在一起,为公共端;
共阴极LED显示器的发光二极管的所有阴极连接在一起,为公共端。
单个数码管的引脚配置如图1.2所示,其中com为公共端。
本篇文章借助共阴极数码管进行说明。
1.34082的使用与功能
4082为4与门集成元件。
4082的装载形式如图1.3所示:
图1.3
2中断及行列式键盘设计
2.1硬件电路设计
2.1.1设计思路
返回
开始
扫描4次
P3键扫描码
(P3&
0F)=0f?
键值=0~f
查找按下键键值
键值=-1
图1.4
2.1.2设计电路图
图1.5
2.2源程序设计
2.2.1设计思路
本次实验要经过外部中断实现数码管的数值变化,所以外部中断0的中断触发方式控制位(IT0)置1;
外部中断允许位(EX0)置1;
中断允许总控制位(EA)置1。
2.2.2源代码
#include<
reg51.h>
charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};
charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,
0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
voidgetKey()interrupt0
{
charkey_scan[]={0xef,0xdf,0xbf,0x7f};
chari=0,j=0;
for(i=0;
i<
4;
i++)
{
P1=key_scan[i];
for(j=0;
j<
16;
j++)
{
if(key_buf[j]==P1)
{
P2=led_mod[j];
break;
}
}
}
}
voidmain(void)
P2=0x00;
IT0=1;
EX0=1;
EA=1;
while
(1)
P1=0x0f;
3中断及行列式键盘设计最终效果
3.1开始进入调试阶段
刚进入调试阶段的结果如图1.6所示:
图1.6
3.2按下5号键
按下5号键的结果如图1.7所示:
图1.7
第7页
参考文献
[1]林立,张俊亮.单片机原理及应用____基于Proteus和keilC(第2版)[M].电子工业出版社.2013.
[2]杜树春.基于Proteus和keilC51的单片机设计与仿真[M].电子工业出版社.2012
[3]谭浩强.C语言设计(第三版)[M]..北京:
清华出版社.2005
第8页
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中断 扫描 行列式 键盘