实验五 单片机与矩阵键盘的接口技术
班级: 学号: 姓名:
预习(20%) | 操作(40%) | 实验报告(40%) | 总分 |
一、实验目的
1. 单片机AT89C51对4*4矩阵键盘进行动态扫描,当按键盘的键时,可将相应按键值(0~F)实时显示在数码管上;
2. 用Proteus设实现该接口的电路设计和程序设计,并进行实时交互仿真。
二、Proteus电路设计
单片机与矩阵键盘的接口电路原理图如图;5-1所示。整个设计都在ISIS平台中进行。
图5-1 矩阵键盘与单片机接口电路原理图
1. 从Proteus库中选取元器件
① AT89C51:单片机;
② RES、PULLUP:电阻、上拉电阻;
③ 7SEG-COM-AN-GRN:带公共端的七段共阳绿数码管;
④ CAP、CAP-ELEC:电容、电解电容;
⑤ CRYSTAL:晶振;
⑥ RX8:排电阻。
2. 放置元器件、放置电源和地、连线、元器件属性设置、电气检测
所有操作都是在ISIS中进行(见图5-1),P25.0~P2.6依次与数码管的a~g引脚相连;P1口的8条I/O与矩阵键盘相接;P1口低4位与键盘的列线相接,即P1.0~P1.3依次与从右到左的列线相连,P1的高4位与键盘的行相连,即P1.4~P1.7依次与由上至下的第一行、第二行、第三行、第四行相连,排电阻阻值100Ω。
三、源程序设计、生成目标代码文件
1. 源程序设计
通过菜单“Source->Add/Remove Source Files…”,新建源程序文件:test3.asm。
通过菜单“Source->test5.asm”,打开Proteus提供的文本编辑器SRCEDIT,在其中编辑如下源程序:
org 0
sjmp star
org 30h
star: mov sp,#5fh
mov p2,#0ffh
loop:mov r0,#4
mov r1,#0efh
mov r2,#0ffh
nkey:mov a,r1
mov p1,a
mov a,p1
orl a,#0f0h
cjne a,#0ffh,keyin
mov a,r1
rl a
mov r1,a
djnz r0,nkey
ljmp loop
keyin: mov r2,a
acall dly
pres: mov a,p1
orl a,#0f0h
cjne a,#0ffh,pres
lcall dly
lcall keyval
lcall seg7
cpl a
mov p2,a
ljmp loop
dly: mov r7,#30h
mov r6,#0
d1: djnz r6,$
djnz r7,d1
ret
keyval:mov b,#0
mov a,r2
key1: rrc a
jnc key2
inc b
inc b
inc b
inc b
ljmp key1
key2: mov a,r1
rr a
rr a
rr a
rr a
key3: rrc a
jnc key4
inc b
ljmp key3
key4:mov a,b
ret
seg7: inc a
movc a,@a+pc
ret
db 03fh,06h,5bh,4fh,66h
db 6dh, 7dh,7h,7fh,6fh,77h,7ch,39h,5eh,79h
db 71h,3fh
end
程序编辑好后,单击按钮存入文件test5.asm中。
2. 生成目标代码文件
通过菜单“Source->Build All”编译源程序,生成目标代码文件test5.asm。若编译失败,对程序修改调试直至编译成功。
四、Proteus仿真
1. 加载目标代码文件
打开单片机属性窗口,在“Program File”栏中添加上面编译好的目标代码文件test5.hex;在“Clock Frequency”栏中输入晶振频率12MHz。
2. 仿真
单击按钮,启动仿真,如图5-2所示。每单击一次按键,数码管上实时显示被单击的键名(0~F)。当前刚单击过按键“7”,数码管相应显示7。
图5-2矩阵键盘与单片机接口仿真片段图
五、思考
1. 请画出主程序和求键值子程序的程序流程图。
2. 用C51编写本实验程序并调试。
实验六 单片机间的串口通信技术
班级: 学号: 姓名:
预习(20%) | 操作(40%) | 实验报告(40%) | 总分 |
一、实验目的
1. 通信双方为单片机甲和单片机乙,由单片机甲的矩阵键盘输入一键码(0~FH),将这一数据发送给乙机,乙机接收数据后,将该数据显示在自己的数码管上,同时将该数据发回甲
机,甲机将收到的数据显示在自己的数码管上。
2. 用Proteus实现该串行通信接口的电路设计和程序设计,并进行实时交互仿真。
3. Proteus VSM虚拟终端的应用。
二、Proteus电路设计
单片机串行通信接口电路原理图如图6-1所示。图中未画出振荡电路和复位电路。其中,甲机的P1口与4×4矩阵键盘相接;甲机的TXD脚与乙机的RXD脚相接;甲机的RXD脚与乙机的TXD脚相接;甲、乙两机的TXD脚分别与用于串行通信调试的虚拟终端的RXD脚相接。
图6-1 单片机间的串行通信电路原理图
1. 从Proteus库中选取元器件
① AT89C51:单片机;
姓名代码转换器百度② RES:电阻;
③ LED-GREEN:绿发光二极管;
④ CAP、CAP-ELEC:电容、电解电容;
⑤ CRYSTAL:晶振;
⑥ 7SEG-COM-AN-GRN:带公共端的七段共阳绿数码管;
2. 虚拟仪器
虚拟终端:在小工具栏中单击虚拟仪器按钮,再在对象选择器中选择虚拟终端(VIRTUAL TERMINAL),如图6-2所示。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论