单片机实验报告
- 格式:docx
- 大小:221.76 KB
- 文档页数:11
单片机实验报告
一、实验目的
1. 纯熟使用 Keil、Protues 两款软件
2. 通过上机操作,增强个人动手实践能力
3. 加深对理论知识的理解
4. 培养运用汇编语言进行初步编写程序的能力
二、实验内容
1. 将片外 RAM3050-306FH 中数据转移至片内 70-8FH 中。规定:能够从 Keil 或 Protues 上看到 RAM 的数据转移成果。
2. 设计一种外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令 P2 口的
LED 轮流循环点亮。
规定:开发板或 Prrotues 演示
3. 将片内存储器 80H 中寄存的 BCD 码转换为 ASCII 码,规定使用表格查询技术。规定:在 Keil 或 Protues 上看到数据转换成果。 4. 各使用中断方式和查询方式设计一种方波发生器,频率为 50HZ。规定:Protues 使软件间示波器显示方波。
三、实验程序
1. \\将片外 RAM3050-306FH 中数据转移至片内 70-8FH 中
ORG 0000H
AJMP MAIN \\上电,转向主程序
ORG 0030H \\主程序入口
MAIN: MOV DPTR,#3050H \\数据指针指向地址 3050H
MOV A,#04H \\将立刻数 04H 送 A 寄存器
MOV R0,#20H
NEXT: MOVX @DPTR,A
INC DPTR \\数据指针 DPTR 自加一
DJNZ R0,NEXT \\判断与否跳转到 NEXT 或继续向下执行 MOV DPTR,#3050H
MOV R0,#70H
MOV R2,#20H
NEXT1:
MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R2,NEXT1
SJMP $ \\等待
END
2. \\设计一种外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令 P2 口的 LED 轮流循环点亮
ORG 0000H SJMP MAIN \\上电,转向主程序
ORG 0003H \\外部中断 0 向量入口
AJMP INSER
ORG 0030H \\主程序入口
MAIN: SETB EX0 \\允许外部中断 0 中断
SETB IT0 \\选择边沿触发方式
SETB EA \\CPU 开中断
HERE: SJMP HERE \\等待中断
ORG 0200H
INSER: MOV R2,#08H \\设立循环次数
MOV A,#01H \\赋初值,设立高电平亮
NEXT: MOV P2,A \\将初值送往 P2 口
LCALL DELAY \\ 延时 RL A \\左移一位
DJNZ R2,NEXT \\判断循环次数,与否跳转到 NEXT 或继续向下执行
RETI \\中断返回
DELAY: MOV R3,#0FFH \\延时程序
DEL2: MOV R4,#0FFH
DEL1: NOP
DJNZ R4,DEL1
DJNZ R3,DEL2
RET
END
3. \\将片内存储器 80H 中寄存的 BCD 码转换为 ASCII 码,规定使用表格查询技术
ORG 0000H LJMP MAIN
ORG 0030H\\主程序起始地址
MAIN:
MOV 80H,#05H \\将立刻数 50H 转送内存单元 80H
MOV A,80H \\将内存单元 80H 中的内容送寄存器 A
MOV DPTR,#TAB
MOVC A,@A+DPTR \\A 寄存器内容加指针偏移量后送 A 寄存器
MOV 80H,A
RET
TAB: DB 30H,31H,32H,33H,34H
DB 35H,36H,37H,38H,39H
4.1 \\中断方式产生 50HZ 方波
ORG 0000H AJMP MAIN
ORG 0030H \\主程序入口
MAIN: MOV TMOD,#10H \\设立定时器工作模式为模式 1
MOV TH1,#0D8H \\装入 T1 计数初值
MOV TL1,#0F0H
SETB ET1 \\开中断
SETB EA \\CPU 开中断
SETB TR1 \\启动定时器 T1
HERE: SJMP HERE \\等待中断
ORG 001BH \\T1 中断向量地址
CLR TF1 \\将 TF1 清零
CPL P2.0 \\P2.0 取反输出
MOV TH1,#0D8H \\重装初值 MOV TH0,#0F0H
RETI;中断返回
END
4.2 \\查询方式产生 50HZ 方波
ORG 0000H
AJMP MAIN
ORG 0030H \\主程序入口
MAIN: MOV TMOD,#10H \\设立定时器的工作模式为模式 1
SETB TR1 \\启动定时器 T1
LOOP: MOV TH1,#0D8H \\装入 T1 计数初值
MOV TH0,#0F0H
JNB TF1,$ \\T1 没有溢出则等待
CLR TF1 \\产生溢出,清标志位 CPL P2.0 \\P2.0 取反输出
SJMP LOOP \\循环
END
四、实验成果截图
1.
2
3.
4.1
4.2