重庆大学 单片机实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一系统认识及基本程序设计实验

四、实验内容

1. 将BCD 码整数0~255 存入片内RAM 的20H、21H、22H 中,然后转换为二进制整数00H~FFH,保存到寄存器R4 中。修改20H、21H、22H 单元的内容,如:00H,05H,08H;观察实验结果。

参考程序:

;==============================================================

; 文件名称: Asm2-1.asm

; 功能描述: BCD整数转换为二进制整数(8位, 范围从00H--FFH)

;==============================================================

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #20H ;BCD存放高位地址

MOV R7, #03H ;BCD码0--255, 最多3位

CLR A

MOV R4, A

LP1: MOV A, R4

MOV B, #0AH

MUL AB ;乘10

ADD A, @R0 ;加下一位的值

INC R0 ;指向下一单元

MOV R4, A ;结果存入R4

DJNZ R7, LP1 ;转换未结束则继续

SJMP MAIN ;设置断点, 观察实验结果R4中的内容

END

2. 将16 位二进制整数存入R3R4 寄存器中,转换为十进制整数,以组合BCD 形式存储在RAM 的20H、21H、22H 单元中。

参考程序:

;=============================================================

; 文件名称: Asm2-2.asm

; 功能描述: 二进制整数(16位)转换为十进制整数(组合BCD)

;=============================================================

; 0--FFFFH(R3R4)==>0--65535

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV R0, #22H ;转换结果低位地址

MOV A, R0

PUSH ACC ;ACC表示累加器A的直接地址

MOV R7, #03H

CLR A

LP1: MOV @R0, A ;结果存储地址清零

DEC R0

DJNZ R7, LP1

POP ACC

MOV R0, A

MOV R7, #16

LP2: PUSH ACC

CLR C

MOV A, R4 ;R4中为二进制数的低位

RLC A

MOV R4, A

MOV A, R3 ;R3中为二进制数的高位

RLC A

MOV R3, A

MOV B, #03H

LP3: MOV A, @R0

ADDC A, @R0 ;执行乘2操作

DA A ;十进制调整

MOV @R0, A ;结果保存

DEC R0

DJNZ B, LP3

POP ACC

MOV R0, A

DJNZ R7, LP2

LJMP MAIN ;设置断点观察结果, 可进行下一次转换

END

3. 通过查表的方法将16 进制数转换为ASCII 码;

参考程序:

;============================================================= ; 文件名称: Asm4-1.asm

; 功能描述: 查表程序设计, 将十六进制数0~F通过查表的方法

; 转换为ASCII码

;=============================================================

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV DPTR, #ASCTAB ;表格首地址送DPTR

MOV A, R7 ;R7中为待转换的数

ANL A, #0FH ;取低4位

MOVC A, @A+DPTR ;查表

MOV R5, A ;低4位转换结果送R1

MOV A, R7

ANL A, #0F0H ;取待转换数的高4位

SWAP A ;高4位与低4位交换

MOVC A, @A+DPTR ;查表

MOV R6, A ;高4位转换结果送R2

SJMP MAIN ;设置断点观察结果

ASCTAB: DB 30H, 31H, 32H, 33H, 34H

DB 35H, 36H, 37H, 38H, 39H

DB 41H, 42H, 43H, 44H, 45H, 46H

END

4. 通过查表的方法实现y=x2,其中x为0~9 的十进制数,以BCD码表示,结果仍以BCD 码形式输出。

参考程序:

;==============================================================

; 文件名称: Asm4-2.asm

; 功能描述: 查表程序, 用程序实现Y=X*X, X为0到9的十进制数,

; 用BCD码(00H到09H)表示, 将X的平方, 即Y也以BCD码

; 的形式保存到R1中.

;==============================================================

ORG 0000H

LJMP MAIN

ORG 0100H

MAIN: MOV DPTR, #SQR ;取表格首地址

MOV A, R7 ;要计算的值

MOVC A, @A+DPTR ;查表

MOV R6, A ;结果保存

SJMP MAIN

SQR: DB 00H, 01H, 04H, 09H, 16H

DB 25H, 36H, 49H, 64H, 81H

END

实验二片内I/O口及中断应用实验

一、实验目的

了解P1 口作为输入输出方式使用时,CPU 对P1 口的操作方式。了解MCS-51 单片机的中断原理,掌握中断程序的设计方法。

相关文档
最新文档