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

单片机LED灯控制器报告一、引言LED(Light Emitting Diode)是一种使用半导体材料发光的固态光源。
相较于传统的白炽灯和荧光灯,LED灯具具有功耗低、寿命长、发光效率高等优点,在室内和室外照明中得到了广泛应用。
为了更好地控制LED灯具,提高其照明效果和节能效益,研究和设计了单片机LED灯控制器。
二、设计原理1.软件设计通过单片机的编程控制,可以实现对LED灯的各种控制。
首先,需要确定控制的方式,包括亮灭控制、调光控制和颜色控制等。
根据不同的控制方式,编写相应的程序来实现。
2.硬件设计LED灯控制器的硬件设计主要包括电源电路、单片机电路和LED驱动电路。
(1)电源电路电源电路是提供工作电压和电流的重要组成部分。
一般采用稳压电源,以确保正常工作时的稳定电压和电流。
(2)单片机电路单片机电路主要由单片机、晶振、运放、电容和电阻等组成。
其中,晶振用于提供单片机的时钟信号,运放用于对输入信号进行放大和滤波。
(3)LED驱动电路LED驱动电路是将单片机输出的信号转化为适合LED灯工作的电压和电流的关键部分。
常用的驱动电路有恒流驱动电路和恒压驱动电路。
三、实验步骤1.搭建硬件电路按照设计原理中的硬件电路图,搭建LED灯控制器的电路,包括电源电路、单片机电路和LED驱动电路。
2.编写程序根据实际需要,编写单片机的程序。
根据控制方式的不同,可以编写相应的亮灭控制、调光控制和颜色控制程序。
3.烧录程序将编写好的程序通过编程器烧录到单片机中。
4.进行实验将LED灯连接到LED驱动电路中,然后接通电源,通过操作控制单片机来控制LED灯的亮度、颜色和闪烁频率等。
四、实验结果和分析经过实验,成功地搭建了单片机LED灯控制器,并通过编程实现了对LED灯的亮灭控制、调光控制和颜色控制。
通过改变单片机程序中的参数,可以调节LED灯的亮度和闪烁频率,实现不同的照明效果。
同时,还能通过控制RGB三基色来实现各种颜色的控制。
单片机实验报告——LED灯控制器

单片机实验报告——LED灯控制器
实验名称:LED灯控制器设计与实现
实验目的:
1.学习和掌握单片机的基本原理及其应用;
2.熟悉LED灯控制器的工作原理,并能够实现基本的灯光控制功能;
3.提高动手能力和解决实际问题的能力。
实验原理:
本实验基于单片机来控制LED灯的亮灭,通过按键输入来控制LED灯的工作状态。
实验材料和器件:
1.AT89C51单片机开发板;
2.电源适配器;
3.LED灯;
4.电阻、电容、按键等元器件。
实验步骤:
1.连接电路
将AT89C51单片机开发板与电源适配器连接,并将LED灯与单片机开发板上的GPIO引脚连接。
2.编写程序
使用Keil C编写程序,实现按下按钮时,LED灯亮起,再次按下按钮时,LED灯熄灭。
3.烧录程序
将编写好的程序通过编程器烧录到AT89C51单片机中。
4.运行程序
上电后,按下按钮,观察LED灯的亮灭情况,验证程序的正确性。
5.调试和优化
根据实际情况,对程序进行调试和优化,确保LED灯的控制能够稳定可靠。
实验结果:
经过调试和优化后,LED灯控制器工作正常。
按下按钮时,LED灯亮起,再次按下按钮时,LED灯熄灭,实现了基本的灯光控制功能。
实验总结:
通过本次实验,我对单片机的基本原理和应用有了更深入的了解,学会了使用单片机控制LED灯的方法和技巧。
同时,我也提高了动手实践和解决实际问题的能力。
在今后的学习和工作中,我会继续深入学习单片机的应用,不断提升自己的技术水平。
单片机LED灯实验报告

单片机LED灯实验报告
本次实验我们使用单片机控制LED灯的亮灭,这是一个非常简单的实验,适合初学者。
1、实验原理
单片机是一种集成电路芯片,具有计算机的基本结构和功能,可以通过编程实现对外
设的控制。
在本实验中,我们通过编程控制单片机的输出口,使其控制LED灯的亮灭。
2、实验器材
1)单片机开发板
2)LED灯
3)导线
4)电池
5)万用表
3、实验步骤
第一步:连接电路,将开发板上的输出口与LED灯的正极连接起来,将GND和LED灯
的负极连接起来。
第二步:打开开发板和计算机,用Keil uVision软件编写程序,将程序下载至单片机。
第三步:将电池接电,观察LED灯的亮灭情况。
第四步:使用万用表进行电压和电流检测,确保电路工作正常。
4、实验结果
当单片机控制输出端口时,LED灯会随之变化。
当单片机输出低电平时,LED灯熄灭;输出高电平时,LED灯亮起。
通过这次实验,我们掌握了单片机的基本原理和一些控制技巧。
这对于我们以后了解
和使用单片机会有很大的帮助。
同时,也加深了我们对电路基础知识的认识和理解。
华中科技大学单片机实验实验报告MCS51单片机

华中科技大学单片机实验报告MCS-51系列单片机(单片机原理及应用实验)(根据2014年电气与电子工程学院单片机实验课程改编)专业:电气工程及其自动化班级:气卓1301姓名:廖鹏毅学号:ALL RIGHT RESERVED目录实验3.1 软件仿真实验 (3)实验2“跑马灯”实验 (8)实验3 数码管显示功能的实现 (11)实验5 按键功能的实现 (23)实验7 A/D转换器件TLC1543的用 (29)实验8 D/A转换器件TLV5617的应用 (34)实验14指示灯的外部中断控制 (47)实验18定时器控制继电器 (49)自行设计实验 (53)实验总结 (55)实验3.1 软件仿真实验一实验目的1 掌握软件仿真的方法2 熟悉集成开发环境的使用3 熟悉常用指令的功能4 熟悉程序调试的方法5 学习自己编写、调试计算机程序二实验内容1 将Keil软件设置为软件仿真的方式2 将3.1.4介绍的示例程序录入、编译、调试3 观察有关寄存器、变量的值,理解程序及指令的功能4 编译、调试、验证自己编写的子程序三实验步骤1 先阅读课本,大致了解仿真软件的使用和注意事项2 结合课本,边看书边上机操作,逐步了解和掌握仿真软件的使用3 阅读和理解3.1.4介绍的示例程序,并将其录入、编译、调试4 赋值给示例程序时,打开各观察窗口,观察有关寄存器、变量的值,验证其功能5 自行编译、调试、验证自己编写的子程序四实验结果1 给十六进制数转换为十进制数子程序赋初值,MOV H_DAT0,#01HMOV H_DAT1,#00H则编译加载调试该子程序,打开各观察窗口观察有关变量,实验发现D_DA T0,D_DAT1,D_DAT2,D_DAT3中的值分别为00,00,00,01。
则符合实际,即验证其功能。
2 给双字节乘法运算子程序赋初值,MOV R4,#8MOV R5,#9MOV R6,#6MOV R7,#7然后编译加载调试该子程序,并用观察窗口观察有关变量,实验发现MUL_0,MUL_1,MUL_2,MUL_3分别为08,04,04,07.则符合实际,即验证其功能。
华中科技大学单片机实验报告完整版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【流程图】【源代码(含文件头说明、资源使用说明、语句行注释)】;------------------------------------;- Generated Initialization File --;------------------------------------$include (C8051F310.inc)public Init_DeviceINIT SEGMENT CODErseg INITORG 0000HLJMP MAINORG 000BH ;T0中断入口LJMP IT0P ;转T0中断服务程序ORG 001BH ;T1中断入口LJMP IT1P ;转T1中断服务程序ORG 1000H ;主程序MAIN: LCALL Init_Device ;设备初始化MOV SP , #60H ;赋堆栈指针MOV TMOD , #11H ;T1定时方式1,T0定时方式1 MOV R0 , #40 ;循环400次MOV R2 , #10MOV R1 , #10 ;定时0.25sMOV TH1 , #38H ;T1置初值MOV TL1 , #9EHMOV TH0 , #38H ;T0置初值SETB EA ;允许中断SETB ET0SETB ET1LOOP: SETB TR0 ;计时开始SETB TR1CJNE R1 , #0,LOOP ;判断是否到达0.25sCLR P3.1CPL P0.0 ;取反MOV R1 , #10CJNE R0 , #0,LOOP ;判断是否到达10sCLR TR0 ;清零CLR TR1MOV R1 , #20 ;R1重新赋值MOV R0 , #40 ;循环400次MOV R2 , #10SETB P3.1LOOP1: SETB TR0 ;计时SETB TR1CJNE R1 , #0 ,LOOP1 ;判断是否到达0.5sCLR P3.1CPL P0.0 ;取反MOV R1 , #20CJNE R0 , #0 ,LOOP1 ;判断是否到达10sCLR TR0 ;清零CLR TR1MOV R1 , #40 ;R1再次赋值MOV R0 , #40 ;循环LOOP2: SETB P3.1SETB TR0 ;计时SETB TR1CJNE R1 , #0 ,LOOP2 ;判断是否到达1sCLR P3.1CPL P0.0 ;取反MOV R1 , #40CJNE R0 , #0 , LOOP2 ;判断是否到达10sCLR TR0 ;清零CLR TR1HERE: AJMP HERE ;等待中断ORG 1500H ;T0中断服务程序IT0P: MOV TH0 , #38H ;重置计数初值MOV TL0 , #9EHDJNZ R2 , LOOP0 ;循环MOV R2 , #10DEC R0RETILOOP0: RETIORG 1600H ;T1中断服务程序IT1P: MOV TH1 , #38H ;重置计数初值 MOV TL1 , #9EHDEC R1RETI; Peripheral specific initialization functions, ; Called from the Init_Device labelPCA_Init:anl PCA0MD, #0BFhmov PCA0MD, #000hretTimer_Init:mov TMOD, #001hretPort_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, Digitalmov XBR1, #040hretOscillator_Init:mov OSCICN, #083hretInterrupts_Init:mov IE, #082hret; Initialization function for device,; Call Init_Device from your main programInit_Device:lcall PCA_Initlcall Timer_Initlcall Port_IO_Initlcall Oscillator_Initlcall Interrupts_Initretend【程序测试方法与结果、软件即硬件性能分析】【一】软件测试与性能分析1.开始时,LED灯以2Hz频率闪动,P0.0位输入,可以看到P0.0位的闪动。
单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器指导教师:专业班级:姓名:学号:联系方式:一、任务要求实验目的:加深对按时/计数器、中断、IO端口的理解,掌握按时/计数器、中断的应用编程技术及中断程序的调试方式。
实验内容:利用C8051F310单片机设计一个LED灯控制器主要功能和技术指标要求:1. LED灯外接于端。
2. LED灯别离按2Hz,1Hz和三种不同频率闪动,各持续10s。
3. 在LED灯开始和停止闪烁时蜂鸣器别离鸣响1次。
4. 利用单片机内部按时器按时,要求采用中断方式。
提高要求:利用按键(KINT)控制LED灯闪烁模式的切换。
二、设计思路C8051F310单片机片上晶振为,采用8分频后为,输入时钟信号为48个机械周期,所以T1按时器采用按时方式1,单次按时最长能够达到的时刻为,能够知足是的按时要求。
基础部份:给TMOD赋值10H,即选用T1按时器采用按时方式1,三种频率对应的半周期时刻为、、1s。
计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。
要使闪烁持续10s,三种模式需要各循环40、20、10次。
用LOOP3:MOV C, ;为标志位,进按时器中断后置一JNC LOOP3代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。
为了减少代码长度,能够采用循环结构,循环主题中,将R一、R2别离赋给TH一、TL1,R7为循环次数(用DJNZ语句实现);按时中断里,从头给TH一、TL1赋值时同理。
如此,循环时只要把按不时刻和循环次数赋给R一、R二、R7即可,达到减少代码长度的效果。
蜂鸣器也采用T1按时方式1,按时一秒。
提高部份:采用外部中断0,下降沿触发。
外部中断程序里置标志位和R0,用于判断执行完一种模式后,是不是跳出循环结束。
R0用于判断执行何种模式,每按一次后RO加一,第四次时就将R0和清零,如此程序就又回到了基础部份的循序执行。
因为中断程序执行完后,会回到原来程序中断的地方,继续向下执行而给程序运行带来诸多不便。
单片机实验报告-LED灯控制器.doc

单片机实验报告-LED灯控制器.doc本文主要介绍了一款基于51单片机的LED灯控制器的设计与实现,讲述了设计过程及原理,并列举了操作方法和应用场景。
一、设计过程1. 系统结构设计本系统主要包括三个模块:单片机模块、按键输入模块和LED控制模块。
单片机模块主要负责控制整个系统的运行,所以选用了AT89C51单片机;按键输入模块通过按键输入来控制LED灯的亮灭和灯光颜色的选择;LED控制模块通过单片机控制LED灯的亮度和颜色。
2. 硬件电路设计按键输入模块主要是通过8个按键输入实现。
通过8个按键分别控制LED的开关和颜色的选择,具体实现原理如下:当按键按下时,对应的IO口从高电平变为低电平,单片机从低电平口读取输入数据,判断按键的状态,并进行相应的操作。
由于按键输入电平不稳定,需要增加一个脉冲抗干扰的电路,以保证按键输入的稳定性。
LED控制模块主要采用的是3路PWM调光电路,配合RGB LED灯实现颜色选择。
该PWM 调光电路是通过改变占空比来实现LED灯的亮度控制,实现原理如下:单片机通过PWM信号控制三个三极管的ON/OFF,以调节LED灯的亮度。
3. 软件程序设计主要实现功能包括:初始化系统、按键读取、LED颜色选择、LED亮度调节等。
初始化系统:主要是对单片机进行初始化,包括IO口配置、定时器/计数器配置等。
按键读取:通过循环扫描的方式,读取按键输入,判断按键状态,根据不同的按键按下情况进行相应的操作。
LED颜色选择:通过按键选择不同的颜色,将对应的PWM输出数字量传递给三联杆TRIAC,实现LED灯颜色的选择。
二、系统实现及测试我们根据以上设计过程,设计出了一个简单的LED灯控制器,通过51单片机控制按键输入和LED亮度和颜色的选择,实现了简单的灯光场景切换。
2. 系统测试经过实际测试,系统可以稳定运行,按键输入灵敏度、LED亮度和颜色切换效果均达到预期目标。
三、操作方法1. 颜色选择按下对应颜色的按钮即可选择对应颜色。
单片机监控灯实训报告

一、实训目的本次实训旨在通过实际操作,学习单片机的应用,掌握单片机在监控灯系统中的应用原理和编程方法,提高学生的动手能力和实际应用能力。
通过本次实训,使学生能够:1. 理解单片机的基本原理和组成。
2. 掌握51单片机的编程方法和调试技巧。
3. 熟悉监控灯系统的基本设计方法和实现过程。
4. 培养学生的创新思维和团队协作能力。
二、实训内容本次实训以51单片机为核心,设计并实现一个简单的监控灯系统。
系统主要由以下几部分组成:1. 单片机核心模块:采用51单片机作为核心控制器,负责处理信号、控制LED灯的亮灭以及进行数据传输。
2. 传感器模块:通过光敏传感器检测环境光线强度,当光线强度低于设定阈值时,自动开启LED灯。
3. LED灯模块:用于照明,当环境光线强度不足时,LED灯自动点亮。
4. 电源模块:为整个系统提供稳定的电源供应。
三、实训步骤1. 硬件设计:- 设计电路原理图,包括单片机、传感器、LED灯和电源等模块的连接方式。
- 选择合适的元器件,并进行焊接和组装。
2. 软件设计:- 编写单片机程序,实现以下功能:- 读取光敏传感器的信号,判断环境光线强度。
- 根据光线强度控制LED灯的亮灭。
- 实现数据传输功能,将光线强度等信息传输到上位机。
- 使用C语言进行编程,并在Keil环境中编译和调试程序。
3. 系统调试:- 将编写好的程序烧录到单片机中。
- 连接传感器、LED灯和电源等模块,进行系统调试。
- 调整参数,确保系统稳定运行。
四、实训结果与分析1. 硬件设计:- 电路原理图设计合理,元器件选择合适,焊接质量良好。
- 系统组装完成后,各模块连接正常,电源供应稳定。
2. 软件设计:- 编写的单片机程序功能完善,实现了监控灯系统的各项功能。
- 程序调试过程中,通过修改参数和代码,解决了出现的问题。
3. 系统调试:- 系统运行稳定,能够根据环境光线强度自动控制LED灯的亮灭。
- 数据传输功能正常,能够将光线强度等信息传输到上位机。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【任务要求】
利用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
【流程图】
【源代码(含文件头说明、资源使用说明、语句行注释)】;------------------------------------
;- Generated Initialization File --
;------------------------------------
$include (C8051F310.inc)
public Init_Device
INIT SEGMENT CODE
rseg INIT
ORG 0000H
LJMP MAIN
ORG 000BH ;T0中断入口
LJMP IT0P ;转T0中断服务程序
ORG 001BH ;T1中断入口
LJMP IT1P ;转T1中断服务程序
ORG 1000H ;主程序
MAIN: LCALL Init_Device ;设备初始化
MOV SP , #60H ;赋堆栈指针
MOV TMOD , #11H ;T1定时方式1,T0定时方式1 MOV R0 , #40 ;循环400次
MOV R2 , #10
MOV R1 , #10 ;定时0.25s
MOV TH1 , #38H ;T1置初值
MOV TL1 , #9EH
MOV TH0 , #38H ;T0置初值
SETB EA ;允许中断
SETB ET0
SETB ET1
LOOP: SETB TR0 ;计时开始
SETB TR1
CJNE R1 , #0,LOOP ;判断是否到达0.25s
CLR P3.1
CPL P0.0 ;取反
MOV R1 , #10
CJNE R0 , #0,LOOP ;判断是否到达10s
CLR TR0 ;清零
CLR TR1
MOV R1 , #20 ;R1重新赋值
MOV R0 , #40 ;循环400次
MOV R2 , #10
SETB P3.1
LOOP1: SETB TR0 ;计时
SETB TR1
CJNE R1 , #0 ,LOOP1 ;判断是否到达0.5s
CLR P3.1
CPL P0.0 ;取反
MOV R1 , #20
CJNE R0 , #0 ,LOOP1 ;判断是否到达10s
CLR TR0 ;清零
CLR TR1
MOV R1 , #40 ;R1再次赋值
MOV R0 , #40 ;循环
LOOP2: SETB P3.1
SETB TR0 ;计时
SETB TR1
CJNE R1 , #0 ,LOOP2 ;判断是否到达1s
CLR P3.1
CPL P0.0 ;取反
MOV R1 , #40
CJNE R0 , #0 , LOOP2 ;判断是否到达10s
CLR TR0 ;清零
CLR TR1
HERE: AJMP HERE ;等待中断
ORG 1500H ;T0中断服务程序IT0P: MOV TH0 , #38H ;重置计数初值
MOV TL0 , #9EH
DJNZ R2 , LOOP0 ;循环
MOV R2 , #10
DEC R0
RETI
LOOP0: RETI
ORG 1600H ;T1中断服务程序IT1P: MOV TH1 , #38H ;重置计数初值 MOV TL1 , #9EH
DEC R1
RETI
; Peripheral specific initialization functions, ; Called from the Init_Device label
PCA_Init:
anl PCA0MD, #0BFh
mov PCA0MD, #000h
ret
Timer_Init:
mov TMOD, #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
; Initialization function for device,
; Call Init_Device from your main program
Init_Device:
lcall PCA_Init
lcall Timer_Init
lcall Port_IO_Init
lcall Oscillator_Init
lcall Interrupts_Init
ret
end
【程序测试方法与结果、软件即硬件性能分析】
【一】软件测试与性能分析
1.开始时,LED灯以2Hz频率闪动,P0.0位输入,可以看到P0.0位的闪动。
10秒前,蜂鸣器位P3.1一直为低电平。
截图如下:
此时时间为:
2.10s时刻,蜂鸣器响一次,P
3.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计时时间。