单片机与嵌入式系统
实验报告
一、 软件模拟调试实验:
本部分实验内容主要为指令系统和汇编语言程序设计。采用软件模拟调试的方法,目的在于通过这些实验使学生巩固所学知识,加深对MCS-51单片机内部结构、指令系统的理解,更进一步掌握汇编语言程序设计的方法和技巧。
实验一 数据传送实验
实验目的
1、熟悉软件模拟调试环境。
2、掌握汇编语言程序设计的方法,加深对指令的理解。
3、学会软件模拟调试和察看、验证结果方法。
4、印证数据传送指令的功能、寻址方式以及PC指针、SP指针、DPTR指针、Ri指针分别对代码段、堆栈段、外扩数据存储器段、位寻址区等不同存储器的访问方式。
实验步骤
1、进入调试软件环境,输入源程序;
2、汇编源程序;
3、用单步方式运行程序;
4、检查并记录各寄存器和存储单元内容的变化。
实验内容:
将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片内RAM 50H—5FH单元。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG 0000H
RESET:AJMP MAIN
ORG 003FH
MAIN: MOV R0,#40H
MOV R2,#10H
MOV A,#0A0H
A1: MOV @R0,A
INC R0
INC A
DJNZ R2, A1
MOV R1,#10H
MOV R0, #50H
MOV R2, #10H
A3: MOV A, @R1
MOV @R0, A
INC R1
INC R2
DJNZ R2, A3
SJMP $
END
实验结果与分析:
1、 按照实验内容补全程序。
2、对源程序进行编译并查看相应程序存储器的内容,将源程序对应的机器码记录入下表,掌握ORG伪指令及汇编的过程。
ORG的作用及相关注意事项:
ORG表示之后的语句从哪里开始,有的单片机里面的固定区域是用来做堆栈或者是子程序跳转地址的入口 。
PC表示: 下一条要执行的指令
PSW表示: 程序状态字 ,其各位的含义为: cy进位标志位 AC辅助进位标志位
Ov溢出标志位 p校验位
SP表示: 堆栈指针
R0~R7的物理位置: 0000H-0007H
3、运行机器码,查看片内数据区、CPU内寄存器的变化情况,按要求将结果记录入下表。
单片机上电复位之后,PC= 0000 ,PSW= 00H ,SP= 07H ,则单片机用 第一组工作寄存器组,R0~R7的物理位置为: 0000-0007H
用单步方式运行程序,观察实验过程中PC、A、 R0、R2中内容的变化情况,程序执行结束后,将相应的RAM中各单元的内容补充完整。
实验二 多字节十进制加法实验
实验目的
1、掌握数据块的传送操作和算术运算指令的应用。
2、掌握BCD码加法的使用。
实验步骤
1、进入调试软件环境,输入源程序;
2、汇编源程序;
3、用单步方式运行程序;
4、检查并记录各寄存器和存储单元内容的变化。
实验内容:
多字节十进制加法。加数首地址由 R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:
ORG 0000H
RESET: AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H
MOV R0, #31H
MOV @R0, #22H
DEC R0
MOV @R0, #33H
MOV R1, #21H
MOV @R1, #44H
DEC R1
MOV @R1, #55H
MOV R2, #02H
ACALL DACN
HERE: AJMP HERE
DACN: CLR C
DAL: MOV A, @R0
ADDC A, @R1
DA A
MOV @R1, A
INC R0
INC R1
DJNZ R2,DAL
CLR A
MOV ACC.0 , C
RET
实验结果与分析
1、按照实验内容补全程序。
2、加数单元、被加数单元和结果单元的地址和内容为? (按十进制加法格式,高位在左,低位在右,将实验数据填入下图相应的单元中)
此时(PSW)= 0000
3、如何检查双字节相加的最高位溢出?
看PSW的CY位是否为1
4、改变加数和被加数,测试程序的执行结果。
(1)操作数改为: 5678 + 2345
此时(PSW)= 0000
(2)操作数改为: 5201H + 8301H
此时(PSW)= 80H
(3)操作数改为: 7733 + 5888
此时(PSW)= 81
实验三 数据排序实验
实验目的
1、进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2、掌握循环结构程序设计的方法,弄清单重及多重循环控制过程。
实验步骤
1、进入调试软件环境,输入源程序;
2、汇编源程序;
3、用单步方式运行程序;
4、检查并记录各寄存器和存储单元内容的变化。
实验内容:
将内部RAM 50H—59H中的数据按从小到大的次序排列。将程序经模拟调试通过后,运行程序,检查相应的存储单元的数据是否为排序状态。
源程序清单:
ORG 0000H
RESET: AJMP MAIN
ORG 0100H
MAIN: MOV SP, #60H
MOV R0, #50H
MOV @R0, #6FH
INC R0
MOV @R0, #6EH
INC R0
MOV @R0, #6AH
INC R0
MOV @R0, #6CH
INC R0
MOV @R0, #6DH
INC R0
MOV @R0, #5BH
INC R0
MOV @R0, #67H
INC R0
MOV @R0, #69H
INC R0
MOV @R0, #68H
INC R0
MOV @R0, #64H
ACALL QUE
HERE: AJMP HERE
QUE: CLR 00H
MOV R7, #09H
MOV R0, #50H
MOV A , @R0
L2: INC R0
MOV R2, A
SUBB A, @R0
MOV A, R2
JC L1
SETB 00H
XCH A, @R0
DEC R0
XCH A, @R0
INC R0
L1: MOV A, @R0
DJNZ R7, L2
JB 00H, QUE
RET
实验结果与分析:
1、按照实验内容补全程序。
2、说明该排序算法的基本原理和过程。
先将10个数放到50~59H中,然后调用QUE进行排序。两个数比较,前者大的则交换。
3、检查程序执行结果。
排序前
排序后
3、若对实验数据按从大到小次序排序,则需要对源程序做哪些修改?
JC L1 变为JNC L1
实验结果与分析
排序前
排序后
实验四 统计数的个数
实验目的
1、进一步熟悉MCS-51指令系统,了解汇编语言程序设计的基本结构。
2、掌握分支结构程序设计的方法。
3、学会用条件转移指令、CJNE、及其配合使用来编写二分支、三分支程序。
实验内容:
片内RAM从20H单元开始存有10个带符号数,求统计出其中大于0,小于0和等于0的个数,并存放于片内RAM 30H,31H,32H三个单元中。
源程序清单(补充完整):
ORG 0100H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV R0,#10
MOV R1,#20H
MOV 20H,#1
MOV 21H,#2
MOV 22H,#3
MOV 23H,#-1
MOV 24H,#-2
MOV 25H,#0
MOV 26H,#0
MOV 27H,#-1
MOV 28H,#-2
MOV 29H,#2
LOP: MOV A,@R1
JZ L1
JB ACC.7,L2
INC 31H
SJMP STOP
L2: INC 30H
SJMP STOP
L1: INC 32H
STOP: INC R1
DJNZ R0,LOP
SJMP $
END
实验数据
二、 硬件在线仿真实验:
实验五 电子钟实验
实验目的:
1、学会用MOVC指令编写查表程序。
2、掌握MCS-51单片机中定时器的工作原理及综合应用。
3、熟悉集成软件调试环境,并掌握调试程序的方法和硬件在线仿真技术。
实验内容:
熟悉单片机在线仿真调试方法。将仿真头插入实验板的CPU插座中,再打开电源,输入程序进行调试。程序运行时,按下S0键,蜂鸣器发出响声,两个数码管开始从零显示时间,定时器定时时间为一分钟,定时时间到,蜂鸣器再次发出响声,重新按下S0键,重复上述过程。
源程序清单:
ORG 0000H
START:
AJMP MAIN
ORG 000BH
AJMP PIT0
ORG 0100H
MAIN:
MOV SP,#60H
MOV 50H,#00H
MOV 51H,#00H
ACALL DISPLAY
MOV TMOD,#01H
MOV TL0,#0B0H
MOV TH0,#3CH
ACALL KEY
CLR P2.7
ACALL LONGDELAY
SETB P2.7
SETB 00H
SETB TR0
SETB EA
SETB ET0
MOV 30H,#20
ML0:
ACALL DISPLAY
MOV C,00H
JC ML0
CLR P2.7
ACALL LONGDELAY
SETB P2.7
CLR TR0
AJMP MAIN
PIT0:
PUSH PSW
PUSH ACC
SETB PSW.3
MOV TL0,#0B0H
MOV TH0,#3CH
MOV A,30H
DEC A
MOV 30H,A
JNZ RET0
MOV 30H,#20
MOV R0,#51H
ACALL DAAD1
MOV A,R2
XRL A,#60H
JNZ RET0
ACALL CLR0
CLR 00H
RET0:
POP ACC
POP PSW
RETI
DAAD1:
MOV A,@R0
DEC R0
SWAP A
ORL A,@R0
ADD A,#01H
DA A
MOV R2,A
ANL A,#0FH
MOV @R0,A
MOV A,R2
INC R0
ANL A,#0F0H
SWAP A
MOV @R0,A
RET
CLR0:
CLR A
MOV @R0,A
DEC R0
MOV @R0,A
RET
DISPLAY:
MOV A,50H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
MOV A,51H
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P0,A
CLR P0.7
LCALL DELAY
RET
KEY:
MOV C,P3.0
JC KEY
ACALL DELAY
KEY1:
MOV C,P3.0
JNC KEY1
ACALL DELAY
RET
DELAY:
MOV R1,#250
LOOP:
DJNZ R1,LOOP
RET
LONGDELAY:
MOV A,R0
PUSH ACC
MOV A,R1
PUSH ACC
MOV R1,#250
LOOP1:
MOV R0,#250
LOOP2:
NOP
NOP
NOP
NOP
NOP
DJNZ R0,LOOP2
DJNZ R1,LOOP1
POP ACC
MOV R1,A
POP ACC
MOV R0,A
RET
TABLE:
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
END
实验结果与分析
1、程序中哪部分为显示程序?
DISPLAY为显示程序
2、程序中如何秒钟的实现一定时?
每次定50毫米,20次就是1秒
3、写出各段子程序的作用。
KEY:检测按键
DELAY:延时
LONGDELAY:长延时
DISPLAY:显示
DAAD1:
PIT0:定时器0的中断处理函数
4、根据实验要求画出简要的电路连接
1. KeilC51开发环境的学习的实验
1. 简述建立一个工程的步奏
2. 画出调试状态下仿真器存储空间分配图,并根据该图说明内部MON51监控程序的
作用,并说明ORG指令的作用。
3. 简述DPflash程序的作用。
4. Keilc 51软件将用户调试程序在线下载到仿真器中准备开始调试运行的菜单命令式
什么?
2. 串转并的I/O口实验
以下是74HC164芯片的内部原理图:
2.1.简单说明串转并的作用。
2.2画出74HC164芯片的真值表,根据真值表说明:
A: clock引脚为低电平时的作用?
B: 为什么实验中要将B引脚设置为高电平?(参考内部原理图)
2.3.实验中如果需要输出的数据为 #CCH , Q0~Q7输出引脚分别为什么信号(用2进制数据标示)?
2.4 简单说明CLEAR引脚的作用
2.5 简单说明RLC指令的作用
3. 并转串的I/O口实验
以下是74HC165芯片的内部原理图:
3.1简单说明并转串的作用 3.2根据内部原理图,说明该165器件内部使用的是什么触发器? 3.3根据该触发器的类型,说明SER引脚的作用。 3.4 说明PL引脚的作用? 3.5 如果拨线开关状态为 11001100B ,那么并转串完毕后得到的值为多少?
4. 串行模数转换实验
4.1画出实验电路原理图。
4.2说明参考高电平和参考低电平的作用。
4.3 计算该电路图A/D转换的分辨率。
4.4 查阅相关资料,说明A/D转换芯片的3个性能指标(分辨率,误差,转换时间)的意义。
5. 时钟中断实验
5.1简述时钟的4种工作模式
5.2 说明如计算时钟定时器初值的方法
5.3 根据该实验内容,说明TMOD寄存器、TCON寄存器的控制方式。
5.3 简单说明CPU要响应中断的条件
6. 串口通讯实验
6.1 简述 TTL电平规范和RS232电平规范的差异,以及MAX232芯片的作用。
6.2 简述 产生9600波特率定时器初值的计算方法,并计算。
6.3 简述3种串口通讯方式的差异。
7. 数码管
7.1 简述共阴级和共阳级数码管的区别。
7.2. 分别计算共阴极和共阳极数码管显示数字5时的驱动码。
7.3. 简述数码管的静态显示和动态显示的方法。
单片机实验报告学生姓名学号专业指导教师学院信息与电气工程学院20xx年11月单片机实验报告实验一MCS51指令系统实验数据排序1实…
通信与信息工程学院20xx20xx学年第二学期实验报告课程名称单片机原理及应用专业班级学号学生姓名指导教师日期20xx年4月15日…
题目单片机组成原理实验报告学院计算机科学与工程学院专业信息安全姓名学号20xx年12月8日实验一输入输出接口编程一实验目的1掌握K…
51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机…
海南大学届单片机实验报告4份论文题目学生姓名学号所在院系专业班级授课教师完成时间蜂鸣器实验实验目的1熟悉实验板中蜂鸣器工作原理掌握…
编号实验报告姓名学号实验班级实验时间实验报告总份片数12份片实验教师学院1实验一开发软件使用与调试方法一实验目的学习KEIL的使用…
成绩重庆邮电大学自动化学院综合实验报告题目51系列单片机闭环温度控制学生姓名蒋运和班级0841004学号20xx213316同组人…
微机原理与单片机接口技术实验报告册河南理工大学电气学院专业班级学号姓名1目录实验一流水灯实验3一实验目的3二实验实现的功能3三系统…
基于单片机的温度数据采集系统实验报告班级电技姓名田波平学号指导老师仲老师101班10120xx108题目基于单片机的温度数据采集系…
单片机实验报告报告人xxx学号20xx211812班号20xx211407指导老师姚燕20xx0615实验一仿真软件的使用以及跑马…
单片机原理实验报告实验一熟悉μ’nSP?IDE集成开发环境下C语言程序的编写【实验目的】1.熟悉μ’nSP?IDE集成开发环境的使…