[工学]单片机基础教程第十章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第10章 实训
10.3 实训三 时钟操作编程
10.3.1 实训目的
熟悉8051单片机的中断过程、中断服务程序 的设计方法;熟悉8051单片机的查表指令、 散转指令的功能和使用方法;掌握查表和散 转程序的设计与调试。
第10章 实训
10.3.2 实训内容
编程设置定时器每100μs中断一次,在中断 服务程序中,对中断次数进行计数,100μs计 数10000次就是1秒。然后再对秒计数得到 分和小时值,并送入显示缓冲区。
HALT: SJMP HALT
B2TO10:MOV B,#0AH ; 除十求余的方法将二进制转 换为十进制
DIV AB MOV R6,B MOV B,#0AH DIV AB MOV R4,A MOV A,B MOV R5,A RET
第10章 实训
10.2.6 实训思考
试编写一个功能和本实验类似的整数十进制 转二进制的程序。
第10章 实训
10.2.3 程序流程图
本实训的程序流程图如图所示。
第10章 实训
10.2.4 调试方法
(1)、断点设在BP1,程序运行至BP1,检查4 0H、50H内容是否与输入值对应。
(2)、断点设在BP2,程序运行至BP2,检查R 4、R5、R6的内容是否为二进制所对应的 十进制转换结果。
(3)、程序连续运行。若有错误应改用单步或 断点分段调试程序,排除软件错误,直至 正确为止。
031单片机内部RAM的60H~6FH中; ③将以(R2,R3)为源RAM区首地址内的(R6、
R7)两个字节数据,传送到以(R4、R5)为末 地址的RAM区中。
第10章 实训
10.1.3 程序流程图
本实训要求①实现的程序流程图如图10-1 所示,其余要求的实现与之类似。
第10章 实训
10.1.4 调试方法
(1)打开仿真软件中内部数据空间和外部数据 空间,在50H~5FH数据单元中分别送数, 如1,2,3,4,…等16个数据。
(2)单步运行(断点设在BP2,程序运行至断 点),检查外部RAM(7E00H~7F0FH)数 据是否与50H~5FH数据一一对应。
(3)如果程序运行不能进入某一断点,则应单 步、断点分段检查程序,排除错误直至正 确为止。
第10章 实训
10.3.5 参考程序
POPPSW ; 恢复现场 RETI ; 中断返回
START: MOVTMOD, #02H ; 方 式2, 定时器
MOVTH0, #T100μs
MOVTL0, #T100μs
MOVIE, #10000010B ;
EA=1, IT0 = 1 SETBTR0 ; 开始定时
试编写将外部数据存储区6030H~607FH的 内容写入外部RAM的7030H~707FH中。
第10章 实训
10.2 实训二 数据传送
10.2.1 实训目的
通过编写数据转换程序,熟悉MCS-51系列 单片机的汇编语言程序设计方法。
第10章 实训
10.2.2 实训内容
编写并调试一个二进制转十进制程序,其功 能为将40H、50H两数据单元中的二进制数 转换为十进制数,并将转换结果存放在R4、 R5、R6数据单元中。
PUSHPSW
MOVA, C100μs+1 JNZGOON DECC100μs GOON: DEC C100μs+1 MOVA, C100μs ORLA, C100μs+1 JNZEXIT ;100μs 记数器不 为0, 返回 MOVC100μs, #HIGH(Tick) ;100μs 记数器为0, 重置记数器 MOVC100μs+1, #LOW(Tick) CPLLEDBUF ; 取反LED EXIT:
若有错误,应改用单步或断点分段调试,排 除软件错误,直至正确为止。
第10章 实训
10.3.5 参考程序
ORG0000H TickEQU 10000 ; 10000 × 100μs = 1s T100μs EQU256-50 ; 100μs时间常数(6M) C100μsEQU30H ; 100μs记数单元 LEDBμF EQU0 LED EQUP1.0 LJMPSTART ORG 000BH T0Int: ;TO中断服务 程序
CLRLEDBUF CLRLED MOVC100μs, #HIGH(Tick) MOVC100μs+1, #LOW(Tick) LOOP: ; LED显示并等待中 MOV C, LEDBUF MOVLED, C LJMPLOOP END
第10章 实训
10.3.6 实训思考
若将0~F按键对应查表为1~16立方表(十 进制),并在LED数码管上显示,程序应该怎样 修改?
(4)、改动40H、50H中的内容。连续来自百度文库行观察 结果正确与否。
第10章 实训
10.2.5 参考程序
MAIN: MOV A,#60H
MOV 40H,A
MOV A,#3CH
MOV 50H,A MOV A,40H; BP1 ACALL B2TO10 ;调用 二进制转十进制子程度 MOV A,50H; BP2 CALL B2TO10
单片机原理
第10章 实训
第10章 实训
10.1 实训一 数据传送
10.1.1 实训目的
掌握8031内部RAM和外部RAM之间的 数据传送方法及这两个存储器的特点与应用。
第10章 实训
10.1.2 实训内容
编写并调试一个数据传送程序实现: ①将50H~5FH数据送到数据存储7E00H~7
E0FH单元中; ②将数据存储7E00H~7E0FH中的数据送到8
第10章 实训
10.1.5 参考程序
MAIN: MOV R0,#50H MOV R7,#16 MOV DPTR,#7E00H LOOP: MOV A,@R0 MOVX @DPTR,A INC DPTR INC R0 DJNZ R7,LOOP HALT:SJMP HALT
第10章 实训
10.1.6 实训思考
第10章 实训
10.3.3 程序流程图
本实训实现的程序流程图如图所示。
第10章 实训
10.3.4 调试方法
(1)断点设在BP1,进入断点地址,检查30H内 容是否是时间的变化。
(2)断点设在BP2,程序运行至断点,检查(S P)内容返回地址高位。
(3)断点设在BP3,程序运行至断点,检查P1. 0的电平是否反转,