微机实验报告Word下载.docx

上传人:b****5 文档编号:21064125 上传时间:2023-01-27 格式:DOCX 页数:21 大小:267.66KB
下载 相关 举报
微机实验报告Word下载.docx_第1页
第1页 / 共21页
微机实验报告Word下载.docx_第2页
第2页 / 共21页
微机实验报告Word下载.docx_第3页
第3页 / 共21页
微机实验报告Word下载.docx_第4页
第4页 / 共21页
微机实验报告Word下载.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

微机实验报告Word下载.docx

《微机实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《微机实验报告Word下载.docx(21页珍藏版)》请在冰豆网上搜索。

微机实验报告Word下载.docx

四、流程图

五、源代码(含文件头说明、语句行注释)

$include(C8051F310.inc)

ORG0000H

LJMPMAIN

ORG000BH;

T0计数中断

LJMPIT0_0

ORG0100H

MAIN:

CLRP3.1

MOVP0,#0FFH;

把P0口都赋高电平

ACALLInit_Device;

调用初始化程序

MOVSP,#60H

MOVTMOD,#01H;

设定定时器模式

MOVTH0,#38H

MOVTL0,#8EH;

设置初值25ms

SETBET0;

中断允许

SETBEA;

开总中断

setbTR0;

开启定时器

MOVR0,#10;

设置250MS的寄存器

MOVR1,#20;

设置500MS的寄存器

MOVR2,#100;

设置2.5s的寄存器

MOVR3,#0

MOVR4,#0

MOVR5,#0;

循环寄存器赋初值

SETBP3.1;

开启蜂鸣器

ACALLDELAY;

调用延时子程序

CLRP3.1;

关闭P3.1

ljmp$

HERE:

SETBP3.1;

打开蜂鸣器

LCALLDELAY

NOP

LCALLDELAY;

CLRP3.1;

延时之后关闭蜂鸣器

LJMP$;

踏步指令

IT0_0:

_2HZ:

CLRC;

清除cy位

MOVA,R3;

读取R3的值

SUBBA,#40;

作减法运算,判断R3是否达到40

JNC_1HZ;

若达到40即10s2hz闪烁结束,跳转1hz

MOVTL0,#8EH;

重装初值

DJNZR0,NEXT;

当R0减到0,达到250MS

重新给R0赋值

CPLP0.0;

P0.0翻转

INCR3;

R3加一

LJMPNEXT;

跳转NEXT

_1HZ:

MOVA,R4;

读取R4的值

SUBBA,#20;

作减法运算,判断R4是否达到20

JNC_0_2HZ;

若达到20即10s1hz闪烁结束,跳转0.2hz

DJNZR1,NEXT;

当R1减到0,达到500MS

重新给R1赋值

P0.0翻转

INCR4;

次数计数器加一

LJMPNEXT

_0_2HZ:

MOVA,R5;

读取R5的值

SUBBA,#4;

作减法运算,判断R5是否达到4

JNCHERE;

若达到4即10s0.2hz闪烁结束,跳转HERE

DJNZR2,NEXT

重新给R2赋值

INCR5;

NEXT:

RETI

DELAY:

movR4,#10

movR6,#00

movR7,#00

DEL4:

DEL3:

DEL2:

NOP

DJNZR6,DEL2

djnzR7,DEL3

djnzR4,DEL4

RET

PCA_Init:

anlPCA0MD,#0BFh

movPCA0MD,#000h

ret

Port_IO_Init:

;

P0.0-Unassigned,Open-Drain,Digital

P0.1-Unassigned,Open-Drain,Digital

P0.2-Unassigned,Open-Drain,Digital

P0.3-Unassigned,Open-Drain,Digital

P0.4-Unassigned,Open-Drain,Digital

P0.5-Unassigned,Open-Drain,Digital

P0.6-Unassigned,Open-Drain,Digital

P0.7-Unassigned,Open-Drain,Digital

P1.0-Unassigned,Open-Drain,Digital

P1.1-Unassigned,Open-Drain,Digital

P1.2-Unassigned,Open-Drain,Digital

P1.3-Unassigned,Open-Drain,Digital

P1.4-Unassigned,Open-Drain,Digital

P1.5-Unassigned,Open-Drain,Digital

P1.6-Unassigned,Open-Drain,Digital

P1.7-Unassigned,Open-Drain,Digital

P2.0-Unassigned,Open-Drain,Digital

P2.1-Unassigned,Open-Drain,Digital

P2.2-Unassigned,Open-Drain,Digital

P2.3-Unassigned,Open-Drain,Digital

movP0MDOUT,#001h

movP3MDOUT,#002h

movXBR1,#040h

Oscillator_Init:

movOSCICN,#083h

Timer_Init:

movTMOD,#001h

;

Initializationfunctionfordevice,

CallInit_Devicefromyourmainprogram

Init_Device:

lcallPCA_Init

lcallPort_IO_Init

lcallOscillator_Init

lcallTimer_Init

end

六、程序测试方法与结果

程序测试方法:

软件仿真测试方法:

进入单步调试界面的波形仿真测试,调出P0.0以及P3.5的波形,仿真结果如截图所示。

如图所示,该图为P0.0的整体波形,还有蜂鸣器p3.1的波形

如图所示,前10s的闪烁,周期约为500ms,即为2HZ,满足实验要求

如图所示,为10-20s的LED闪烁,周期约为1s,即1HZ满足实验要求。

如图所示,为20-30s的LED闪烁,周期约为5s,满足0.2hz的实验要求。

如图所示,当2hz的闪烁达到10s时,进入1HZ闪烁阶段。

如图所示,当1HZ的闪烁达到10s时,进入0.2HZ闪烁阶段。

当0.2HZ闪烁结束时,即达到30s时,闪烁结束,蜂鸣器随后高电平鸣响,持续时间约为0.5s。

再次按键,此时再次循环进入2HZ的闪烁状态,此时,模式选择寄存器为工作模式0.如上图所示。

硬件调试方法:

在TARETOPTION界面选择DEBUG菜单,连接调试适配器之后,进行如下选择

随后点击进入调试界面。

程序全速运行时,蜂鸣器轻微鸣响,灯以比较快的速度(2HZ)闪烁,闪烁20次后频率变慢(1HZ),闪烁十次后频率进一步下降(0.2HZ),闪烁两次后蜂鸣器轻微鸣响,整个过程结束。

提高部分:

ORG0003H

LJMPEXT0

ORG0200H

MOVP0,#0FFH;

CLRp0.0;

P0.0清零

SETBIP.0;

将外部中断设为高优先级

MOVTL0,#09EH;

SETBIT0;

设置成下降沿触发

SETBEX0;

开外部中断

开启定时器

设置2.5s的寄存器

MOVR3,#100

EXT0:

INCR5;

R5自加1

INCR6;

R6自加1

INCR7;

R7自加1

CJNER5,#3,LOOP;

当R5不是3时跳转LOOP

MOVR5,#0;

MOVR6,#0;

MOVR7,#0;

当R5,R6,R7均为3时,将这三个寄存器清零

LOOP:

CLRC

MOVA,R7;

将R7赋值给A

SUBBA,#1;

A-1

JNC_1HZ;

若CY为0,即R7为1,进入_1HZ

DJNZR0,NEXT;

若R0未到10次,即250MS,则跳转NEXT

CPLP0.0;

P0.0反转

MOVR0,#10;

给R0重新赋值

LJMPNEXT

CLRC;

MOVA,R6;

将R6赋值给A

SUBBA,#2;

A-2

JNC_0_2HZ;

若CY为0,即R6为2,进入_0.2HZ

MOVTH0,#38H

DJNZR1,NEXT;

若R1未到20次,即500MS,则跳转NEXT

CPLP0.0;

MOVR1,#20;

给R1重新赋值

_0_2HZ:

CLRC;

MOVA,R5;

SUBBA,#3;

A-3

JNC_2HZ;

若CY为0,即R5为3,进入_2HZ

DJNZR2,NEXT;

若R2未到100次,即2.5S,则跳转NEXT

MOVR2,#100;

给R2重新赋值

NEXT:

RETI

调试:

软件仿真调试:

进入单步调试界面的波形仿真测试,调出P0.0波形如截图所示(此时没有按下键,执行2HZ频闪)

如图所示,此时R5=0,即进入0状态,一个周期约为500MS,即2HZ,此时模式0为2HZ闪烁状态。

如图所示,采用下降沿触发方式,当P0.1变低时,R5,R6,R7,加一,此时进入1模式,一个周期约为1s,即模式1为1HZ的闪烁,波形如上图所示。

如图所示,当将P0.1拉高运行一段时间再拉低,此时再次进入中断,R5,R6,R7变成2,进入2模式,周期约为5S如上图所示,即工作模式2为0.2HZ闪烁的工作模式。

分析:

若使用电平触发,则会对循环产生影响,故选择使用下降沿触发。

使用R5,R6,R7,为了区分三种不同频率的工作模式,使思路更加简单(虽然消耗较多寄存器资源)。

硬件调试:

全速运行,先是很快速的闪烁,按下按键,切换至1HZ模式闪烁,再按下,切换至0.2HZ频率闪烁,然后再次按下重新回到2HZ频率闪烁。

 

思考题:

1.若想实现3种闪烁方式的持续时间在5s-20s范围内可调,且每种方式的持续时间各不相同,应如何设计程序?

先采用三分频,然后设置单位循环时间为200ms,利用矩阵键盘不同的键盘按下后,对应的长定时寄存器加5,达到不同循环加一秒,然后当达到20s时,转化为初值,即5s

本人承诺:

本报告内容真实,无伪造数据,无抄袭他人成果。

本人完全了解学校相关规定,如若违反,愿意承担其后果。

签字:

年月日

其它说明:

1.标题:

黑体,小四号

2.正文:

宋体,五号,1.5倍行距

3.流程图使用SmartDraw7或Visio软件绘制

4.不要加封面

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

当前位置:首页 > 考试认证 > IT认证

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

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