单片机实验5
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;设定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
org 0000h Ljmp main org 0030h main: mov dptr,#tab lcall key movc a,@a+dptr mov p0,a CLR P2.1 ljmp main KEY: LCALL KS JNZ K1 LCALL DELAY2 AJMP KEY K1: LCALL DELAY2 LCALL DELAY2 LCALL KS
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。
; 显示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口。
二、实验内容
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路跑马灯程序。
参考程序 org 00h mov scon,#00000000b start: mov dptr,#table loop: clr a movc a,@a+dptr cjne a,#03,a1 jmp start a1: cpl a mov 30h,a mov sbuf,30h loop1: jbc ti,loop2 jmp loop1 loop2: call delay inc dptr jmp loop
;将列值加一 ;将R2的值送入A ;扫描完至KEY处进行下一扫描 ;扫描未完将A中的值右移一位进 ;行下一列的扫描 ;将ACC的值送入R2暂存 ;跳转到K3继续 ;将P1口高四位置0低四位值1 ;读P1口 ;将A中的值与A中的值相异或
DELAY2: ;40ms延时去抖动子程序 MOV R5,#08H L7: MOV R6,#0FAH L8: DJNZ R6,L8 DJNZ R5,L7 RET tab: db 28h,34h,28h,34h,0a9h,60h,20h,7ah,20h,21h,61h,74h,30h, 62h,0a2h,7eh ;0h0hc9878654a321 轮流显示键盘因为无法表达*# 就用H ;表示,B用8表示 end
;确认有按下进行下一步 ;无键按下返回继续检测 ;将扫描值送入 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
;显示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
开始调试, (5)点击调试 开始调试,点击屏幕上方左下角的 对文件进行编译, 编译图标 对文件进行编译,观察左下角的调试程序 信息显示,如有错可根据该栏提示的信息进行修改, 信息显示,如有错可根据该栏提示的信息进行修改, 修改后要重新保存和编译,直到无错误提示。 修改后要重新保存和编译,直到无错误提示。 点击编译图标右边的建造目标和建造所有目标图 编译图标右边的建造目标和 (6)点击编译图标右边的建造目标和建造所有目标图 对文件进行链接, 标,对文件进行链接,观察左下角的调试程序信息显 直到无错误提示。 示,直到无错误提示。 点击调试,按单步调试F10 观察运算结果: F10, (7)点击调试,按单步调试F10,观察运算结果:左 上角为系统和REG 右下角为存储器( REG, CODE、 上角为系统和REG,右下角为存储器(C:CODE、D: DATA、 XDATA)显示区,查看运算结果是否正确。 DATA、X:XDATA)显示区,查看运算结果是否正确。
参考程序: 参考程序:
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
实验五:串行口应用、 实验五 串行口应用、按键识别与数码管动态 串行口应用 显示 实验目的: 一、实验目的:
单片机在实际应用中需要进行系统扩展, 1、单片机在实际应用中需要进行系统扩展,如果 并行口不够用, 可使用未用的串行口进行扩充, 并行口不够用, 可使用未用的串行口进行扩充,实现 串行输入并行输出。 串行输入并行输出。 输出显示与键盘输入是扩展的重要内容。 2、输出显示与键盘输入是扩展的重要内容。要求 掌握数码管动态显示与矩阵按键的识别技术。 掌握数码管动态显示与矩阵按键的识别技术。 熟悉XLISP XLISP系列 单片机综合仿真试验仪的组成 3、熟悉XLISP系列 单片机综合仿真试验仪的组成 和使用方法。学会应用XLISP仿真试验和keil-uvision2 XLISP仿真试验和 和使用方法。学会应用XLISP仿真试验和 集成调试软件进行仿真实验。 集成调试软件进行仿真实验。
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
出现汇编语言输入区。 (4)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入: 输入汇编语言程序,点击文件中的保存,输入:程序 并选择存入的盘( E:)点击保存 点击保存。 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头) 序名一般不超过6个字母数字,以字母打头) (5)点击(图标)目标1前的“+”号,出现(图标) 点击(图标)目标1前的“ 号 出现(图标) 源程序组1,选中并点右键,选”文件增加到源程序组 源程序组1 选中并点右键, 文件增加到源程序组 Asm, 1”,选择文件类型为Asm,再选输入的程序名.ASM, ,选择文件类型为Asm 再选输入的程序名.ASM, ADD(加入),点确定。 ),点确定 点ADD(加入),点确定。 此时点击源程序组1可以看到输入的程序名. 此时点击源程序组1可以看到输入的程序名.ASM
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
;延时程序
;左移
;右移
;闪烁
数码管动态扫描显示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
本次实验报告中要回答的问题
1、分析80C51串行口的 种工作方法的不 、分析 串行口的4种工作方法的不 串行口的 同 2、分析动态扫描显示的原理和优缺点 、 3、说明矩阵按键识别的控制原理 、
kerl-uvision集成调试软件的操作 三、kerl-uvision集成调试软件的操作 操作步骤: 操作步骤:
;选中第四个数码管 ;显示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
;将表头放入DPTR ;Hale Waihona Puke Baidu用键盘扫描程序 ;查表后将键值送入ACC ;将Acc值送入P0口 ;开显示 ;返回反复循环显示 ;调用检测按键子程序 ;有键按下继续 ;无键按调用延时去抖 ;返回继续检测按键 ;有键按下延时去抖动 ;再调用检测按键程序
K2: K3: L6:
L1:
L2:
L3: LK:
JNZ K2 AJMP KEY MOV R2,#0EFH MOV R4,#00H MOV P1,R2 JB P1.0,L1 MOV A,#00H AJMP LK JB P1.1,L2 MOV A,#04H AJMP LK JB P1.2,L3 MOV A,#08H AJMP LK JB P1.3,NEXT MOV A,#0cH ADD A,R4 PUSH ACC