[VIP专享]单片机的LED流水灯系统设计
单片机LED流水灯设计

单片机应用系统可分为最小系统、最小功耗系统及典型系统等。
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灯的亮灭。
用单片机设计流水灯的方法和程序编写

用单片机设计流水灯的方法和程序编写-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIANS51增强型单片机实验板上有8个高亮度发光二极管(见图1所示),可以用来做单片机流水灯、跑马灯。
等实验,电路原理图见下图3。
图3单片机流水灯设计方法从原理图可以看出,如果我们想让接在口的LED1亮起来,那么我们只要把口的电平变为低电平就可以了;相反,如果要接在口的LED1熄灭,就要把口的电平变为高电平就可以;同理,接在~口的其他7个LED的点亮和熄灭方法方法同LED1。
因此,要实现流水灯功能,我们只要将LED2~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。
实现8个LED流水灯程序用中文表示为:低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、低、延时、高、返回到开始、程序结束。
从上面中文表示看来实现单片机流水灯很简单,但是我们不能说你变低,它就变低了。
因为单片机听不懂我们的汉语的,只能接受二进制的“1、0......”机器代码。
我们又怎样来使单片机按我们的意思去工作呢为了让单片机工作,只能将程序写为二进制代码交给其执行;早期单片机开发人员就是使用人工编写的二进制代码交给单片机去工作的。
今天,我们不必用烦人的二进制去编写程序,完全可以将我们容易理解的“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,然后交给单片机去执行。
这里的“程序语言”目前主要有汇编语言和C语言两种;在这里我们所说的“翻译”软件,同行们都叫它为“编译器”,将“程序语言”通过编译器产生单片机的二进制代码的过程叫编译。
前面说到,要想使LED1变亮,只需将对应的单片机引脚电平变为低电平就可以了。
现在让我们将上面提到的8只LED流水灯实验写为汇编语言程序。
在上面主程序中用到了五条汇编语言指令:CLR、ACALL、SETB、LJMP、EN D。
CLR:是将其后面指定的位清为0,程序中使对应端口输出低电平ACALL:是子程序调用指令,程序中调用了DELAY延时子程序SETB:是将其后面指定的位置成1,程序中使对应端口输出高电平AJMP:是无条件跳转指令,意思是:跳转到指定的标号处继续运行END:是程序结束的伪指令,意思是告诉编译器,程序到此结束。
基于51单片机的流水灯设计

基于51单片机的流水灯设计51单片机是一种常用的微控制器,它具有高性价比、易于编程和广泛的应用范围。
流水灯是一种常见的电子灯光装置,它通过类似于瀑布般的效果,逐个点亮一系列的灯。
本文将介绍基于51单片机的流水灯的设计。
流水灯的设计过程可以分为硬件设计和软件设计两个步骤。
硬件设计:在硬件设计方面,我们需要准备以下器件和材料:1.51单片机开发板2.杜邦线3.LED灯4.电阻接下来,根据流水灯的设计思路,将多个LED灯连接在一起,形成一个线性的灯带。
为了控制LED灯的亮灭,我们需要使用51单片机的GPIO 口来提供高低电平信号。
通过改变GPIO口的输出信号,我们可以实现各个LED灯的顺序点亮和熄灭。
软件设计:在软件设计方面,我们需要使用到汇编或C语言来编写控制程序。
以下是一个简单的流水灯程序的伪代码:```1.初始化51单片机的GPIO口方向,设置为输出模式2. 定义一个存储灯光模式的数组,比如`light_pattern[] = {0xFF, 0x7F, 0x3F, 0x1F, 0x0F, 0x07, 0x03, 0x01}`3.定义一个循环计数器`i`4.进入无限循环5. 通过将`light_pattern[i]`的值写入GPIO口,控制LED灯的亮灭6.延时一定时间(比如几百毫秒)7.更新循环计数器`i`8.如果`i`超过了数组的长度,将其重置为09.结束循环```在程序中,我们可以通过循环计数器`i`来依次点亮和熄灭LED灯。
通过不断更新`i`的值,我们可以实现灯光模式的循环播放。
总结:。
单片机的LED流水灯系统设计2(1)

学号:0809111030 2010 - 2011学年第2学期《单片机应用技术》课程设计报告题目:单片机的LED流水灯系统设计专业:电气系工程系自动化班级: 08自动化姓名:姚旭东指导教师:藏大进成绩:电气工程系2011年5月22日课程设计任务书学生班级:08自动化学生姓名:周雨学号:08091111076设计名称:基于单片机的LED流水灯系统设计起止日期:2011-5-16——2011-5-22指导教师:宋洪儒目录摘要 (4)第一章引言 (5)第二章系统分析 (6)2.1 涉及的基础知识 (6)2.2 80C51单片机引脚图及引脚功能介绍 (6)2.3 解决问题的基本思路 (7)2.4 总体方案 (7)第三章系统设计 (8)3.1 硬件设计 (8)3.2 软件设计 (9)3.3 元件清单 (11)3.4 硬件原理图 (11)3.5 设计主要功能 (12)第四章代码编写 (13)结语 (15)参考文献 (16)自我评价 (17)评语表 (18)摘要单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。
这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。
对可控流水灯设计通过编写代码实现8个LED灯4种流水灯显示方式。
在设计中主要采用89C51这款芯片作为控制主体,用发光二极管来作为显示灯。
系统通过P2口外接8个发光二极管,P3口接2个发光二极管。
设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。
关键词单片机89C51发光二极管流水灯SCM is an integrated circuit chip, the use of large scale technology to have the data processing capacity of microprocessors, random access data memory, read-only program memory, input and output circuits may also include timing counters, serial communication port, display driver circuit, PWM circuit, analog multiplexers and A / D converter circuit into a single chip to form a minimal and complete computer systems. These circuits under the control of the software is accurate, rapid and efficient completion of the mandate in advance programmers. Light on the design of water control by writing code 4 8 LED light water light display. Mainly used in the design of the chip 89C51 as a control subject, as shown by light emitting diodes. External system through the P2 port LEDS 8, P3 port connected two light emitting diodes. Design combined with simple equipment and the necessary circuitry, designed a water light, and ultimately achieve the intended purpose.第一章引言当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以前所未见的速度被智能控制系统所取代。
流水灯控制系统设计

目录第1章方案的论述以与与最终方案的确定......................... - 1 -1.1第一种方案的论述. (1)1.2第二种方案的论证 (1)1.3第三种方案的论述 (1)1.4最终方案的确定 (2)第2章硬件设计.................................................. - 3 -2.1总体方案设计分析. (3)2.2系统逻辑框图 (3)2.3主要元器件简介 (3)2.3.1 8086CPU ························································································- 3 -2.3.2 地址锁存器74LS373的内部电路与工作原理························- 6 -2.3.3 可编程外围接口芯片8255A的简介.........................................- 8 -第3章软件设计.................................................- 13 -3.1程序流程设计.. (13)3.1.1 主程序流程·················································································· - 13 -3.1.2 程序流程图·················································································· - 14 -3.1.3 系统硬件连接图········································································· - 15 -3.1.4 源程序设计(附录) ....................................................................... - 15 -3.2设计最终理想结果与原理.. (15)3.2.1 左向移动流水灯········································································· - 15 -3.2.2 右向移动流水灯········································································· - 15 -设计心得·························································- 17 -参考文献·························································- 18 -附录······························································- 19 -第1章方案的论述以与与最终方案的确定1.1 第一种方案的论述第一种方案,使用AT89C51单片机实现流水灯闪烁设计。
流水灯控制系统设计(单片机)

实验报告单实验名称:流水灯控制系统设计实验项目:实验目的:1. 理解单片机系统软硬件开发的过程,单片机基本的I/O控制方法。
2. 掌握51单片机的汇编指令。
3. 掌握Proteus硬件仿真软件的使用及技巧。
4. 掌握Keil uVision程序开发软件的使用技巧。
实验器材:安装了Keil uVision5和Proteus的电脑;实验原理:通过更改P2口8位的高低电平,分别控制8个Led灯的亮灭。
单片机流水灯的实质是单片机各引脚在规定的时间逐个上电,使LED灯能逐个亮起来但过了该引脚通电的时间后便灭灯的过程,实验中使用了单片机的P2端口,对8个LED灯进行控制,要实现逐个亮灯即将P2的各端口逐一置零,中间使用时间间隔隔开各灯的亮灭。
使用rl或rr a实现位的转换。
然后将A寄存器转换一次便送给P2即MOV P2,A便将转换后的数送到了P2口,不断循环下去,便实现了逐位置操作。
具体的亮灭情况如下表:要实现“流水灯”效果,也就是需要将P2口的输出值发生以下变化:FE→FD→FB→F7→EF→DF→BF→7F→BF→DF→EF→F7→FB→FD→FE ..... 可以使用一个循环,不断对数据进行移位运算实现。
这里的移位指令采用RL和RR,即不带进位的位移运算指令。
如果使用带进位的位移运算指令(RLC 和RRC),则需要定期把cy置0,否则会出现同时亮起两个发光二极管的情况。
实验步骤:1.在仿真系统Proteus中实现电路原理图设计;新建设计文档、设置工作环境、选择并放置元器件、对原理图进行布线、原理图的电器规则检查、调整、保存和输出报表等。
2.源代码的设计与生成目标代码;在Keil uVision5平台进行C语言和汇编语言源代码的输入、编译与调试,并生成可执行文件.hex。
C语言存储为.c文件,汇编语言存储为.asm文件。
3.调试与仿真在Proteus中将可执行文件.hex加载到单片机中,对系统进行虚拟仿真。
基于单片机的LED流水灯控制系统设计【范本模板】
《单片机应用技术》课程设计报告2015 ~ 2016 学年第 2 学期题目:基于单片机的LED流水灯控制系统设计专业:电气工程及其自动化班级: 13电气(2)班姓名:杨光单亚指导教师:陆媛宋洪儒成绩:电气工程学院2016年6月9 日任务书摘要.......................................................................................................................................................... - 0 - 第一章A T89S51单片机硬件介绍................................................................................................................ - 1 -1.1 A T89S51单片机硬件组成 ................................................................................................................ - 1 -1。
2 AT89S51管脚说明...................................................................................................................... - 2 -1.2.1 电源及时钟引脚.................................................................................................................... - 3 -1.2。
基于单片机的LED流水彩灯设计
第1章概述近几年来,彩灯对于美化、亮化城市有着不可轻视的重要工作。
因此作为城市装饰的彩灯需求量越来越大,对与彩灯的技术和花样也越来越高。
但传统的彩灯控制电路一般是由数字电路组成,这种彩灯控制器电路结构复杂、成本较高、功率损耗大,此外从功能效果上看,彩灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
然而单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。
LED彩灯具有成本低、发光纯度高、发光热量小、耗电量低、超长寿命的特点。
所以利用单片机作LED彩灯控制,不仅是使控制花样、路数大大增加,成本也很低,而且对环境能源没有污染,有着很大的发展前景。
本方案是一种基于AT-89C51单片机的彩灯控制方案,实现对LED彩灯的控制。
主要以AT-89C51单片机作为主控核心与发光二极管、晶振、复位、电源等组成电路,利用软件编辑实现彩灯流水灯的效果。
第2章方案设计2.1设计任务(1)共有红、绿、蓝3色彩灯各8个,要求按一定顺序和时间关系运行:红色发光二极管由弱到强—>绿色发光二极管由弱到强—>蓝色发光二极管由弱到强。
(2)利用三基色原理,控制每次点亮红色发光二极管,绿色发光二极管,蓝色发光二极管的数目,实现黄色,紫色,青色。
(3)控制不同颜色发光二极管的数目,实现花样彩灯。
(4)编写程序代码。
(5)程序分析与调试。
2.2工程方案按照设计任务要求,红,绿,蓝光由弱到强,每个颜色用8个发光二极管,在程序控制下,先亮一个,再亮两个,再亮三个,慢慢的直到最后全亮,就能看到由弱到强的现象。
如果同一颜色使用更多的发光二极管,显示效果会更柔和。
要实现黄色,紫色,青色光,只能根据三基色原理进行合成。
所谓三基色是指红,绿,蓝三色,人眼对红,绿,蓝最为敏感,大多数可以通过红,绿,蓝3种颜色按照不同的比例合成产生。
同时,绝大多数单色光也可以分解成红绿蓝三种光。
基于51单片机的流水灯设计
基于51单⽚机的流⽔灯设计基于51单⽚机的流⽔灯设计⼀.基本功能利⽤AT89c51作为主控器组成⼀个LED流⽔灯系统,实现8个LED 灯的左、右循环显⽰。
⼆.硬件设计图1.总设计图1.单⽚机最⼩系统1.1选⽤AT89C51的引脚功能图2. AT89C51XTAL1:单芯⽚系统时钟的反向放⼤器输⼊端。
XTAL2:系统时钟的反向放⼤器输出端,⼀般在设计上只要在XTAL1和XTAL2上接上⼀只⽯英震荡晶体系统就可以⼯作了,此外可以在两引脚与地之间加⼊20PF的⼩电容,可以使系统更稳定,避免噪⾳⼲扰⽽死机。
RESET:重置引脚,⾼电平动作,当要对晶体重置时,只要对此引脚电平提升⾄⾼电平并保持两个及其周期以上的时间便能完成系统重置的各项动作,使得内部特殊功能寄存器内容均被设成已知状态。
P3:端⼝3是具有内部提升电路的双向I/O端⼝,通过控制各个端⼝的⾼低电平了实现LED流⽔灯的控制。
1.2复位电路如图所⽰,当按下按键时,就能完成整个系统的复位,使得程序从新运⾏。
图3.复位电路1.3时钟电路时钟电路⽤于产⽣单⽚机⼯作所需要的时钟信号,单⽚机本⾝就是⼀个复杂的同步时序电路,为了保证同步⼯作⽅式的实现,电路应在唯⼀的时钟信号控制下严格地按时序进⾏⼯作。
在AT89C51芯⽚内部有⼀个⾼增益反相放⼤器,其输⼊端为芯⽚引脚X1,输出端为引脚X2,在芯⽚的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了⼀个稳定的⾃激振荡器。
此电路采⽤12MHz的⽯英晶体。
图4.时钟电路2.流⽔灯部分图5.流⽔灯电路三.软件设计3.1编程语⾔及编程软件的选择本设计选择C语⾔作为编程语⾔。
C语⾔虽然执⾏效率没有汇编语⾔⾼,但语⾔简洁,使⽤⽅便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计⾃由度⼤,有很好的可重⽤性,可移植性等特点。
⽽汇编语⾔使⽤起来并没有这么⽅便。
本设计选⽤了Keil作为编程软件,.Keil C51⽣成的⽬标代码效率⾮常之⾼,多数语句⽣成的汇编代码很紧凑,容易理解。
【VIP专享】单片机流水灯实验报告东华理工
学院:机械与电子工程学院单片机第三次实验报告专业:自动化班级:1121502学号:201120150229姓名:曾小燕实验任务:(1)使用单片机的P1、P3口控制驱动12个LED灯,要求编程使用软件延时的方法实现LED流动显示。
(2)在上面实验的基础上编写设计4种LED花样显示,编程实现顺序显示不同的花样。
实验电路和原理说明:从原理图中可以看出,如果要让接在P1.0口的led1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,其他11个LED的点亮和熄灭的方法同LED1。
编程思路:实验1:移位发。
先将p1,p3的所有位全置1。
把C清0。
然后带进位左移。
左一次,p1的0位亮。
左移两次,p1的1位亮。
同理,其他位也一样。
实验2:直接读p1和p3的位进行清零和置一可以实现各种要求。
程序流程图:实验1实验2使用的资源分配:R0,R1,R2,R7装循环次数。
堆栈起始地址为60H实验调试与结果分析:结果符合实验要求,对一那个1秒灯闪一次的要求,结果与硬件有关系。
实验总结:做完这次试验,我学会怎么简单的使用I/O口。
从此对单片机的兴趣也更加浓厚。
自己也会做各种花样流水灯了。
实验程序清单:实验1:ORG 0000 ;单片机上电后从0000H地址执行AJMP START;跳转到主程序存放地址处ORG 0040H;设置主程序开始地址START:MOV SP,#60H;设置堆栈起始地址为60HMOV A,#0FFH ;参数赋初值MOV P1,AMOV P3,AMOV R7,#12CLR CLOOP:MOV A,P1 ;把p1复制给ARLC A ;左移AMOV P1,A ;把A复制给p1MOV A,P3RLC AMOV P3,AACALL DELAY ;调用延时子程序DJNZ R7,LOOP ;判断循环是否结束AJMP START;移动完12次后跳到开始重来,以达到循环流动效果DELAY:MOV R0,#12 ;延时子程序D1:MOV R1,#207D2:MOV R2,#200D3:DJNZ R2,D3DJNZ R1,D2DJNZ R0,D1RET ;子程序返回END实验2:ORG 0000 ;单片机上电后从0000H地址执行AJMP START ;跳转到主程序存放地址处ORG 0040H ;设置主程序开始地址START:MOV SP,#60H ;设置堆栈起始地址为60HMOV A,#0FFH ;参数赋初值MOV P3,AMOV A,#0FEHMOV P1,AACALL DELAY ;调用延时子程序CLR P1.2 ;位操作ACALL DELAY ;调用延时子程序CLR P1.4ACALL DELAYCLR P1.6ACALL DELAYCLR P3.0ACALL DELAYCLR P3.2ACALL DELAYMOV A,#0FDHMOV P1,AMOV A,#0FFHMOV P3,AACALL DELAYCLR P1.3ACALL DELAYCLR P1.5ACALL DELAYCLR P1.7ACALL DELAYCLR P3.1ACALL DELAYCLR P3.3ACALL DELAYMOV A,#00HMOV P1,AMOV A,#0F0HMOV P3,AACALL DELAYAJMP START ;跳到开始重来,以达到循环流动效果DELAY:MOV R0,#255 ;延时子程序D1:MOV R1,#255D2:MOV R2,#5D3:DJNZ R2,D3DJNZ R1,D2DJNZ R0,D1RET ;子程序返回END。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、前言 (1)1.1课题简介 (1)1.2设计目的 (1)1.3设计任务及要求 (1)二、总体设计 (2)2.1设计思路 (2)2.2元件清单 (2)三、硬件设计 (3)3.1 AT89C51 (3)3.2程序框图 (5)3.3系统框图 (5)四、设计步骤 (5)4.1硬件设计 (6)4.2单片机时钟电路 (6)4.3复位电路 (6)4.4控制电路 (7)4.5工作电路 (7)五、软件设计 (8)5.1设计要求 (8)5.2软件的流程图 (9)5.3程序设计 (9)六、软件调试 (11)七、心得体会 (12)八、参考文献 (13)一、前言1.1 课题简介单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。
单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: 1.在智能仪器仪表上的应用:,例如精密的测量设备 2.在工业控制中的应用:用单片机可以构成形式多样的控制系统、数据采集系统。
例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。
3.在家用电器中的应用可从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。
5.单片机在医用设备领域中的应用:例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。
6.在各种大型电器中的模块化应用:如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。
本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。
本系统就是充分利用了8051芯片的I/O引脚。
系统以采用MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。
1.2 设计目的(1)学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。
(2)掌握汇编语言程序设计方法。
(3)培养实践技能,提高分析和解决实际问题的能力。
1.3 设计任务及要求(1)彩灯用8个发光二极管代替。
(2)电路具有控制彩灯点亮右移、左移、全亮及全灭等功能(用按键切换彩灯状态)(3)彩灯两点移动时间间隔为0.4秒。
二、总体设计2.1设计思路本课题使用AT89C51单片机时无须外扩存储器。
因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。
如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
同样的道理,可以让8个灯左移点亮,全亮、全灭。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
在此基础上,增加外扩设备,利用74LS373和8255扩展成24个LED灯循环显示。
2.2.元件清单元件名称型号数量/个用途单片机AT89S511控制核心晶振12MHZ1晶振电路电容30pF2晶振电路电阻Respack88上位电阻电阻10k4开关电阻电阻10k1复位电路电源+5v1提供电源拨码开关BUTTON4发出信号数码管7SEG-MPX1-CC8显示电路三、硬件设计3.1 AT89C51(1)AT89C51主要特性:与MCS-51兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz—24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线5个中断源可编程串行通道低功耗的闲置和掉电模式片内震荡器和时钟电路(2)管脚说明:①电源引脚Vcc(40脚):典型值+5V。
Vss(20脚):接低电平。
②外部晶振XTAL1、XTAL2分别与晶振两端相连接。
③输入输出口引脚:P0口:I/O双向口。
作输入口时,应先软件置“ 1”。
P1口:I/O双向口。
作输入口时,应先软件置“ 1”。
P2口:I/O双向口。
作输入口时,应先软件置“ 1”。
P3口:I/O双向口。
作输入口时,应先软件置“ 1”。
④控制引脚:RST、ALE/-PROG、-PSEN、-EA/Vpp组成了MSC-51的控制总线。
RST(9脚):复位信号输入端(高电平有效)。
ALE/-PROG(30脚):地址锁存信号输出端。
第二功能:编程脉冲输入。
-PSEN(29脚):外部程序存储器读选通信号。
-EA/Vpp(31脚):外部程序存储器使能端。
第二功能:编程电压输入端(+21V)。
(3)AT89C51单片机的P口特点:P0口:是一个8位漏极开路输出型双向I/O端口。
作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。
在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线,在访问期间将激活内部的上拉电阻。
P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。
P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。
P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行MOVX @DPTR)时,P2口送出高8位地址。
在访问8位地址的外部数据存储器(如执行MOVX @RI)时,P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期间不会改变。
P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。
P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。
对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。
P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。
(4)排阻的作用所谓排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚。
其余引脚正常引出。
所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚。
它在排阻上一般用一个色点标出来。
排阻一般应用在数字电路上,比如:作为某个并行口的上拉或者下拉电阻用。
使用排阻比用若干只固定电阻更方便。
3.2程序框图图1 程序框图3.3系统框图图2系统框图四、设计步骤4.1硬件设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。
单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。
本设计选用以AT89S51单片机为主控单元。
显示部分:8个LED灯循环亮灭。
4.2单片机时钟电路时钟电路用于产生单片机工作所需要的时钟信号,单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。
在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚X1,输出端为引脚X2,在芯片的外部跨接晶体振荡器和微调电容,形成反馈电路,就构成了一个稳定的自激振荡器。
此电路采用12MHz的石英晶体。
时钟电路如下图:图3 时钟电路4.3复位电路电阻的作用是用于上电复位的,VCC以上电,由于电容两端电压不能突变,所以RST上为高电平,然后电容放电,RST就为低电平了,还可以用手动复位,此电路应用自动复位。
图4 复位电路河北建筑工程学院单片机原理及应用课程设计4.4控制电路控制电路用于控制工作电路的工作情况,根据要求来控制电路,本电路的控制电路用来控制流水灯的工作情况,当按下1、2、3、4各个开关时,电路具有左移、右移、全亮、全没的功能,具体的控制电路如下:图5 控制电路4.5工作电路(1)工作电路就是根据总的电路的指令,来反应工作情况。
本电路的流水灯电路具体的如下:图6 工作电路(2)根据各个模块的功能及他们的信号传输,连接电路如下:图6 硬件连接图五、软件设计5.1设计要求本系统的功能就时实现流水灯的循环点亮,主要有四个功能,第一,按下第一个按钮,彩灯向上点亮循环,按下第二个,彩灯向下循环点亮,按下第三个,彩灯全亮,按下第四个,彩灯全灭。
彩灯用8个发光二极管代替。
电路具有的控制彩灯点亮右移、左移、全亮及全灭的功能用按键切换彩灯状态,彩灯两点移动时间间隔为0.4秒。
5.2软件的流程图:图7 软件的流程图5.3程序设计ORG 0000H ;单片机上电后从00000H地址执行AJMP START ;跳转到主程序存放地指出ORG 0030H ;设置主程序开始地址START: MOV SP,#60H ;设置堆栈起始地址为60HMOV DPTR,#TAB ;把TAB表首地址送入DPTRSTART1: JNB P0.0,LOOP1 ;判断P0.0处开关是否闭合JNB P0.1,LOOP2 ;判断P0.1处开关是否闭合JNB P0.2,LOOP3 ;判断P0.2处开关是否闭合JNB P0.3,LOOP4 ;判断P0.3处开关是否闭合AJMP START1 ;如果没有开关闭合重新检测LOOP1: CLR A ;累加器清零MOVC A,@A+DPTR ;取数值表中的数CJNE: A,#11111111B,SHOW1;检查左移结束标志AJMP START ;左移结束重新检测开关状态SHOW1: MOV P1,A ;将数据送到P1口ACALL DELAY ;调用延时子程序INC DPTR ;取数据表指针指向下一数据 AJMP LOOP1 ;继续查表取数据LOOP2: MOV A,#09H ;设定累加器的初始值MOVC A,@A+DPTR ;取数值表中的数CJNE A,#00000000B,SHOW2;检查右移结束标志 AJMP START ;右移结束重新检查开关状态SHOW2: MOV P1,A ;将数据送到P1口ACALL DELAY ;调用延时子程序INC DPTR ;取数据表指针指向下一数据 AJMP LOOP2 ;继续查表取数据LOOP3:MOV A,#08H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,A ;将数据送到P1口AJMP START ;全灭结束重新检测开关状态LOOP4: MOV A,#11H ;设定累加器初始值MOVC A,@A+DPTR ;取数值表中的数MOV P1,A ;将数据送到P1口AJMP START ;全灭结束重新检测开关状态DELAY MOV R0,#10 ;延时一段时间D0: MOV R1,#100D1: MOV R2,#198NOPD2: DJNZ R2,D2DJNZ R1,D1河北建筑工程学院单片机原理及应用课程设计DJNZ R0,D0RET ;子程序返回TAB:DB 11111110BDB 11111101BDB 11111011BDB 11110111BDB 11101111BDB 11011111BDB 10111111BDB 01111111BDB 11111111BDB 01111111BDB 10111111BDB 11011111BDB 11101111BDB 11110111BDB 11111011BDB 11111101BDB 11111110BDB 00000000BEND ;程序结束六、软件调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在汇编语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。