实验五 单片机与矩阵键盘的接口技术
班级:          学号:        姓名:     
预习(20%
操作(40%
实验报告(40%
总分
一、实验目的
1. 单片机AT89C514*4矩阵键盘进行动态扫描,当按键盘的键时,可将相应按键值(0~F)实时显示在数码管上;
2. Proteus设实现该接口的电路设计和程序设计,并进行实时交互仿真。
二、Proteus电路设计
单片机与矩阵键盘的接口电路原理图如图;5-1所示。整个设计都在ISIS平台中进行。
5-1 矩阵键盘与单片机接口电路原理图
1. Proteus库中选取元器件
AT89C51:单片机;
RESPULLUP:电阻、上拉电阻;
7SEG-COM-AN-GRN:带公共端的七段共阳绿数码管;
CAPCAP-ELEC:电容、电解电容;
CRYSTAL:晶振;
RX8:排电阻。
2. 放置元器件、放置电源和地、连线、元器件属性设置、电气检测
所有操作都是在ISIS中进行(见图5-1),P25.0~P2.6依次与数码管的a~g引脚相连;P1口的8I/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. 通信双方为单片机甲和单片机乙,由单片机甲的矩阵键盘输入一键码(0FH),将这一数据发送给乙机,乙机接收数据后,将该数据显示在自己的数码管上,同时将该数据发回甲
机,甲机将收到的数据显示在自己的数码管上。
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:绿发光二极管;
CAPCAP-ELEC:电容、电解电容;
CRYSTAL:晶振;
7SEG-COM-AN-GRN:带公共端的七段共阳绿数码管;
2. 虚拟仪器
虚拟终端:在小工具栏中单击虚拟仪器按钮,再在对象选择器中选择虚拟终端(VIRTUAL TERMINAL),如图6-2所示。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。