
基于Proteus软件的4*4矩阵键盘设计与仿真
流选通每个数码管的公共极时,则数码管将轮流显示有关字符。由于入的视觉特性、所能看到的是同时燃亮的字符。 3.2.3晶振电路
简单地说没有晶振电路就没有时钟周期,没有时钟周期,就无法执行程序代码,单片机就无法工作。
单片机工作时,是一条一条地从ROM中取指令,然后一步一步的执行。单片机访问一次存储器的时间,称之为而一个机器周期,这是一个时间基准。一个机器周期包括12个时钟周期。如果一个单片机选择了12MHZ晶振,它的时钟周期是1/12us,它的一个机器周期是12*(1/12)us,也就是1us。
单片机的晶振电路是一种典型电路,分为内部时钟方式和外部时钟方式两种。内部时钟的晶振频率一般选择在4MHZ~12MHZ之间,外接两个谐振电容,该电容的典型值为30pF但是在实际应用时,需根据实际起振情况选择。如果单片机的时钟必须使用某一个外接的时钟信号,就不要外界晶振。由于此时的外接晶振引脚上没有晶振信号输入,内部的时钟电路将停振。这种方式称为外部时钟方式。
3.3功能和原理图
3.3.1实现功能
矩阵式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处。本设计使用的是4行*4列的16键阵列式键盘,当键被按下时,其交点的行线和列线接通,相应行线或列线的电平发生变化,从而确定被按下的功能键。在仿真软件中,按下相应的功能键后,LED显示器就会显示出0~f相应的字符。 3.3.2硬件电路原理图
16
基于Proteus软件的4*4矩阵键盘设计与仿真
RP1C130pFRESPACK-8X1119CRYSTALXTAL1C21830pFXTAL2R110K9RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617RR1RR2RR3RR4CR1CR2CR3CR4C310uF293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51048C159D26AE37BF23456789CR4CR3CR2CR1RR4RR3RR2RR1 图3-1 :硬件电路原理图
3.4系统与硬件的连接
(1) 把“单片机系统”区域中的P3.0-P3.7端口连接到“4X4行列式键盘”区域中的C1-C4 R1-R4端口上。
(2) 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口连接到“四路静态数码显示模块”区域中的任一a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,??,P0.7/AD7对应着h。
17
基于Proteus软件的4*4矩阵键盘设计与仿真
第四章 系统软件设计
4.1程序框图
图4-1 :程序框图
4.2源程序
汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。汇编作为一门语言具有编程语言的一般特性,而高级语言大都编译为汇编指令,最终转化为机器指令得以执行。
本设计是采用汇编语言设计的,4×4矩阵式键盘程序如下: 扫描结果是0,1,2,3, 4,5,6,7, 8,9,a,b, c,d,e,f
检测按键子程序
18
基于Proteus软件的4*4矩阵键盘设计与仿真
BUTTON_NUMBER EQU 55H ;键盘扫描结果 KEY_TEST:
MOV P1,#0F0H; MOV A,P1 ORL A,#0FH CPL A
JNZ PRESS_BUTTON AJMP BACK1 PRESS_BUTTON:
CALL DELAY_20MS
MOV R2,#0; MOV R4,#4; MOV R1,#11111110B; MOV A,R1 L1:
MOV R3,#4 MOV P1,A MOV A,P1
RRC A; RRC A RRC A RRC A L2:
RRC A JNC FIND
INC R2; DJNZ R3,L2; MOV A,R2
ADD A,#4; MOV R2,A
存放按键值,从0开始 列扫描次数
扫描第一行 先右循环移动4次,使高四位变成第四位 在1列内没找到,使数字加1 判断4列扫描完了没 在1行上没找到,使数字加4 19
基于Proteus软件的4*4矩阵键盘设计与仿真
MOV A,R1
RL A;左移扫描下一行 MOV R1,A
DJNZ R5,L1;判断4行扫描完了没 AJMP BACK1 FIND: CHECK_LOOSE:
MOV P1,#0F0H MOV A,P1 ORL A,#0FH CPL A
JNZ CHECK_LOOSE CALL DELAY_20MS MOV BUTTON_NUMBER,R2 AJMP BACK1 DELAY_20MS:
MOV R1,#0C8H L4: MOV R3,#018H L3: NOP NOP
DJNZ R3,L3 DJNZ R1,L4 BACK1: RET
20
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库44矩阵键盘仿真(5)在线全文阅读。
相关推荐: