多个按键控制花样霓虹灯控制程序
按键控制多彩霓虹灯控制实验结论

按键控制多彩霓虹灯控制实验结论一、实验目的本实验旨在通过按键控制多彩霓虹灯的亮灭和颜色变化,加深对单片机控制的理解和应用。
二、实验器材1. 单片机:STC89C522. 多彩霓虹灯模块3. 按键模块4. 面包板、杜邦线等三、实验原理1. 单片机控制多彩霓虹灯模块单片机通过控制IO口输出高低电平来控制多彩霓虹灯模块的亮灭和颜色变化。
多彩霓虹灯模块中有三个LED,分别是红、绿、蓝三种颜色,通过改变不同颜色LED的亮度比例可以实现不同颜色效果。
2. 按键输入控制按键输入可以通过读取IO口电平状态来判断是否有按键按下。
当按键被按下时,对应IO口会输出低电平信号,单片机可以通过读取该信号来判断是否有按键按下,并执行相应操作。
四、实验步骤1. 将多彩霓虹灯模块连接到单片机的IO口上,分别将红、绿、蓝三个LED连接到P2.0、P2.1、P2.2口,将共阳极连接到VCC,将三个限流电阻连接到GND。
2. 将按键模块连接到单片机的IO口上,将按键引脚连接到P1.0口,将上拉电阻连接到VCC。
3. 编写程序,通过读取按键输入状态来控制多彩霓虹灯的亮灭和颜色变化。
程序主要分为以下几个部分:(1)初始化:设置IO口方向和初始状态。
(2)读取按键输入状态:通过读取P1.0口电平状态来判断是否有按键按下。
(3)控制多彩霓虹灯:根据不同的按键输入状态来控制多彩霓虹灯的亮灭和颜色变化。
4. 将程序下载到单片机中,并接上电源进行实验。
五、实验结果本实验成功实现了通过按键输入控制多彩霓虹灯的亮灭和颜色变化。
具体效果如下:(1)当没有任何按键被按下时,三个LED都处于关闭状态。
(2)当只有一个按键被按下时,对应颜色LED会以一定频率闪烁。
(3)当两个或三个按键同时被按下时,LED会呈现不同的颜色组合,如红+绿=黄、红+蓝=紫等。
六、实验结论本实验通过按键输入控制多彩霓虹灯的亮灭和颜色变化,加深了对单片机控制的理解和应用。
同时,也进一步提高了编程能力和电路设计能力。
按键控制多种花样霓虹灯设计

应用工程学院单片机应用技术实训报告专业:应用电子学号:1504150137姓名:许林日期:2016/12/24项目一按键控制多种花样霓虹灯设计一、任务目的1.理解实验板独立按键部分的电路原理。
2.掌握循环类、位操作类指令的应用。
3.熟练掌握51单片机集成开发软件的使用。
4.巩固C语言知识并灵活运用到单片机编程。
二、任务要求使用按键控制多种花样霓虹灯设计,电路板上有8个自上而下排列整齐的发光二极管,需要根据一个(或者三个)按键的输入来实现以下3种显示状态的切换:a.全部闪烁b.至上而下流水灯循环c.第8、6、4、2、1、3、5、7个发光二极管循环三、硬件电路设计四、软件设计#include<regx51.h>unsigned int n;void delayms(n){unsigned char i,j,k;for(i=15;i>0;i--)for(j=202;j>0;j--)for(k=81;k>0;k--);}void main(){unsigned char key,a,m;unsigned char codeled[]={0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff, 0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xbf,0xef,0xfb,0xfe,0x7f,0xdf,0xf7,0xfd};P0=0xff;while(1){key=0;while(key==0){key=P3;key=~key;}while(key==0);switch(key){case 0x04:a=0;break;case 0x08:a=1;break;case 0x10:a=2;break;default:break;}do{for(m=0;m<8;m++){P0=led[a*8+m];delayms(10);P0=0xff;}key=P3;key=~key;}while(key==0);}}编程思想:用16进制数对对单片机编程,从而实现对彩灯控制。
按钮控制LED花样闪烁

(25分钟)
任务一:只使用按钮K1和K3,按下按钮K1控制1只LED闪烁,按下K3关闭LED灯
1、学生根据任务要求分组讨论5分钟并给出初步方案
2、教师给出参考程序
3、学生验证程序,并发现程序错误,无法关闭
4、给出正确程序,进行对比分析,并进行程序执行过程分析,与错误判断
1、任务布置
2、PPT上展示第一个参考程序。
4、任务分解
5、检查学生单片机外接线路的正确与否
1、将项目设计要求记录在笔路连接介绍,在仿真机上将单片机外接线路连接好。
4、根据任务分解做好实训安排
布置任务,让学生对任务要求有充分的了解,并根据任务要求进行外接电路的连接。
通过任务的分解也能降低项目难度,让学生能循序渐进的完成项目
教学
目标
专业知识目标
掌握JB和JNB两条指令的含义并能灵活运用
方法能力目标
培养学生逻辑推导与逻辑分析的思维能力。
学生情感目标
培养学生解决问题的好奇心和兴趣。
教学重难点、关键点
重点
能理解单片机工作原理,并进行线路连接
难点
将指令JB和JNB灵活运用到程序中
教具
资料
多媒体设备,单片机仿真机箱
教学
方法
教法:任务驱动法、多媒体演示法、类比学习、情景创设。
学法:学生先会后懂,由直观的电压测试到抽象的电压概念的学习。
课前
准备
根据学生学习情况进行分组,准备好仿真设备。
教学过程
教学环节
教学内容
教师活动
学生活动
设计意图
复习旧知并导入新课
(5分钟)
在PPT上展示复习内容,并抽学生回答。
复习本项目新学指令JB和JNB的含义,为新项目学习做准备。
多花样自动切换的彩灯控制器设计 精品

多花样自动切换的彩灯控制器设计1 设计意义及要求1·1设计意义(1)让学生懂得设计的一些思想,培养学生的创新能力和探索知识的思路。
(2)让学生学会独立分析问题和解决问题。
(3)在课程设计过程中,学生需要计算参数和查阅设计资料、学习仿真软件,这让学生综合能力得到提高。
(4)巩固、深化了学生的理论知识。
1·2设计要求(1) 现有8只彩灯,试设计一控制器,要求彩灯能实现如下追逐图案:(2)第1种花样为彩灯从右到左,然后从左到右逐次点亮,全灭全亮,(3) 第2种花样为彩灯两边同时亮1个逐次向中间移动再散开;(4) 2种花样自动变换,循环往复。
时间间隔为1秒。
2·1设计思路依照实验要求,需要彩灯从右到左,然后从左到右逐次点亮,全灭全亮,然后彩灯两边同时亮1个逐次向中间移动再散开,所以电路需要两个四位双向移位寄存器74LS194,然后将两个以为寄存器进行扩展成实验要求的八位。
由于是四位移位寄存器,所以计数电路就要实现四进制计数,因此选择两个74LS161计数器。
由于两个移位寄存器,并且按照实验要求,因此需要控制电路两个数据选择器74LS151分别控制移位寄存器。
实验要求时间间隔为1秒,因此选用555定时器来实现。
最后在根据要求运用门电路来实现控制。
2·2·1设计方案一及电路图原理分析:电路有四部分组成。
第一部分是脉冲产生电路。
其他三部分是计数电路、控制电路、移位寄存显示电路。
计数电路有两片74LS161组成,下面一片计数器实现四进制计数,从0000到0011,然后回到0000,上面一片计数器的使能端与下面一片计数器输出端通过门电路相连,。
这样每次下面的计数器从0011变为0000时,上面的计数器就计数一次。
对应的74LS151数据选择器就会选择不同的电平,从而改变移位寄存器的选择功能,实现左移、右移、并行输入等功能。
当彩灯从右到左,然后从左到右逐次点亮后需要全灭全亮,此时就需要运用计数器各个输出端的门电路来控制计数器清零或者置零,并且让移位寄存器实现并行送入数据的功能,而且送入高电平全亮后立即改变为送入低电平全灭。
两个按键控制三个led的c语言程序

两个按键控制三个led的c语言程序以两个按键控制三个LED的C语言程序在嵌入式系统中,控制LED灯是一个常见的任务。
我们可以使用C 语言编写程序来实现这一功能。
本文将介绍如何使用两个按键来控制三个LED灯的亮灭。
我们需要准备一些硬件设备。
我们需要一个嵌入式开发板,上面有三个LED灯和两个按键。
这些LED灯和按键通常都有对应的引脚,我们需要将它们连接到开发板上。
接下来,我们可以开始编写C语言程序。
我们可以使用一个循环来不断检测按键的状态,并根据按键的状态来控制LED灯的亮灭。
我们需要定义LED灯和按键的引脚号码。
我们可以使用宏定义来给它们命名,这样可以方便我们在程序中使用。
```c#define LED1_PIN 2#define LED2_PIN 3#define LED3_PIN 4#define BUTTON1_PIN 5#define BUTTON2_PIN 6```接下来,我们需要初始化引脚的状态。
LED灯的引脚需要设置为输出模式,而按键的引脚需要设置为输入模式。
```cpinMode(LED1_PIN, OUTPUT);pinMode(LED2_PIN, OUTPUT);pinMode(LED3_PIN, OUTPUT);pinMode(BUTTON1_PIN, INPUT);pinMode(BUTTON2_PIN, INPUT);```然后,我们可以进入一个无限循环,不断检测按键的状态,并根据按键的状态来控制LED灯的亮灭。
```cwhile(1) {if(digitalRead(BUTTON1_PIN) == HIGH) {digitalWrite(LED1_PIN, HIGH);digitalWrite(LED2_PIN, LOW);digitalWrite(LED3_PIN, LOW);} else if(digitalRead(BUTTON2_PIN) == HIGH) {digitalWrite(LED1_PIN, LOW);digitalWrite(LED2_PIN, HIGH);digitalWrite(LED3_PIN, LOW);} else {digitalWrite(LED1_PIN, LOW);digitalWrite(LED2_PIN, LOW);digitalWrite(LED3_PIN, HIGH);}}```在上面的代码中,我们使用digitalRead函数来读取按键的状态,如果按键被按下,该函数将返回HIGH,否则返回LOW。
9个彩灯的花样控制程序设计---项目工作页

广东三向教学仪器制造有限公司“机电专业一体化教学课程教学改革试点班”启动研讨会现场观摩课工作页9个彩灯花样控制程序设计项目工作页一、工作任务名称:9个彩灯花样控制程序设计二、工作任务目标与要求:㈠、任务目标:有9个彩灯,接在PLC的Y0~Y10上,要求进行5种花样控制的编程设计㈡、任务要求:1、采用PLC技术控制彩灯的变化2、彩灯的变化至少要有5种花样(每种花样中每一个灯都必须用上)3、必须采用功能指令进行编程设计4、在任何时刻按下停止按钮,彩灯都必须停止工作;按下启动按钮后,从第一种花样开始工作,不断重复5种花样的变化。
5、各小组发挥团队合作精神,共同设计出PLC的I/O分配表,并设计出PLC程序,下载到控制彩灯的PLC内,验证程序功能,调整、优化程序。
你可能需要获得一下的资讯,才能更好地完成工作任务……………………………………………………………………………………三、工作任务准备㈠、相关理论知识1、前面我们已经进行过利用基本指令和步进指令编写彩灯的控制程序设计,根据任务的要求,必须采用功能指令来实现任务目标,为此,你可能需要获得以下的知识。
⑴、位右移指令①、该指令的助记符、指令代码、操作数、程序步如下表1-1☞:②、指令格式:如图1-1所示。
[S] [D] n1 n2图1-1 位右移指令梯形图格式和指令执行过程 ③、指令说明:(1)该指令的源操作数和目标操作数都是位元件,程序中的K16表示有16个位元件,即M0~M15;K4表示每次移动4位。
(2)当X10每接通一次,X0~X3的四个位元件的状态移入M0~M15的高端,低端自动溢出。
如图1-1所示。
①M3~M0→溢出 ②M7~M4→M3~M0 ③M11~M8→M7~M4 ④M15~M12→M11~M8 ⑤X3~X0→M15~M12。
(3)当采用连续执行型指令时,在X10接通其间,每个扫描周期都要移位,因此建议采用脉冲执行型。
⑵、位左移指令①、该指令的助记符、指令代码、操作数、程序步如下表1-2☞:②、指令格式:如图1-2所示。
3.21按键彩灯控制器

3.21 按键彩灯控制器一、要求编写完整程序实现如下模拟彩灯,开发板从左至右4个按键分别为14~S S ,从上至下8个灯为18~L L ,按下1S 键,8只灯以1Z H 频率闪烁;按下2S 键,8只灯奇偶交替闪亮,间隔0.3s ;按下3S 键,14~L L 与58~L L 灯交替闪亮,间隔0.2s ;按下4S 键,所有灯熄灭。
二、仿真电路元器件:开关:DIPSW_4晶振:CRYSTAL复位电容CAP-ELEC 10uF电阻:RES 4.7k三、程序1、流程图2、程序#include<reg52.h>//包含命令,包含52单片机的特殊功能寄存器#define uint unsigned int//宏定义,定义用uint表示无符号整型#define uchar unsigned char//宏定义,定义用uchar表示无符号字符型uchar knum; ///定义变量void keyscan();/****************************延时子程序**************************/void delay(uchar z){uchar x,y;for(x=z;x>0;x--)for(y=120;y>0;y--);}/************************主函数*************************/void main()while(1){keyscan(); //键盘扫描if(knum==1) //按键是否按下{P1=~P1; //对8个灯取反delay(500);//延时}else if(knum==2)//按键是否按下{P1=0xaa; //交替闪delay(300);P1=0x55;delay(300);}else if(knum==3)//按键是否按下{P1=0xf0; //前四后四闪delay(200);P1=0x0f;delay(200);}else if(knum==4)//按键是否按下{P1=0xff; //全灭knum=0;}}}/***************************键盘扫描***************************/void keyscan(){if(P3!=0xff) //按键是否按下{delay(10); //前沿消抖if(P3!=0xff) //确认按键是否按下switch(P3){case 0xfe:knum=1;break;case 0xfd:knum=2;break;case 0xfb:knum=3;break;case 0xf7:knum=4;break;}while(P3!=0xff); //后沿消抖}}}四、仿真调试。
多按键花样流水灯设计

指导教师:许景辉多按键花样流水灯的设计摘要:自人类发明计算机以来,单片机技术在社会各领域中得到了广泛的应用。
在流水灯控制系统中,单片机的作用更是发挥的淋漓尽致,成为此系统中的核心部分。
利用单片机的可编程功能,软硬件结合,来控制LED的灯的开通关断,通过丰富多彩的花样变化,给人以不同的视觉效果,更是成为现代商业社会不可缺少吸引消费者的普遍手段。
本文结合单片机的突出特点,着重介绍通过单片机来实现多按键花样流水灯的变化,主要包括其软件程序的编写、硬件电路的搭接、器件的选择,以及通过PROTEUS的仿真和PCB板的制作等。
关键词:单片机、可编程控制器、多按键花样流水灯、准确。
目录前言 (4)第一章设计目的和要求 (5)1.1 设计目的 (5)1.2 设计基本要求 (5)第二章方案设计 (6)2.1 方案设计任务分析 (6)2.2硬件系统的设计要求 (6)2.2.1 主控系统 (7)2.2.2花样灯输入及中断控制模块 (7)2.2.3 花样灯输出控制部分 (8)2.2.4 时钟及复位部分电路 (9)2.3 软件总体设计 (13)2.3.1 程序设计流程图 (13)2.3.2 主程序 (13)第三章硬件设计 (17)3.1 80c51单片机 (17)3.2PCB板的生成 (18)第四章软件设计 (20)4.1 中断子程序 (20)4.2 跑马灯子程序 (20)4.3 流水灯子程序 (20)4.4戏水灯子程序 (21)4.5 延时子程序 (21)第五章操作说明 (22)5.1 跑马灯操作说明 (22)5.2 流水等操作说明 (22)5.3 戏水灯操作说明 (23)5.4 顺寻循环执行三种花样灯操作说明 (23)结束语 (24)参考文献 (25)前言单片微型计算机简称单片机(single-chip microcomputer),又称为单片机微型控制器(single-chip microcontroller),是由CPU、RAM、ROM、定时/计时器、I/O 接口电路通过应刷电路板上的总线连成一体的完整计算机系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{ delay(TIME);
if(S2==0)P1=0x55;}//8个灯交叉亮
else if (S3==0)
{delay (TIME);
if(S3==0)P1=0x0f;}//高四位亮
else if (S4==0)
{delay (TIME);
if (S4==0) P1=0xf0;}//低四位亮
}
}
#define TIME 1200//定义符号常量TIME,代表常数1200
sbit S1=P0^0;
sbit S2=P0^1;
sbit S3=P0^2;
sb软件延时
//形式参数:整型变量i,控制循环次数
//返回值:无
void delay(unsigned int i)
多个按键控制花样霓虹灯控制程序includereg51h包含头文件reg51h定义51单片机专用寄存器definetime1200定义符号常量time代表常数1200sbits1p00
多个按键控制花样霓虹灯控制程序
//程序:
//功能:多个按键控制花样霓虹灯控制程序
#include<reg51.h>//包含头文件reg51.h,定义51单片机专用寄存器
{
unsigned int k;
for(k=0;k<i;k++);
}
void main() //主函数
{
P1=0xff; //LED全灭
while(1)
{ if(S1==0)//第一次检测到S1按下
{delay(TIME);//延时去抖动
if(S1==0) P1=0x00;}//再次检测到S1按下第一种模式,8个灯全亮