湖南工业大学单片机实验报告文档格式.docx

上传人:b****6 文档编号:22097441 上传时间:2023-02-02 格式:DOCX 页数:13 大小:410.05KB
下载 相关 举报
湖南工业大学单片机实验报告文档格式.docx_第1页
第1页 / 共13页
湖南工业大学单片机实验报告文档格式.docx_第2页
第2页 / 共13页
湖南工业大学单片机实验报告文档格式.docx_第3页
第3页 / 共13页
湖南工业大学单片机实验报告文档格式.docx_第4页
第4页 / 共13页
湖南工业大学单片机实验报告文档格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

湖南工业大学单片机实验报告文档格式.docx

《湖南工业大学单片机实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《湖南工业大学单片机实验报告文档格式.docx(13页珍藏版)》请在冰豆网上搜索。

湖南工业大学单片机实验报告文档格式.docx

START:

MOVR1,10H;

一共16个数据

MOVR0,#70H;

原数据首地址

MOVDPTR,#2000H;

片外存储单元首地址

MOV70H,#00H;

送入原始数据,把70H-71H中分别送入00H-0FH

MOV71H,#01H

MOV72H,#02H

MOV73H,#03H

MOV74H,#04H

MOV75H,#05H

MOV76H,#06H

MOV77H,#07H;

MOV78H,#08H

MOV79H,#09H

MOV7AH,#0AH

MOV7BH,#0BH

MOV7CH,#0CH

MOV7DH,#0DH

MOV7EH,#0EH

MOV7FH,#0FH

LOOP:

MOVA,@R0;

循环送入2000H-200FH

MOVX@DPTR,A;

执行片外将累加器A中的数据送到数据指针DPTR

INCR0;

R0中的数据自加一

INCDPTR;

DPTR中的数据自加一

DJNZR1,LOOP;

R1=1,程序继续执行,R1不等于0,程序转移到LOOP

END;

程序结束

MOVR1,#10H;

将立即数10H送到间接锁存器R1

MOVR0,#70H;

将立即数70H送到间接锁存器R0

将立即数2000H送到数据锁存器DPTR

三、上机运行结果

软件实验二数据排序实验

一、实验目的

熟悉单片机汇编指令系统,掌握汇编程序设计方法。

二、实验内容

编写并调试一个排序子程序,其功能为用冒泡法将内容RAM中几个单字节无符号的正整数,按从小到大的次序重新排列。

三、实验程序框图

ORG09B0H;

伪指令,设置程序入口

QUE:

MOVR3,#50H;

将立即数50H送入当前工作寄存器R3

QUE1:

MOVA,R3;

指针送R0

MOVR0,A;

将累加器A中的数据送到R0

MOVR7,#0AH;

长度送R7

CLR00H;

标志位为0

MOVA,@R0;

保存数据

QL2:

INCR0;

指向下一个地址

MOVR2,A将累加器A中的数据送到当前工作寄存器R2

CLRC;

给cy清零

MOV22H,@R0保存数据

CJNEA,22H,QL3;

相等吗?

SETBC;

给cy置一

QL3:

MOVA,R2;

将R2中的数据送到累加器A

JCQL1;

大于交换位置

SETB00H给00H单元置一

XCHA,@R0字节交换

DECR0;

R0自减一

INCR0;

QL1:

MOVA,@R0将间接寄存器中的数据送到累加器A

DJNZR7,QL2判断R7是否为零确定继续执行或转移

JB00H,QUE1;

一次循环中有交换继

SJMPLOOP;

无交换退出

上机运行结果:

六、思考题:

修改程序把50H~5AH中内容按从大到小排列。

答:

程序清单如下

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVA,50H

SUBA,51H

JCBIANHUAN

JINC NEXT

BIANHUAN

MOV50H,51H

MOV51H,A

RETI

仿真实验一I/O端口操作

1、掌握I/O端口读写等基本汇编指令;

2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。

二、实验仪器设备

1、PC机,1台

2、WAVE软件开发系统

3、仿真软件PROTEUS

三、实验内容:

编写一段汇编程序,使与单片机P0.3口相连的发光二极管循环点亮,亮灭时间必须大于0.5秒(肉眼能清晰分辨二极管的亮灭变化)。

要求用PROTEUS软件完成仿真电路设计,并进行功能验证。

ORG0000H;

SJMPSTART转移并执行START

ORG0030H设置START入口

MOVP0,#0FFH;

先初始化,暗灯

LOOP1:

CPLP0.3;

点亮led

ACALLDELAY;

调用延时子程序,延时0.5秒

SJMPLOOP1;

循环点亮

DELAY:

MOVR5,#50

L2:

MOVR6,#100

L1:

MOVR7,#100

DJNZR7,$

DJNZR6,L1

DJNZR5,L2

RET;

返回

END;

结束

四、实验步骤:

用PROTEUS完成单片机硬件电路设计

2、用WAVE软件完成发光二级管亮灭程序,用延时子程序设计一段时间延时,编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。

单片机晶振设为12MHZ,试计算自己编写的延时子程序的精确延时时间?

当晶振为12MHz时机器周期为1uS(微秒)标准51的DJNZ指命用时为二个机器周期,由于大循环R2中的数是50,小循环每次被重置#100,故就应该是1(MOVR1,#50用)+2*50*100(循环所用)+50(MOVR2,#100用的)+2(RET用的)这个50是第一条MOVR2,#100每跳出循环重置R2时就要多用的一个机器周期)再在运行中没有其它中断来干扰时就该是每从调用进这个子程序开始到完成RET出来就要用10,053uS

仿真实验二定时中断

1、熟悉单片机定时器工作原理;

2、掌握定时器定时控制的编程方法。

二、实验基本原理

1、定时/计数器工作原理

图2.11定时/计数器原理图

(1)定时时间的求取。

例:

设单片机晶振频率为12MHZ,定时时间为1ms,求时间常数?

定时器计数周期=12/fosc=1us,1ms/1us=1000,

因此,计数初值=65535+1-1000=64536=FC18H

(2)定时/计数器初始化

MOVTMOD,#10H

SETBTR1

编写一段汇编程序,使单片机P1.0口输出一段时钟周期为2ms的方波。

要求采用T1中断方式,工作方式1。

用PROTEUS软件完成仿真电路设计,并用软件中自带的示波器观察输出结果。

伪指令设置程序入口

AJMPSTART;

绝对转移指令,转移并还行START

ORG001BH;

设置START入口地址

AJMPT1INT;

T1口执行指令

ORG0030H;

自行设置地址,可去

MOVSP,#30H

MOVTMOD,#10H;

执行方式2

MOVTH1,#0FCH

MOVTL1,#018H

SETBTR1

SETBET1

SETBEA

AJMPMAIN

T1INT:

CPLP1.0

MOVTL1,#18H

RETI

四、实验操作步骤:

1、硬件电路设计

2、单片机晶振频率为12MHZ,用KEIL软件编写P1.0引脚上输出周期为2ms的方波程序。

编译通过后生成16进制文件(.HEX),加载到PROTEUS中仿真验证。

3、PROTEUS仿真验证。

仿真实验三十字路口交通灯

1、掌握ISP在线调试的方法;

2、掌握硬件实验箱的使用方法;

3、熟悉汇编程序基本格式与编程方法。

二、实验仪器设备:

1、PC机

2、PROTEUS仿真环境。

编写十字路口交通灯控制程序,控制红、黄、绿交通指示灯的亮灭,模拟十字路口交通灯控制。

参考程序如下:

MOVP0,#01111011B;

P0.7=P0.2=0,红灯亮.

CALLDL3S

MOVP0,#11011011B;

P0.5=P0.2=0,东西红南北绿.

CALLDL15S

MOVP0,#10011011B;

P0.6=P0.1=0,黄灯亮.

MOVP0,#01111110B;

P0.7=P0.0=0,南北红东西绿.

MOVP0,#01111100B;

SJMPLOOP

DL15S:

MOVR4,#5

DL2:

DJNZR4,DL2

RET

DL3S:

;

延时3s,实测3.03s

MOVR5,#23

DL3:

MOVR6,#0

DL4:

MOVR7,#0

DL5:

DJNZR7,DL5

DJNZR6,DL4

DJNZR5,DL3

END

用KEIL软件编写交通灯控制程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1