C8051F410实现两个LED灯闪烁
基于C8051F410单片机的剩余电流动作保护装置设计

Science &Technology Vision科技视界0引言随着人们生活水平提高,电器设备迅速增加,由于剩余电流导致直接或间接触电事故时有发生,严重危害了人们的健康,甚至威胁生命。
在电网中安装剩余电流保护器,可以预防人们用电中可能发生的触电事故,保护生命和财产安全,具有十分重大的意义。
国际电工委员会将对其准确的定义是:接地性故障电流。
剩余电流保护器是当人体的可能接触的电压值超过了安全值或人体的触电电流及其他对地故障电流超过了允许值时,能够自动切断电源以保障人身和设备安全的电子设备。
在我国于2005年修订的GB 13955-2005《剩余电流动作保护装置安装和运行》的发布,更是将剩余电流动作保护器在国家民用与农网改造中对用电安全所起到的重要作用给以了充分的肯定和详细的诠释。
根据GB 13955的具体规定,装置的特性参数在不同的电网中如何选择符合标准的剩余电流动作保护,显得非常重要。
1C8051F410单片机性能简介C8051F410是Silicon Laboratories 公司最新推出的8051系列单片机,它可以提供高达50MIPS 的8051核心处理器、C8051F410芯片内含稳压器,可以给系统外部元器件提供电源。
此外,它还整合了丰富的外设功能,如200ksps 的12位AD 转换器、两组12位DA 转换器、温度传感器、可编程电压参考和比较器,C8051F410采用32脚QFN 封装,体积非常小巧灵活,因而成为便携式设备、电子产品和仪器仪表的理想选择,大大简化了硬件电路的复杂度。
C8051F410是完全集成的低功耗混合信号片上系统型MCU。
下面列出了一些主要特性:1.1高速、流水线结构的8051兼容的微控制器核(可达50MIPS);1.2全速、非侵入式的在系统调试接口(片内);1.3真12位200ksps 的24通道ADC,带模拟多路器;1.4两个12位电流输出DAC;1.5高精度可编程的24.5MHz 内部振荡器;1.6高达32KB 的片内FLASH 存储器、2304字节片内RAM;1.7硬件实现的SMBus/I2C、增强型UART 和增强型SPI 串行接口、4个通用的16位定时器;1.8具有6个捕捉/比较模块和看门狗定时器功能的可编程计数器/定时器阵列(PCA)硬件实时时钟(smaRTClock),工作电压可低至1V,带64字节电池后备RAM 和后备稳压器;1.9硬件CRC 引擎1.10片内上电复位、VDD 监视器和温度传感器、片内电压比较器多达24个端口I/O 具有片内上电复位、VDD 监视器、看门狗定时器和时钟振荡器的C8051F41x 器件是真正能独立工作的片上系统。
如何制作两个发光二极管会轮流闪烁的LED闪灯电路?

如何制作两个发光二极管会轮流闪烁的LED闪灯电
路?
这个教程教大家做一个LED闪灯电路,按下开关,两个发光二极管会轮流闪烁。
这个电路是一个“自激多谐振荡器”,能把直流电变成交流信号。
套件内容包括:
打印了电路拼贴图的卡纸、发光二极管2个,100μF电解电容2个,56K 电阻2个,NPN型三极管9014也是2个,电池,导电胶带,共7种11件。
下面是用导电胶带拼贴出电路主干的样子,注意交叉的导电胶带要互相绝缘,还有开关的制作方法。
把电子元件的引脚用小块导电胶带粘贴到电路里,引脚长的可以先弯折一下。
注意发光二极管的正负极,引脚长的一端是正极,或者看它的“玻璃泡”里面,小的那个电极对应正极。
两个电解电容的负极引脚是紧挨着的,它的负极一侧有白条标志。
注意两个三极管的引脚方向。
三极管有字的一面是平的,是正面,从左到右3个引脚分别是e、b、c极。
用导电胶带把它们的引脚粘贴牢固之后,还要检查一下有没有短路。
led让两个灯同时闪烁的代码

led让两个灯同时闪烁的代码LED (Light Emitting Diode)是一个非常有用的设备,因为它可以让我们在电子电路中实现了许多有趣的功能。
其中一个功能是同时使两个LED灯闪烁,下面我们来分步骤阐述如何实现这个代码。
第一步:准备硬件为了实现这个功能,我们需要先准备一些硬件,例如:两个LED 灯、两个220 Ω的电阻、一个Arduino开发板以及一些连线。
1. 将Arduino开发板连接到计算机上,并打开Arduino IDE软件进行编程。
2. 将一个LED灯的长脚与Arduino开发板的数字引脚13相连;将另一个LED灯的长脚与数字引脚12相连。
3. 将两个LED灯的短脚分别与两个220 Ω的电阻相连,然后将电阻的另一端连接到Arduino开发板的GND引脚上。
第二步:编写代码现在我们已经准备好了硬件,接下来需要编写代码让两个LED灯同时闪烁。
void setup() {pinMode(13, OUTPUT);pinMode(12, OUTPUT);}void loop() {digitalWrite(13, HIGH);digitalWrite(12, LOW);delay(500);digitalWrite(13, LOW);digitalWrite(12, HIGH);delay(500);}代码详解:setup()函数中我们将数字引脚13和12都设置为输出引脚。
loop()函数是Arduino程序的主要循环部分。
在这个程序中,我们使用digitalWrite()函数让数字引脚13高电平(LED1点亮),数字引脚12低电平(LED2熄灭)。
然后程序暂停500毫秒,然后交换digitalWrite()函数的参数,数字引脚13变为低电平(LED1熄灭),数字引脚12变为高电平(LED2点亮),程序再次暂停500毫秒。
这样,两个LED灯就会不停地交替闪烁。
第三步:上传代码现在我们已经编写好了代码,接下来就需要上传代码到Arduino 开发板中。
实现两个LED灯闪烁的实验原理

实现两个LED灯闪烁的实验原理实验原理:实现两个LED灯闪烁的实验主要基于电子元件的工作原理和电路设计。
LED(发光二极管)是一种半导体器件,能够将电能转化为光能,具有快速开关和发光的特性。
通过将LED连接在电路中,根据电路设计与控制时序,可以实现LED的闪烁。
本实验需要使用两个LED灯,以及与之对应的电路元件和控制器件。
步骤一:准备实验材料1. 两个LED灯:准备两个不同颜色的LED灯,例如一个红色LED和一个绿色LED。
2. 电阻:根据LED的工作电压和电流需求,选择合适的电阻,保证电流适宜。
3. 手电筒电池盒:作为电源供电,可选择适当数量的电池组合,以获得所需的电压。
4. 连接线和面包板:用于连接各个电路元件。
5. 开关:用于控制电流通断,实现LED的闪烁效果。
步骤二:电路设计1. 连接LED灯:将两个LED灯分别与电阻连接,确保电压和电流合适。
LED的长脚连接到正极(较长的电阻脚),短脚连接到负极(较短的电阻脚)。
2. 连接电源:将电阻另一侧的正极连接到电源的正极(电池的正极),负极连接到电源的负极(电池的负极)。
步骤三:控制开关1. 连接开关:将开关连接在电源的正负极之间,在开关断开的状态下,LED灯不会亮起,即暂时停止闪烁。
2. 控制开关:根据需要设置开关的开关频率,可通过调节开关的开关时间间隔控制LED的闪烁频率。
步骤四:实验操作1. 打开开关:将开关接通,电流从电源经过电路流向LED灯,LED灯开始发光,实现闪烁效果。
2. 调节开关频率:根据需要调整开关的开关频率,使得两个LED灯交替闪烁,每个LED灯亮起的时间间隔可以相同,也可以不同。
实验原理解析:LED灯的闪烁实验主要借助于电流的开关来实现。
通过控制开关的状态,控制电流的通断,进而控制LED灯的发光和熄灭。
当开关通断频率较快时,人眼就会感知到LED灯的闪烁效果。
此外,两个LED灯交替闪烁的效果可以通过开关的状态来控制,使得两个LED灯在不同时间段内有不同的亮灭状态,呈现出交替闪烁的效果。
PLC实验报告两灯交替闪烁

实验一两灯交替闪烁一、项目任务描述了解罗克韦尔PLC技术,理解CCW软件的使用,学习梯形图的编程以及功能块的运用。
完成两灯交替闪烁编程及跑马灯编程,并运行结果。
二、系统硬件及I/O配置说明专用综合工控柜(Micro850控制器)PC机(CCW编程软件,RSLinx Classic通信软件)三、程序及说明打开CCW编程软件。
控制器依次选择:控制器>Micro850>2080-LC50-48QBB。
拖拽“直接接触”到梯级 1作为开关。
在变量选择器中选择I/O -Micro850>_IO_EM_DI_19作为开始按钮。
选择MOV赋值指令,将1赋给A1(创建为局部变量,类型为 DINT)。
、同样的方式拖拽 1个“ =”比较指令、 1个直线圈、 1个分支、1个 TON 计时器和一个 MOV 指令到梯级2。
当A1=1时,分支上延迟器0.5s(t#500ms),再将2赋予A1,直线圈选择I/O -Micro850>_IO_EM_DO_11。
再同样的方式拖拽 1个“ =”比较指令、 1个直线圈、 1个分支、1个 TON 计时器和一个 MOV 指令到梯级3。
当A1=2时,分支上延迟器0.5s(t#500ms),再将1赋予A1,直线圈选择I/O -Micro850>_IO_EM_DO_12。
拖拽“直接接触”到梯级4作为开关。
在变量选择器中选择I/O -Micro850>_IO_EM_DI_20作为终止按钮。
选择 MOV赋值指令,将0赋给A1。
将程序下载到 PLC Micro850 PLC(即2080 -LC50 -48QBB )上。
变量设置运行结果:按下DI-19后,红框中两个灯交替闪烁。
按下DI-20结束闪烁。
四、总结今天一天主要了解了cww工业编程软件的使用,搭建梯形图,从而进行编程。
主要搭建了两灯交替闪烁。
对cww编程有了初步的了解,也能独立自主搭建简单的梯形图。
LED灯调光时闪烁的问题

LED灯调光时闪烁的问题及解决方法LED灯调光时闪烁的问题,一般都是回路电流达不到可控硅的维持电流,达不到维持电流有几个原因:1、可控硅导通后,电路由于不是阻性,由于电容,电感,会存在电流振荡,当电流振荡到低于可控硅维持电流后,就可控硅关断,然后重新触发。
2、可控硅导通后,电流会慢慢下降,当下降到可控硅维持电流前,由于这个时间很短,如果后面电路还来不及工作,同样会重启。
3、当输入电压降低时,回路电流也降低,降低到低于可控硅维持电流后,可控硅关断。
可控硅调光原本是应用于白炽灯的,白炽灯的效率很低,所以要得到响应的亮度时需要的功率大,功率大了就意味着电流大,也就是说电流不会小于SCR的维持电流,SCR不会关断,也就没有闪烁的问题。
另外白炽灯是依靠热发光的,而热量是不能瞬时转走的,所以即使有瞬时的中断,发光也不会突然变化。
但LED就不是这样的,同样的亮度,输入功率很小,也就是电流小,很容易低于维持电流一下。
另外LED的反应很快,一没有电流马上就灭掉,所以也容易使人眼感觉到。
找到了TRIAC对LED灯具调光灯闪的原因。
但如何控制和维持这个电流,这才是根本核心技术。
本人在做这方面的研发时,设计了一种电路,完全解决TRIAC 对LED灯具调光灯闪的问题。
核心的技术就是找到了如何控制和维持这个电流,使之在导通角最小时,保持稳定。
效率87%,PF大于。
适合各种质量的TRIAC.LED室内照明(1W-25W)可控硅TRIACt调光,如球泡灯系列,PAR灯系列,T8 LED 日光灯系列等,在欧美国家大部分都是沿用以前老式的可控硅TRIAC灯座来进行调光。
所以要求LED灯具一定要满足TRIAC调光。
如,欧美的LED球泡灯,大部分客户必须要求能配合老式的可控硅TRIAC灯座来进行调光,以便能直接替换白炽灯。
目前,很多人都遇到了麻烦。
解决不了LED灯具在老式的可控硅TRIAC灯座调光时,灯闪、效率低及PF低等困绕的问题。
单片机实验报告——LED灯控制器

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

led驱动闪烁故障解决方法LED驱动闪烁的故障可能有多种原因,包括电源问题、灯泡老化或损坏、电路问题、接线不良、亮度设置不正确等。
以下是相应的解决方法:1. 检查电源:如果电源电压不稳定或过低,可能会导致LED灯闪烁。
您可以使用万用表测量电源电压,确保电压在正常范围内。
如果电源电压不稳定,可以考虑更换电源或使用稳压器。
2. 更换灯泡:如果LED灯闪烁,可能是由于灯泡老化或损坏引起的。
在这种情况下,最好的解决方法是更换灯泡。
您可以使用万用表测试灯泡的电阻值,如果电阻值超出了正常范围,那么灯泡可能已经损坏了。
3. 检查电路:如果电源和灯泡都没有问题,那么问题可能出在电路上。
在这种情况下,您可以使用万用表测试电路的电阻值,确保电路没有断路或短路。
如果发现电路有问题,可以考虑修理或更换电路板。
4. 检查接线:LED灯闪烁还可能是由于接线不良引起的。
在这种情况下,您应该检查接线是否正确。
确保所有电线都正确连接,并且没有松动或断开。
如果发现接线有问题,可以重新连接电线或更换电线。
5. 调整亮度:LED灯闪烁还可能是由于亮度设置不正确引起的。
在这种情况下,您可以使用遥控器或调光器来调整LED灯的亮度,确保LED灯的亮度设置正确。
此外,如果LED灯的灯泡与驱动不匹配,灯泡承受不了来自于驱动的能量,这时候灯就会一直闪烁。
建议更换与灯相匹配的驱动;驱动有过热保护功能,当灯泡散热性不好时也会出现闪烁现象。
建议更换的时候要选择散热性较好的灯具;当灯具进水时,灯具与驱动会被损坏,led灯也会闪烁。
建议更换灯珠与驱动。
以上是一些可能的解决方法,具体方法取决于具体的问题和情况。
如果遇到困难,建议寻求专业人士的帮助。
简单控制多个LED灯的闪烁

简单控制多个LED灯的闪烁
说起控制必须要有思想,比如领导为什么成为领导,就是因为它的思想比一般的人要丰富,所以才能束缚员工为他打工干活。
对于我们的CPU 来说,同样他想控制其他的硬件电路工作,完成相应的功能,它也必须有思想,就是我们生活中所说的软件,程序。
文中将会用简单的CPU(51单片机)描述多个LED灯的控制,使它实现不同的效果。
51单片机是最早出现的微控制器,它能够实现一些简单的,对精读要求不是很高的控制。
处理器也好,微控制器也好它们都是识别数字信号,处理0和1的数据,当然输出的也是0和1的数据。
这里的0个1可以这样去理解它,0代表低电平,负级,接地信号。
1代表高电平,正级,工作电源。
51单片机去控制LED灯的明暗,首先就看LED灯的外围电路接正级还是负级(一般情况接的是正级),那么51单片机在相应的管脚端口输出0或1的信号就能够使LED灯发光,如果给多个LED灯输出不同的,有规律的,无规律的0或1,最终能够实现花样LED的显示效果。
在工作中,领导要想实现领导的功能,必须有健康的身体。
同样,处理器想要LED 灯实现它的想法,它的效果。
那么必须要有完整的电路板,完整的功能电路。
结束语:有了健康的身体及思想,就能完成领导的功能,有了
完整的电路板及程序就能实现其设计的功能。
C8051F410实现两个LED灯闪烁【定时器2方式】

// P1.0 - Unassigned, Open-Drain, Digital
// P1.1 - Unassigned, Open-Drain, Digital
// P1.2 - Unassigned, Open-Drain, Digital
// settings
#define LED_TOGGLE_RATE 50 // LED toggle rate in milliseconds
// if LED_TOGGLE_RATE = 1, the LED will
// be on for 1 millisecond and off for
// 1 millisecond
Init_Device();
OSCICN |= 0x04; // Force Internal Osc. 1:8 prescaler
while ((OSCICN & 0x40 ) == 0); // Wait until stable
Timer2_Init (); // Initialize the Timer2
//
//
// FID: 41X000044
// Target: C8051F41x
// Tool chain: KEIL C51 7.20 / KEIL EVAL C51
// Command Line: None
//
// Release 1.0
// -Initial Revision (CG)
// -08 Mar 2006
// P0.3 - Skipped, Open-Drain, Digital
P1.0上实现LED灯闪烁

P1.0上实现LED灯闪烁⼦项⽬⼀:P1.0上实现LED灯闪烁⽬标:1、通过⼀个简单实例的仿真,掌握单⽚机仿真的基本过程2、了解单⽚机C51程序设计基础。
3、掌握keilC编译器的使⽤。
4、掌握proteus仿真软件进⾏仿真的基本过程。
任务:设计⼀个单⽚机最⼩应⽤系统,并在P1.0上实现LED灯闪烁任务分解:1、设计原理图;2、利⽤proteus绘制原理图;3、编写程序,并利⽤KeilC进⾏编译,⽣成hex⽂件;4、利⽤proteus进⾏仿真调试。
技能拓展:1、proteus软件使⽤。
2、KeilC编译器使⽤3、C51程序设计⼀、原理由于需要实现的功能⽐较简单,所以单⽚机最⼩系统,时钟采⽤内部时钟,复位采⽤上电复位,在P1.0 端⼝上接⼀个发光⼆极管L1,使L1在不停地⼀亮⼀灭,⼀亮⼀灭的时间间隔为0.2 秒,电路图如下图所⽰。
⼆、原理图绘制安装完Proteus后,运⾏ISIS 7 Professional,会出现以下窗⼝界⾯:1、将所需元器件加⼊到对象选择器窗⼝:本例要⽤到的元件有:AT89C51、电阻(RES)、电容(CAP)、电解电容(HITEMP)、发光⼆极管(LED)、晶振(CRYSTAL)单击对象选择器按钮,如图所⽰弹出“Pick Devices”页⾯,在“Keywords”输⼊AT89C51,系统在对象库中进⾏搜索查找,并将搜索结果显⽰在“Results”中,如图所⽰。
在“Results”栏中的列表项中,双击“AT89C51”,则可将“AT89C51”添加⾄对象选择器窗⼝。
然后⽤同样的步骤添加其他器件,完成后单击“OK”按钮,结束对象选择。
最终结果:经过以上操作,在对象选择器窗⼝中,就有了需要的元器件对象,单击,在预览窗⼝中,可见到的实物图,如图所⽰;此时,在绘图⼯具栏中的元器件按钮处于选中状态。
2、放置元器件⾄图形编辑窗⼝在对象选择器窗⼝中,选中AT89C51,将⿏标置于图形编辑窗⼝该对象的欲放位置、单击⿏标左键,该对象被完成放置。
LED灯调光时闪烁的问题

LED灯调光时闪烁的问题及解决方法LED灯调光时闪烁的问题,一般都是回路电流达不到可控硅的维持电流,达不到维持电流有几个原因:1、可控硅导通后,电路由于不是阻性,由于电容,电感,会存在电流振荡,当电流振荡到低于可控硅维持电流后,就可控硅关断,然后重新触发。
2、可控硅导通后,电流会慢慢下降,当下降到可控硅维持电流前,由于这个时间很短,如果后面电路还来不及工作,同样会重启。
3、当输入电压降低时,回路电流也降低,降低到低于可控硅维持电流后,可控硅关断。
可控硅调光原本是应用于白炽灯的,白炽灯的效率很低,所以要得到响应的亮度时需要的功率大,功率大了就意味着电流大,也就是说电流不会小于SCR的维持电流,SCR不会关断,也就没有闪烁的问题。
另外白炽灯是依靠热发光的,而热量是不能瞬时转走的,所以即使有瞬时的中断,发光也不会突然变化。
但LED就不是这样的,同样的亮度,输入功率很小,也就是电流小,很容易低于维持电流一下。
另外LED的反应很快,一没有电流马上就灭掉,所以也容易使人眼感觉到。
找到了TRIAC对LED灯具调光灯闪的原因。
但如何控制和维持这个电流,这才是根本核心技术。
本人在做这方面的研发时,设计了一种电路,完全解决TRIAC 对LED灯具调光灯闪的问题。
核心的技术就是找到了如何控制和维持这个电流,使之在导通角最小时,保持稳定。
效率87%,PF大于0.95。
适合各种质量的TRIAC.LED室内照明(1W-25W)可控硅TRIACt调光,如球泡灯系列,PAR灯系列,T8 LED 日光灯系列等,在欧美国家大部分都是沿用以前老式的可控硅TRIAC灯座来进行调光。
所以要求LED灯具一定要满足TRIAC调光。
如,欧美的LED球泡灯,大部分客户必须要求能配合老式的可控硅TRIAC灯座来进行调光,以便能直接替换白炽灯。
目前,很多人都遇到了麻烦。
解决不了LED灯具在老式的可控硅TRIAC灯座调光时,灯闪、效率低及PF低等困绕的问题。
led灯条为什么老是闪烁?怎么解决

led灯条为什么老是闪烁?怎么解决
lED灯条闪烁,在LED驱动这是一个非常常见的问题。
我们先分析一下LED驱动的工作原理。
一般LED驱动电路使用恒流源控制电路的,因为灯珠的发光量和电流呈线性关系,要灯亮度没有变化,就必须恒流。
现在我们就以芯龙的XL6006作为恒流源控制芯片来处理他的原理图如图原理图如图所示因为芯片5脚是反馈脚参考电压临界是0.22伏。
如果我们对该脚对地接一个电流采样电阻,因为该脚芯片会控制在0.22V,规格书如图所示。
电阻值一定,电流肯定是恒定的。
这就达到了恒流的效果。
如图另外一副原理图,他与规格书的参考电路图类似但是他添加了限压的操作。
也就是说,当负载电阻值很大,他又要恒流,所以必须要增加输出电压,这样超过可稳压二极管的电压,稳压二极管就导通了,有电流流过电流采样电阻。
那就起到限压的作用。
但是灯条为什么会闪烁呢。
1.采样电流的问题,因为由于电阻的热效应,电阻阻值会有变化,如果变小。
那就会导致输出功率增加,这样就会导致芯片过流保护,就回灯一会有电,有电就保护,也就闪烁了。
如果采样电阻变大,灯就会变暗,或者一直不工作,输出电压很重要。
电流采样电阻功率一定要有余量。
2.灯板有问题。
如果灯板负载不匹配,也会出现芯片输出电压过压,导致芯片过压保护,也会一闪一闪的。
3.LED输入电压不稳定,也就是说,芯片供电电压不稳定,如果电压时有时无,输出电压电流肯定不稳定的。
所以灯也会闪。
LED灯控制器

《微机实验》报告实验名称 LED灯控制器指导教师专业班级姓名学号序号联系方式一、任务要求实验内容:利用C8051F310单片机设计一个LED灯控制器主要功能和技术指标要求:1. LED灯外接于P0.0端。
2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。
3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。
4. 利用单片机内部定时器定时,要求采用中断方式。
提高要求:使用按键(KINT)控制LED灯闪烁模式的切换。
二、设计思路LED灯外接于P0.0端,要实现LED的闪动,可在P0.0端输出一定频率的方波信号即能实现。
蜂鸣器接于P3.1端,要实现蜂鸣器的鸣响,可在P3.1端输出一定时长的高电平信号即能实现此功能。
LED灯开始闪动前,先将P3.1置零,使蜂鸣器不再鸣响,然后用LCALL调用蜂鸣器鸣响的子程序,使蜂鸣器鸣响一次。
计数器使用T0的定时方式1。
①对于2Hz的方波信号,周期为500ms,方波的占空比为50%,即每次计时250ms时,P0.0跳转一次。
机器周期设置为16us,可由计算公式求得计数器的初值为C2F7H,分别为TH0和TL0赋相应初值。
2Hz频率闪动10s,需要20个周期,P0.0跳转需40次,每次计数循环,给次数标志位R0进行加一操作,直到R0到39时(加上没进入循环前1次计数,一共40次),2Hz频率闪动结束,开始以1Hz频率闪动。
②对于1Hz方波信号,周期为1s,方波占空比为50%,即每次计时500ms时,P0.0跳转一次。
机器周期16us,计算可得计数初值为85DDH,分别为TH0和TL0赋相应初值。
1Hz 闪动10s,需要10个周期,P0.0需跳转20次,每次计数循环给次数标志为R1进行加一操作,直到R1到20时,1HZ频率闪动结束,开始以0.5Hz闪动。
③对于0.5Hz方波信号,周期为2s,方波占空比为50%,即每次计时1s时,P0.0跳转一次。