文档库 最新最全的文档下载
当前位置:文档库 › 闪烁LED小灯的设计

闪烁LED小灯的设计

闪烁LED小灯的设计
闪烁LED小灯的设计

摘要

本设计的闪烁小灯控制器, 以8051单片机作为控制核心,电源开关等较少的辅助硬件电路相结合,利用软件实现对LED彩灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作易阅读等优点。可使小灯轮流点亮、逐点点亮、间隔闪亮,如要控制交流彩灯可在P1端口加接继电器或可控硅接口电路。可应用在广告彩灯控制器、舞台灯光控制器等领域。

关键字:LED彩灯;8051单片机;keil编译软件系统

目录

1 方案论证和对比 ..................................................... - 1 -

1.1方案一 ........................................................ - 1 -

1.2方案二 ........................................................ - 1 -

1.3 设计方案对比.................................................. - 5 -

2 系统设计 ........................................................... - 5 -

2.1系统功能 ...................................................... - 5 -

2.2系统硬件电路的设计 ............................................ - 6 -

2.3 系统主要程序的设计............................................ - 7 -

2.4 主程序流程图.................................................. - 8 -

3 功能板块介绍 ....................................................... - 8 -

3.1 STC89C52单片机 ............................................... - 8 -

3.2 LED灯 ........................................................ - 8 -

3.3控制键 ....................................................... - 12 -

4 总结及致谢 ........................................................ - 13 - 参考文献 ............................................................ - 13 - 附录一 LED闪烁小灯原理图及PCB板.................................... - 13 - 附录二程序 ......................................................... - 13 -

设计要求

功能:本设计的闪烁小灯控制器,可使小灯轮流点亮。通过按键来改变间隔的时间,要求间隔时间在0.1S到5S可调,并显示在数码管上。

1 方案论证和对比

1.1 方案一

使用8051单片机,采用汇编语言,通过中断控制LED闪烁模式转换,模式1为顺序点亮,模式2为四四点亮,模式3为相临点亮。时钟采用8051内部12WHz。并且通过延时程序控制LED闪烁的间隔时间,从而实现LED不同时间间隔的闪烁。

P1口作LED发光管输出控制用,P3.0—P3.3口为闪烁方式控制开关,限流电阻为1KΩ,发光管工作电流约为10mA,采用12MHz晶振。用8051的控制模块,具有按键、显示等功能,并利用8051的P0口输出控制信号,利用P0口的8个输出端上面焊有8个LED彩灯,使得彩灯在软件的控制下工作。

1.2方案二

使用AVR单片机,C语言控制实现LED闪烁的模式转换。模式1为顺序点亮,模式2为相临点亮,模式3为四四点亮。时钟采用内部时钟,复位采用上电复位,在P1 端口上接8个发光二极管。

#include

#include

#define uchar unsigned char

#define uint unsigned int

void Delay() //延时函数

{

uchar a, b, c;

for (a = 1; a; a++)

for (b = 1; b; b++)

for (c = 0; c<10; c++) //循环次数=255*255*10

;

}

void DelayMs(uint i) //1ms延时,准确性较Delay();高 {

while(i--)

{

uint j;

for(j=1;j<=613;j++)

;

}

}

void LED_on() //打开所有LED

{

PORTB =0X00;

Delay();

}

void LED_off() //关闭所有LED

{

PORTB = 0xFF;

Delay();

}

void LED_01(int i) //LED亮灭控制

{

PORTB = ~BIT(i); //输出低电平

DelayMs(100); //调用延时程序

}

void LED_02(int i) //间隔点亮

{

PORTB=~(BIT(i)|BIT(i-2));

DelayMs(100);

}

void LED_03(int i) //相临点亮

{

PORTB=~(BIT(i)|BIT(i-1)); //~后内容需用括号括起来 DelayMs(100);

}

{

switch(i)

{

case 0:PORTB=0xE7;DelayMs(100);break; //延时100ms case 1:PORTB=0xDB;DelayMs(100);break;

case 2:PORTB=0xBD;DelayMs(100);break;

case 3:PORTB=0x7E;DelayMs(100);break;

default:break;

}

}

void LED_05(int i) //00,0F,F0,FF方式显示 {

switch(i)

{

case 0:PORTB=0x00;DelayMs(100);break; //延时100ms case 1:PORTB=0x0F;DelayMs(100);break;

case 2:PORTB=0xF0;DelayMs(100);break;

case 3:PORTB=0xFF;DelayMs(100);break;

default:break;

}

}

void LED_06(int i)

{

switch(i)

{

case 0:PORTB=0XAA;DelayMs(100);break;

case 1:PORTB=0X55;DelayMs(100);break;

}

}

void main()

{

int l,m,n,o,p,q,r,s,i,j;

DDRA =0X00; //端口上拉输入

PORTA=0XFF;

DDRB =0xFF; //端口输出

PORTB="0xFF"; //输出高电平,LED熄灭 DDRC =0X00;

PORTC=0XFF;

DDRD =0X00;

PORTD=0XFF;

for (r=0;r<5;r++)

{

for(l=0;l<5;l++) //模式1:顺序点亮

{

for (i = 0; i < 8; i++) //顺序单个点亮LED

LED_01(i); }

LED_off();

for(o=0;o<5;o++) //模式2:相临点亮

{

for (i = 1; i < 8; i++) //相临顺序同时点亮

LED_03(i);

}

LED_off();

for(s=0;s<5;s++) //模式3:四四点亮

{

for(i=0;i<2;i++) //四四顺序点亮

LED_06(i);

}

LED_off();

}

asm("sleep"); //CPU休眠指令

}

(1) 延时程序的设计方法

作为单片机的指令的执行的时间是很短,因此,我们要求的闪烁时间间隔为 0.1秒。(石英晶体为 12MHz,因此,1 个机器周期为 1微秒)

(2)输出控制

当 P1端口输出高电平,根据发光二极管的单向导电性可知,这时对应LED熄灭;当 P1 端口输出低电平,对应LED亮;使用C语言指令使 P1端口输出高电平或低电平。

1.3 设计方案对比

对比方案二使用AVR单片机实现LED闪烁的功能,通过C语言控制P1输出,设计要求是使用STC89C52单片机,通过按键控制P1输出。对比之下,按键控制更简单,易于操作,从而选择我们的方案一。

2 系统设计

2.1系统功能

LED彩灯用软件控制硬件的方式来是彩灯闪烁。彩灯采用8051提供+5V电压工作,

经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供+5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5 V工作电源。

整个系统工作由软件程序控制运行。上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。在工作状态下,LED 彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。整个3种亮灯模式时间可以看作一个大周期T,对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,在从右到左点亮LED,还有自己定义的LED点亮方式。

因此在LED彩灯上电工作后,可以方便地通过控模块上的显示器知道LED灯当前工作模式,工作时间Ti,频率Fi等实时参数。若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,可以让程序循环。

2.2系统硬件电路的设计

图1 控制LED闪烁单片机图2 LED灯

上图为该控制器的电路原理图,其中单片机采用STC89C52,P1口作LED发光管

输出控制用,P3.0—P3.3口为闪烁方式控制开关,限流电阻为1KΩ,发光管工作电流约为10mA,采用12MHz晶振。用8051的控制模块,具有按键、显示等功能,并利用8051的P0口输出控制信号,利用P0口的8个输出端上面焊有8个LED彩灯,使得彩灯在软件的控制下工作。

2.3 系统主要程序的设计

(1) 主体程序

通过扫描P3.2—P3.3端口,判断是否有按键按下,然后在20H内存单元的低三位的对应位置1标志,确定应执行的闪烁功能。当20H.0为1时,发光管轮流点亮;当20H.1 为1时,发光管逐点点亮;当20H.2为1时,发光管间隔闪亮。

在主程序对20H的低三位进行位值判定后,转入相应的闪烁控制程序。上电初始化时对20H的最低位置1,系统进入轮流点亮方式。

(2) 键扫描子程序

因按键较少,采用直接端口扫描键开关,用软件延时消抖确认后对20H内存单元相应的位置1并把其余位清零。

(3) 闪烁控制程序

闪烁控制程序用来控制P1口的发光管发光变化方式,其中执行功能程序0(FUN0)时的P1口输出值变化为11111110—延时—11111101—延时—11111011—延时—11110111—延时—11101111—延时—11011111—延时—10111111—延时—01111111—延时—结束转主程序。执行功能程序1(FUN1)时的P1口输出变化为11111110—延时—11111100—延时—11111000—延时—11110000—延时—11100000—延时—11000000—延时—10000000—延时—00000000—延时—结束转主程序。执行功能程序2(FUN2)时的P1口输出变化为10101010—延时—01010101—延时—结束转主程序。

(4) 延时子程序

延时子程序有10ms和0.5s两个,用以作键扫描消抖及发光管闪烁延时,发光管闪烁的快慢可由R4寄存器内的初值进行改变。

2.4 主程序流程图

图5 主程序流程图

3 功能板块介绍

3.1 STC89C52单片机

图6 STC89C52单片机

89C52是INTEL公司MCS-51系列单片机中基本的产品,它采用INTEL公司可靠的CHMOS工艺技术制造的高性能8位单片机,属于标准的MCS-51的HCMOS 产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,它基于标准的MCS-51单片机体系结构和指令系统,属于89C51增强型单片机版本,集成了时钟输出和向上或向下计数器等更多的功能,适合于类似马达控制等应用场合。89C52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。此外,89C52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM 定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。

I/O端口:P0.0~P0.7,P1.0~1.7,P2.0~P2.7,P3.0~P3.7。89C52共有4个I/O端口,为P0、P1、P2、P3,4个I/O口都是双向的,且每个口都具有锁存器。每个口有8条线,共计32条I/O线。

89C52功能引脚介绍:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH 编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,

当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL 门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口作为AT89C51的一些特殊功能口,管脚备选功能

P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 /INT0(外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0(记时器0外部输入)

P3.5 T1(记时器1外部输入)

P3.6 /WR(外部数据存储器写选通)

P3.7 /RD(外部数据存储器读选通)

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。

在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA / VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

外接石英晶体或者陶瓷谐振器以及电容C1、C2接在放大器的反馈回路(AT89C52内部有一个用于构成内部振荡器的高增益反相放大电路,XTAL1、XTAL2分别是该放大器的输入和输出端)中构成并联振荡电路。

为了使装置能够被外部时钟信号激活,XATL1应该有效,而XTAL2应该被悬空。由于输入到内部的时钟信号电路通过了一个二分频的信号,外部信号的工作周期比没有别的要求,但是最大值和最小值的大小可以在数据表上观察出来。当正常工作时,外部振荡器可以计算出XTAL1上的电容,最大可达到100pF。这是由于振荡器电容和反馈电容之间的相互作用。当外部信号是标准高电平或者低电平时,电容不会超过20pF。

3.2 LED灯

图6 LED灯

LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N 结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。

LED的应用方向,可用于建筑物外观照明,景观照明,标识与指示性照明,室内空间展示照明,娱乐场所及舞台照明等等。

本设计的闪烁小灯控制器,可使小灯轮流点亮、逐点点亮、间隔闪亮,如要控制交流彩灯可在P1端口加接继电器或可控硅接口电路。可应用在广告彩灯控制器、舞台灯光控制器等领域。

3.3控制键

图7 中断控制图8 复位控制

本设计采用中断和复位键进行模式转换控制。

中断0启动模式1,中断1启动模式2,复位键实现复位功能。

4 总结及致谢

通过这两周的设计,我们获得巨大收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我们团结合作精神,能够充分利用图书馆去查阅资料,增加了许多课本以外的知识,能达到学以致用。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。

最后感谢各位老师悉心教导和不倦的教诲,和与我同在一组的同学共同努力,相互帮助相互鼓励,一起发现问题,一起解决问题,我们在您的帮助下顺利地完成了课程设计任务。在此表示衷心的感谢!

参考文献

[1]张鑫主编,华臻,陈书谦副主编。单片机原理及应用。电子工业出版社,2010

[2]康光华主编,邹寿彬,秦臻副主编。数字电子技术基础。高等教育出版社,2006

[3]康光华主编,邹寿彬,秦臻副主编。模拟电子技术基础。高等教育出版社,2006

[4]赵晓安主编,MCS-51单片机原理及应用,天津大学出版社,2001

[5]楼然苗,李光飞编著,单片机课程设计指导,北京航空航天大学出版社,2007

附录一:PCB原理图

附录二:程序

;************;

;小灯控制程序;

;************;

;

;************;

;中断入口程序;

;************;

ORG 0000H ;程序执行开始地址

LJMP START ;跳至START执行

ORG 0003H ;外中断0中断入口地址

RETI ;中断返回(不开中断)

ORG 000BH ;定时器T0中断入口地址

RETI ;中断返回(不开中断)

ORG 0013H ;外中断1中断入口地址

RETI ;中断返回(不开中断)

ORG 001BH ;定时器T1中断入口地址

RETI ;中断返回(不开中断)

ORG 0023H ;串行口中断入口地址

RETI ;中断返回(不开中断)

;

;************;

; 初始化程序;

;************;

;

CLEAR: MOV 20H,#00H ;20H单元内存清0(闪烁标志清0)SETB 00H ;20H.0位置1(上电时自动执行闪烁功能1)

RET ;子程序返回

;

;************;

; 主程序;

;************;

;

START:ACALL CLEAR ;调用初始化子程序

MAIN: LCALL KEYWORK ;调用键扫描子程序

JB 00H,FUN0 ;20H.0位为1时执行FUN0

JB 03H,FUN1 ;20H.1位为1时执行FUN1

JB 02H,FUN2 ;20H.2位为1时执行FUN2

JB 01H,MAIN ;备用

AJMP MAIN ;返回主程序MAIN

;

;************;

; 功能程序;

;************;

;第1种闪烁功能程序

FUN0: MOV A,#0FEH ;累加器赋初值

FUN00:MOV P1,A ;累加器值送至P1口

LCALL DL05S ;延时

JNB ACC.7,MAIN ;累加器最高位为0时转MAIN

RL A ;累加器A中数据循环左移1位

AJMP FUN00 ;转FUN00循环

;

;第2种闪烁功能程序

FUN1:MOV A,#0FEH ;累加器赋初值

FUN11:MOV P1,A ;累加器值送至P1口

LCALL DL05S ;延时

JZ MAIN ;A为0转MAIN

RL A ;累加器A中数据循环左移1位

ANL A,P1 ;A同P1口值相与

AJMP FUN11 ;转FUN11循环

;

; 第3种闪烁功能程序

FUN2:MOV A,#0AAH ;累加器赋初值

MOV P1,A ;累加器值送至P1口

LCALL DL05S ;延时

CPL A ;A中各位取反

MOV P1,A ;累加器值送至P1口

LCALL DL05S ;延时

AJMP MAIN ;转MAIN

;************;

; 扫键程序;

;************;

;

KEYWORK:MOV P3,#0FFH ;置P3口为输入状态

JNB P3.0,KEY0 ;读P3.0口,若为0转KEY0

JNB P3.2,KEY2 ;读P3.2口,若为0转KEY2

JNB P3.3,KEY3 ;读P3.3口,若为0转KEY3

RET ;子程序返回

;

;闪烁功能0键处理程序

KEY0:LCALL DL10MS ;延时10毫秒消抖

JB P3.0,OUT0 ;P3.0为1,子程序返回(干扰)

SETB 00H ;20H.0位置1(执行闪烁功能1标志)CLR 01H ;20H.1位清0

CLR 02H ;20H.2位清0

CLR 03H ;20H.3位清0

OUT0:RET ;子程序返回

;闪烁功能2键处理程序

KEY2:LCALL DL10MS

JB P3.2,OUT2

SETB 02H ;20H.2位置1(执行闪烁功能2标志)

CLR 01H

CLR 00H

CLR 03H

OUT2:RET

;

;闪烁功能3键处理程序

KEY3:LCALL DL10MS

JB P3.3,OUT3

SETB 03H ;20H.3位置1(执行3闪烁功能标志)

CLR 01H

CLR 02H

CLR 00H

OUT3:RET

;

;************;

; 延时程序;

;************;

;0.5毫秒延时子程序,执行一次时间为513微秒

DL512:MOV R2,#0FFH

LOOP1: DJNZ R2,LOOP1

RET

;

;10毫秒延时子程序(调用20次0.5毫秒延时子程序)

DL10MS:MOV R3,#14H

LOOP2: LCALL DL512

DJNZ R3,LOOP2

RET

;

;延时子程序,改变R4寄存器初值可改变闪烁的快慢(时间为79×25毫秒)DL05S:MOV R4,#4FH

LOOP3: LCALL DL25MS

DJNZ R4,LOOP3

RET

;

;25毫秒延时子程序,用调用扫键子程序延时,可快速读出功能按键值

DL25MS:MOV R5,#0FFH

LOOP4:LCALL KEYWORK

DJNZ R5,LOOP4

RET

END ;程序结束

闪烁灯控制系统

闪 烁 灯 控 制 系 统 河南工院 院系:电气工程系 班级:电气1001 指导教师:赵阳

第1章概述 (3) 1.1设计的目的及意义 (3) 1.2单片机的概述与应用 (3) 第2章设计原理 (4) 2.1设计要求与基本思路 (4) 2.2设计方案选择 (5) 2.3设计框图 (5) 第3章硬件电路设计 (7) 3.1时钟电路 (7) 3.2扩展电路 (8) 第4章程序设计 (9) 4.1 程序设计思路与流程图 (9) 4.2程序清单与代码 (11) 4.3程序调试 (12) 第5章原件明细表 (13) 总结 (14) 参考文献 (15)

第1章概论 ? 1.1设计的目的与意义 随着单片机的问世和飞速发展,掀起了计算机工程应用的一场新革命,使计算机控制技术广泛的应用于工业控制系统、自动测试系统、数据采集系统、智能仪表、智能家电以及各类功能模块等广泛领域,它已经成为实现许多控制系统的常规性工具。本次的课程设计使我们把所学的知识和实践结合起来,是对平时学习成果的检验,使我们对所学的单片机知识有了系统全面的理解和认识,锻炼了我们查阅资料和设计开发的初步能力,为以后的学习和工作奠定了基础。 竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。 (4)商用产品:如自动售货机、电子收款机、电子秤。

单灯闪烁程序

实验一单灯闪烁实验 一、实验要求 发光二极管按照设定的时间间隔闪烁。 二、实验目的 1、了解单片机内部结构和最小系统。 2、掌握单片机与LED的硬件连接。 3、掌握单片机C51语言的程序框架。 4、了解Keil软件和Proteus软件的使用。 5、参考电路图一般最小系统 包括单片机、电源、时钟 电路、复位电路四部分。 根据编写的程序P1.0 口 接发光二极管。

三、实验说明 Proteus仿真时注意与LED连接的电阻阻值,若阻值过大LED 将没有反应。编写程序时,注意for语句于简单延时语句的运用。 四、实验框图 五、实验程序 ORG 0 START: CLR P1.0 LCALL DELAY

SETB P1.0 LCALL DELAY LJMP START DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET END

实验二LED流水灯实验 一、实验要求 编写一段流水灯控制程序,用P1 口作为输出控制端,实现八只发光二极管从左至右循环亮灭。 二、实验目的 1、进一步熟悉keil仿真软件、proteus仿真软件的使用。 2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。 3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。。

三、参考电路图复位电路、时钟电路的基础连线。P1端口分 别连接八只发光二极管。 四、实验说明编写程序时注意对延时子程序的使用,以及了解 _crol函数的使用。 unsigned char _crol_(unsigned char c,unsigned char b); 描述: 将字符c循环左移b位。_crol_函数有返回值,返回的是将c循环左移之后 的值。这是c51库自带函数,包含在intrins.h文件中。五、实验框图

点亮P1口的多个LED灯闪烁

点亮P1口的多个LED灯闪烁 功能:点亮P1口的多个LED灯闪烁 该程序是单片机学习中最简单最基础的, 通过程序了解如何控制端口的高低电平 ------------------------------------------------*/ #include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit LED0=P1^0;// 用sbit 关键字定义LED到P1.0端口,LED是自己任意定义且容易记忆的符号 sbit LED1=P1^1; sbit LED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; sbit LED6=P1^6; sbit LED7=P1^7; void Delay(unsigned int t); //函数声明 /*------------------------------------------------ 主函数 ------------------------------------------------*/ void main (void) { //此方法使用bit位对单个端口赋值 unsigned char i; //定义一个无符号字符型局部变量i 取值范围0~255 while (1) //主循环 { for(i=0;i<10;i++) //加入for循环,表明for循环大括号中 //的程序循环执行10次 { LED0=0; //将P1.0口赋值0,对外输出低电平 LED2=1; LED4=0; Delay(5000); //调用延时程序;更改延时数字可以更改延时长度; //用于改变闪烁频率 LED0=1; //将P1.0口赋值1,对外输出高电平 LED2=0; LED4=1; Delay(5000); } for(i=0;i<10;i++)

用C语言编写程序实现通过按键使LED灯周期闪烁

用C语言编写程序实现通过按键使LED灯周期闪烁(2010-02-24 21:12:44)标签: 循环闪烁周期led灯按键杂谈 一、设计题目 二、程序功能: 开机复位后,LED0到LED7全部点亮,所有LEDPort持续2S后熄灭,然后等待按键,按0键LED7以 0.8S周期闪烁,按1键LEDPort以1S周期闪烁。 三、总体设计思想 用中断方式实现定时器的定时,然后通过键盘中断程序实现通过对按键的操作来实现相应的周期闪烁。 在我编写的实验程序中我用到了定时器中断和外部中断。程序共分为两个模块,一个为定时器模块,一个为键盘中断程序模块,在主函数中,首先实现所有LEDPort点亮,然后通过中断方式实现定时2S,在定时器num==20时,设定全局变量为标志位flag=1,然后再主函数中设定条件,通过标志位的变化实现所有LEDPort持续2S后熄灭。然后进入循环,等待按键,在按键中断服务程序中使用switch语句实现通过改变num1的值来实现LED7的闪烁周期。设定标志位b=0,在主函数中使用if语句通过判断b的值来改变LED7的亮灭情况,同时相应的b值会取反。 四、程序具体实现 实验要求开机复位后,LED0到LED7全部点亮2S后熄灭。在主函数中使用LEDPort=0x00;这条语句实现所有灯都亮,使用中断方式实现定时器定时2S,因为实验要求20ms溢出,所以设定num=100,在定时器中断服务程序中使用if语句判断条件,当num加到100,也就是说2S时间到时,执行flag=1;语句(先设定全局变量flag=0)。然后在主函数中使用while语句规定只有在flag=0时才执行所有LEDPort点亮的操作。2S时间到后,所有灯熄灭。然后进入while循环,

闪烁警示灯电路的设计

东北石油大学课程设计 2015年3月13日

东北石油大学课程设计任务书 课程光电检测技术 题目闪烁警示灯电路的设计 专业电子科学与技术姓名学号 主要内容: 应用Y976报警专用集成电路,光敏电阻等电子原器件,设计一当夜幕来临时,它能驱动红色警示灯闪闪发光,以起到告警指示作用。 基本要求: 1)研究Y976报警专用集成电路,光敏电阻的功能特性。 2)设计闪烁警示灯电路的功能框图。 3)设计光电检测电路、音频电路、信号控制电路 4)设计5伏直流电源电路。 5)调试安装。 6)完成课程设计总结报告。 主要参考资料: 1)陈有卿编著. 新颖集成电路制作精选[M].人民邮电出版社, 2005.4. 2) 陈振官,陈宏威等编著.光电子电路制作实例[M]. 2006.4. 3) 黄继昌等编著.检测专用集成电路及应用[M]. 2006.10. 完成期限 2015.3.9~2015.3.13 指导教师 专业负责人 2015年3月6日

第1章概述 随着改革开放的发展,电子电器也得到了飞速的发展。人们生活水平有很大提高。各种电器生活用品如:电动自行车、摩托车、汽车等贵重东西也为许多家庭所拥有。警示灯在我们日常生活中用处非常广泛,例如:警示灯一般用在维护道路安全,通常是用在警车﹑工程车、消防车﹑急救车﹑防范管理车﹑道路维修车﹑牵引车﹑紧急A/S车、机械设备等开发。然而,这时候,一些不法分子也越来越多。人们的安全意识还依然很淡薄,导致了许多严重的事故。因此,为了减少这样的事情发生,人们便发明了示警闪光灯,提示人们道路上注意安全,因此减少了许多不该发生的事故。随着科技的进步闪烁警示灯也将更加广泛的应用与推广。 1.1 闪烁警示灯的介绍、意义和作用 在我们日常生活中和工农业生产中,有好多情况下需要安装警示灯或标志灯以提醒人们注意。例如道路施工时,需在施工现场挂上红色安全警示灯以确保行人和行车的安全。高层建筑物的顶端按有关的规定必须设置红色警示灯以确保飞机安全飞行。为引起大家注意,在一般情况下,多采用红色的警示灯且最好能发出闪烁光。但有时后在某些情况下又不需要其工作比如某些大型的器物,白天很明显,只需在夜间提醒人们注意。 光源采用φ10mm四元素超高亮度发光二极管(LED),使用寿命≥10万小时;发光二极管角度在25-30°时光源饱满,使可视角度范围扩大;太阳能黄闪灯均采用单晶硅太阳能供电,蓄电池功率15W,电池充满电,可连续工作170个小时;所含LED的管粒为120粒,增加使用寿命和发光亮度,有较强的视觉冲击感,提醒司机、行人注意前方有危险;透光镜片的外表面采用倾斜面设计,能防止透光镜片积累灰尘; 外观为LED光源所设计,结构为超薄化,灯具厚度(φ400mm透光面的灯具为150mm);外壳采用聚碳酸酯(PC)材料一次注塑成型,密封采用硅橡胶密封件,防尘、防水、阻燃、抗老化,灯具外壳使用寿命≥10年。 一般情况下,警示灯是按车种和用处可以提供多样的长度的产品的,有灯罩组合的构造,需要时一边方向的灯罩可以组合复合颜色。此外,还可以根据光源形式的不同,分为:1灯泡转灯;2 LED闪光;3 氙气灯管频闪,其中LED闪光形式的是灯泡转灯形式的升级版,使用寿命更长,更节能,更低热! 由于人们越来越重视警示灯的作用,对它工作原理的掌握也变的越来越重要,所以本文主要介绍闪烁警示灯的主要原理,它的主要组成的部件的原理。

单片机闪烁灯跑马灯控制课程设计

闪烁灯跑马灯控制系统 河南工院

第1 章概述 1.1设计的目的及意义?????????????????????..3 1.2单片机的概述与应用????????????????????..3 第2 章设计原理??????????.. ??????????????4 2.1设计要求与基本思路??????.??????????????4 2.2设计方案选择?????.??????????????????5 2.3设计框图??????????. ?????????????5 第3 章硬件电路设计???????.. ??????????????7 3.1时钟电路???????????????????????.?.7 3.2扩展电路????????????????????????..8 第4 章程序设计???????????????????????9 4.1程序设计思路与流程图??..???????????????? (9) 4.2程序清单与代码???????????????????.?..?11 4.3程序调试??????????????????????.?.?12 第 5 章原件明细表????????????????????13 总结???????????????????????????????14 参考文献15

第1 章概论 1.1设计的目的与意义 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。 闪烁灯控制系统是利用8051单片机的P1控制的8 个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1 秒,如此循环,紧急情况下,控制P3.1 进行报警2S停止。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O 接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70 年代推出单片机以来,作为微型计算机的一个分支,单片机经过30 多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等 (1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。

8个LED灯循环闪烁课程设计

摘要 “微机原理与接口技术”是高等学校电子信息工程、通信工程、自动化、电气工程及其自动化等工科电气与电子信息类各专业的核心课程。该课程以INTER 8086微处理器和IBM PC系列微机为主要对象,系统。深入地介绍了微型计算机的基本组成、工作原理、接口技术及应用,把微机系统开发过程中用到的硬件技术和软件技术有机地结合起来。 本文详述了8个LED灯循环闪烁的课程设计。设置8个LED灯,首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。然后是2、4、6、8号LED 依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。 本课程设计,由于自身能力和学习水平有限,可能存在一定的错误和不当之处,敬请批评和指正。 一、设计目的 1.巩固和加深课堂所学知识;熟悉各种指令的应用及条件; 2.学习掌握一般的软硬件的设计方法和查阅、运用资料的能力; 3.进一步了解8255A各引脚的功能, 8255A和系统总线之间的连接, 8255A和CPU 之间的数据交换,以及8255A的内部逻辑结构。深入掌握8255A显示电路的基本功能及编程方法,8255等芯片的工作方式、作用。 4.培养和锻炼在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力。通过课程设计,要求熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。同时并了解综合问题的程序设计掌握实时处理程序的编制和调试方法,掌握一般的设计步骤和流程,使我们以后搞设计时逻辑更加清晰。 二、设计内容 根据所学内容和对8255A的应用,整个系统硬件采用8086微处理器和8255A可编程并行接口芯片和8个LED等连成硬件电路。设计8个LED灯,实现如下要求:首先是1、3、5、7号LED依次亮1秒钟,当7号LED亮后,这四个灯同时闪烁5下。然后是2、4、6、8号LED依次亮1秒钟,当8号LED亮后,这四个灯同时闪烁5下。 三、设计要求 使用8255A可编程接口芯片实现8个LED灯以十种不同的方式显示。画出硬件电路图,能在PROTEUS中模拟实现。

单片机8个闪烁灯控制

河南工业职业技术学院Henan Polytechnic Institute 单片机应用技术 课程设计说明书 题目:闪烁灯控制系统(6) 班级:电气1001班 姓名:张志海 学号:0401100136 指导教师:赵阳

第1章概述 1.1 设计的目的与意义 1)了解系统的工作原理。 2)掌握8051单片机的工作原理和应用。 3)通过课程设计培养学生自学能力和分析问题、解决问题的能力。 4)闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,增强制图能力以及查阅手册的能力和一定的文字表达能力。 5)通过设计使学生具有一定增强自我的动手、动脑能力,以及发现问题,解决问题。 1.2 单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器单片机应用系统是以单片机为核心,配以输入、输出、显示、控制等外围电路和软件,能实现一种或多种功能的实用系统。 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统等。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。 (4)商用产品:如自动售货机、电子收款机、电子秤。 (5)通信方面。用于调制解调器、程控交换技术以及各种通信设备。 (6)多机分布式系统。可用单片机构成分布式测控系统,它使单片机进入 了一个新的水平。

闪烁LED小灯的设计毕业设计论文 精品

学生姓名指导老师职称课题名称闪烁LED小灯的设计 课题工作内容 交通灯的硬件电路主要由单片机控制电路、数码管显示电路、时钟电路、LED显示电路、按键控制电路组成。主要实现: 1、交通灯指挥通行的实现:通过时钟电路、LED显示电路与数码管显示电路,实现通行灯的亮、灭与时间的显示。 2、特殊情况的处理实现:通过按键控制电路,实现发生交通事故与有救护车要紧急通行时的交通灯状况。 指标要求1、自动控制 2、显示时间 进程安排第一天:下达任务、了解课题要求、查阅资料;第二天:方案论证与确定,采购元器件; 第三天、第四天:硬件制作与调试; 第五天~第八天:软件设计与调试; 第九天:撰写报告; 第十天:作品掩饰与答辩考核。 主要参考文献《单片机原理及应用技术》范力旻电子工业出版社 《51系列单片机设计实例》楼然苗李光飞北航出版社 《单片机的C语言应用程序设计》马忠梅籍顺心北京航空航天大学出版社《51单片机应用开发案例精选》王为青邱文勋人民邮电出版社 《51系列单片机设计实例》楼然苗李广飞北京航空航天大学出版社《单片机原理与接口技术》胡汉才清华大学出版社 《单片机原理与应用》丁元杰机械工业出版社 地点起止日期2012.6.10~6.23

目录 第一章、设计目的 (1) 第二章、硬件设计 (1) 2.1单片机最小系统 (1) 2.1.1单片机 (1) 2.1.2震荡电路 (2) 2.1.3复位电路 (2) 2.2外接电路 (2) 2.2.1串行口扩展 (3) 2.2.2显示电路 (3) 2.2.3十字路口交通灯显示电路 (4) 第三章、软件设计及调试 (4) 3.1 流程图 (5) 3.2程序 (6) 3.2.1子程序 (9) 3.2.2延时子程序 (9) 3.2.3显示子程序 (10) 3.3软件调试结果与说明 (13) 第四章、实物调试 (13) 第五章、课程设计小结 (14) 附录A仿真 (16) 附录B系统程序 (21) 元件清单 (28)

单片机控制LED灯闪烁原理

一、电路图 二、原理 对于较长时间的定时,应采用复合定时的方法。这里使T/C0工作在定时器方式1,定时100ms,定时时间到后P1.0反相,即P1.0端输出周期200ms的方波脉冲。另设T/C1共作的计数器方式2,对T1输出的脉冲计数,当计数满5次时,定时1时间到,将P1.7端反相,改变灯的状态! 三、源程序 #include /*头文件的定义*/ sbit P1_0=P1^0; /* 定义p1.0端口*/ sbit P1_7=P1^7; timer0() interrupt 1 using 1 { /* 定时器0的中断服务程序*/ P1_0=!P1_0; /* P1.0取反*/ TH0=(65536-50000)/256; /* 赋高八位初值*/ TL0=(65536-50000)%256; /* 赋低八位初值*/ } timer1() interrupt 3 using 2 { /*定时器1中断服务程序*/ P1_7=!P1_7; /*p1.7取反*/ } main() { /*主函数*/ P1_7=0; /* 置灯初始灭*/ P1_0=1; /* 保证第一次反相便开始计数*/ TMOD=0x61; /* 定时器定时和计数*/ TH0=(65536-50000)/256; /* 赋初值*/ TL0=(65536-50000)%256; /* */ TH1=256-5; TL1=256-5; IP=0x08; /* 设置寄存器优先级*/ EA=1; /* CPU开中断*/ ET0=1; /* 开T/C0中断*/ ET1=1; /* 开T/C1中断*/ TR0=1; /* 启动T/C0 */ TR1=1; /* 启动T/C1 */ for(;;)/* */ { } } 四、Keil调试程序过程与结果: 1.新建一个项目

闪烁灯设计

1 引言 1. 1 课题简介 随着人们生活环境的不断改善和美化,在许多场合可以看到闪烁的彩灯。LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有单片机1-2部单片机。而个人电脑中也会有为数不少的单片机在工作。汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过PC 机和其他计算的总和,甚至比人类的数量还要多。 1. 2 设计目的 课程设计是培养和锻炼学生在学习完本门课后综合应用所学理论知识,解决实际工程设计和应用问题的能力的重要环节。通过课程设计,熟悉和掌握单片机系统的硬件设计的方法、原理、设计步骤。熟练掌握单片机系统与接口扩展电路的设计方法,熟练应用汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤。不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表达设计思想和结果的能力。 通过本次工程实践,运用单片机原理与接口技术所学知识及查阅相关资料,完成闪烁灯系统的设计,达到理论知识与实践更好结合、提高综合运用所学知识和设计能力的目的。

实验一LED灯闪烁

单片机小系统设计与制作实验报告 姓名:李文浩 学号:1423102 班级:14级电仪维 指导教师:陈雪莲

实验一八个LED灯闪烁 一、实验要求 仿照图1-1在Proteus中绘制一个基于AT89C51单片机控制八个LED灯进行闪烁。 现象: 八个LED灯闪烁,为黄灯; 图1-1 八个LED灯闪烁电路图 二、实验目的 (1)学会使用Proteus ISIS绘制硬件电路图,掌握加载程序和仿真运行等基本操作。 (2)掌握c语言里调用延时子程序的方法。 (3)掌握proteus的工程建立,仿真,调试。 (4)学会如何在Proteus ISIS上放置元件和连线。 (5)学会如何在Proteus ISIS加载目标代码。 三、实验步骤 1、在Proteus ISIS中设计硬件电路 (1)创建文件名“123”保存在对应的文件夹“E:\123"下。 (2)利用关键字或分类检索的方法将电路原理图中需要的元器件挑选至对象选择列表,主要元件可参照表1-1,然后依次选中在设计区单击,放入电路图。

(3)从模型选择工具栏的终端(Terminal)模型中将地线端子(Ground)和电源端子(Power)放置到电路中。 (4)连接电路原理图,可参考图1-1。 表1-1 (1)启动Keil uVision2软件,创建新工程:123,CPU选择Atmel 89C51。 (2)创建文件,以c为扩展名保存。 (3)执行“Source”菜单下的“Add”命令添加程序“123.c”。 (4)对工程的属性进行设置:目标属性中选择“生成HEX文件” (5)编写源程序,进行汇编/编译、调试。 3、仿真运行 启动Proteus ISIS,打开电路图“123.DSN”,单片机属性中选择目标文件123.HEX,然后进行仿真运行,操作电路中的开关,观察运行结果。 4、程序 #include void delay(unsigned char x); void main() { while(1) { P1=0; delay(1000); P1=0xff; delay(1000); } } void delay(unsigned char x) { unsigned char t;while(x--) for(t=0;t<255;t++); }

led闪烁小灯(汇编)

摘要 介绍一种LED小灯控制系统的设计方法,以AT-89C52单片机作为主控核心,与按键、排阻、电阻、电容等较少的辅助硬件电路相结合,利用软件实现对LED灯进行控制。本系统具有体积小、硬件少、电路结构简单及容易操作等优点。能够通过按键控制8个led小灯轮流点亮、逐点点亮、间隔点亮、来回点亮、两边向中间同时点亮。广泛应用于城市景观、风景名胜、道路桥梁、建筑轮廓、娱乐场所、户外广告、室内装饰等美化、亮化工程。 关键词:LED流水灯,AT89C52单片机,led流水灯,模块设计,流程图

目录 设计要求 (1) 1 方案论证与对比 (1) 1.1 方案一 (2) 1.2 方案二 (2) 1.3 方案三 (3) 1.4 方案对比与选择 (5) 2 单元电路设计与计算 (5) 2.1 放大电路的设计 (6) 2.2 整形电路的设计 ........................................................................ 错误!未定义书签。 2.3 分频电路的设计 ........................................................................ 错误!未定义书签。 2.4 分频控制电路设计 (6) 3 系统软件工作流程图 (8) 3.1 多周期同步测量原理及误差分析 (8) 3.2 系统工作流程 ............................................................................ 错误!未定义书签。 4 系统功能测试与整体指标 .................................................................. 错误!未定义书签。 5 详细仪器清单 (10) 6 总结与思考及致谢 (12) 参考文献 (13) 附录一:放大整形分频控制电路PCB板 (14) 附录二:74HC390分频电路PCB板图 (15) 附录三:程序 (16)

LED灯闪烁控制

太原理工大学 单片机原理与应用技术课程实验报告 专业班级 学号 姓名 指导教师

LED 灯闪烁控制 一、实验目的 (1)掌握C语言、汇编语言编写单片机控制程序的方法; (2)掌握使用Keil C软件编写、编译、调试程序的方法; (3)掌握使用Proteus软件绘制电路原理图、硬件仿真和程序调试; (4)理解LED灯控制电路原理和延时程序的编写。 二、实验硬件和软件 计算机1台,并安装Proteus软件和Keil C51软件。 三、实验任务 在单片机I/O口上外接一个发光二极管LED,通过程序实现LED闪烁显示,即不停地一亮一灭,亮、灭持续时间均为0.2秒。 四、实验电路及分析 实验电路如图所示,在P1.7口(也可选择其它端口)外接一个发光二极管D1,分析可知P1.7输出“0”时,D1点亮,P1.7输出“1”时D1熄灭。 LED 灯闪烁控制电路图

五、实验程序编写 1.程序编写 (1)C语言程序 #include sbit D1=P1^7; void Delayms(unsigned int n) { unsigned int i, j; for(j=n; j>0;j--) for(i=112; i>0; i--); } int main( ) { while(1) { D1=0; Delayms(200); D1=1; Delayms(200); } } (2)程序流程图

六、实验步骤 1.利用Proteus软件绘制仿真电路图 (1)打开Proteus软件,File→New Project进入工程创建向导,选择项目文件存放路径,项目文件名为“实验1.pdsprj”。 (2)创建原理图(schematic),默认模板为default,可根据电路规模选择合适的图纸大小。 (3)选择“Do not create a PCB layout”,即不绘制PCB图。 (4)选择第一项“No Firmware Project”,即不在Proteus平台下创建源程序。需要在Keil C环境下编写源程序并成功编译生成hex文件,然后加载到Proteus 仿真电路的单片机上。 (5)工程创建向导结束,配置情况确认。 (6)点击“P”按钮在器件库中搜索并添加电路中所需要的器件。 (7)根据电路图将器件放置到绘图区并合理布局,右键单击器件弹出快捷菜单,可以进行旋转、镜像、修改参数(如电容、电阻大小、晶振频率)等操作,双击器件也可以打开参数设置对话框,例如电容C1的设置对话框,将电容参数设置为30pF。

节日小彩灯控制电路设计

课程设计报告题目:节日小彩灯控制电路设计 课程名称:电子技术课程设计 学生姓名: 学生学号: 年级:2014 专业:通信工程 班级: 指导教师: 电子工程学院制 2016年3月

节日小彩灯控制电路设计 前言 在现代日常生活中,美丽、可爱的小彩灯越来越多的成为人们生活中的装饰品,被用于很多情况中,比如娱乐场所或是用于各式各样的电子玩具等等,不仅能美化环境、渲染气氛,还可以供人们娱乐,下面就开始彩灯控制器电路的设计。 1课程设计的任务与要求 1.1 课程设计的任务 采用555、74HC163和74LS154作为控制器,LED作为彩灯制作十六路循环彩灯。 1.2 课程设计的要求 综合运用已学习过模拟电路和数字电路等知识,阅读相关集成电路芯片资料和相关文献,了解电子电路设计的有关知识,方法和特点,掌握基本的电子电路设计和芯片使用方法。 2节日小彩灯控制电路方案制定 2.1 方案原理 本课程设计由555构成多谐振荡器来产生方波脉冲,让74LS191加减计数器计数,74LS154来进行译码,使得LED灯的亮灭。 2.2 节日小彩灯控制电路设计设计的技术方案

图1 控制电路设计流程图 3 节日小彩灯控制电路设计方案实施 3.1 单元模块功能及电路设计 (1)555时序电路 在这次课程设计中,555定时器用来产生脉冲信号。因此把555定时器接成多谐震荡器。R2、R3、C1.C2为定时元件。 图2 555多谐振荡器 (2)74LS191计数部分

因为在试验中需要一个16进制的计数器,因此采用74LS191加减计数器。我们可以改变计数器的加减来控制LED亮灭的方向。置数端A、B、C、D分别置0。4脚接地11脚为异步置数控制端,高电平有效,接高电平。14脚接脉冲信号,同555定时器的OUT脚向接。通过单刀双掷开关来控制74LS191计数器的加减。 图3 74LS191计数器 (3)74LS154译码电路与LED显示部分 74LS154为1—16线译码器,有16个输出端,实验中需要的就是十六输出的译码器。四个输入端分别同74LS191计数器的QA、QB、QC、QD相接。通过改变QA、QB、QC、QD与四个输入端的连接方式来控制LED,因为74LS154译码器输出端低电平有效,所以LED显示部分采用共阳极接法,负极分别接在74LS154的输出端上。 4LS154译码电路与LED显示部分的电路图如下:

51单片机:LED灯亮灯灭程序设计

1.功能说明:控制单片机P1端口输出,使位所接的LED点亮,其他7只灯熄灭。程序: 01: MOV A , #B ; 存入欲显示灯的位置数据 02: MOV P1, A ; 点亮第一只灯 03: JMP $ ; 保持当前的输出状态 04: END ; 程序结束 2.功能说明:单片机P1端口接8只LED,点亮第1、3、4、6、7、8只灯。 程序: 01:START: MOV A , #00010010B ; 存入欲显示灯的位置数据 02: MOV P1, A ; 点亮灯 03: JMP START ; 重新设定显示值 04: END ; 程序结束 3.功能说明:单片机P1端口接8只LED,每次点亮一只,向左移动点亮,重复循环。 程序: 01: START: MOV R0, #8 ;设左移8次 02: MOV A, #B ;存入开始点亮灯位置 03: LOOP: MOV P1, A ;传送到P1并输出 04: RL A ;左移一位 05: DJNZ R0, LOOP ;判断移动次数 06: JMP START ;重新设定显示值 07: END ;程序结束 4.功能说明:单片机P1端口接8只LED,每次点亮一只,向右移动点亮,重复循环。 程序: 01: START: MOV R0, #8 ;设右移8次 02: MOV A, #01111111B ;存入开始点亮灯位置

03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序 05: RR A ;右移一位 06: DJNZ R0, LOOP ;判断移动次数 07: JMP START ;重新设定显示值 08: DELAY: MOV R5,#50 ; 09: DLY1: MOV R6,#100 ; 10: DLY2: MOV R7,#100 ; 11: DJNZ R7,$ ; 12: DJNZ R6,DLY2 ; 13: DJNZ R5,DLY1 ; 14: RET ;子程序返回 15: END ;程序结束 5.功能说明:单片机P1端口接8只LED,每次点亮一只,先把右边的第一只点亮,秒后点亮右数的第二只灯,第一只熄灭,再过秒点亮右数的第三只灯,第二只熄灭,…亮灯按此顺序由右向左移动。当亮灯移到左侧后,开始与上述反方向移动,即亮灯由左向右移动,重复循环。 程序: 01: START: MOV R0, #8 ;设左移8次 02: MOV A,#0FEH ;存入开始亮灯位置 03: LOOP: MOV P1, A ;传送到P1并输出 04: ACALL DELAY ;调延时子程序 05: RL A ;左移一位 06: DJNZ R0, LOOP ;判断移动次数 07: MOV R1, #8 ;设右移8次 08; LOOP1: RR A ;右移一位 09: MOV P1, A ;传送到P1并输出

单片机闪烁灯跑马灯控制课程设计

闪 烁 灯 跑 马 灯 控 制 系 统 河南工院

第1章概述 (3) 1.1设计的目的及意义 (3) 1.2单片机的概述与应用 (3) 第2章设计原理 (4) 2.1设计要求与基本思路 (4) 2.2设计方案选择 (5) 2.3设计框图 (5) 第3章硬件电路设计 (7) 3.1时钟电路 (7) 3.2扩展电路 (8) 第4章程序设计 (9) 4.1 程序设计思路与流程图 (9) 4.2程序清单与代码 (11) 4.3程序调试 (12) 第5章原件明细表 (13) 总结 (14) 参考文献 (15)

第1章概论 1.1设计的目的与意义 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。 竞争日益剧烈的今天,当代大学生不仅需要扎实的理论知识,还需要过硬的动手能力。作为自动化专业的学生,更应该熟练掌握各种电路编辑软件,作为专业必需的技能更要及时地对这一类软件的更新版本进行学习,其日趋强大的功能是对我们专业技能的补充。 闪烁灯控制系统是利用8051单片机的P1控制的8个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭1秒,如此循环,紧急情况下,控制P3.1进行报警2S停止。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。 (4)商用产品:如自动售货机、电子收款机、电子秤。

Arduino入门教程(2)—LED灯闪烁

Arduino 入门教程(2)—LED 灯闪烁 回顾一下 Lesson 1 的内容,我简单分了以下几点: 了解 Arduino 软件编辑环境-- Arduino IDE 如何通过 Arduino IDE 下载一个 Blink 程序 "//" 和"/*...*/"的含义 setup()和 loop()函数的重要性及作用 pinMode(pin,mode)函数 digitalWrite(pin,value)函数 delay(ms)函数 开始新的一课! 这次我们还是同样要用 Blink 程序,有所不同的是,这里我们需要外接一个 LED 到数字引脚,而不是使用焊在 Arduino 板上的 LED 13(也就是“L”灯)。便于我们能清晰的认识 LED 的工作原理及一些硬件电路的搭建。 STEP 1:需要准备的东西: 1 ×DFduino UNO R3(以及配套 USB 数据线)

STEP 2:硬件连接 首先,从我们的套件中取出 Prototype shield 扩展板和面包板,将面包板背面的双面胶歇下,粘贴到 Prototype shield 扩展板上。再取出 UNO,把贴有面包板 Prototype shield 扩展板插到 UNO 上。取出所有元件,按照下图连接。

图中的蓝色与红色的线用彩色面包线连接,使用面包板上其他孔也没关系,只要元件和线的连接顺序与上图保持一致即可。 确保 LED 连接是否正确的,LED 长脚为+,短脚为-,完成连接后,给 Arduino 接上 USB 数据线,供电,准备下载程序。 STEP 3:输入代码 打开 Arduino IDE,在编辑框中输入样例代码 1-1 所示代码。(输入代码也是一种学习编程的过程,虽然提供代码的压缩包,但还是建议初学者自己输入代码,亲身体验一下。) 样例代码1-1: 1. 3. 描述:LED 每隔一秒交替亮灭一次 5. int ledPin = 10; 6. void setup() { 8. } 9. void loop() { 14. } 15. 输入完毕后,点击 IDE 的“校验(Verify)”,查看输入代码是否通过编译。如果显示没有错误,单击“下载(UpLoad)”,给 Arduino 下载代码。以上每一步都完成了的话,你应该可以看到面包板上的红色 LED 每隔一秒交替亮灭一次。

相关文档