通过按键2控制灯1
- 格式:doc
- 大小:125.55 KB
- 文档页数:5
一灯双控开关接线原理一灯双控开关是现代家庭常用的电器类的一种,它的接线原理在学习电气相关的知识中占据重要的位置。
一灯双控开关是一种有两个控制按键的开关,它可以在进行断线控制时使用,也可以用于某一个区域较为严格的照明设计当中。
由于它的两个按键,所以它能够实现智能控制,从而更好地满足人们的某些需求。
一灯双控开关的接线原理是相当简单的,它由两部分组成:电源线、灯线和三根控制线,这三根控制线分别连接两个控制开关的一端,第一根控制线连接一端控制按钮的两个接点,第二根控制线连接另一端控制按键的两个接点,第三根控制线将这两端的控制按键连接起来。
电源线与灯线的接法和普通的单灯控制开关一样,具体如下图所示。
图为一灯双控开关接线原理图一灯双控开关接线原理图这样,当开关1处于开启状态时,电源线经过开关1接通,开关2控制照明灯的开关,当电源到达,照明灯可立即亮起,当关闭开关1时,照明灯也会立即关闭,此时开关2可以继续控制灯的开关。
通过以上对一灯双控开关的接线原理的简要介绍,可以看出,一灯双控开关的接线原理简单易懂,虽然开关的接线电路多,但其实操作起来也是非常方便的,所以说,一灯双控开关是家庭电气安装中常用的电气元件。
要想掌握一灯双控开关的接线原理,除了掌握基本的电气原理知识外,还要进行实际的操作,熟悉电路的接线识别方式,此时可以借助一些实物模型来进行示范,这样能够更好地理解一灯双控开关接线原理。
此外,在实际的控制中,一定要注意熔断器的选择和接线的安全操作,这样可以避免电气故障发生。
从上述简介可以明白,一灯双控开关接线原理十分重要,其安全性和方便性在安装和使用照明系统上占据着重要的地位。
正确安装一灯双控开关,正确接线,不仅可以控制照明系统,而且还可以延长灯的使用寿命,提高安全性,避免了可能造成的火灾等安全隐患。
主题:单片机独立按键控制LED灯实验原理目录1. 概述2. 单片机独立按键控制LED灯实验原理3. 实验步骤4. 结语1. 概述单片机在现代电子设备中起着至关重要的作用,它可以通过编程实现各种功能。
其中,控制LED灯是单片机实验中常见的任务之一。
本文将介绍单片机独立按键控制LED灯的实验原理及实验步骤,希望对初学者有所帮助。
2. 单片机独立按键控制LED灯实验原理单片机独立按键控制LED灯的实验原理主要涉及到单片机的输入输出端口及按键和LED的连接方式。
在单片机实验中,按键与单片机的输入端口相连,LED与单片机的输出端口相连。
通过按键的按下和松开来改变单片机输出端口电平,从而控制LED的亮灭。
3. 实验步骤为了完成单片机独立按键控制LED灯的实验,需要按照以下步骤进行操作:步骤一:准备材料- 单片机板- 按键- LED灯- 连线- 电源步骤二:搭建电路- 将按键与单片机的输入端口相连- 将LED与单片机的输出端口相连- 连接电源步骤三:编写程序- 使用相应的单片机开发软件编写程序- 程序中需要包括按键状态检测和LED控制的部分步骤四:烧录程序- 将编写好的程序烧录到单片机中步骤五:运行实验- 按下按键,观察LED的亮灭情况- 确保按键可以正确控制LED的亮灭4. 结语通过上述实验步骤,我们可以实现单片机独立按键控制LED灯的功能。
这个实验不仅可以帮助学习者了解单片机的输入输出端口控制,还可以培养动手能力和程序设计能力。
希望本文对单片机实验初学者有所帮助,谢谢阅读!实验步骤在进行单片机独立按键控制LED灯实验时,需要按照一定的步骤进行操作,以确保实验能够顺利进行并取得预期的效果。
下面将详细介绍实验步骤,帮助读者更好地理解和掌握这一实验过程。
1. 准备材料在进行单片机独立按键控制LED灯实验前,首先需要准备相应的材料。
这些材料包括单片机板、按键、LED灯、连线和电源。
在选择单片机板时,需要根据具体的实验需求来确定,常见的有51单片机、Arduino等,不同的单片机板具有不同的特性和使用方法,因此需要根据实验要求来选择适合的单片机板。
北京科技大学微型计算机原理实验报告学院:____自动化学院________________专业、年级:_自动化1101_ ______________ 姓名:__廖文骏_ ________________学号:_ 20111002124 ____________ 指导教师:___ _____王粉花____________2013年12 月综合实验一按键控制流水灯实验(查询方式)实验学时:2学时一、实验目的1.掌握ATmega16 I/O口操作相关寄存器2.掌握CodeVision AVR软件的使用3. 复习C语言,总结单片机C语言的特点二、实验内容1. 设计一个简单控制程序,功能是8个LED逐一循环发光0.5s,构成“流水灯”。
2. 用两个按键K1和K2控制流水灯(中断方式):(1)当按下K1时,流水灯从左向右流动;(2)当按下K2时,流水灯从右向左流动。
三、实验所用仪表及设备硬件:PC机一台、AVR_StudyV1.1实验板软件:CodeVision AVR集成开发软件、SLISP下载软件四、实验原理ATmega16芯片有PORTA、PORTB、PORTC、PORTD(简称PA、PB、PC、PD)4组8位,共32路通用I/O接口,分别对应于芯片上32根I/O引脚。
所有这些I/O口都是双(有的为3)功能复用的。
其中第一功能均作为数字通用I/O接口使用,而复用功能则分别用于中断、时钟/计数器、USRAT、I2C和SPI串行通信、模拟比较、捕捉等应用。
这些I/O口同外围电路的有机组合,构成各式各样的单片机嵌入式系统的前向、后向通道接口,人机交互接口和数据通信接口,形成和实现了千变万化的应用。
每组I/O口配备三个8位寄存器,它们分别是方向控制寄存器DDRx,数据寄存器PORTx,和输入引脚寄存器PINx(x=A\B\C\D)。
I/O口的工作方式和表现特征由这3个I/O口寄存器控制。
AVR通用I/O端口的引脚配置情况:I/O口引脚配置表表中的PUD为寄存器SFIOR中的一位,它的作用相当AVR全部I/O口内部上拉电阻的总开关。
按键控制霓虹灯应用场景
按键控制霓虹灯的应用场景有:
1. 室内照明:通过按键控制霓虹灯的亮度和颜色,实现室内的照明需求,并提供不同的光效,营造出不同的环境氛围。
2. 广告宣传:在商店、购物中心或街道上安装的霓虹灯广告牌,可以通过按键控制不同的动画或字样,吸引人们的注意力,并增加宣传效果。
3. 节日装饰:在节日或庆典等特殊场合,可以利用按键控制霓虹灯的灯光模式,创造出节日氛围,增加节日的喜庆感。
4. 娱乐场所:在酒吧、夜总会等娱乐场所中,通过按键控制霓虹灯的亮度、颜色和闪烁模式,为场所营造出独特的娱乐氛围。
5. 汽车装饰:在汽车内外安装霓虹灯,通过按键控制不同的灯光模式,增强车辆的装饰效果,提升车主的个性化需求。
6. 舞台演出:在音乐会、演唱会等舞台演出中,通过按键控制霓虹灯的灯光效果,与音乐或演出情节相结合,营造出各种感官上的效果,增强观众的沉浸感。
7. 建筑装饰:在大型建筑物上安装霓虹灯,通过按键控制不同的灯光模式,提
升建筑的美观度和辨识度,塑造独特的城市景观。
总之,在需要灯光切换或调节的场合,通过按键控制霓虹灯的灯光模式和属性,可以根据实际需求实现各种意图和效果,提供更好的视觉体验。
最近有很多学弟来问我流水灯该怎么做,程序怎么写,现在在这里统一说下,很多时候没有时间让你们白跑一趟了,O(∩_∩)O~。
首先就说到单片机了,单片机对于你们来说是个新概念,可能以前都没听说过。
我想说的是它不是传统意义上的集成电路,只能按照特定的焊接来能工作,而是一块类似电脑CPU的芯片,对于一块正常的单片机,只要你提供合适的工作电源(4V都5.5V左右)、复位电路、起振电路它就可以工作了。
所有的输入输出口(以P开头的)都是可以灵活配置的,可以根据你焊接的硬件电路写程序,也可以根据你写的程序焊接硬件电路。
所以没有必要死板硬套。
前天没事写了一下,仿真了一下还可以用。
源码贴于下方供入门者参考,高手勿嘲笑,大家都是从流水灯程序写起的 (*^__^*) 嘻嘻……再就是我的51开发板不知道是谁借走了,很久没有用过51单片机了,所以下载程序的事就不要来找我了。
我把编译过后的代码也贴在下面,如果硬件和我做的一样的同学又不会写程序的就直接复制下面编译过后的代码,在电脑上新建一个文本文档(.txt)命名任意,将复制后的代码粘贴于记事本上,然后重命名,将".txt"改为“.hex”,保存,然后通过下载器下载到单片机里面去就可以用了。
不会的多去看一下教程。
以下仅供参考,不得一味模仿/****************************************************************************** *********************************源码:51单片机晶振频率12Mhz八位数码管采用共阳极接法(所有阳极接一起接Vcc,阴极接P0口)按键分别接P2.0 P2.1 P2.2(低电平有效)编译软件采用keil 4******************************************************************************* ************************************************************************/#include <reg52.h>#define uint unsigned int#define uchar unsigned charsbit key1 =P2^0; //按键1sbit key2 =P2^1; //按键2sbit key3 =P2^2; //按键3uchar flag1=0,flag2=0,flag3=0;void delay_ms(uint z){uint i,j;for(i=0;i<z;i++)for(j=0;j<110;j++);}void O_to_E() //1,3,5,7与2,4,6,8交替闪烁{P0=0Xaa;delay_ms(200);P0=~0Xaa;delay_ms(200);}void key_scan() //键盘扫描{if(!key1){delay_ms(10); //延时消抖if(!key1)flag1=1;}if(!key2){delay_ms(10); //延时消抖if(!key2)flag2=1;}if(!key3){delay_ms(10); //延时消抖if(!key3)flag3=1;}}void main(){uchar i;while(1){key_scan();if(flag1) //按键一按下?{for(i=0;i<8;i++) //从左至右亮,每次一盏{P0=~(0x80>>i);delay_ms(100);key_scan(); //按键扫描if(flag2||flag3){flag1= 0;break;} //如果有其它按键按下响应其它按键}}if(flag2) //按键一按下?{for(i=0;i<8;i++) //从右至左亮,每次一盏{P0=~(0x01<<i);delay_ms(100);key_scan();if(flag1||flag3){flag2= 0;break;}}}if(flag3){O_to_E(); //奇偶交替闪烁key_scan();if(flag1||flag2)flag3=0;}}}/****************************************************************************** *****************************************编译过后的文件注意:复制下面的代码(注意不要包含本句,注意不要改变格式):09015700010800010900010A0081:040123007F0A7E00D1:10012700E4FDFCC3ED9FEC9E5015E4FBFA0BBB000E:0F013700010AEB646E4A70F50DBD00010C80E407:010*********:100147007580AA7FC87E0012012775805502012796:0A00F400F4F5807F647E00120127FE:1000FE0020A00912012320A00375080120A10912D6:10010E00012320A10375090120A20912012320A2B7:05011E0003750A012237:10008F001200FE1200FEE5086021E4F97480A80159:10009F00088002C313D8FC1200F4E5097004E50AC6:1000AF006005E4F508800409B908E1E509601FE47B:1000BF00F97401A801088002C333D8FC1200F4E5DB:1000CF00087004E50A6003E4F50909B908E3E50AD5:1000DF0060B11201471200FEE5087004E50960A344:0500EF00E4F50A809E0B:03000000020003F8:0C000300787FE4F6D8FD75810A02004AFF:10000F0002008FE493A3F8E493A34003F68001F278:10001F0008DFF48029E493A3F85407240CC8C333F2:10002F00C4540F4420C8834004F456800146F6DFC1:10003F00E4800B0102040810204080900157E47EF9:10004F00019360BCA3FF543F30E509541FFEE493B6:10005F00A360010ECF54C025E060A840B8E493A37D:10006F00FAE493A3F8E493A3C8C582C8CAC583CAA8:10007F00F0A3C8C582C8CAC583CADFE9DEE780BE60:010********E:00000001FF结束(注意不要包含本句及上面的※号,注意不要改变格式!)。
北京XXXX学院实验报告课程:单片机原理与应用班级:XXXX 姓名:XXXX 学号:XXXXXXXX 成绩:指导教师:XXX 实验日期及时间:2017.4.4 10:00-13:00 座位号:04 必修/选修:必修实验序号:实验一实验名称:单片机开发环境及基本IO设备操作一、实验目的1.掌握单片机嵌入式开发环境的使用2.熟悉开发板硬件实验环境及资源3.掌握通用数字I/O端口的输入输出设置和应用二、实验内容与要求功能:按键控制LED灯。
利用按键key1和key2控制LED灯闪烁点亮。
Key1按下时单号灯闪烁,Key2按下时双号灯闪烁。
实验要求:1.在ICCAVR中编写程序;2.下载到实验板中进行调试;3.实验成功后进行课堂验收。
三、实验方案设计1. 实验的方案的论述和分析本次实验所需的器件:电源、ATmega16单片机、LED灯、按键开关、电阻。
把PA0配置成输出,PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
与PA4、PA5相连的是两个按键开关key1和key2。
在按键检测时,当PA0输出低电平时,读PA4、PA5引脚寄存器,若PA4引脚为低电平说明Key1被按下,若PA5引脚为低电平说明Key2被按下。
把PD口配置为输出,控制8个LED灯。
2.硬件电路原理图2.软件流程图、重要数据结构、重要控制参数设计等(1)软件流程图:(2)重要数据结构及重要控制参数设计:初始化配置:DDRA配置为0X0f,PA0为输出。
PA4、PA5配置成输入,并使能PA4、PA5的上拉电阻。
按键扫描部分:通过PINA和0B00110000的按位读取PA4和PA5口是否按下。
当PA4按下时key_value==2,当PA5按下时key_value==1,并分别执行相应语句。
四、实验结果Key1按下时单号灯闪烁Key2被按下时双号灯闪烁五、实验分析及体会1.实验过程中遇到的主要问题、(拟)解决方法。
由于是第一次做单片机实验,对实验过程和代码编写不是很熟悉。
嵌入式系统设计与开发
实验二:通过按键2控制灯1
所在系(院):
学生姓名:
指导教师:
起止日期:
实验目的:理解并学会使用
PINSEL1,PINSEL0
IO1DIR,IO0DIR
IO1SET,IO0SET
IO1CLR,IO0CLR
IO1PIN,IO0PIN 参考书本:4.1.8
1、实验电路图
灯1
接键2
2、程序流程图
开始
P1.18选择连接GPIO
设置P1.18为输出状态
置位P1.18,LED熄灭
延时
清零P1.18,LED灯亮
延时
结束
实验现象:程序编译无误后,按住按键k2,LED1会闪一下
3、程序清单
程序代码:
#ifndef __CONFIG_H_
#include "config.h"
#endif
const uint32 LED1 = (1 << 18); // P1.18控制LED1,低电平点亮
void WaitKey(void)
{
uint32 i;
while(1)
{ // 等待KEY2按下(即等待KEY2对应的口线为低电平,若为高电平则一直循环等待) // 通过IO0PIN读取P0.0~P0.31口的电平值,屏蔽其它位后判断P0.7是否为低电平。
while( (IO0PIN&KEY2)!=0 );
for(i=0; i<50000; i++); // 软件延时,去抖动(根据系统时钟调整)
// 判断KEY2是否仍为低电平,若是表明按键有效,否则表明是假按键
if((IO0PIN&KEY2) == 0) break;
}
// 等待KEY2放开(即等待KEY2对应的口线为高电平,若为低电平则一直循环等待)
while((IO0PIN&KEY2) == 0);
}
void DelayNS(uint32 dly)
{ uint32 i;
for(; dly>0; dly--)
for(i=0; i<50000; i++);
}
int main (void)
{ // 由于LPC2131的P0口的I/O与其它功能复用,比如P0.7与PWM2、SSEL0、EINT2复用,
// 所以要先设置管脚连接。
把口线设置为GPIO功能时,才能进行I/O控制。
PINSEL0 = 0x00000000; // 设置P0.0~P0.15为GPIO功能
PINSEL1 = 0x00000000; // 设置P0.16~P0.31为GPIO功能
//IO0DIR = BEEP; // 设置BEEP控制口P0.7为输出模式,(P0的)其它I/O为输入模式
//IO0SET = BEEP; // 控制BEEP(P0.7)输出高电平1
PINSEL2 = PINSEL2 & (~0x08);// P1[25:16]连接GPIO
IO1DIR = LED1;
while(1)
{
WaitKey(); // 等待KEY2按键
IO1SET = LED1; // LED1熄灭
DelayNS(50);
IO1CLR = LED1; // LED1点亮
DelayNS(50);
}
return 0;
}
int main(void)
{
PINSEL0 = (0x01<< 0)| //TXD0
(0x01<< 2)| //RXD0
(0x01<< 4)| //SCL0
(0x01<< 6)| //SDA0
(0x01<< 8)| //SCK0
(0x01<<10)| //MISO0
(0x01<<12)| //MOSI0
(0x00<<14)| //P0.7
(0x01<<16)| //TXD1
(0x01<<18)| //RXD1
(0x00<<20)| //P0.10
(0x03<<22)| //P0.11 // SCL1
(0x00<<24)| //P0.12 // MM //(0x03<<24)| //AD1.3
(0x00<<26)| //P0.13 // EQ
(0x03<<28)| //P0.14 // SDA1
(0x00<<30); //P0.15 // JUMP3 校表用
PINSEL1 = (0x01<< 0)| //EINT0 //按键中断
(0x02<< 2)| //SCK1
(0x00<<14)| //P0.23
(0x00<<16)| //
(0x02<< 4)| //MISO1
(0x02<< 6)| //MOSI1
(0x02<< 8)| //SSEL1
(0x01<<10)| //PWM5
(0x00<<12)| //P0.22
(0x00<<18)| //P0.25 //ALAOUT
(0x00<<20)| //P0.26 //ALAOUT1
(0x00<<22)| //P0.27
(0x00<<24)| //P0.28
(0x00<<26)| //P0.29 EP EP
(0x00<<28)| //P0.30 OUT1
(0x00<<30); //P0.31 OUT3
PINSEL2 = (PINSEL2 & 0xFFFFFFF3)|(0x01<<2);
IO0DIR=0xB6FEBDDD|(0x01<<29)|(0x01<<12)|(0x01<<13)|(0x01<<30)|(0x01<<31)|(0x01<<25) |(0x01<<26)|(0x01<<27)&(~(0x01<<22))&(~(0x01 << 15));
IO1DIR=0x03FE0000|(0x01<<16)|(0x01<<23)&(~(0x01<< 19))&(~(0x01 << 18));
}。