[单片机实验报告(例文)] 单片机实验报告怎么写

时间:2021-11-04 14:35:31  来源:网友投稿

单片机实验报告(范文)

第 PAGE \* Arabic 1 页第 PAGE \* Arabic 1 页

评阅

姓名 学号

时间 地点 计算机楼708机房

实验题目 C51单片机汇编程序编制和运行

实验目的与要求

1、学习单片机汇编程序的编制方法。

2、研究用单片机实现简单事务的软件程序。

二.实验环境

在Keil uVision2下实验。

三.实验内容

1. 编制两个无符号八位二进制数相加的汇编程序

要求:

①两个数和结果分别放在自己定义的三个不同变量中。

②程序从0000h地址开始运行,并且不能影响各中断的入口地址。

③预测每一条指令后PC、ACC寄存器的值,写好预测表。

④记录单步运行程序时PC、ACC寄存器在每一步后的实际值。

⑤ 比较 ③和④的值,判断程序有无问题。

2. 研究用软件延时1秒的方法和程序

要求:

①用某种方式表征延时的开始和结束。

注意模拟器的时钟频率和实际单片机频率的差别。

系统实施

(1)实验内容一:

数据段起始地址定位为0030H(为了不和中断地址冲突);在数据段 内定义DATA1,DATA2,DATA3,将DATA1,DATA2分别放到0030H和0031H中,将相加的和数放到0033H中(为了使用DATA3)。

(2)实验内容二:

子程序中要实现延时1秒的功能,首先要知道一条指令的执行时间。因为51单片机得晶振为12MHZ,所以一个机器周期要用1μs。利用条件转移指令djnz(为两机器周期指令,即2μs),让程序循环执行djnz指令1s/2μs=500000次即可。用R0、R1、R2设置循环的次数,使得三个存储器中所放数据的乘积为500000,例如25*200*100;而当延时结束后,它们中的内容均为0。

程序测试报告

实验内容一:

输入数据11H,22H,起始地址为0030H。

实验数据与预测数据一致,表明程序是正确的。

(注:此实验以PHILIPS的P87C52X2为目标器件)

实验记录表格:

指令

PC

ACC

mov 30h,data1

0030H

0

mov a,30h

0033H

0

mov 31h,data2

0035H

11

add a,31h

0038H

11

mov data3,a

003aH

33

实验内容二:

编程按下Run让程序自动运行至停止,延时时间大约为1min,见左侧面板的sec显示约为1S,而R0、R1、R2内容都为0。

体会

这次实验一开始做的时候就觉得没有头绪,程序是一早编好了的,但是运行之后不知道该看些什么来证明结论;再是Keil μVision2刚接触,对界面还是不够熟悉,在第一个实验中需要查看的地址内容还是通过问同学才找到法门。尤其是在做第二个实验的时候碰到了一个大问题,由于一开始选择的目标器件不对,导致延时程序一旦运行,除非人工停止,不然就一直运行;期间试了很多办法,程序也是改了又改、关掉重启、更改晶振等等,好在最后还是找出了问题,完成了实验内容。

附录

1、编制两个无符号八位二进制数相加的汇编程序

ajmp 0030h

org 0030h

add1 equ 0011h

add2 equ 0022h

add3 equ 0033h

mov 30h,data1

mov a,30h

mov 31h,data2

add a,31h

mov data3,a

end

2. 研究用软件延时1秒的方法和程序

org 1000h

delay1 : mov R0,#25

delay2 : mov R1,#200

delay3 : mov R2,#100

djnz R2,$

djnz R1,delay3

djnz R0,delay2

end

推荐访问:实验报告 例文 单片机 实验 单片机实验报告(例文)


[[单片机实验报告(例文)] 单片机实验报告怎么写]相关文章