看看LED灯的接入方式, 如果LED灯的一端已经接地了,哪里把另外一端的电压直接拉高,记相应管脚赋值为1即可。例如:P2端口的第一管(0号)脚输出至LED的一侧,LED灯的另外一侧接地。一般把P2端口使能,P2管脚的第一
(1)基本要求:设计并LED电子显示屏和控制器。1) 一台简易16行*16列*16灰阶点阵显示的LED电子显示屏;2) 显示屏控制器,扩展键盘和相应的接口实现多功能显示控制,显示屏显示16灰阶图像(可以是渐变灰阶条纹)、数字和字母亮度适中,应无闪
1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀;
{ LED1=0;deIayms(1000);LED1=1;delayms(1000);} for(i=0;i<4;i++){ Ied2=!led2;delayms(1000);}
这是非常简单的程序。只需要检测按键,然后控制两个灯的亮灭,总共才3个IO口。建议自己写,几行代码的事,这样才能进步。
cc2530使用按键控制led1的闪烁效果具体要求如下1系统复位后led1熄灭2
//S2等于0时是按下 define LED1 define LED3 char status=0;char LED_flag=0;void main(void){ IO口初始化;while(1){ if(status==0){if(S2==0){LED_flag=~LED_flag;status=1;}} if (status==1
以下是一个简单的51单片机程序,通过按下按键可以实现4种不同状态的灯亮灭,包括正闪、反闪、多种间隔闪。程序中使用了定时器来实现闪烁功能。程序中使用了P1.0到P1.3作为控制灯的引脚,P3.2作为按键的引脚。每当按下
再次读取IO口,判断是否为低电平,如果是则表示有有效的按键按下,接着用while判断等待按键释放,然后让连接led的IO口电平取反以控制其亮灭(是强电的灯可以通过此处控制继电器的合、闭来控制灯的亮灭)。
这是非常简单的程序。只需要检测按键,然后控制两个灯的亮灭,总共才3个IO口。建议自己写,几行代码的事,这样才能进步。
单片机CC2530按键控制灯的亮灭?
初始给一个整数地址送入0,每按一次按钮整数加1,所以整数等于1就输出灯亮,等于2就串一个SM0.5(1s周期脉冲)输出闪烁,等于3就没有输出,再按等于4时候又把1送入整数灯亮,循环这样。用按钮控制一个寄存器自加。按
Network 2 // 灯光控制,一盏灯,按下启动后2秒灯亮,亮2秒后,灯灭3秒,闪烁,频率为0.25HZ.用PLC编程 LDW= T37, 20 S M0.0, 1 Network 3 LDW= T37, 40 R M0.0, 1 Network 4 // ,频率为0
亮一秒灭一秒这是闪烁电路,用PLC做闪烁有很多种做法。方法一:使用一般定时器两个,每个定时器计时1s,一个控制亮,一个控制灭;两个定时器如下图 方法二:中断控制,特殊定时器T32时间到进入中断,中断程序中写一句LD
这个程序使用了TON(定时器)指令来控制灯的亮灭时间。在程序的开头,当I0.0接通时,灯00.0亮,经过3秒后,灯00.1亮,同时灯00.0熄灭。接着,经过3秒,灯Q0.2亮,同时灯Q0.1熄灭。最后,经过3秒,灯Q0.0亮
include
4.2、将X001置于ON状态(即接通反向运行控制信号)运行程序,发现Y000置“0”状态且Y001置“1”,说明Y001信号控制的电机处于运行状态,在PLC实验箱面板按下A1,观察,指示灯KM2亮而KM1灭,无误。4.3、将X002置于ON状态
define uchar unsigned char delay(uchar a){ uchar i,j;for(i=0;i
cc2530跑马灯每隔三秒闪烁一次,亮一秒灭两秒,编程怎么实现
中断10次第1个LED翻转 5次第二个LED翻转 20次第3个LED翻转,并将计中断次数的变量清0 程序如下 sbit led1=P1^0; sbit led2=P1^1;sbit led3=P1^2;uchar a;TMOD=1;TH0=(65536-50000)/256;TL0=(65536-
89S52:单片机,控制LED的数据显示。LED1--LED6:用于显示单片机的数据,其中三个采用7段显示用于显示时、分、秒的十位,另三个采用8段显示用于显示时、分、秒的个位。74LS273:锁存器,LED显示扩展电路中的段码和位码使用了两片74LS2
define D1 P1_0//定义LED1为P10口控制 define D2 P1_1//定义LED2为P11口控制 define D3 P1_4//定义LED3为P14口控制 define D4 P0_1//定义LED4为P01口控制 /*32M晶振初始化---*/ void xtal_init(void){
这是非常简单的程序。只需要检测按键,然后控制两个灯的亮灭,总共才3个IO口。建议自己写,几行代码的事,这样才能进步。
1、先设定LED灯是低电平亮还是高电瓶亮,这里假设低电平;2、设置一个定时器,在定时器里面写代码,分别发送高、低电瓶值可实现交替闪耀;
cc2530控制两个LED灯交替闪烁,闪烁周期为0.5左右.其中p1_2连LED1p1-3连2
在SimpleApp上面改吧。这个控制方案很多的: 利用ZigBee无线传感器网络技术对LED节能灯实现远程控制的方案,给出了详细的软硬件设计。 1 自组网控制系统及工作原理 为实现故障检测、温度检测、电压检测、亮度检测和控制以及故障报警等功能,自组网控制系统采用了图1所示的设计。 整个无线网络是由终端节点(ZigBee Endpoint,ZE)、路由(ZigBee Router,ZR)、和协调器(ZigBee Coordinator,ZC)3种设备构成。其中终端是简化功能设备(Reduced Function Device,RFD),只能与路由或者协调器直接通信。路由是全功能设备(FuU Function Device,FFD),既可以和路由和终端直接通信,也可以和协调器直接通信。协调器是PAN协调器(PANC),负责一个PAN区域的网络建立及管理。协调器收集所有节点和路由的信息,通过RS232发给监控计算机来确定灯的亮度、环境温度、电池电量等。 工作原理:系统中每个终端、路由分别控制一盏灯,每个灯对应一个ID(终端或路由加入网络时由协调器自动分配),各个节点和路由将传感器收集的数据通过无线发送到协调器,协调器将收到的数据通过串口发送到监控计算机。如果LED灯出现故障,检测电路会产生报警信号,报警信号最终会发送到监控计算机,计算机会提示工作人员故障灯的ID,让维护更便利。另外终端的光敏传感器会收集光照的程度,然后由终端自动的调整光照的亮度。 终端也会将自身的供电电压传送到监控计算机,以防节点缺电而影响使用。 2 系统硬件设计 系统是由电源模块、无线传输模块(CC2530、温度检测、电压检测)、LED驱动模块、LED检测模块等组成,具体硬件电路逻辑结构如图2所示。其中电源模块是采用市面常用的ASM1117-5.0和ASM1117-3.3,原理简单易懂。下面主要介绍无线通信模块和LED驱动模块。 无线通信模块采用TI公司的CC2530模块,CC2530是用于IEEE 802.15.4、ZigBee和RF4CE应用的一个真正的片上系统(SoC)解决方案。它能够以非常低的总的材料成本建立强大的网络节点。CC2530结合了领先的RF收发器的优良性能、业界标准的增强型8051 CPU、系统内可编程闪存、8 KB RAM和许多其他强大的功能。CC2530有4种不同的闪存版本:CC2530F32/64/128/256(分别具有32/64/128/256 KB闪存)。CC 2530具有不同的运行模式,使得它尤其适应超低功耗要求的系统。运行模式之间的转换时间短,进一步确保了低能源消耗。CC2530优良的性能和具有代码预取功能的低功耗、8051微控制器内核、32/64/128 KB的系统内可编程闪存、8 KBRAM,具备在各种供电方式下的数据保持能力并且支持硬件调试,具有极高的接收灵敏度和抗干扰性能。它的可编程输出功率高达4.5 dBm,并且只需极少的外接元件。硬件电路结构框图如图3所示,其中光控单元采用TPS851芯片,温控模块采用TC77。 LED驱动模块采用的芯片是PT4115。PT4115是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED。PT4115输人电压范围从6~30 V,输出电流可调,最大可达1.2 A。根据不同的输入电压和外部器件,PT4115可以驱动高达数十W的LED。PT4115内置功率开关,采用高端电流采样设置LED平均电流,并通过DIM引脚可以接受模拟调光和很宽范围的PWM调光。当DIM的电压低于0.3 V时,功率开关关断,PT4115进入极低工作电流的待机状态。驱动原理图如图4所示。PT4115和电感L、电流采样电阻RS形成一个自振荡的连续电感电流模式的降压、恒流LED控制器。VIN上电时,L和RS的初始电流为零,LED输出电流也为零。这时候,CS比较器的输出为高,内部功率开关导通,SW的电位为低。电流通过L、RS、LED和内部功率开关从VIN流到地,电流上升的斜率由VIN、L和LED压降决定,在RS上产生一个压差VCSN,当VIN-VCSN>115mV时,CS比较器的输出变低,内部功率开关关断,电流以另一个斜率流过L、RS、LED和肖特基二极管(D),当VIN-VCSN<85 mV时,功率开关重新打开,这样使得在LED上的平均电流为I。I=(0.085+0.115)/(2×RS)=0.1/RS。 本文应用IAR Embedded Workbench开发环境,在TI ZStack-2.2.1-1.1.3协议栈的基础上,编写了系统的应用程序代码,用VC编写了上位机程序。系统软件主要包括协调器节点程序、路由和终端程序、上位机程序。ZStack提供了丰富的函数调用接口。 ZigBee网络中的协调器工作流程如图5所示,路由(涵盖终端)工作流程如图6所示。在ZigBee网络中,网络协调器具有建立网络、维护邻居设备表、对逻辑网络地址进行分配、允许设备MAC层/应用层的连接或断开网络的功能。对于节点之间的通信有两种寻址方式,分别是通过64位IEEE地址和16位网络地址来寻找网络设备,当节点加入网络时候,协调器会自动给其分配唯一的16位网络地址。灯的无线控制系统要求能够对任意一盏灯进行亮度调节,因此人工分配64位IEEE地址给每个路灯,以便以后进行控制。另外配置ZigBee设备对象断点时候,网内的所有节点的ID和断点描述符必须相同,否则节点间不能通信。路由器和终端的工作流程相识,这里不作区分。 上位机能够为工作人员清楚地提供电压、温度、节点数目、节点地址等数据,实现远程无线控制,创作和谐的人机交互界面,如图7所示。工作人员能够在上位机上使用ID对灯亮暗程度进行远程控制。 4结语 经测试,在室内无障碍15 m左右距离,无遮挡物环境下速率能够达到2 50 kbps;室外空旷环境下30~1 00m距离,速率为40 kbps;300 m,速率为25 kbps。距离150 m时通信的误码率可小于2%。系统在发射状态下电流为25.7 mA,接收时为29.3mA,休眠状态下仅为2.5μA。本系统具有成本低、功耗低、实施简单、维护方便的特点,具有较高的参考价值。
用那个plc?三菱还是西门子 这个比较简单用比较指令都可以完成
1.1实验目的 (1)、通过练习实现与、或、非逻辑功能,熟悉PLC编程方法。 (2)熟悉ZY17PLC12BC实验箱的使用方法。 1.2实验要求 本实验利用PLC控制电机正反转。发光二极管KM1亮模拟电机正转,发光二极管KM2 亮模拟电机反转,实验的控制要求如下: (1)按下正向运行按钮,KM1闭合,电动机正向运行。 (2)按下反向运行按钮,KM2闭合,电动机反向运行。 (3)按下停止按钮,KM1、KM2都断开,电动机停止运行 2 2.2选型、电路设计: 3 3.1、ZY17PLC12BC型可编程控制器实验箱 1台 3.2、PC机或FX-20P-E编程器 1台 3.3、编程电缆 1根 3.4、连接导线 若干 4 进行在线软器件调试: 4.1、将X000置于ON状态(即接通正向运行控制信号) 运行程序,发现Y000置“1”状态且Y001置“0”,说明Y000信号控制的电机处于运行状态, 在PLC实验箱面板按下A0,观察,指示灯KM1亮而KM2灭,无误。 4.2、将X001置于ON状态(即接通反向运行控制信号) 运行程序,发现Y000置“0”状态且Y001置“1”,说明Y001信号控制的电机处于运行状态,在PLC实验箱面板按下A1,观察,指示灯KM2亮而KM1灭,无误。 4.3、将X002置于ON状态(即关闭信号) 运行程序,发现Y000置“0”状态且Y001置“0”,说明信号控制的电机处于停止状 态,在PLC实验箱面板按下A2,观察,指示灯KM2灭且KM1灭,无误。 5 5.1、理解实验的原理及控制要求,列出I/O分配表(可参考下表)并根据分配表编 写实验程序。 序号 I/O 名称 面板符号 1 X0 正向运行控制信号 输入 2 X1 反向运行控制信号 3 X2 停止 1 Y0 正向运行 KM1 输出 2 Y1 反向运行 KM2 5.2、将编程电缆一端与PLC的编程接口相连,另一端与计算机串口连接。
你端口自己定 我就宏定义下了 #define S2 //S2等于0时是按下 #define LED1 #define LED3 char status=0; char LED_flag=0; void main(void) { IO口初始化; while(1) { if(status==0){if(S2==0){LED_flag=~LED_flag;status=1;}} if (status==1){{if(S2==1){status=0;}} if(LED_flag==0){LED1=0;LED3=0;}else{LED1=1;LED3=1;} } }
这个不是很简单嘛,你两个模块能通信了哇,能通信的话一个发送命令(随便发个什么),另一个模块收到信息后点亮或关闭小灯就可以了,这就是无线开关了。如果你连CC2530怎么用都不知道的话,那么给100金币我给你写个好了。
你端口自己定 我就宏定义下了 #define S2 //S2等于0时是按下 #define LED1 #define LED3 char status=0; char LED_flag=0; void main(void) { IO口初始化; while(1) { if(status==0){if(S2==0){LED_flag=~LED_flag;status=1;}} if (status==1){{if(S2==1){status=0;}} if(LED_flag==0){LED1=0;LED3=0;}else{LED1=1;LED3=1;} } }
主程序循环点亮8个LED,按键可接到外部中断0或1,当有按键按下时,进入外部中断服务子程序,在该服务程序中控制8个LED一起亮灭6次。亮灭或闪烁的时间可以采用延时子程序或定时中断程序来实现。