华中科技大学单片机实验报告完整版LED灯控制器Word文档格式.docx

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

华中科技大学单片机实验报告完整版LED灯控制器Word文档格式.docx

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

华中科技大学单片机实验报告完整版LED灯控制器Word文档格式.docx

定时中断25ms

定时器T1:

定时10s

【流程图】 

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

;

------------------------------------

- GeneratedInitializationFile --

------------------------------------

$include(C8051F310.inc)

public Init_Device

INITSEGMENTCODE

 rsegINIT

  ORG0000H

ﻩLJMPMAIN

ORG000BHﻩﻩﻩ   ;

T0中断入口

ﻩ LJMPIT0Pﻩﻩﻩ ;

转T0中断服务程序

ﻩORG001BHﻩ ;

T1中断入口

 LJMPIT1Pﻩﻩﻩﻩ;

转T1中断服务程序

ﻩ ORG1000Hﻩﻩ;

主程序

MAIN:

LCALLInit_Device ﻩﻩ;

设备初始化

  MOVSP,#60Hﻩﻩ;

赋堆栈指针

  MOVTMOD , #11Hﻩ  ;

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

ﻩMOV R0,#40ﻩﻩ ;

循环400次

ﻩﻩMOVR2, #10

ﻩMOV  R1,#10ﻩﻩﻩ ;

定时0.25s

ﻩﻩ MOVTH1,#38Hﻩﻩ  ;

T1置初值

ﻩMOV TL1,#9EH

ﻩMOV TH0,#38Hﻩﻩ  ;

T0置初值

ﻩMOVTL0 , #9EH

ﻩSETB EAﻩﻩﻩﻩﻩﻩ;

允许中断

ﻩSETB ET0

SETB ET1

LOOP:

SETBTR0ﻩﻩ;

计时开始

   SETBTR1

ﻩ  CJNE  R1, #0,LOOPﻩ;

判断是否到达0.25s

CLRP3.1

CPL P0.0ﻩﻩ;

取反

ﻩ MOV R1,#10

ﻩCJNE R0 ,#0,LOOPﻩﻩﻩ;

判断是否到达10s

ﻩCLR TR0ﻩﻩﻩ ;

清零

ﻩﻩ CLR TR1

ﻩ MOV R1,#20ﻩﻩﻩ;

R1重新赋值

ﻩﻩ MOVR0,#40ﻩﻩﻩ;

循环400次

ﻩﻩ  MOV R2,#10

ﻩSETB P3.1

LOOP1:

SETBTR0ﻩ   ;

计时

    SETB TR1

ﻩCJNER1,#0,LOOP1ﻩﻩ;

判断是否到达0.5s

ﻩCLRP3.1

 CPLP0.0 ;

ﻩﻩ MOV R1,#20

CJNER0,#0,LOOP1ﻩﻩ;

判断是否到达10s

 CLRTR0ﻩ;

ﻩCLR  TR1

ﻩ MOVR1 ,#40ﻩﻩ ;

R1再次赋值

MOVR0 ,#40ﻩﻩﻩ;

循环

ﻩﻩ  MOV R2,#10

LOOP2:

 SETB P3.1

 SETBTR0ﻩﻩﻩﻩ  ;

ﻩﻩSETB TR1

CJNE R1, #0 ,LOOP2ﻩ;

判断是否到达1s

ﻩCLR  P3.1

ﻩ CPL P0.0ﻩﻩﻩ   ;

ﻩ MOV R1 ,#40

ﻩ  CJNE R0,#0,LOOP2ﻩ;

ﻩCLRTR0ﻩ  ;

ﻩ CLRTR1

HERE:

 AJMP HEREﻩ ﻩﻩ;

等待中断

 

ﻩORG  1500Hﻩﻩ;

T0中断服务程序

IT0P:

  MOVTH0,#38Hﻩﻩ;

重置计数初值

    MOV TL0 ,#9EH

ﻩ  DJNZR2 ,LOOP0   ;

ﻩ  MOVR2,#10

ﻩDEC  R0

ﻩ RETI

LOOP0:

 RETI

 ORG1600Hﻩﻩ ;

T1中断服务程序

IT1P:

MOV TH1,#38Hﻩﻩ;

ﻩ MOVTL1 ,#9EH

ﻩDEC R1

ﻩ RETI

 Peripheralspecificinitializationfunctions,

 Calledfromthe Init_Devicelabel

PCA_Init:

 anl PCA0MD,#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

 mov XBR1,#040h

ret

Oscillator_Init:

 mov  OSCICN,#083h

 ret

Interrupts_Init:

  mov IE, #082h

ret

Initializationfunctionfordevice,

CallInit_Devicefromyourmainprogram

Init_Device:

lcallPCA_Init

 lcall Timer_Init

  lcall Port_IO_Init

lcallOscillator_Init

lcallInterrupts_Init

 ret

end

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

【一】软件测试与性能分析

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