文档视界 最新最全的文档下载
当前位置:文档视界 › 基于单片机控制LED灯亮度调节 邓宇锋(修改)

基于单片机控制LED灯亮度调节 邓宇锋(修改)

基于单片机控制LED灯亮度调节 邓宇锋(修改)
基于单片机控制LED灯亮度调节 邓宇锋(修改)

基于单片机控制LED灯智能亮度调节

系部:机电工程系

学生姓名:邓宇锋

专业班级:电气 11C3 班

学号:111041306

指导教师:茅阳

2014年3月10日

声明

本人所呈交的基于单片机控制LED灯亮度调节,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。

作者签名:

日期: 2014年3月10日

摘要

本文介绍LED灯智能亮度调节驱动电路设计,智能照明控制系统在确保灯具能够正常工作的条件下,给灯具输出一个最佳的照明功率,既可减少由于过压所造成的照明眩光,使灯光所发出的光线更加柔和,照明分布更加均匀,又可大幅度节省电能,智能照明控制系统节电率可达20%-40%。智能照明控制系统它可在照明及混合电路中使用,适应性强,能在各种恶劣的电网环境和复杂的负载情况下连续稳定地工作,同时还将有效地延长灯具寿命和减少维护成本。

【关键词】:智能控制;LED;智能光补

目录

引言 (1)

一、智能的概述 (2)

(一)智能的定义 (2)

(二)智能的分类 (2)

二、LED发光二极管的认识 (2)

(一)LED的构造 (2)

(二) LED的发光原理 (3)

(三)LED的优势 (3)

三、LED亮度控制系统 (3)

(一)脉冲宽度调制 (3)

(二)调制LED的驱动电流 (3)

(三)线性调光法 (3)

四、单片机及程序设计 (3)

(一)概述 (4)

(二)单片机STC89C51芯片简介 (4)

(三)程序 (7)

此套控制分主程序与子程序,截取主程序代码在附件中。 (7)

五、控制系统电路设计 (7)

(一)LED驱动电路 (7)

(二)光电传感器的选择 (8)

(三)电气原理图 (9)

六、实物调试 (9)

总结 (1)

参考文献 (2)

谢辞 (3)

附件 (4)

引言

智能一词最早出现在手机上,早在2001年,世界著名手机制造商诺基亚就发布了搭载塞班系统的智能手机。当时掀起一股智能热,人们纷纷感叹道科技的力量,能将之前的“大哥大”,做的如此小,并且功能也更加丰富。2007年苹果公司发布iPhone手机更是将智能科技推向潮流。到现在2014年,科学家们将智能科技带入人们生活的步伐从来没有停止过。我却在使用智能手机的过程中发现,智能手机的屏幕会随着外界环境亮度改变而改变,已达到节能的作用。我想利用把这一技术用在灯光只能控制下,让灯光能随着外界的变化而变化,始终给人们一个舒适的光照,来达到护眼的目的。

一、智能的概述

(一)智能的定义

智能及智能的本质是古今中外许多哲学家、脑科学家一直在努力探索和研究的问题,但至今仍然没有完全了解,以致智能的发生与物质的本质、宇宙的起源、生命的本质一起被列为自然界四大奥秘。

近些年来,随着脑科学、神经心理学等研究的进展,人们对人脑的结构和功能有了初步认识,但对整个神经系统的内部结构和作用机制,特别是脑的功能原理还没有认识清楚,有待进一步的探索。因此,很难对智能给出确切的定义。而在仿生和模拟、超级计算机方面也有其特定含义。

(二)智能的分类

根据霍华德·加德纳的多元智能理论,人类的智能可以分成七个范畴:1.语言(Verbal/Linguistic) 2.逻辑(Logical/Mathematical) 3.空间(Visual/Spatial) 4.肢体运作(Bodily/Kinesthetic) 5.音乐(Musical/Rhythmic) 6.人际(Inter-personal/Social) 7.内省(Intra-personal/Introspective)

二、LED发光二极管的认识

(一)LED的构造

发光二极管简称为LED。如图2-1,由镓(Ga)与砷(As)、磷(P)、氮(N)、铟(In)的化合物制成的二极管,当电子与空穴复合时能辐射出可见光,因而可以用来制成发光二极管。在电路及仪器中作为指示灯,或者组成文字或数字显示。磷砷化镓二极管发红光,磷化镓二极管发绿光,碳化硅二极管发黄光,铟镓氮二极管发蓝光。

图2-1

(二)LED的发光原理

LED是一种能发光的半导体电子元件,可以把电能转化为光能。发光二极管是由

一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,从P区注入到

N区的空穴和由N区注入到P区的电子,在PN结附近与N区的电子与P区的空穴复

合,产生自发辐射的荧光。

(三)LED的优势

由于LED只能往一个方向导通,当电流流过时发光,这叫做电致发光效应。具有寿

命长、不易破损、能耗低和体积小等优点,所以我将LED作为教室光源的主要材料。

三、LED亮度控制系统

控制LED灯管亮度是我此次毕业设计的核心内容,目前为止,控制LED灯管亮度的方法有以下几种

(一)脉冲宽度调制

经过调节使驱动电流呈方波状,其脉冲宽度可变,经过对脉冲宽度的调制转变为调

制LED灯管连续点亮的时间,也同时转变了输入功率,从而到达节能、调光的目标。

频率跟平常一样大概在200Hz~10KHz。因为人的眼睛视觉的滞后性,不会感觉得到光

源在调光过程中产生的闪耀现象。能改善LED的散热性能,缺陷是驱动电流的过冲对

LED芯片的寿命肯定有一定的影响。

该方法很有效,但是,相对一个被测物需进行两次耐压测试,增加了接触时间。

(二)调制LED的驱动电流

由于LED芯片的亮度与LED驱动电流成一定的比例关系,我们调节LED驱动电流就

可以控制LED灯管的明暗。

(三)线性调光法

当驱动电流线性增长或减小时,减小了驱动电流过冲过程中对LED芯片寿命的影

响,而且调光电路的抗滋扰性较强。

以上介绍了三种方法,我最能够理解的是第二种通过调制LED的驱动电流来调节,

但后来我查阅了一些资料,发现通过调节LED驱动电流来达到调节LED亮度会造成能耗

过大且这不是一种常用的方法,而通过调节脉冲宽度则是一种比较好的选择。

四、单片机及程序设计

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的

中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时

器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转

换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领

域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高

速单片机。

(一)概述

单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器、控制器、存储器、输入输出设备构成,相当于一个微型的计算机(最小系统),和计算机相比,单片机缺少了外围设备等。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。

由于单片机在工业控制领域的广泛应用,单片机由仅有CPU的专用处理器芯片发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。

INTEL的8080是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到现在,基于8051的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。

现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量远远超过PC机和其他计算机的总和。

(二)单片机STC89C51芯片简介

图4-1

这是一个新的美国微控制器。它包含闪存,SRAM,UART,SPI,PWM模块。

1.STC89C51参数如下:

1)机器T:为6时钟,普通型:为12时钟;

2)工作频率范围:0~40.1MHZ,相当于普通8051的0~80.2MHZ;

3)STC89C51RC对应Flash空间:4KB;

4)RAM:512B;

5)定时器\计数器:3个16位;

6)UART:1个;

7)中断源:8个;

8)有ISP\IAP:无需专用编程器\仿真器;

9)通用I\O口:32\36个;

10)工作电压:3.8~5.5V;

2.STC89C51单片机的引脚说明:

VCC:供电电压。

GND:接地。

P0口:是一个8位双向I/O口,吸收8TTL门电流。当销是第一个写一个P1端口被认为是一个高阻抗输入。

P1口:写一个P1,然后拉高,P1口作为输入,下拉,输出。

P2口:P2口是8位双向I / O端口,端口时写的P2为1,该引脚被拉高内阻,作为一个输入。

P3口:P3是8双向I / O,四个TTL门接收输出电流。

RST:用作外部数据存储器时,会有一个脉冲跳过去的,这时至零就可以吧他禁止了,这时用作外部存储。

/PSEN:外部程序存储器选。从外部程序存储器中读取有效期/PSEN过两次机器周期。

/EA/VPP:当/ EA仍然较低,在这一时期0000h-ffffh,在FLASH编程期间,此引脚12V加。

XTAL1:反着输入就是本身的震荡,其实是运算了放大输入。

XTAL2:反向振荡器的输出。

3.STC89C51单片机最小系统:

最小系统是由单片机及电源、时钟、复位等部件,才能使单片机一直保持正常的运行状态。单片机运行、时钟等电路,应用程序的核心部分,可能是系统的最小的一部分,它的内存可扩展,A/D扩展,使单片机可以完成更复杂的功能。

STC89C51单片机包含ROM / EPROM芯片,所以这是最小的系统是简单的﹑最可靠。当使用它时,就会变成单片机最小的系统,只要它连接电路时,如图4-2所示,由于一

体化的限制,而这只能用于一些小的控制单元。

图4-2

1) 时钟电路

STC89C51单片机时钟信号通常是两个方面:第一,内部时钟模式,第二,外部时钟模式。在单片机STC89C51内部振荡电路,只要单片机XTAL1和XTAL2引脚的外部晶体,构成自激振荡器,产生内部时钟信号单片机。内部时钟方式如图4-3所示。

图4-3

2) 复位电路

当采用STC89C51单片机RST引脚保持高和两个机器周期,执行控制器内部复位操作(如继续保持高水平,单片机是周期复位状态)。两种方法通常是复位电路复位和复位按钮自动电源。复位电路最简单的自动断电自动复位电力电容器的充电和放电的外部复位电路。只要VCC小于2ms的上升时间,它会自动电源关闭。本设计是手动复位的关键。

4.STC89C51中断技术概述

中断技术主要用于实时监测和单片机控制的要求进行中断的服务请求及时响应请求的源,并迅速作出反应并及时处理。这是由中断系统芯片实现引起的。当中断请求源发送中断请求,单片机程序中止了,去中断服务请求中断服务处理。图4-4为整个中断响应和处理过程。

图4-4

如果不中断系统的微控制器,微控制器可能会浪费很多时间去检查是否有一个服务请求时在一个常规的查询。采用中断技术,就能除去了单片机等现象在查询的模式上,很好的提高了的效率。

(三)程序

此套控制分主程序与子程序,截取主程序代码在附件中。

五、控制系统电路设计

要实现LED灯亮度的智能自动控制,就需要在前期给他输入一个适合人类的亮度的数值,以及一个外界光照传感器来对这个控制系统进行一个时时的反馈。微处理器通过对传感器穿来数值的分析和计算,计算出LED灯应该提供多少亮度的光照补偿,进行补偿后,再由传感器将数据传回,再分析,再计算……如此循环反复,已达到一个时时监

控和将亮度维持的效果。流程图如图5-1所示

图5-1

因为限制的因素较多,我无法完全模拟出,实际的智能亮度自动控制。所以,我只能把模拟的现象缩小,模拟出一个灯光随外部环境自动调节的过程。

(一)LED驱动电路

LED的驱动电路我选择的是PT4115。PT4115采用SOT89-5封装和ESOP8封装。PT4115是一款连续电感电流导通模式的降压恒流源,用于驱动一颗或多颗串联LED。

PT4115输出电流可调,最大可达1.2安培。根据不同的输入电压和外部器件,PT4115可以驱动高达数十瓦的LED。PT4115内置功率开关,采用高端电流采样设置LED平均电流,并通过DIM引脚可以接受模拟调光和很宽范围的PWM调光。当DIM的电压低于0.3伏时,功率开关关断,PT4115进入极低工作电流的待机状态。

PT4115特点:

1:电感越大,工作频率越低,恒流效果越好。

2:输出电流越大,需要电感值越小。电感选择方便。

3:输出电压越高,效率越高,3 颗1W 串联比1 颗3W效率高。

4:内部含有过温保护功能,外部可设计过温保护电路,对LED有双重保护。

驱动电路如图5-2

图5-2

(二)光电传感器的选择

由于处理的光电转换的过程及数据很复杂,所以一般的光敏电阻已经无法满足要求,所以我用了数字光强度检测模块GY-30。如图5-3

图5-3

(三)电气原理图

由于LED的单向导通性,把它直接接在民用的220V交流电上就会出现频闪现象,这样就和现在传统的照明灯具一样了,失去了一个护眼的作用。因此,在LED的驱动电路中需要加入桥式整流。

LED 驱动电路除了要满足安全要求外,另外的基本功能应有两个方面,一是尽可能保持恒流特性,尤其在电源电压发生±15%的变动时,仍应能保持输出电流在±10%的范围内变动。二是驱动电路应保持较低的自身功耗,这样才能使LED 的系统效率保持在较高水平。整个LED灯智能亮度调节系统如图5-5

图5-5

六、实物调试

实物调试下来无问题,基本满足要求。光强能够智能调节,且整个系统稳定。

总结

现在中国学生的学习压力越来越大,用眼压力也很大,看书学习成为了他们每天必不可少的一项生活习惯。但不合理的光照使得用眼压力更加重,所以这套LED灯智能亮度调节系统能时时给人眼最舒适的光照,从而缓解用眼压力。

通过这次毕业设计使我深刻的明白了一个道理,书到用时方恨少。想不到我这一小小的控制系统也涉及了许多方面的内容。为了做这套系统,我翻阅了不少的书籍,在网上也差了不少的资料,后来在我指导老师的帮助下完成了这套设计。通过这次设计也使我开始喜欢上了单片机和编程,能通过简单的编程给冷冰冰的机器带来生命。以后我会继续学习单片机与编程。

参考文献

[1]何立民.单片机初级教程-单片机基础[M].北京:北京航空航天大学出版社,2006

[4]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2005

[5]康华光.电子技术基础[M]. 北京:高等教育出版社, 2000

[6]康华光.电子技术基础(模拟部分)[M]. 北京:高等教育出版社, 1999

[7]丁元杰.单片微机原理及应用[M].北京:机械工业出版社, 1996

[8]何立民.单片机应用技术选编[M].北京:北京:航空航天大学出版社, 1996

[9]张培仁等.MCS-51单片机原理与应用[M]. 北京.清华大学出版社, 2003

[10]肖金球单片机原理与接口技术[M]. 北京:清华大学出版社, 2004

谢辞

毕业论文终于完成了,在此之际,我思绪万千,心情久久不能平静。回顾三年学习期间的日日夜夜,自己为课题的研究,兢兢业业。欣慰之余,心里感动一丝沉重:我即将离开我的老师和同学们。

非常感谢学校的领导,感谢茅阳老师。她为我做毕业论文提供了条件。在做论文的过程中,我遇到了许多的苦难,但是在茅老师的帮助下,我的课题的设计任务得以顺利完成。她严谨的治学态度和踏实的工作作风给我留下了深刻的印象,是我学习的榜样。在此,向老师致以最诚挚的谢意。同时还要感谢教育和指导过我的所有老师,你们给予我的不仅仅是知识,还有你们对知识孜孜不倦的追求精神和对生活的积极向上态度,使我终身受益。我将在以后的工作中继续努力,不断学习,努力提高自己。路漫漫其修远兮,吾将上下而求索。我愿在未来的学习和研究过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有领导、老师、同学、同事和朋友,一并表示感谢!

在次,再次向他们表示我最诚挚的谢意,我将以最大的热情投入到工作中,以报答所以帮助我过的老师和同学。

最后,还要谢谢培养了我三年的母校——苏州工业职业技术学院,以及机电工程系的各位老师,以及关心过我,帮助过我的同学,在此,说声谢谢!

附件

程序用C语言设计,主程序如下:

#include

#include

#include "LCD1602.h"

#include "BH1750.h"

#include "keys.h"

/*Declare SFR associated with the PCA */

sfr CCON = 0xD8; //PCA control register

sbit CCF0 = CCON^0; //PCA module-0 interrupt flag

sbit CCF1 = CCON^1; //PCA module-1 interrupt flag

sbit CR = CCON^6; //PCA timer run control bit

sbit CF = CCON^7; //PCA timer overflow flag

sfr CMOD = 0xD9; //PCA mode register

sfr CL = 0xE9; //PCA base timer LOW

sfr CH = 0xF9; //PCA base timer HIGH

sfr CCAPM0 = 0xDA; //PCA module-0 mode register

sfr CCAP0L = 0xEA; //PCA module-0 capture register LOW sfr CCAP0H = 0xFA; //PCA module-0 capture register HIGH sfr CCAPM1 = 0xDB; //PCA module-1 mode register

sfr CCAP1L = 0xEB; //PCA module-1 capture register LOW sfr CCAP1H = 0xFB; //PCA module-1 capture register HIGH sfr PCAPWM0 = 0xf2;

sfr PCAPWM1 = 0xf3;

uchar BH1750_Con=0;

uchar BH1750_Change=0;

uchar View_Change=0;

void InitTimer0(void)

{

TMOD = 0x01;

TH0 = 0xD8;

TL0 = 0xF0;

EA = 1;

ET0 = 1;

TR0 = 1;

}

void PWM_Init()

{

CCON = 0; //Initial PCA control register

CL = 0; //Reset PCA base timer

CH = 0;

CMOD = 0x02; //Set PCA timer clock source as Fosc/2 CCAP0H = CCAP0L = 128; //PWM0 port output 50% duty cycle square

wave

CCAPM0 = 0x42; //PCA module-0 work in 8-bit PWM mode

and no PCA interrupt

CR = 1; //PCA timer start run

//PCA timer start run

}

uint Light_Set=2000;

uchar Set_Value_View[7];

uint Bijiao_Num_Collect=0;

uint Bijiao_Num_Set=0;

void main()

{

PWM_Init(); //PWM初始化

InitLcd(); //液晶初始化

Init_BH1750(); //数字光强传感器初始化

InitTimer0(); //定时器初始化

Lcd_1602_word(0x80,6,"Light:");

Lcd_1602_word(0xc0,16,"L_Set: 2000XL");

while(1)

if(Key_Change) //响应按键程序

{

Key_Change=0;

if(Key_Value==1) //设定值+

{

if(Light_Set<60000)

Light_Set=Light_Set+100;

}

else

{

if(Light_Set>1000) //设定值-

Light_Set=Light_Set-100;

}

Set_Value_View[0]=Light_Set/10000+0x30;

Set_Value_View[1]=Light_Set%10000/1000+0x30; Set_Value_View[2]=Light_Set%1000/100+0x30; Set_Value_View[3]=Light_Set%100/10+0x30;

Set_Value_View[4]=Light_Set%10+0x30;

Set_Value_View[5]='X';

Set_Value_View[6]='L';

if(Set_Value_View[0]==0x30)

{

Set_Value_View[0]=' ';

if(Set_Value_View[1]==0x30)

{

Set_Value_View[1]=' ';

if(Set_Value_View[2]==0x30)

{

Set_Value_View[2]=' ';

if(Set_Value_View[3]==0x30)

{

Set_Value_View[3]=' ';

if(Set_Value_View[4]==0x30)

Set_Value_View[4]=' ';

}

}

}

Lcd_1602_word(0xc9,7,Set_Value_View);

}

if(BH1750_Change) //读取数字光强数据

{

BH1750_Change=0;

Read_LightValue();

Lcd_1602_word(0x89,7,Light_Value_View);

Bijiao_Num_Collect=BH1750_Data;

Bijiao_Num_Set=Light_Set;

Bijiao_Num_Collect=Bijiao_Num_Collect/100;

Bijiao_Num_Set=Bijiao_Num_Set/100;

if((Bijiao_Num_Collect<(Bijiao_Num_Set-1))||(Bijiao_Num_Collect<10)) //增加光强

{

if(CCAP0H>2)

{

CCAP0H=CCAP0H-2;

}

else

CCAP0H=0;

}

if(Bijiao_Num_Collect>(Bijiao_Num_Set+1))//减少光强

{

if(CCAP0H<253)

{

CCAP0H=CCAP0H+2;

CCAP0H=CCAP0H+2;

}

else

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

闪 烁 灯 控 制 系 统 院系:电气工程系 班级:电气1002 学号:0401100207 姓名:

第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个发光二极管。可实现从右到左闪烁一次,再从左到右闪烁一次,每次亮灭0.5秒,如此循环,紧急情况下,控制P3.1进行报警5S停止。 闪烁灯控制系统是简易的单片机控制系统,作为课程设计课题,通过实际程序设计和调试,逐步掌握块化程序设计方法和调试技术,通过课程设计,掌握一单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法,通过完成一个包括电路设计和程序设计开发的完整过程,了解开发单片机应用系统的全过程,通过本次设计对单片机应用上有一个初步的了解,增强自我的动手、动脑能力,以及发现问题,解决问题,总计经验教训的能力,为以后走向工作岗位,以及更高更远的发展打下坚实的基础 1.2单片机概述与应用 单片机是将CPU、存储器、定时/计数器以及I/O接口等主要部件集成在一块芯片上的微型计算机。单片机是单片微机(Single Chip Microcomputer)的简称,但准确反映单片机本质的名称应是微控制器。目前国外已经普遍称之为微控制器。鉴于他完全作嵌入式应用,故又称为嵌入式微控制器 单片微机从体系结构到指令系统都是按照嵌入式应用特点专门设计的,它能最好地满足面对控制对象,应用系统的嵌入、现场的可靠运行以及非凡的控制品质等要求。 自从20世纪70年代推出单片机以来,作为微型计算机的一个分支,单片机经过30多年的发展,已经在各行各业得到了广泛的应用,由于单片机具有可靠性高、体积小、干扰能力强、能在恶劣的环境下工作等特点,具有较高的性价比,因此广泛应用于工业控制、仪器仪表智能化,机电一体化、家用电器等(1)工业控制:工业设备如机床、锅炉、供水系统、生产自动化、自动报警系统。 (2)智能设备:用单片机改造普通仪器如:仪表、读卡器、医疗器械。 (3)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。 (4)商用产品:如自动售货机、电子收款机、电子秤。

用单片机控制的LED流水灯设计(电路、程序全部给出)

1.引言 当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被单片机智能控制系统所取代。单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮正在工厂、学校及企事业单位大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文笔者用AT89C51单片机自制了一款简易的流水灯,重点介绍了其软件编程方法,以期给单片机初学者以启发,更快地成为单片机领域的优秀人才。 2.硬件组成 按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。AT89C51单片机是美国ATM EL公司生产的低电压、高性能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。因此,要

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

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

第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)家用电器:如高档洗衣机、电冰箱、微波炉、电视、音响、手机、空调器。

基于单片机控制LED灯亮度调节 邓宇锋

基于单片机控制LED灯智能亮度调节 系部:机电工程系 学生姓名:邓宇锋 专业班级:电气 11C3 班 学号: 6 指导教师:茅阳 2014年3月10日

声明 本人所呈交的基于单片机控制LED灯亮度调节,是我在指导教师的指导和查阅相关著作下独立进行分析研究所取得的成果。除文中已经注明引用的内容外,本论文不包含其他个人已经发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 2014年3月10日

摘要 本文介绍LED灯智能亮度调节驱动电路设计,智能照明控制系统在确保灯具能够正常工作的条件下,给灯具输出一个最佳的照明功率,既可减少由于过压所造成的照明眩光,使灯光所发出的光线更加柔和,照明分布更加均匀,又可大幅度节省电能,智能照明控制系统节电率可达20%-40%。智能照明控制系统它可在照明及混合电路中使用,适应性强,能在各种恶劣的电网环境和复杂的负载情况下连续稳定地工作,同时还将有效地延长灯具寿命和减少维护成本。 【关键词】:智能控制;LED;智能光补

目录 引言 (1) 一、智能的概述 (2) (一)智能的定义 (2) (二)智能的分类 (2) 二、LED发光二极管的认识 (2) (一)LED的构造 (2) (二) LED的发光原理 (3) (三)LED的优势 (3) 三、LED亮度控制系统 (3) (一)脉冲宽度调制 (3) (二)调制LED的驱动电流 (3) (三)线性调光法 (3) 四、单片机及程序设计 (3) (一)概述 (4) (二)单片机STC89C51芯片简介 (4) (三)程序 (7) 此套控制分主程序与子程序,截取主程序代码在附件中。 (7) 五、控制系统电路设计 (7) (一)LED驱动电路 (7) (二)光电传感器的选择 (8) (三)电气原理图 (9) 六、实物调试 (9) 总结 (1) 参考文献 (2) 谢辞 (3) 附件 (4)

单片机控制-闪烁灯

单片机控制-闪烁灯 1.实验任务 如图4.1.1所示:在P1.0端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为0.2秒。 2.电路原理图 图4.1.1 3.系统板上硬件连线 把“单片机系统”区域中的P1.0端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。 4.程序设计内容 (1).延时程序的设计方法 作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要 求的闪烁时间间隔为0.2秒,相对于微秒来说,相差太大,所以我们在 执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程 序是如何设计呢?下面具体介绍其原理:

如图4.1.1所示的石英晶体为12MHz,因此,1个机器周期为1微秒机器周期微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 2+2×248=498 20× DJNZ R7,$ 2个2×248 (498 DJNZ R6,D1 2个2×20=40 10002 因此,上面的延时程序时间为10.002ms。 由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时, 延时10ms,以此为基本的计时单位。如本实验要求0.2秒=200ms, 10ms×R5=200ms,则R5=20,延时子程序如下: DELAY: MOV R5,#20 D1: MOV R6,#20 D2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 DJNZ R5,D1 RET (2).输出控制 如图1所示,当P1.0端口输出高电平,即P1.0=1时,根据发光二极管 的单向导电性可知,这时发光二极管L1熄灭;当P1.0端口输出低电平,即P1.0=0时,发光二极管L1亮;我们可以使用SETB P1.0指令使P1.0 端口输出高电平,使用CLR P1.0指令使P1.0端口输出低电平。 5.程序框图 如图4.1.2所示

单片机课程设计—8个按键控制8个LED自动设定控制流水灯

电子课程设计
东北石油大学
实习总结报告
实习类型
生产实习
实习单位
东北石油大学实习基地
实习起止时间 2018 年 7 月 7 日至 2018 年 7 月 16 日
指导教师
刘东明、孙鉴
所在院(系) 电子科学学院
班 级 电子科学与技术 15-2
学生姓名
学号
1509012402
2018 年 7 月 16 日
I 页脚内容

电子课程设计
目录
第 1 章 按键控制流水灯设计 ....................................... 1 1.1 实习目的 .............................................. 1 1.2 实习要求 .............................................. 1
第 2 章 电路工作原理............................................. 2 2.1 STC89C52 单片机工作原理 ............................... 2 2.2 LED 工作原理 .......................................... 3 2.3 按键工作原理 .......................................... 3 2.4 整体电路图 ............................................ 5 2.5 本章小结 .............................................. 6
第 3 章 C 程序设计 ............................................... 7 3.1 程序设计流程图 ........................................ 7 3.2 实验结果 .............................................. 8 3.3 本章小结 .............................................. 9
总结及体会..................................................... 10 参考文献 ...................................................... 11 附录: ........................................................ 12
I 页脚内容

单片机C语言LED灯点亮程序完全版

单片机C语言L E D灯点亮 程序完全版 Prepared on 24 November 2020

1例子1第二个灯亮 #include<> voidmain() { P1=0xfd; } #include<> SbitD1=P1^0; Voidmain() { D1=0 } 注意:稍微改程序时需重新hex化 例子2第一个灯亮 #include<>include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 voidmain() //主函数 { unsignedinti;//定义一个int型变量 while(1) { i=50000;//变量赋初值为50000 led1=0; //点亮灯 while(i--);//延时 i=50000; led1=1;//熄灭灯 while(i--); } } 3例子1357灯同时亮

#include<>//52单片机头文件 sbitled1=P1^0;//单片机管脚位声明 sbitled3=P1^2;//单片机管脚位声明 sbitled5=P1^4;//单片机管脚位声明 sbitled7=P1^6;//单片机管脚位声明 voidmain() //主函数 { led1=0; //将单片机口清零 led3=0; //将单片机口清零 led5=0; //将单片机口清零 led7=0; //将单片机口清零 while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子21357同时亮 #include<>//52单片机头文件 voidmain() //主函数 { P1=0xaa; while(1);//程序停止在这里,在后面会讲到为什么这样写。} 例子3流水灯一个一个接着亮不循环 #include<>//52单片机头文件 voidmain() //主函数 { unsignedinti;//定义一个int型变量

单片机课程设计-8个LED灯来回点亮

目录 第一章绪论--------------------------------------------------------3 第二章设计目的及要求-----------------------------------------5 1.1 设计目的--------------------------------------------------------5 1.2 设计要求--------------------------------------------------------5 第三章设计电路原理----------- -------------------------------7 3.1 控制部分的设计与选择-------------------------------------7 3.2 LED显示方案-----------------------------------------------8 第四章硬件系统------------------------------------------------9 4.1 原件清单-------------------------------------------------------9 4.2 单片机AT89C51---------------------------------------------9 4.3 单片机时钟电路--------------------------------------------10

4.4 单片机复位电路---------------------------------------------11 4.5 工作电路------------------------------------------------------12 第五章软件设计------------------------------------------------13 5.1 程序流程图--------------------------------------------------13 5.2 编辑源程序--------------------------------------------------14 第六章系统调试与仿真结果--------------------------------16 6.1系统调试-----------------------------------------------------16 6.2仿真结果----------------------------------------------------16 总结------------------------------------------------------------- 19 参考文献--------------------------------------------------------20 第一章绪论

单片机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)多机分布式系统。可用单片机构成分布式测控系统,它使单片机进入 了一个新的水平。

51单片机控制LED灯程序设计

51单片机:LED灯亮灯灭程序设计 1.功能说明:控制单片机P1端口输出,使P1.0位所接的LED点亮,其他7只灯熄灭。 程序: 01: MOV A , #11111110B ; 存入欲显示灯的位置数据 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, #11111110B ;存入开始点亮灯位置 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 ;重新设定显示值

单片机一键多功能控制(八个灯)c语言程序

#include #define k1 P3_2 #define d1 P1_0 #define d2 P1_1 #define d3 P1_2 #define d4 P1_3 #define d5 P1_4 #define d6 P1_5 #define d7 P1_6 #define d8 P1_7 void delay(unsigned int); void main(void) { unsigned char count; count=0; k1=1; d1=1; d2=1; d3=1; d4=1; d5=1; d6=1; d7=1; d8=1; while(1) { if(k1==0) { delay(20); if(k1==0) { count=count+1; if(count==9) { count=0; } switch(count) { case 0: d1=1;d2=1;d3=1;d4=1;d5=1;d6=1;d7=1;d8=1; break; case 1: d1=0; break;

case 2: d2=0; break; case 3: d3=0; break; case 4: d4=0; break; case 5: d5=0; break; case 6: d6=0; break; case 7: d7=0; break; case 8: d8=0; break; } do { do { ; }while(k1==0); delay(20); }while(k1==0); } } } } void delay(unsigned int n) { unsigned int x,y; for(x=0;x

单片机八个按键控制八个led灯程序

#include #include void delay(void) {unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++);} unsigned char Key_Scan(); void main(void) { unsigned char ledValue, keyNum; ledValue = 0x01; while (1) { keyNum = Key_Scan(); switch (keyNum) { case(0xFE) : ledValue = 0x01; break; case(0xFD) : //返回按键K2的数据 ledValue = 0x02; break; case(0xFB) : //返回按键K3的数据 ledValue = 0x04; break; case(0xF7) : //返回按键K4的数据 ledValue = 0x08; break; case(0xEF) : //返回按键K5的数据 ledValue = 0x10; break; case(0xDF) : //返回按键K6的数据 ledValue = 0x20; break; case(0xBF) : //返回按键K7的数据 ledValue = 0x40; break; case(0x7F) : //返回按键K8的数据 ledValue = 0x80; break; default:

break; } P0 = ledValue;//点亮LED灯 } } /****************************************************************************** * * 函数名: Key_Scan() * 函数功能: 扫描键盘 * 输入: 无 * 输出: 读取到的键值 ******************************************************************************* / unsigned char Key_Scan() { unsigned char keyValue = 0 , i; //保存键值 //--检测按键1--// if (P1 != 0xFF) //检测按键K1是否按下 { void delay(void) {unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;b++);} if (P1 != 0xFF) //再次检测按键是否按下 { keyValue = P1; i = 0; while ((i<50) && (P1 != 0xFF)) //检测按键是否松开 { Delay10ms(1); i++; } } } return keyValue; //将读取到键值的值返回 }

单片机实现发光二极管的循环点亮控制讲解

桂林电子科技大学单片机最小应用系统 设 计 报 告 指导老师:吴兆华

学生:钟静茹 学号:09210202 机电工程学院 2010年6月 单片机最小应用系统设计报告 目录 一、设计题目 (3) 二、设计内容与要求 (3) 三、设计目的意义 (3) 四、系统硬件电路图 (4) 五、程序流程图与源程序 (6) 5.1流程图 (6) 5.2源程序 (7) 5.2.1程序设计思想 (7) 5.2.2源程序清单 (7) 六、系统功能分析与说明 (9) 6.1系统主要组成部分 (9) 6.2指示灯显示部分 (10) 6.3 电路板的制作 (10) 6.3.1 PCB图的制作 (11) 6.3.2 电路板的腐蚀、钻孔和元器件的焊接 (13)

七、设计体会 (11) 八、参考文献 (12) 一、设计题目 用8031单片机实现发光二极管的循环点亮控制。采用3个按键分别控制发光二极管的启动、停止及每个灯点亮的时间的更换,定时时间有软件控制。 二、设计内容与要求 用8031单片机控制8个发光二极管循环点亮。要求用按键控制点亮时间(如每个灯点亮0.5秒或者1秒等,各灯点亮时间相同)。按启动键开始循环点亮;按停止键后停止。 三、设计目的意义 1、掌握单片机系统中扩展简单I/O接口的方法。 2、掌握单片机的硬件接口电路、8031单片机的内部结构及其编程方法。 3、掌握单片机的最小系统的设计。 4、掌握电路板的设计与制作。。 5、了解程序编写与调试的方法和技巧。 6、综合掌握所学的单片机指令系统和硬件接口电路知识,进行简单的最小系统开

发。 四、系统硬件电路图 系统硬件图(图1)包括单片机最小系统(复位电路、晶振电路和相关的控制信号)、外电路接通显示部分、及电源显示部分。 设计硬件电路图时,其基本思想:先通过万能板搭建试验平台,将编好的程序下载到51中,等可以达到预期要求后,最后在PROTEL中设计原理图与PCB,做出电路板。

单片机控制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.新建一个项目

单片机八个灯闪烁控制程序

#include #define uchar unsigned char uchar flag,m,n,light,i; void delay05s(void) { uchar i,j,k; for(i=0;i<10;i++) for(j=200;j>0;j--) for(k=200;k>0;k--); } void delay10s() { uchar i,k; for(i=20;i>0;i--) for(k=100;k>0;k--); } void left() { light=0x01; for(m=0;m<8;m++) { P1=~light; light=light<<1; delay05s(); } } void right() { light=0x80; for(n=0;n<8;n++) { P1=~light; light=light>>1; delay05s(); } } void huayang() { unsigned char code huayang[8]={0x7e,0xbd,0xdb,0xe7,0xdb,0xbd,0x7e,0x00}; for(i=0;i<8;i++) { P1=huayang[i]; delay05s(); }

} void main() { IT0=1; EX0=1; EA=1; flag=0; light=0x01; i=0; while(1) { switch(flag) { case 0:left();break; case 1:right();break; case 2:huayang();break; } } } void int0() interrupt 0 using 0 { delay10s(); if(INT0==0) { flag++; if(flag==3) flag=0; } }

单片机系统开发之利用中断控制8盏灯的循环点亮

单片机应用系统开发作业利用中断控制8盏灯花样闪烁 学校:沈阳理工大学 专业:信息对抗技术 学号:1411050121 姓名:吴志飞

1.系统设计要求: 设晶振频率为12MHZ,利用中断系统使主程序P0口进行花样显示。显示规律为: (1)P0口连接8个LED,依次左移闪亮; (2)当按下INT1时,8个LED灯依次右移闪亮; (3)当按下INT0时,8个灯闪亮5次。 2.系统设计分析: 单片机的最小系统+8盏LED灯+排电阻。 本系统涉及到两个外中断,中断优先级,左移右移等问题。在设计时可能要设计中断优先级。左移右移需要用到两个移位指令RL 和RR。 3.系统原理图设计: 系统所需原件为单片机AT89C51,瓷片电容CAP30pf,晶振CRYSTAL12MHZ,电解电容CAP-ELEC,电阻RES,发光二极管LED8只,排电阻RESPACK-8以及开关SWITCH。利用中断控制8盏LED灯花样 闪烁的原理图如1.1所示。

图1.1 利用中断制8盏LED灯花样闪烁原理图4.系统流程图设计:

5.系统源程序设计:汇编源程序: ORG 0000H AJMP START ORG 0003H AJMP INTR0 ORG 0013H AJMP INTR1 START:MOV IE,#85H MOV IP,#01H MOV TCON,#00H MOV SP,#60H MOV P0,#0FFH MOV P3,#0FFH MOV A,#0FEH LP1: MOV P0,A RL A LCALL DELAY SJMP LP1 INTR0:PUSH ACC PUSH PSW MOV R1,#10 MOV A,#00H XH: MOV P0,A LCALL DELAY CPL A DJNZ R1, XH

89C51单片机练习示例:LED灯点亮与熄灭操作

89C51单片机练习示例:LED灯点亮与熄灭操作 基本要求: 1、八个LED灯循环点亮,间隔1秒,最后全亮; 2、八个LED灯依次熄灭,间隔1秒,最后全灭; 3、八个LED灯同时点亮,保持1秒; 4、八个LED灯同时熄灭,保持0.5秒; 再将第三、四步重复4遍,最后整个程序重复N遍。 ORG 0000H MAIN:MOV R5,#03H; ACALL PRO1;依次点亮,最后全亮 ACALL PRO2;先灯亮,依次灭灯,后全灭 ACALL PRO3;八个灯同时亮,保持1秒;八个灯同时灭,保持1秒 ACALL PRO4;重复第三步操作,使灯点亮、熄灭4次 LJMP MAIN; PRO1: MOV A,#01H;从0号灯开始点亮 MOV R4,#08;亮灯个数记录 DIANLIANG:MOV R0,A; MOV P0,A;点灯子程序 RL A; ORL A,R0; ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 DJNZ R4,DIANLIANG;全亮 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 ACALL DELAY;调用0.26s的延时子程序 RET PRO2: MOV A,#0FFH;先亮灯 CLR CY;清零CY值 MOV R4,#09H;灭灯个数记录 XIMIE:MOV R0,A; MOV P0,A;

RLC A; ANL A,R0; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序DJNZ R4,XIMIE;全灭 ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序RET PRO3:MOV A,#0FFH; 先点亮,后熄灭MOV P0,A; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ANL A,#00H; MOV P0,A; ACALL DELAY;调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序ACALL DELAY; 调用0.26s的延时子程序RET PRO4:ACALL PRO3;重复点亮,熄灭四次DJNZ R5,PRO4; RET DELAY:MOV R2,#0FFH;延时子程序 DEL1:MOV R3,#0FFH; DEL2: NOP; NOP; DJNZ R3,DEL2; DJNZ R2,DEL1; RET END

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

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

第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)商用产品:如自动售货机、电子收款机、电子秤。

相关文档
相关文档 最新文档