华中科技大学单片机实验报告完整版LED灯控制器解读.docx

上传人:b****6 文档编号:6155556 上传时间:2023-01-04 格式:DOCX 页数:13 大小:63.82KB
下载 相关 举报
华中科技大学单片机实验报告完整版LED灯控制器解读.docx_第1页
第1页 / 共13页
华中科技大学单片机实验报告完整版LED灯控制器解读.docx_第2页
第2页 / 共13页
华中科技大学单片机实验报告完整版LED灯控制器解读.docx_第3页
第3页 / 共13页
华中科技大学单片机实验报告完整版LED灯控制器解读.docx_第4页
第4页 / 共13页
华中科技大学单片机实验报告完整版LED灯控制器解读.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

华中科技大学单片机实验报告完整版LED灯控制器解读.docx

《华中科技大学单片机实验报告完整版LED灯控制器解读.docx》由会员分享,可在线阅读,更多相关《华中科技大学单片机实验报告完整版LED灯控制器解读.docx(13页珍藏版)》请在冰豆网上搜索。

华中科技大学单片机实验报告完整版LED灯控制器解读.docx

华中科技大学单片机实验报告完整版LED灯控制器解读

任务要求】

利用C8051F310单片机设计一个LED灯控制器,LED灯外接于P0.0端,LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s,在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次,利用单片机内部定时器定时,要求采用中断方式。

设计思路

【设计思路】

设置定时器T0定时时间为25ms,每隔25ms开一次中断,共R1次,R0与R2共同作用构成循400次循环,以达到定时10秒的目的。

首先LED灯以2Hz频率闪动,初始赋值R1=10,循环执行10次中断后,即过去0.25s,灯闪烁一次,依次循环,直至10s定时时间到,蜂鸣器响一次,2Hz频率的闪烁结束。

然后LED灯以1Hz频率闪动,设置R1=20,与上类似,每过0.5s灯闪烁一次,十秒定时到,蜂鸣器响一次,到下一阶段。

最后LED灯以

0.5Hz频率闪动,设置R1=40即可,思路同上。

当三十秒执行完毕后,使用无条件转移语句跳转到程序开始处,循环以上过程。

【资源分配】

R1:

定时0.25秒,0.5秒或1秒

R0,R2:

循环400次,定时10秒

定时器T0:

定时中断25ms

定时器T1:

定时10s

流程图】

ORG0000H

LJMPMAIN

ORG000BH

LJMPIT0P

ORG001BH

LJMPIT1P

ORG1000H

MAIN:

LCALLInit_Device

MOVSP,#60H

MOVTMOD,#11H

MOVR0,#40

MOVR2,#10

MOVR1,#10

MOVTH1,#38H

MOVTL1,#9EH

MOVTH0,#38H

源代码(含文件头说明、资源使用说明、语句行注释)】

;-GeneratedInitializationFile--

$include(C8051F310.inc)

publicInit_Device

INITSEGMENTCODE

rsegINIT

;T0中断入口

;转T0中断服务程序

;T1中断入口

;转T1中断服务程序

;主程序

;设备初始化

;赋堆栈指针

;T1定时方式1,T0定时方式1

;循环400次

;定时0.25s

;T1置初值

;T0置初值

sgso

0械103

AOIAI

WWW心:

0械’心

AOIAI

心丄

dio

韋戦:

03丄

dio

买[1显者哪條t

idoon1o#103

3NrO

02#'心

AOIAI

00d

IdO

led

dio

买[1显者哪條t

idoon1o#'心

3NrO

丄日丄ms

府44:

03丄

日丄msJdOOl

led

日丄ms

0L#1Sd

AOIAI

邈oo>随動:

0械10d

AOIAI

WWW重凶

os#'心

AOIAI

心丄

dlO

韋戦:

03丄

dlO

买[1显者哪條:

doon'o#'03

3Nro

01#1Id

AOIAI

台盜:

00d

IdO

led

dlO

买[1显者哪條:

doon'o#'心

3Nro

lb丄日丄ms

帥胚拄144-

03丄日丄ms:

doon

日丄ms

o丄m

日丄ms

:

V3

日丄ms

SOL

S90

SOL

H36#'OUAOIAI

 

MOVR2,#10

LOOP2:

SETBP3.1

SETBTR0

SETBTR1

CJNER1,#0,LOOP2

CLRP3.1

CPLP0.0

MOVR1,#40

CJNER0,#0,LOOP2

CLRTR0

CLRTR1

计时

判断是否到达1s

取反

判断是否到达10s

清零

HERE:

AJMPHERE

等待中断

ORG1500H

IT0P:

MOVTH0,#38H

MOVTL0,#9EH

DJNZR2,LOOP0

MOVR2,#10DECR0

RETI

LOOP0:

RETI

;T0中断服务程序

;重置计数初值

;循环

ORG1600H

IT1P:

MOVTH1,#38H

;T1中断服务程序

;重置计数初值

MOVTL1,#9EH

DECR1

RETI

 

;Peripheralspecificinitializationfunctions,

;CalledfromtheInit_DevicelabelPCA_Init:

anlPCA0MD,#0BFh

movPCA0MD,#000h

ret

Timer_Init:

movTMOD,#001h

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

movXBR1,#040h

ret

Oscillator_Init:

movOSCICN,#083h

ret

Interrupts_Init:

movIE,#082h

ret

;Initializationfunctionfordevice,

;CallInit_Devicefromyourmainprogram

Init_Device:

lcallPCA_Init

lcallTimer_Init

lcallPort_IO_Init

lcallOscillator_Init

lcallInterrupts_Init

retend

程序测试方法与结果、软件即硬件性能分析】

一】软件测试与性能分析

1.开始时,LED灯以2Hz频率闪动,P0.0位输入,可以看到P0.0位的闪动。

10秒前,蜂鸣

器位P3.1一直为低电平。

截图如下:

 

此时时间为:

2.10s时刻,蜂鸣器响一次,P3.1恰变为高电平,截图如下:

此时时间为:

3.之后LED灯以1Hz频率闪动,观察发现,P0.0口的闪动比之前慢,且与显示时间对应,符合设计要求,截图如下:

 

此时时间为:

4.20s时刻,蜂鸣器响一次,对应的P3.1口变为高电平。

截图如下:

 

此时时间为:

5.20s之后,LED灯以0.5Hz频率闪动,观察发现,

P0.0口的闪动比之前又慢

,且与显

示时间对应,符合设计要求,截图如下:

 

此时时间为:

6.30s时刻,蜂鸣器又响一次,P3.1口变为高电平,截图如下:

此时时间为:

7.30s之后,LED灯又以2Hz闪动,即循环执行以上过程,截图如下:

 

通过以上分析可知程序在每一步骤运行正常,0~10sLED灯内以频率2Hz闪动,10s时蜂

鸣器响一次,之后10s~20s间,LED灯以频率1Hz闪动,20s时蜂鸣器又响一次,之后LED

灯以频率0.5s闪动,30s时蜂鸣器响一次,30s之后循环以上操作。

软件运行结果达到预期

目标,测试成功!

硬件测试(照片说明)

 

【思考题】

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

答:

可以通过更改定时器T1的多次循环计时次数,来使10s计时变为其他时间。

通过KINT键进入更改模块,使用矩阵键盘以1s的步长增减T1计时时间。

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

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

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

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