单片机实验5
;设定UART方式MODE0 ;数据指针指到TABLE ;清除ACC ;到TABLE取数据 ;到结束码03了么?不是转A1 ;是则重新开始 ;数据取向 ;A存入30H ;30H的值存入SBUF ;监测TI=1?是则跳到LOOP2 ;否则继续监测 ;延时;数据指针加1
DELAY: MOV R5,#255 D3:MOV R2,#255 D4:DJNZ R2,D4 DJNZ R5,D3 RET table : db 01h,02h,04h,08h db 10h, 20h,40h,80h db 01h,02h,04h,08h db 10h, 20h,40h,80h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 00h,0ffh,00h,0ffh db 03h END
K4: LCALL DELAY2 LCALL KS JNZ K4 POP ACC RET NEXT: INC R4 MOV A,R2 JNB ACC.7,KEY RL A MOV R2,A AJMP K3 KS: MOV P1,#0FH MOV A,P1 XRL A,#0FH RET
;调用延时去抖动程序 ;调用按键检测程序 ;按键没有松开继续返回检测 ;将堆栈的值送入ACC
实验五:串行口应用、 实验五 串行口应用、按键识别与数码管动态 串行口应用 显示 实验目的: 一、实验目的:
单片机在实际应用中需要进行系统扩展, 1、单片机在实际应用中需要进行系统扩展,如果 并行口不够用, 可使用未用的串行口进行扩充, 并行口不够用, 可使用未用的串行口进行扩充,实现 串行输入并行输出。 串行输入并行输出。 输出显示与键盘输入是扩展的重要内容。 2、输出显示与键盘输入是扩展的重要内容。要求 掌握数码管动态显示与矩阵按键的识别技术。 掌握数码管动态显示与矩阵按键的识别技术。 熟悉XLISP XLISP系列 单片机综合仿真试验仪的组成 3、熟悉XLISP系列 单片机综合仿真试验仪的组成 和使用方法。学会应用XLISP仿真试验和keil-uvision2 XLISP仿真试验和 和使用方法。学会应用XLISP仿真试验和 集成调试软件进行仿真实验。 集成调试软件进行仿真实验。
UV2快捷图标 (1)双击桌面上的UV2快捷图标,启动软件。 )双击桌面上的UV2快捷图标,启动软件。 出现的界面分为4部分:左上角为REG REG和系统显 (2)出现的界面分为4部分:左上角为REG和系统显 示区;左下角为调试程序时的信息显示; 示区;左下角为调试程序时的信息显示;右上角为程 序编写和修改区;右下角为CODE(程序存储器) 序编写和修改区;右下角为CODE(程序存储器)和 DATA/XDATA(内部/外部数据存储器)的显示区。 ATA/XDATA(内部/外部数据存储器)的显示区。 点击P (3)点击P工程 N新建工程 输入文件名并选择 存入的盘(如E:)点击保存。出现CPU屏幕,选Atmel 存入的盘( E:)点击保存。出现CPU屏幕, 点击保存 CPU屏幕 点确定。屏幕左上方出现图标目标1 AT89C51 点确定。屏幕左上方出现图标目标1。
开始调试, (5)点击调试 开始调试,点击屏幕上方左下角的 对文件进行编译, 编译图标 对文件进行编译,观察左下角的调试程序 信息显示,如有错可根据该栏提示的信息进行修改, 信息显示,如有错可根据该栏提示的信息进行修改, 修改后要重新保存和编译,直到无错误提示。 修改后要重新保存和编译,直到无错误提示。 点击编译图标右边的建造目标和建造所有目标图 编译图标右边的建造目标和 (6)点击编译图标右边的建造目标和建造所有目标图 对文件进行链接, 标,对文件进行链接,观察左下角的调试程序信息显 直到无错误提示。 示,直到无错误提示。 点击调试,按单步调试F10 观察运算结果: F10, (7)点击调试,按单步调试F10,观察运算结果:左 上角为系统和REG 右下角为存储器( REG, CODE、 上角为系统和REG,右下角为存储器(C:CODE、D: DATA、 XDATA)显示区,查看运算结果是否正确。 DATA、X:XDATA)显示区,查看运算结果是否正确。
;显示4
;选中第六个数码管 ;显示5
;选中第七个数码管 ;显示6
;选中第八个数码管
MOV P0,#7AH LCALL DELAY SETB P2.7 MOV P0,#0FFH AJMP MAIN DELAY: MOV R7,#2 D1: MOV R6,#25 D2: DJNZ R6,D2 DJNZ R7,D1 RET END
;延时程序
;左移
;右移
;闪烁
数码管动态扫描显示01234567 2、数码管动态扫描显示01234567
学习七段LED显示器的动态显示方法 学习七段LED显示器的动态显示方法 LED 硬件连接: 硬件连接: 位数码管的数据线: (1)8位数码管的数据线:将数码管部份的数据口 JP5接到CPU部份的P0口JP51。 JP5接到CPU部份的P0口JP51。 接到CPU部份的P0 位数码管的显示位控制线: (2)8位数码管的显示位控制线:将数码管部份的显 示控制口JP8接到CPU部份的P2口JP52。 示控制口JP8接到CPU部份的P2口JP52。 JP8接到CPU部份的P2
;确认有按下进行下一步 ;无键按下返回继续检测 ;将扫描值送入 R2暂存 ;将第一列值送入R4暂存 ;将R2的值送入P1口 ;P1.0等于1跳转到L1 ;将第一行值送入ACC ;跳转到键值处理程序 ;P1.1等于1跳转到L2 ;将第二行的行值送入ACC ;跳转到键值理程序进行键值处理 ;P1.2等于1跳转到L3 ;将第三行的行值送入ACC ;跳转到键值处理程 ;P1.3等于1跳转到NEXT处 ;将第四行的行值送入ACC ;行值与列值相加后的键值送入A
;选中第四个数码管 ;显示3
;选中第五个数码管
MOV P0,#74H LCALL DELAY MOV P0,#0FFH SETB P2.4 CLR P2.5 MOV P0,#61H LCALL DELAY MOV P0,#0FFH SETB P2.5 CLR P2.6 MOV P0,#21H LCALL DELAY MOV P0,#0FFH SETB P2.6 CLR P2.7
二、实验内容
1、串入并出实验 本实验用74LS164来扩充并行口。 74LS164来扩充并行口 本实验用74LS164来扩充并行口。 硬件连接: 硬件连接: 用一个2PIN数据排线一端插入CPU部分JP53 2PIN数据排线一端插入CPU部分JP53( (1) 用一个2PIN数据排线一端插入CPU部分JP53(P3 P3.0,P3.1。另外一端插入74LS164 74LS164部分的输入 口)的P3.0,P3.1。另外一端插入74LS164部分的输入 JP20。 端JP20。 (2) 用一根8PIN的数据排线,一端插入74LS164部分的 用一根8PIN的数据排线,一端插入74LS164部分的 8PIN的数据排线 74LS164 输出端JP26, 另一端插入8路指示灯的JP32 JP32。 输出端JP26, 另一端插入8路指示灯的JP32。 利用74LS164串行口实现8 74LS164串行口实现 利用74LS164串行口实现8路跑马灯程序。
MOV P0,#0FFH SETB P2.1 CLR P2.2 MOV P0,#0A2H LCALL DELAY MOV P0,#0FFH SETB P2.2 CLR P2.3 MOV P0,#62H LCALL DELAY MOV P0,#0FFH SETB P2.3 CLR P2.4
;选中第三个数码管 ;显示2
; 显示7
;重新开始 ;延时子程序
3、选作 矩阵按键识别技术
了解矩阵式键盘的识别方法,硬件连接如下: (1)用一条8PIN数据排线,把矩阵按键部份的JP50, 接到CPU部份的P1口JP44。 (2) 接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51。 (3) 接8位数码管的显示位线。将数码管部份的显示 位口 JP8接到CPU部份的P2口JP52。 参考程序:本程序实现扫描按键显示功能。 分别按16个键盘分别显示数字123A456B789C*0#D。 键盘口P1,数码管显示第二位p21, 数码管段位p0口。
参考程序: 参考程序:
ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR P2.0 MOV P0,#28H LCALL DELAY MOV P0,#0FFH SETB P2.0 CLR P2.1 MOV P0,#7EH LCALL DELAY
;选中第一个数码管 ;显示0 ; 调用延时 ;关显示 ;选中第二个数码管 ;显示1
出现汇编语言输入区。 (4)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入: 输入汇编语言程序,点击文件中的保存,输入:程序 并选择存入的盘( E:)点击保存 点击保存。 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头) 序名一般不超过6个字母数字,以字母打头) (5)点击(图标)目标1前的“+”号,出现(图标) 点击(图标)目标1前的“ 号 出现(图标) 源程序组1,选中并点右键,选”文件增加到源程序组 源程序组1 选中并点右键, 文件增加到源程序组 Asm, 1”,选择文件类型为Asm,再选输入的程序名.ASM, ,选择文件类型为Asm 再选输入的程序名.ASM, ADD(加入),点确定。 ),点确定 点ADD(加入),点确定。 此时点击源程序组1可以看到输入的程序名. 此时点击源程序组1可以看到输入的程序名.ASM
本次实验报告中要回答的问题
1、分析80C51串行口的 种工作方法的不 、分析 串行口的4种工作方法的不 串行口的 同 2、分析动态扫描显示的原理和优缺点 、 3、说明矩阵按键识别的控制原理 、
kerl-uvision集成调试软件的操作 三、kerl-uvision集成调试软件的操作 操作步骤: 操作步骤: