文档库 最新最全的文档下载
当前位置:文档库 › 三极管制作流水灯控制方法

三极管制作流水灯控制方法

三极管制作流水灯控制方法
三极管制作流水灯控制方法

通俗易懂的三极管工作原理

理解三极管的工作原理首先从以下两个方面来认识:

其一、制造工艺上的两个特点:(1)基区的宽度做的非常薄;(2)发射区掺杂浓度高。

其二、三极管工作必要条件是(a)在B极和E极之间施加正向电压(此电压的大小不能超过1V);(b)在C极和E极之间施加反向电压;(c) 如要取得输出必须加负载电阻。

当三极管满足必要的工作条件后,其工作原理如下:

(1)基极有电流流动时。由于B极和E极之间有正向电压,所以电子从发射极向基极移动,又因为C极和E极间施加了反向电压,因此,从发射极向基极移动的电子,在高电压的作用下,通过基极进入集电极。于是,在基极所加的正电压的作用下,发射极的大量电子被输送到集电极,产生很大的集电极电流。

(2)基极无电流流动时。在B极和E极之间不能施加电压的状态时,由于C极和E极间施加了反向电压,

所以集电极的电子受电源正电压吸引而在C极和E极之间产生空间电荷区,阻碍了从发射极向集电极的电子流动,因而就没有集电极电流产生。综上所述,在晶体三极管中很小的基极电流可以导致很大的集电极电流,这就是三极管的电流放大作用。此外,三极管还能通过基极电流来控制集电极电流的导通和截止,这就是三极管的开关作用(开关特性)。参见晶体三极管特性曲线5.2图所示:晶体三极管共发射极放大原理如下图所示:A、vt是一个npn型三极管

画外音:我们可以用水龙头与闸门放水的关系,来想象或者说是理解三极管的放大原理。其示意图如下图2-20 所示

图2-20 三极管放大原理参考示意图

①如图 2.20 (a)所示:当发射结无电压或施加电压在门限电压以下,相当于闸门关紧时,水未从水龙头底部通过水嘴流出来。此时,ec 之间电阻值无穷大,ec 之间的电流处于截止状态,或者说是开关的OFF 状态。

②如图2.20 (b )所示:当对发射结施加电压在门限电压范围时(以硅管0.7V 左右为例),相当于闸门松动一点点,从水龙头底部通过水嘴流出的水成滴答状态。此时,ec 之间的电阻值也下降了一点点。

图2-20 三极管放大原理参考示意图

③如图2.20 (c )所示:当对发射结施加电压在0.8V 时,相当于闸门已打开三分之一的状态时,水龙头底部已经可以有三分之一的水通过水嘴流出来了,此时,ec 之间的电阻值也下降了三分之一,ec 之间的电流处于调控或者说是放大状态。

图2-20 三极管放大原理参考示意图

④如图2.20 (d )所示:当对发射结施加电压在0.9V 时,相当于闸门已打开三分之二的状态时,水龙头底部已经可以有三分之二的水通过水嘴流出来了,此时,ec 之间的电阻值也下降了三分之二,ec 之间的电流处于调控或者说是放大状态。

图2-20三极管放大原理参考示意图

⑤如图 2.20 ( e )所示:当对发射结施加电压在1V 或者1V 以上时,相当于闸门已完全打开的状态时,水龙头底部所有的水已经可以通过水嘴流出来了,此时,ec 之间的电阻值也下降为“ 0 ”,或者说很小,可以或略不计,ec 之间的电流处于饱和状态,或者说是开关的ON 状态。

三极管简介

晶体三极管的结构和类型

晶体三极管,是半导体基本元器件之一,具有电流放大作用,是电子电路的核心元件。三极管是在一块半导体基片上制作两个相距很近的PN结,两个PN结把正块半导体分成三部分,中间部分是基区,两侧部分是发射区和集电区,排列方式有PNP 和NPN两种,

从三个区引出相应的电极,分别为基极b发射极e和集电极c。

发射区和基区之间的PN结叫发射结,集电区和基区之间的PN结叫集电极。基区很薄,而发射区较厚,杂质浓度大,PNP型三极管发射区"发射"的是空穴,其移动

方向与电流方向一致,故发射极箭头向里;NPN型三极管发射区"发射"的是自由电子,其移动方向与电流方向相反,故发射极箭头向外。发射极箭头向外。发射极箭头指向也是PN结在正向电压下的导通方向。硅晶体三极管和锗晶体三极管都有PNP型和NPN型两种类型。

三极管的封装形式和管脚识别

常用三极管的封装形式有金属封装和塑料封装两大类,引脚的排列方式具有一定的规律,

底视图位置放置,使三个引脚构成等腰三角形的顶点上,从左向右依次为e b c;对于中小功率塑料三极管按图使其平面朝向自己,三个引脚朝下放置,则从左到右依次为e b c。

目前,国内各种类型的晶体三极管有许多种,管脚的排列不尽相同,在使用中不确定管脚排列的三极管,必须进行测量确定各管脚正确的位置,或查找晶体管使用手册,明确三极管的特性及相应的技术参数和资料。

晶体三极管的电流放大作用

晶体三极管具有电流放大作用,其实质是三极管能以基极电流微小的变化量来控制集电极电流较大的变化量。这是三极管最基本的和最重要的特性。我们将ΔIc/ΔIb 的比值称为晶体三极管的电流放大倍数,用符号“β”表示。电流放大倍数对于某一只三极管来说是一个定值,但随着三极管工作时基极电流的变化也会有一定的改变。

晶体三极管的三种工作状态

截止状态:当加在三极管发射结的电压小于PN结的导通电压,基极电流为零,集电极电流和发射极电流都为零,三极管这时失去了电流放大作用,集电极和发射极之间相当于开关的断开状态,我们称三极管处于截止状态。

放大状态:当加在三极管发射结的电压大于PN结的导通电压,并处于某一恰当的值时,三极管的发射结正向偏置,集电结反向偏置,这时基极电流对集电极电流起着控制作用,使三极管具有电流放大作用,其电流放大倍数β=ΔIc/ΔIb,这时三极管处放大状态。

饱和导通状态:当加在三极管发射结的电压大于PN结的导通电压,并当基极电流增大到一定程度时,集电极电流不再随着基极电流的增大而增大,而是处于某一定值附近不怎么变化,这时三极管失去电流放大作用,集电极与发射极之间的电压很小,集电极和发射极之间相当于开关的导通状态。三极管的这种状态我们称之为饱和导通状态。

根据三极管工作时各个电极的电位高低,就能判别三极管的工作状态,因此,电子维修人员在维修过程中,经常要拿多用电表测量三极管各脚的电压,从而判别三极

管的工作情况和工作状态。

使用多用电表检测三极管

三极管基极的判别:根据三极管的结构示意图,我们知道三极管的基极是三极管中两个PN结的公共极,因此,在判别三极管的基极时,只要找出两个PN结的公共极,即为三极管的基极。具体方法是将多用电表调至电阻挡的R×1k挡,先用红表笔放在三极管的一只脚上,用黑表笔去碰三极管的另两只脚,如果两次全通,则红表笔所放的脚就是三极管的基极。如果一次没找到,则红表笔换到三极管的另一个脚,再测两次;如还没找到,则红表笔再换一下,再测两次。如果还没找到,则改用黑表笔放在三极管的一个脚上,用红表笔去测两次看是否全通,若一次没成功再换。这样最多没量12次,总可以找到基极。

三极管类型的判别:三极管只有两种类型,即PNP型和NPN型。判别时只要知道基极是P型材料还N型材料即可。当用多用电表R×1k挡时,黑表笔代表电源正极,如果黑表笔接基极时导通,则说明三极管的基极为P型材料,三极管即为NPN型。如果红表笔接基极导通,则说明三极管基极为N型材料,三极管即为PNP型。

八路流水灯控制系统

1前言 在“模拟电子技术基础”与“数字电子技术基础”课程中,通常只介绍单元电路的设计、集成芯片的特性、功能等,而一个实用的电子系统通常是由多个单元电路组成的。因此,进行电子系统设计时,既要考虑系统总体电路的设计,还要考虑系统各部分电路的选择、设计及它们之间的相互连接。由于各种通用和专用的模拟、数字集成电路的大量涌现,所以在电子系统的方案框图确定后,除少数电子电路的参数需要设计计算外,大部分只需根据电子系统框图各部分要求正确选用模拟和数字集成电路的芯片。 常用电子系统设计通常包括:选择总体方案框图、单元电路设计与选择、电子元器件的选择、单元电路之间的连接、对电子系统进行电路搭试、对方案及单元电路参数进行修改、绘制总体电路,最后写出设计报告。 复杂的设计课题,通常需要对设计要求进行认真分析和研究,通过收集和查阅资料,在已学模拟和数字电子技术课程理论的基础上进行构思,从而提出实现设计要求的可能方案,并画出相应的框图。实现同一个设计要求的方案不止一个,这时就应对每一个设计方案的可行性及它们的优缺点进行比较,找出一个较为合理的设计方案。对于关键部分电路的可行性应在原理上要可行,而后需进行电路搭试,成功后才能确定电路的总体方案框图。电子课程设计是对以前学科知识的综合,检验我们掌握电子学科理论知识的程度,也是学科教学中十分重要的环节。通过把理论与实践相结合,提高理论水平,锻炼实践动手能力。同时,对于我们对电子学科的学习兴趣也是有极大的激发作用,让同学们在自己动手制作的过程中找到乐趣,加深对学科知识的理解及消化,为以后的学习和工作打下良好的基础。

在当今的社会里,彩灯已经成为我们生活的一部分,能给我们带来视觉上的享受还能美化我们的生活。三花样彩灯控制器主要是通过电路产生有规律变化的脉冲信号来实现彩灯的各种变化。它的主要器件是寄存器。现如今寄存器是数字系统常见的重要部件,在计算机中广泛用于存放中间数据。本次实验由于触发器具有记忆的功能,将移位寄存器设计成彩灯控制电路。由于电路本身实用,如果再通过计算机仿真,可以直观地看到循环彩灯控制效果。如果稍微改动控制电路,就可以改变电路的不同工作状态,控制彩灯变幻出不同的闪烁效果。 通过这次设计培养了我们严肃认真的工作态度和科学作风,为今后从事电路设计和研制电子产品打下初步基础,检验我们的理论实践能力,动手能力,动脑能力,分析和理解问题的能力,增强了大家对电子方面的学习兴趣及自学能力,知道了自己在哪一方面不足,为今后的学习提供了方向,使大家有质的提高。 1.1设计背景 以前过节的时候,班上开晚会,同学们都想用彩灯烘托一下节日气氛。通过两年来对专业课程的理论学习和实践,我们越发对彩灯设计产生了浓厚的兴趣。借这次学校安排我们的课程设计,我们决定亲手设计彩灯控制系统的程序,将理论与实践相结合,把自己在学校里面学过的东西应用于实际,不断深化自己在这方面的理解,并提高应用能力,使自己所学更有意义。 1.2实施计划 首先在图书馆查询资料,在网上收集相关论文,设计出彩灯控制系统的原理总图和单元电路图,再编写仿真软件,调试模块和软件,运行成功后做出电路板,加载程序,最后做出课程设计报告书。

双单片机控制流水灯(精)

案例8 双单片机通信控制流水灯 用串行工作方式进行单片机之间的通信,电路图如下图所示。两个89S51单片机通过串行口进行通信,设置U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,U1的RXD接U2的TXD,U1的TXD接U2的RXD,U2接8个发光二极管,要求由U1向U2发送数据,使8个发光二极管按从左到右逐一点亮的流水灯效果。 MCS-51单片机之间的串行异步通信 1.串行口的编程串行口需初始化后,才能完成数据的输入、输出。其初始化过程如下: (1)按选定串行口的工作方式设定SCON的SM0、SM1两位二进制编码。 (2)对于工作方式2或3,应根据需要在TB8中写入待发送的第9位数据(地址为1,数据为0)。 (3)若选定的工作方式不是方式0,还需设定接收/发送的波特率。 (4)设定SMOD的状态,以控制波特率是否加倍。 (5)若选定工作方式1或3,则应对定时器T1进行初始化以设定其溢出率。 2.案例分析由于串行口通信时传输的“0”或者“1”是通过相对于“地”的

电压区分的,因此使用串行口通信时,必须将双方的“地”线相连以使其具有相同的电压参考点。需要注意的是,异步通信时两个单片机的串行口波特率必须是一样的。由于U1使用的晶振频率是11.0592MHz,U2使用的晶振频率是22.1184MHz,因此二者的串行口初始化程序不完全一样。假设使用240bit/s的波特率,使用串行工作方式1,Tl使用自动装载的方式2,则Ul的TH1应初始化为136,U2的TH1应初始化为16。 对应的程序完成如下功能:Ul和U2进行双工串行通信,Ul给U2循环发送流水灯控制字,U2收到控制字后送到P0口,点亮相应发光二极管,双方都用中断方式进行收发。 (1)单片机U1的源程序 #include unsigned char sdata=0xfe; void isr_uart(); void main() { TMOD=0X20; TH1=136; TL1=136; SCON=0x40; PCON=0; TR1=1; EA=1;ES=1; SBUF=sdata; while(1); } void isr_uart() interrupt 4 {

按键控制单片机改变流水灯速度

按键控制单片机改变流水灯速度 /*程序效果:有三个按键,按下其中任意一个流水灯的速度改变 */#includereg52.h //52 系列单片机的头文件#define uchar unsigned char//宏定义 #define uint unsigned intuchar count=40,flag=0; //定义刚开始的流水灯的速度,后 一个为标志变量void main(){uchar i=0;//定义局部变量EA=1; //打开总 中断ET0=1; //打开定时器TR0=1; //启动定时器TH0=(65536-50000) /256; //装初值TL0=(65536-50000)%256; P2=0xfe; //点亮第一个数码管, 为下次循环做准备while(1){ if(flag) //flag 被置位{ flag=0;//清零,为下次做准备P2=~P2; //取反P2=1; //左移一位P2=~P2; //取反i++; if(i==8) //移到第八个数码管,则从新装初值{ i=0; P2=0xfe; } } P0=0xf0; //赋初值if((P00xf0)!=0xf0) //判断是否有按键按下{ if(P0==0x70) //按下第一个按键count=60; //给count 从新赋值 if(P0==0xb0) count=20; if(P0==0xd0) count=10;} }}void time0() interrupt 1 //定时器0{static uchar cnt; //定义静态变量TH0=(65536-50000)/256;TL0=(65536-50000)%256; cnt++; //计数if(cnt==count){ cnt=0; //清零flag=1; //置标志位}} tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!

发光二极管流水灯实验

实验一发光二极管流水灯实验 一、实验目的: 1.通过AT89C51单片机控制8个发光二极管,八个发光二极管分别接在单片机的P0.0-P0.7接口上,输出“0”时,发光二极管亮。开始时P0.0→P0.1….→P0.7,实现亮点以1HZ频率循环移动。 2.用PROTEUS 设计,仿真以AT89C51为核心的发光二极管流水灯实验装置。 3.掌握发光二极管的控制方法。 二、PROTEUS电路设计: 三、程序部分 #include sbit control = P3^7; void delay(int z) { int x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void main() { int i,tmp; control = 0; P0 = 0xef; delay(1000); for(i=1;i<=7;i++) { tmp = P0; P0 = (tmp>>1)+ 0x80; delay(1000); } }

实验二开关控制LED数码管实验 一、实验目的: 1.通过AT89C51读入4位开关K1、K2、K3、K4的输入状态,并按照二进制编码关系0-F输出到数码管显示。(如K4K3K2K1全部按下,则显示F;若只有K2按下,则显示2。) 2.掌握LED数码管的静态显示。 3.掌握I/O口的控制方法。 二、PROTEUS电路设计:

三、程序部分 #include unsigned char table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82, 0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,}; unsigned char KEY; void main() { while(1) { KEY = P2; switch(KEY) { case 0xff:P0 = table[0];break; case 0xfe:P0 = table[1];break; case 0xfd:P0 = table[2];break; case 0xfc:P0 = table[3];break; case 0xfb:P0 = table[4];break; case 0xfa:P0 = table[5];break; case 0xf9:P0 = table[6];break; case 0xf8:P0 = table[7];break; case 0xf7:P0 = table[8];break; case 0xf6:P0 = table[9];break; case 0xf5:P0 = table[10];break; case 0xf4:P0 = table[11];break; case 0xf3:P0 = table[12];break; case 0xf2:P0 = table[13];break; case 0xf1:P0 = table[14];break; case 0xf0:P0 = table[15];break; default :break; } } }

单片机控制左右来回循环的流水灯

左右来回循环的流水灯 设计要求 8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。 题37图节日彩灯的花样显示的规律 为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。 题37表P1口8个引脚的不同颜色的发光二极管 使用C51编流水灯程序以及设计相应的硬件电路十分简单,且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:

程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。 全部代码如下: #include #include unsigned char temp; //定义字符变量temp,temp左移或右移并给连接LED的P1口赋值 int a; //定义延迟函数delay() void delay(void); void main() { temp=0xfe; //给temp赋初值 P1=temp; //temp赋值给P1口,第一个LED(红色)点亮 while(1) //主程序,括号中的程序将一直循环 { for(a=0;a<7;a++) //左移部分,LED从左到右依次点亮 { temp=_crol_(temp,1); //_crol_语句控制变量temp左移 delay(); //每个灯点亮之后延迟一会在点下一个灯 P1=temp; }

按键控制流水灯设计报告

按键控制流水灯设计报告 一、项目名称: 按键控制流水灯 二、目的: 通过对按键控制发光二极管项目的改变,设计出自己的方案,来加深对硬件技术的理解,同时锻炼关于硬件的编程技术,掌握keil等软件的使用。 三、硬件原理: 数码管与发光二极管硬件电路图: 芯片引脚电路图:

按键与导航按键:

四、软件原理: 变量Key1,Key2,Key3分别代表第一个、第二个、第三个按键,值为零时表示按下了该按键。那么可以写出一个判断条件,当这三个变量的值分别为1 时,就分别调用三个不同的函数,三个函数分别表示LED灯的三种不同的闪亮方式。 五、软件流程:

首先判断哪一个变量的值为1,即哪一个按键被按下,然后就调用相应的函数。 六、关键代码: void main() { Init(); P0=0x00; while(1){ //其他两个key通过中断实现 // if(Key3==0) // { // G_count=0; // while(G_count!=200);//延时10ms // while(!Key3)//等待直到释放按键 // { // P0=0x33; // } // } if(Key1==0)fun2(); if(Key2==0)fun3(); if(Key3==0)fun4();

} } 七、操作说明: 当把软件下载到电路板以后,给它插上电源,然后按下不同的按键,可以观察到LED灯亮。 八、存在的问题: 原先的main()函数中只有KEY3,并没有Key1和Key2,所以暂时不清楚如何感应到按键一和按键二什么时候按下。 九、后续设计计划: 可以设计更炫酷的亮灯方式。

流水灯控制实验报告及程序

实验三流水灯控制实验 姓名专业通信工程学号成绩 一、实验目的 1.掌握Keil C51 软件与protues软件联合仿真调试的方法; 2.掌握如何使用程序与查表等方法实现流水效果; 3.掌握按键去抖原理及处理方法。 二、实验仪器与设备 1. 微机1台 2. Keil C51集成开发环境 3. Proteus仿真软件 三、实验内容 1.用Proteus设计一流水灯控制电路。利用P1口控制8个发光二级管L1—L8。P3.3口接一按 键K1。参考电路如下图所示。其中74LS240为八反响三态缓冲器/线驱动器。 2.用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的 次数,则其对应的流水效果如下: ① KEY=0: L1-L8全亮; ② KEY=1: L1-L8先全灭,然后自右向左单管点亮,如此循环; ③ KEY=2: L1-L8先全灭,然后自右向左依次点亮,如此循环; ④ KEY=3: L1-L8先全亮,然后自左向右依次熄灭,如此循环; ⑤ KEY=4: L1-L8先全灭,然后整体闪烁,如此循环; ⑥ KEY=5:自行设计效果。 以上移位及闪烁时间间隔均设置为0.3秒,按动5次按键后,再按键时,流水效果从头开始循环。 四、实验原理 1.按键去抖原理:通常按键所用的开关为机械弹性开关,当机械触点断开、闭合时,电压信号 波形如下图所示。由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定的接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为5~10ms。按键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除按键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。常用软件方法去抖动,即检测到按键闭合后执行一个5~10ms延时程序;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有按键按下。当检测到按键释放后,也要给5~10ms的延时,待后延抖动消失后,才能转入该键的处理程序。 2.74LS240:八反相三态缓冲器/线驱动器 引脚排列图:

(完整word版)51单片机流水灯

51单片机的流水灯控制 班级:100712 姓名:全建冲 学号:10071047

一、设计要求 用51单片机设计一个流水灯的控制方案,要求采用定时器定时,利用中断法控制流水灯的亮灭,画出电路图和程序流程图,写出程序代码以及代码注释。 二、电路原理图 原理图分析: 本原理图采用STC89S52单片机控制8个LED灯,其中8个LED灯的负极接单片机的P1端口,正极通过1KΩ排阻连接到电源上。原理图中还给出了晶振与复位端,以保证控制器的稳定工作。

三、程序流程图

四、程序代码及注解 1.非中断定时器控制 #include #include//包含了_crol_函数的头文件 #define uchar unsigned char #define uint unsigned int uint i=0; uchar a=0xfe; void main() { TMOD=0x01;//设置工作方式为定时器0,16位手动重装初值 TH0=(65536-46080)/256;//50毫秒定时赋初值 TL0=(65536-46080)%256; TR0=1;//启动定时器0 while(1) { If(TF==1)//读溢出标志位 { TH0=(65536-46080)/256;//重新赋初值 TL0=(65536-46080)%256;

i++; if(i==10)//500毫秒定时 { i=0; P1=a;//P1端口赋值 a=_crol_(a,1);//循环左移 } TF=0;//清除定时器溢出标志 } } } 程序分析:本程序采用非中断定时器法控制流水灯,核心语句在于读取标志位TF位,TF为定时器溢出标志位,溢出时硬件自动置一,所以循环读取标志位以判断定时器是否溢出,而每次溢出需要手动清零,否则定时器无法再次溢出,利用标志i读取10次即可达到500毫秒的定时。另外需要注意的是单片机晶振为11.0592MHz,所以计时一个数的时间为12/11.0592=1.085us,故定时50毫秒的计数为50000/1.085=46080。 2.中断定时器控制 #include

单片机c语言编程控制流水灯

说了这么多了,相信你也看了很多资料了,手头应该也有必备的工具了吧!(不要忘了上面讲过几个条件的哦)。那个单片机究竟有什么 功能和作用呢?先不要着急!接下来让我们点亮一个LED(搞电子的应该知道LED是什么吧^_^) 我们在单片机最小系统上接个LED,看我们能否点亮它!对了,上面也有好几次提到过单片机最小系统了,所谓单片机最小系统就是在单片机 上接上最少的外围电路元件让单片机工作。一般只须连接晶体、VCC、GND、RST即可,一般情况下,AT89C51的31脚须接高电平。 #include //头文件定义。或用#include其具体的区别在于:后者定义了更多的地址空间。 //在Keil安装文件夹中,找到相应的文件,比较一下便知! sbit P1_0 = P1 ^ 0; //定义管脚 void main (void) { while(1) { P1_0 = 0;//低电平有效,如果把LED反过来接那么就是高电平有效 } } 就那么简单,我们就把接在单片机P1_0上的LED点亮了,当然LED是低电平,才能点亮。因为我们把LED的正通过电阻接至VCC。 P1_0 = 0; 类似与C语言中的赋值语句,即把0 赋给单片机的P1_0引脚,让它输出相应的电平。那么这样就能达到了我们预先的要求了。 while(1)语句只是让单片机工作在死循环状态,即一直输出低电平。如果我们要试着点亮其他的LED,也类似上述语句。这里就不再讲了。 点亮了几个LED后,是不是让我们联想到了繁华的街区上流动的彩灯。我们是不是也可以让几个LED依次按顺序亮呢?答案是肯定的!其 实显示的原理很简单,就是让一个LED灭后,另一个立即亮,依次轮流下去。假设我们有8个LED分别接在P1口的8个引脚上。硬件连接,在 P1_1--P1_7上再接7个LED即可。例程如下: #include sbit P1_0 = P1 ^ 0; sbit P1_1 = P1 ^ 1; sbit P1_2 = P1 ^ 2; sbit P1_3 = P1 ^ 3; sbit P1_4 = P1 ^ 4; sbit P1_5 = P1 ^ 5; sbit P1_6 = P1 ^ 6; sbit P1_7 = P1 ^ 7; void Delay(unsigned char a) { unsigned char i; while( --a != 0) {

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 201111631227 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

EDA实验流水灯控制

彩灯控制器 一、设计内容及要求: 设计一个彩灯控制器,要求: 1.四路彩灯从左向右逐次渐亮,间隔为1秒。 2.四路彩灯从右向左逐次渐灭,间隔为1秒。 3.四路彩灯同时点亮,时间间隔为1秒,然后同时变暗,时间为1秒,反复4次。 二、总体框图 图(1)总体框图 根据设计要求,电路设计大体思路如下: 由脉冲发生器发出频率脉冲信号,利用计数器加法计数功能输出0000~1111的脉冲信号,经过数据选择器分别在0000~0011,0100~0111,1000~1111三个时段输出不同的高低电平,控制移位寄存器实现右移→左移→置数功能,从而控制彩灯按照设计要求实现亮灭。 三、选择器件 本次课程设计所用器件如表一: 表一本次课程设计所用器件

1.同步二进制计数器74LS163 表二7-3 74LS163功能表 根据逻辑图、波形图、功能表分析,74LS163具有如下功能:

管脚图逻辑符号 1)1是同步4位二进制加法计数器,M=16,CP上升沿触发 2)2既可同步清除,也可异步清除。同步清除时,清除信号的低电平将在下一个CP上升沿配合下把四个触发器的输出置为低 电平。异步清除时,直接用清除信号的低电平把四个触发器的输出置为低电平。 3)3同步预置方式:当LD = 0时,在CP作用下,计数器可并行打入预置数据.当LD = 1时,使能输入PT同时为高电平,在 CP作用下,进行正常计数。 4)PT任一为低时,计数器处于保持状态。 5) 5 CO为进位输出,可用来级联成n位同步计数器。 2.四位双向移位寄存器74LS194 74LS194内部原理图 74LS194四位双向移位寄存器具有左移、右移、并行数据输入、保持、清除功能。 1)从图1中74LS194的图形符号和引脚图分析。SRG4是4位移位寄存器符号,D0~D3并行数据输入端、D SL左移串行数据输入端、D SR右移串行数据输入端、S A(M0)和S B (M1)(即9脚和10脚)工作方式控制端分别接电平开关,置1或置0,CP 时钟输入端接正向单次脉冲,清零端接负向单次脉冲,Q0~Q3输出端。 表三逻辑符号逻辑框图

基于51单片机的流水灯控制

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATMEL公司生产的低电压、高性能CMOS 8位单片机,具有丰富的内部资源:4kB闪存、128BRAM、32根I/O口线、2个16位定时/计数器、5个向量两级中断结构、2个全双工的串行口,具有4.25~5.50V的电压工作范围和0~24MHz工作频率,使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。 其具体硬件组成如图1所示。 图1 流水灯硬件原理图 从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的

视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。 3.软件编程 单片机的应用系统由硬件和软件组成,上述硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,是单片机学习的重点和难点。下面我们以最简单的流水灯控制功能即实现8个LED灯的循环点亮,来介绍实现流水灯控制的几种软件编程方法。 3.1位控法 这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,从而来控制相应LED灯的亮灭。程序如下:ORG 0000H ;单片机上电后从0000H地址执行 AJMP START ;跳转到主程序存放地址处 ORG 0030H ;设置主程序开始地址 START:MOV SP,#60H ;设置堆栈起始地址为60H CLR P1.0 ;P1.0输出低电平,使LED1点亮 ACALL DELAY ;调用延时子程序 SETB P1.0 ;P1.0输出高电平,使LED1熄灭

最新五种编程方式实现流水灯的单片机c程序讲课教案

五种编程方式实现流水灯的单片机C程序 //功能:采用顺序结构实现的流水灯控制程序 /*此方式中采用的是字操作(也称为总线操作)*/ #include void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1 = 0xfe; //点亮第1个发光二极管,0.000389s delay(200); //延时 P1 = 0xfd; //点亮第2个发光二极管,0.155403s,0.1558 delay(200); //延时 P1 = 0xfb; //点亮第3个发光二极管 delay(200); //延时 P1 = 0xf7; //点亮第4个发光二极管 delay(200); //延时 P1 = 0xef; //点亮第5个发光二极管 delay(200); //延时 P1 = 0xdf; //点亮第6个发光二极管 delay(200); //延时 P1 = 0xbf; //点亮第7个发光二极管 delay(200); //延时 P1 = 0x7f; //点亮第8个发光二极管 delay(200); //延时 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数{ unsigned char j, k; //定义无符号字符型变量j和k for(k = 0; k < i; k++) //双重for循环语句实现软件延时 for(j = 0; j < 255; j++); } //功能:采用循环结构实现的流水灯控制程序 //此方式中采用的移位,按位取反等操作是位操作 #include //包含头文件REG51.H void delay(unsigned char i); //延时函数声明 void main() //主函数

综合实验一——按键控制流水灯实验(查询方式)

北京科技大学微型计算机原理实验报告 学院:____自动化学院________________ 专业、年级:_自动化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端口的引脚配置情况:

多变流水灯控制电路.doc

(1)电路结构与特点 多变流水灯控制电路如图2S所示。图中的多谐振荡器由非门U5;A、U5:B及R1、R2、C1组成,其振荡频率为2H2。三极管开关电路由R3、v1组成,它并联在R2(决定频率的元件之一)的两端。当v1饱和时,相当于R2两端并联一电阻,多谐振荡器的频率将 变为原来的3倍。多谐振荡器产生的方波由两路输出,其中b4日1u5:A输出的一路输入U4的12级串行二进制计数分频器。该计数分频器将输入端信号输出,分频作用于v1。在U4的13脚输出的一个方波的前半段,其输出电平为“o”,v1截止,振荡器频率保持2H2;在后半段v1饱和,使振荡频率变为6Hz。非门U5:B输出至U1的BCD可预置数同步可逆计数器。其4、12、13、3脚为BCD码数据预置端,6、11、14、2脚为BCD码数据输出端。9脚为清零端,当其为高电平时,输出的数据为咖零数。l脚为置数允许端,当其为 高电平而9脚为低电平时,输出的数据与4、12、13、3脚预置数相同。I o脚为加、减计数

控制端,高电平为加计数,低电乎为减计数。5脚为进位输入端,无进位时,固定为低电乎。15脚为时钟脉冲输入端,脉冲上升沿有效。U1输出直接至U2的咖十进制译码器,将BcD码数据译为十进制码,从相应的十进制码数输出端输出。电路中Ul的4、12脚接高电乎,13、3脚接低电乎,故预置数为o011,即十进制数的3。u1的10脚由U4的输出端提供控制信号,当U1的15脚连续不断地输入时钟脉冲时,如果u1的10脚为高电平,则U1输出的比D码数据经U2译码,U2的3、14、2、15脚依次输出高电平。当U2的1 脚输出高电平时,经R5、C2稍加延时输入非门U5:D、U5lc整形,将经RC延时使前 沿变得较平滑的波形重新整形为方波,以避免ul同步计数器产生信号丢失。整形后的高 电乎至U1的9脚时,U2的3脚迅速变为高电乎输出。于是开始了3、14、2、15脚依次输出高电乎的重复过程。当u1的10脚为低电平时,计数器按逆向过程15、2、14、3脚顺序输出高电乎,原理同前所述。由u2输出的信号分成两路,其中一路输入u3四双向开关,其任一组开头在控制端为高电平时呈低阻通态,而在控制端为低电平时为高阻断态。由 U4的12、14脚输出端经V3、V4、R15组成“或”门电路,同时控制U3四组开关的通、断。 当开关通时,u2的一个输出端的高电乎可以使两个三极管饱和,而开关为断态时,此高电乎只能使一个三极管饱和。三极管由集电极反相输出,控制双向可控硅vsl—vs4的通、断,从而实现对彩灯的控制。 (2)无路件选择 在图23中,U1选用CD45lo,U2选用凹4028,U3选用CD4066,U4选用CD4040,

流水灯控制论文

湄洲湾职业技术学院七彩心形流水灯说明书 系别: 班级:专业: 姓名:学号: 导师姓名职称:实验师

2016年11月20日 目录 1.前言............................................ 错误!未定义书签。 2.系统设计技术参数要求............................. 错误!未定义书签。 3.系统设计......................................... 错误!未定义书签。 3.1 系统设计总体框图........................... 错误!未定义书签。 3.2 各模块原理说明............................. 错误!未定义书签。 3.3 系统总原理图说明........................... 错误!未定义书签。 3.4 系统印刷电路板的制作图..................... 错误!未定义书签。 3.5 系统的操作说明............................. 错误!未定义书签。 3.6系统操作注意事项........................... 错误!未定义书签。 系统设计参考文件............................... 错误!未定义书签。 致谢词......................................... 错误!未定义书签。 附录........................................... 错误!未定义书签。

cc2530按键控制流水灯

cc2530按键控制流水灯 本次设计用LED1,LED2,LED3 灯及按键S1 为外设。采用P10、P11、P14 口为输出口,驱动LED1/LED2/LED3,P01 口为输入口,接受按键信号输入(高电平为按键信号)。 1.高性能 2.4G 射频模块Q2530RF Q2530RF是丘捷技基于TI公司第二代2.4GHz IEEE 802.15.4 / RF4CE/ZigBee的第二代片上系统解决方案CC2530 F256的全功能模块,集射频收发及MCU控制功能于一体。外围原件包含一颗32MHz晶振和一颗32.768KHz晶振及其他一些阻容器件。射频部分采用巴伦匹配和外置高增益SMA天线,接收灵敏度高,发送距离远,空旷环境最大传输距离可达400米。模块引出CC2530所有IO口,便于功能评估与二次开发。 2.多功能开发板Q2530EB 多功能扩展板Q2530EB 可支持多种射频主控模块(例如Q2530RF等),配置有串口液晶显示接口,USB供电接口,DC 5V电源接口,电池接口,RS232接口,DEBUG接口,五向按键及指示灯,红外遥控信号接收/发射等模块。 所有的外设均通过SPI总线/UART /DEBUG等接口与射频模块Q2530RF 相连,并完全受Q2530RF 控制和访问。 多功能仿真扩展板Q2530EB 采用三种电源供电方式:DC 5V供电、USB接口供电、电池供电,可在插座P5设置跳线选择,PIN1-PIN2 为电池供电,PIN2-PIN3 为外接直流电源或者USB接口供电。电源开关为P4。 Q2530EB 板卡背面的电池盒可放置3节5号干电池,输出电压3.4~4.5V,板载电源电路将其调整到+3.3V 稳定的直流电压输出供后级使用。当电池电压低于3.4V 时,应更换电池以保持模块正常工作。 Q2530EB 带有1个DC 5V的电源适配器接口P2和一个USB接口P1,输入电压经过稳压器降压为+3.3V输出供后极使用。

流水灯控制教案

流水灯的模拟控制 【引入】 在前面的学习中,我们给大家介绍了定时器的相关知识点,同学们也能够运用定时器这种软元件进行一些简单程序的编写。然而,定时控制在实际生活中的运用也是比比皆是。比如在一些标志牌和广告牌,内部和四周都会运用流水灯来增加它的醒目程度。 利用PLC技术如何来进行流水灯控制呢?这就是今天所要给大家介绍的:项目五——流水灯的模拟控制。 【过渡】首先我们来看一下我们今天的学习目标。 一、【学习目标】 1.会分析流水灯控制系统的动作要求,合理分配输入/输出点。 2.能独立完成流水灯控制系统的安装、调试和监控。 3.培养勤于思考、善于动手的良好习惯以及团队合作的能力。 【过渡】那么流水灯是如何控制的呢,我们来看一下它的动作要求?在此过程中,请大家思考这样几个问题? 1.系统中用到哪些输入/输出器件呢? 2.它们又该如何分配呢?请大家完成I/O分配表。 二、【动作要求】 有三盏灯分别为红灯、绿灯和黄灯。要求: 1.按下启动按钮SB1三盏灯按以下顺序循环: 2.按下停止按钮SB2三盏灯均熄灭,系统恢复初始状态。 三、【输入/输出分配表】 流水灯控制电路的输入/输出分配表如表所示。 流水灯控制输入/输出分配表 【点评】 【过渡】 动作任务清楚了。接下来,请大家根据输入/输出分配表画出原理图。然后,进行该系统硬件接线部分的安装。 四、【安装、连接、检测电路】 一、用三菱FX2-48MR型可编程序控制器实现流水灯控制的输入/输出接线如图下所示。

图2-32流水灯PLC控制输入/输出接线图二、在此过程中,请大家务必注意: 1)注意安全规范。严格按照评分表的要求文明操作。

单片机控制LED流水灯从中间向两边

单片机控制LED流水灯从中间向两边,从两边向中间 这个就是把先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;不过这个程序实现的应该是这样的先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动;再从中间往两边流动; #include< reg52.h> #include< intrins.h> #define uint unsigned int #define uchar unsigned char void delay(); void main() { uchar temp,temp1,temp2,a,b; P3=0xff; while(1) { for(b=3;b>0;b--) { temp=0xaa; P1=temp; delay(); temp=0x55; P1=temp; delay(); } for(a=3;a>0;a--) { temp=0xfe; for(b=7;b>0;b--) { P1=temp; temp=_crol_(temp,1); delay(); P1=temp; delay(); } } temp1=0xfe; temp2=0x7f; for(a=8;a>0;a--) { temp=temp1&temp2; P1=temp; delay(); temp1=_crol_(temp1,1); temp2=_cror_(temp2,1);

} } void delay() { uint a,b; for(a=100;a>0;a--) for(b=600;b>0;b--); } 程序实现的第2种方法:下面是https://www.wendangku.net/doc/2212982256.html,单片机12群里的朋友木信大侠提出的,实现单片机led流水灯从中间向两边,从两边向中间的效果,下面的程序就是实现思路,这个是直接调用,应该明白吧,数组那其实也可以改一下,如采用一维数组,在多次调用;也可以采用二维数组。主要看个人喜好. ----------------------------------------------------- #include< reg52.h> unsigned char code TABLE[]={ 0xFF,0xE7,0xC3,0x81,0x00, //从中间向两侧点亮 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0xE7,0xC3,0x81,0x00, 0xFF,0x7E,0x3C,0x18,0x00, //从两侧向中间点亮 0xFF,0x7E,0x3C,0x18,0x00, 0xFF,0x7E,0x3C,0x18,0x00 }; unsigned char i; DELAY() { unsigned int s; for(s=0;s<30000;s++); } main() { while(1) { if(TABLE[i]!=0x01) { P1=TABLE[i]; i++; DELAY(); } else

相关文档