单片机与矩阵键盘接口电路设计实验报告

时间:2020-11-08 09:33:23 手机站 来源:网友投稿

单片机与矩阵键盘接口电路设计实验报告

单片机与矩阵键盘接口电路设计实验报告

姓名:

林蔼龄

学号:

1060601007

班级:

10级物理系电子信息工程 A班

XTALlKTAL2RSTaDEATftSCSlΓEX1rCF-SEH ?E EAIU9亠?

XTALl

KTAL2

RST

a

D

E

ATftSCSl

ΓEX1

r

C

F-SEH ?E EA

IU9

?>

一:实验内容

使用单片机的P1 口与矩阵式键盘连接时,可以将 P1 口低4位的4条端口 线定义为行线,P1 口高4位的4条端口线定义为列线,形成 4*4键盘,可以配 置16个按键,将单片机P2 口与七段数码管连接,当按下矩阵键盘任意键时,数 码管显示该键所在的键号。

:电路图

[PD.QfADO M.HAD1 何2也02 Pα.3ΓAD3 賀

P0.5∕AD5

IPa 5IADE 叮 1-∣?∕

P2.o?a P2.1J?9 P3iMI0 P2:3?11 P2.12 P3Sj?13 R2.6M14 P2.7J?15

曲 JMFD P31JTXD P3.2flNτf P3.3?JτΓ

P34JTO P3?Π,1

P3占晅 PST丽

:程序流程图

四:程序

Org Ooooh

IjmP mai n

main:mov p1,#Ofh;列线输出O,行线设为输入 mov a,p1;读 P1 口

an I a,#Ofh;屏蔽高4位,留下行线状态

Cjne a,#0fh,look;有按键按下,转 look

ret;无按键按下,返回主程序

look:lcall dIay10;延时 10ms

mov a,p1;读 P1 口

anl a,#0fh;屏蔽高4位,留下行线状态

Cjne a,#0fh,ra nk确认键已按稳,转 RANK ljmp main;是抖动,未按稳,重新扫描 rank:mov r2,#00h ;窜键标志寄存器请0 mov r3,#04h ;查列次数

mov r4,#0f7h ;列扫描字初值

mov r5,#0ffh ;列号处值

rloop1:inc r5 ;开始列扫描,列号加1 mov a,r4 ;列扫描字送A

rl a ;列扫描字左移一位

mov r4,a;暂存列扫描字

mov p1,a;送出列扫描字

mov a,p1;读 P1 口

anl a,#0fh;屏蔽高 4 位,留下行线状态

cjne a,#0fh,next1;当前列有键按下,转 next1 rloop2:djnz r3,rloop1;列扫描未完,继续 sjmp line;列扫描完,转行扫描 next1:inc r2;窜键标志加 1

mov 20h,r5;暂存有按键的列号

sjmp rloop2;继续列扫描

Iine:Gjne r2,#01h,main ;若已窜键,转 main,重新扫描

mov r2,#00h;开始查行,窜键标志寄存器清 0

mov r3,#04h ;行扫描次数

mov r6,#0ffh ;行号初值

mov p1,#0fh ;列线送 0,准备读行线

mov a,p1 ;读 P1 口,获取行线状态

IIoop1:inG r6 ;行号加 1

rrG a ;从第 0 行开始,判断有无按键

jnG next2 ;本行有按键,转 next2

IIoop2:djnz r3,IIoop1 ;无按键,继续查下一行 sjmp next3 ;查完,转 next3

next2:inG r2 ;窜键标志加 1

mov 21h,r6 ;暂存有按键的行号

sjmp IIoop2 ;继续行扫描

next3:Cjne r2,#01h,main ;若窜键,转 main,重新扫描 gainky:mov a,21h ;无窜键,取出行号 mov b,#04h ;键盘列数 muI ab ;行号 *键盘列数

add a,20h ;乘积与列号相加,得到键号 mov b,#03h;为执行键处理程序做准备 muI ab ;键号 *3

mov dptr,#ptab ;键处理程序表首地址送 DPTR jmp @a+dptr ;散转至与键号对应的键处理程序 ptab:Ijmp prog0; 键处理程序表

Ijmp prog1

Ijmp prog2

Ijmp prog3

Ijmp prog4

Ijmp prog5

Ijmp prog6

Ijmp prog7

Ijmp prog8

Ijmp prog9

Ijmp prog10

ljmp prog11

ljmp prog12

ljmp prog13

ljmp prog14

ljmp prog15 prog0:mov p2,#3fh ret prog1:mov p2,#06h ret prog2:mov p2,#5bh ret prog3:mov p2,#4fh ret prog4:mov p2,#66h ret prog5:mov p2,#6dh ret prog6:mov p2,#7dh ret prog7:mov p2,#07h ret prog8:mov p2,#7fh ret prog9:mov p2,#6fh ret prog10:mov p2,#77h ret prog11:mov p2,#7ch ret prog12:mov p2,#39h ret prog13:mov p2,#5eh ret prog14:mov p2,#79h ret prog15:mov p2,#71h ret dlay10:mov r0,#100;约 10ms 延时 dlay1:mov r1,#50 dlay2:djnz r1,dlay2 djnz r0,dlay1 ret end

五:实验结果

当矩阵键盘的3号键被按下时,P2 口的七段数码管显示的数据为 3.如下图1所 以:

UlIL J∏AL2PoOD0 POJADl PD2?AD2 P03?D3PO 4d?Dα PO?ME>?PP7J(AP7ILLPSEN AL£ £aP2QλAfiP2.1 P2.2?1O P2.3?11 P2 AfAl 2

Ul

IL J∏AL2

PoOD0 POJADl PD2?AD2 P03?D3

PO 4d?Dα PO?ME>?

PP7J(AP7

ILL

PSEN AL£ £a

P2QλAfi

P2.1 P2.2?1O P2.3?11 P2 AfAl 2

P2≡5Wj∣3

P2 EW4 P27ΛA15

PaeWRXD

P3j∣∏?>

F3 2?∏Γ

P33jSfΓ

F3JσD

P3.?ff1

P?-6i^F P3.7i^"

ATfiSLti

Γ≡-

■92 ■23 ≡2q

■^6

■”

■ J?

4

图1

当矩阵键盘的A号键被按下时,P2 口的七段数码管显示的数据为 A.如下图2所 以:

LHj^l≡ >XTΛL1d XTAURSTP(IgDO RCHgDIPC2?D2P(I 那&

LH

j^l≡ >XTΛL1

d XTAU

RST

P(IgDO RCHgDI

PC2?D2

P(I 那&3 P(I ^.'ΛEM M5?D5

PoEJ?D6

P<∣T?O7

R2D?β

P2 1X4?

P2.2^10

R2.MA11

R2.4M12 P24M13

P2W14

P2.7AA15

P3 JOfiXD

P3.1ΠXD

P32ΛNTΓ

P3 3J∣NT1

P3.^m∣

P3.5/T1

P3.&^ P37fRCΓ

ATBgCSl

*T?!√t:- I

图2

当矩阵键盘的D号键被按下时,P2 口的七段数码管显示的数据为 d.如下图3所 以:

Ul丄 KT?2RSTRIWADD PQ.1MD1 FCl.2Jl?D2 PO紳茁 PO.4JA[MR15?D5 FHG.?DEPaHADT:1?X?P5EN ALE EAPl O Pl Ii P12Pi 3

Ul

丄 KT?2

RST

RIWADD PQ.1MD1 FCl.2Jl?D2 PO紳茁 PO.4JA[M

R15?D5 FHG.?DE

PaHADT

:1?X?

P5EN ALE EA

Pl O Pl Ii P12

Pi 3

ATE9C51

F12.D?B

P2.VA9

P2^,A11

P24ft12

P2.5?13

P2£/A14

P?7W?

F3.0/RXO P31Π?D

P3.2?jT0^

P3.3ifrfΓ

P3.4∏0

^3?T1

R3 6AW

P3.7M-

图3

当矩阵键盘的F号键被按下时,P2 口的七段数码管显示的数据为 F.如下图4所 以:

」1

Ia- ?r?ι

d XT?2

-3-l RST

11—

PS&F

ALE EA

RQ QjAPq Pl I:Aril P0.2ΛAD2 P0.3AAD3 RO.?λ?M PO.5JAD5

PeI.6M[? P07AAD7

F30W8

P2.1^ P2.2W10 P2.-3?11 F2.H?13 P2.5ΓA13 F2.?,AH F27?15

兰?t?t

P3,Ofl?Hβ PSJfTXD P3.2?jfθ~ P3.3fr∏T

P3.?TD

Kill

P3師F

P?7颌

推荐访问:实验报告 矩阵 单片机 电路设计 单片机与矩阵键盘接口电路设计实验报告

版权声明 :以上文章中选用的图片文字均来源于网络或用户投稿 ,如果有侵权请立即联系我们 , 我们立即删除 。