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

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

单片机原理课程设计

题目:基于单片机的可控流水灯设计学院:物理与机电工程学院姓名:赵勇敢

学号:2 0 1 0 2 1 0 3 6 2 指导老师:向根祥

摘要

单片机是一种集成电路芯片,采用超大规模技术,把具有数据处理能力的微处理器、随机存取数据存储器、只读程序存储器、输入输出电路、可能还包括定时计数器、串口通信口、显示驱动电路,脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一块芯片上,构成一个最小而完善的计算机系统。这些电路在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。对可控流水灯设计通过编写代码实现8个LED灯4种流水灯显示方式。在设计中主要采用89C51这款芯片作为控制主体,用发光二极管来作为显示灯,用按钮来切换流水灯的发光方式同时外接一个七段显示发光二极管来显示流水灯的发光模式。系统通过P1口外接8个发光二极管,P3口接4个按键,一个按键进行方式选择,数码管显示方式编号;用两个键来控制流水灯流动的速度。数码管接在89C51的P3口上,而流水灯的放光二极管接在P1口上。设计中辅以简单的设备和必要的电路,设计了一款流水灯,最终达到预期的目的。

关键词单片机89C51发光二极管流水灯

目录

1 引言 (1)

2课题综述 (1)

2.1 课题的来源 (1)

2.2课题的意义 (1)

2.3预期的目标 (1)

2.4面对的问题 (1)

2.5课题的技术 (2)

3系统分析 (2)

3.1涉及的基础知识 (2)

3.289C51单片机引脚图及引脚功能介绍 (2)

3.3 解决问题的基本思路 (3)

3.4总体方案 (3)

4系统设计 (4)

4.1硬件设计 (4)

4.2 软件设计 (4)

4.3元件清单 (5)

4.4硬件原理图 (5)

4.5设计主要功能 (5)

5程序编写 (6)

6在线调试 (8)

结论 (9)

致谢.............................................................................................................. 错误!未定义书签。

参考文献.............................................................................................................. 错误!未定义书签。

1.引言

单片机课程设计主要是为了让我们增进对89C51单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。

2课题综述

2.1课题的来源

当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。

2.2课题的意义

这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。找出自身的不足并加以改正。

2.3预期的目标

对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。

2.4面对的问题

这次课程设计是通过89C51位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。首先我们需要通过proteaus将设计的实物的电路图画出来,再根据电路图连接实物电路。

2.5课题的技术

LED灯的显示方式、模式切换按钮的控制、亮灯速度的按键控制等技术。

3系统分析

3.1涉及的基础知识

电路焊接:制造电子产品的重要手段。

89C51单片机指令系统:规定89C51单片机内操作的语句或命令。

LED数码管的显示:向数码的显示送数,控制系统的显示部分。

3.289C51单片机引脚图及引脚功能介绍

本次实习的目的在于加深89C51单片机的理解,首先来简单认识一下,它的引脚如图3-1所示:

图3.1 89C51的引脚图

单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

1.电源:

(1)VCC:芯片电源,接+5V;

(2)VSS:接地端;

2.时钟:

XTAL1、XTAL2 :晶体振荡电路反相输入端和输出端。

3.控制线:控制线共有4根,

(1)ALE/PROG:地址锁存允许/片内EPROM编程脉冲

ALE功能:用来锁存P0口送出的低8位地址

PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。(2)PSEN:外ROM读选通信号。

(3)RST/VPD:复位/备用电源。

RST(Reset)功能:复位信号输入端。

VPD功能:在Vcc掉电情况下,接备用电源。

(4)EA/Vpp:内外ROM选择/片内EPROM编程电源。

EA功能:内外ROM选择端。

Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

4.I/O分配线

89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。

3.3解决问题的基本思路

因为选定用循环移位法来实现亮灯程序的,所以在一种设计好一种亮灯方式的前提下编程实现一个循环结构体,分别来实现五种不同的亮灯方式。另外再编一个实现延时控制的调用程序,来提供亮灯速度的控制。

3.4总体方案

在做本次课程设计之前将小组内人员分为两小组:一组分负责硬件设计,另一组负责软件编程。硬件小组负责实物的连接和焊接,并进行硬件测试;软件小组负责实现流水灯的各部分程序设计,并进行软件的仿真测试。最后将完成的软硬件相结合,从而达到实现课程设计的效果。

系统流程图:

4 系统设计

4.1硬件设计

按照单片机系统扩展与系统配置状况,单片机应用系统可分为最小系统、最小功耗系统及典型系统等。89C51单片机是本次课程设计运用的主要原件。流水灯控制设计是用一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。

4.2软件设计

单片机的应用系统由硬件和软件组成,在硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个重要的组成部分,也是本次课程设计的重点和难点。我们编程实现流水灯的方法是循环移位法,下面我们就来简述一下循环移位法的工作原理。

循环移位法是采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果了。另外,由于89C51系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样也可以实现“流水”效果。

4.3 元件清单

4.4硬件原理图

图4-1硬件原理图

4.5设计主要功能

打开电路开关,按下第一个模式控制键,8个LED数码管会从右向左一个接着一个亮灯,LED显示器会显示数字“1”来表示当前的亮灯方式是模式1。在8个LED

数码管全部亮后再次按下第一个模式控制键,8个LED数码管会从又向左2个一组的一次亮灯,同时LED显示器会显示数字“2”来表示当前的亮灯方式是模式2。以此类推,一共有5种显示模式。而第2、3个按键分别控制亮灯速度的快慢。

5程序编写

ORG 0000H

JMP START

ORG 0003H

JMP X0_INT

ORG 000BH

JMP T0_INT

ORG 0013H

JMP X1_INT

START:

MOV TMOD, #51H ;/*01010001 T1计数,T0定时*/

MOV TH0, #3CH ;50ms@12MHz

MOV TL0, #0B0H

MOV TH1, #0

MOV TL1, #0

SETB TR0

SETB TR1

SETB IT0

SETB IT1

MOV IE, #10000111B

MOV R7, #20

MOV 30H, #20

MOV 31H, #0

MOV 32H, #0

MOV P2, #06H ;显示1

SJMP $

T0_INT: ;50ms执行一次

MOV TL0, #0B0H ;重新写入初始值

MOV TH0, #3CH ;50ms@12MHz

JIA:

JB P3.4, JIAN

JNB P3.4, $

DEC 30H ;加速

MOV A, 30H

JNZ XXX ;不能让它为0

INC 30H

XXX:

JIAN:

JB P3.5, XIANSHI

JNB P3.5, $

INC 30H

MOV A, 30H

SUBB A, #80

JC CCC

MOV 30H, #80

CCC:

XIANSHI:

DJNZ R7, T0_END

MOV R7, 30H

INC 32H

ANL 32H, #7

MOV A, 31H

ANL A, #3

RL A

RL A

RL A

ADD A, 32H

MOV DPTR, #HUA_Y

MOVC A, @A+DPTR

CPL A

MOV P1, A

T0_END:

RETI

X0_INT: ;设置花型 CALL DL10MS

JB P3.2, X0_END

INC 31H

ANL 31H, #3

MOV A, 31H

MOV DPTR, #TAB

MOVC A, @A + DPTR

MOV P2, A

X0_END:

RETI

TAB:DB 06H, 5BH, 4FH, 66H X1_INT: ;启动/停止 CALL DL10MS

JB P3.3, X0_END

CPL TR0

X1_END:

RETI

HUA_Y:

DB 0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01

DB 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80

DB 0x81,0x42,0x24,0x18,0x81,0x42,0x24,0x18

DB 0x18,0x24,0x42,0x81,0x18,0x24,0x42,0x81

DL10MS:

MOV R5, #10

MOV R6, #249

DJNZ R6, $

DJNZ R5, $ - 2

RET

END

6 在线调试

本程序运行过程中没有错误。但对于双键控制流水灯亮灯速度的功能并没有得到实现。将电路板用数据线连接,打开开关,按钮用来切换模式,一共有五种流动方式,每按一次按钮就会有一种方式,并在LED显示器上面显示出该模式的序号。

结论

由于本次课程设计包括了软件和硬件知识,所以在完成课程设计的同时也让我们了解到了我们在软硬件设计和制作方面的不足。在这一周的设计过程中我所担任的工作是对电路板各元器件的连接和焊接工作,虽然看似简单,但做起来却是一个细致的工作,尤其是对于三极管与双电阻并联的焊接工作,更是要细中再细,因为这些元器件的引脚距离都是比较近的,一旦将不该连接的引脚焊接到了一起,该元器件将会失去它原来的工作效果,还很有可能将整个电路短路。

对于软件方面,是由我们小组成员共同完成的,虽然最终没有实现所有要求的设计效果,但对于我们来说,设计实现的功能已经是一个不小的收获了。负责硬件焊接的我在最初看到程序代码的时候还是一头雾水,经过组内成员的多次讲解和讨论,最后我还是理解了如何运用左移法实现流水灯循环点亮的工作原理,并对如何使用程序调用也有了一定的了解。

当软件和硬件都完成以后,接下来就是将软件的控制程序写入到硬件里面,从而通过软硬结合的过程,来实现设计要求。在这个环节中我们还是遇到了或多或少的问题,这些问题让我们困惑了很久,但最后我们还是通过不断的完善程序代码,来实现各个元器件的工作效果,最终解决了问题。

致谢

通过此次课程设计,使我具备了一定的学习能力与动手查资料能力。自己的研究摸索,小组成员的讨论,老师的精心指点,使我在这次课程设计中受益颇深。在这里,我真的非常感谢沈老师的精心指导与同学的热心帮助,我由衷地向他们致以真诚的谢意与感激。我相信,只要自己认真完成老师交代的任务,及时有效地查找相关资料,再大的困难肯定都能解决,这正验证了“功夫不负有心人”这句话。

希望自己再接再厉,勇敢地向自己的理想迈进,我相信,前方将是锦绣前程。

参考文献

1.单片机原理与应用技术王静霞主编

2.51单片机原理与实践北京航空航天大学出版社

3.百度网

基于单片机的交通灯控制

基于单片机的交通灯控制 目录 摘要 ................................................................... 2 第1 章概述.............................................................3 1.1课题背景.......................................................... 3 1.1.1课题来源 ......................................................3 1.1.2市场需求 .......................................................3 1.2单片机技术的发展................................................. (3) 1.2.1单片机简介 . . . . . .............................................3 1.2.2单片机发展概述..................................................4 1.2.3单片机的发展趋势...............................................6第2章交通灯的硬件设计...................................................7 2.1MSC-51芯片简介.................................................7 2.2移位寄存器74LS164.................................................10 2.3 LED显示器.................................................................10 2.3.1显示器的结构和原理..................................................10 2.3.2 LED静态显示方式...................................................11 2.3.3 LED动态显示方式...................................................12 第3章交通灯的设计方案..................................................12 3.1设计要求..........................................................13 3.2 基本原理.........................................................13 3.3交通灯控制线路图..................................................14 3.4印制电路板图......................................................14 3.4.1印制电路板图的设计要求.......................................14 3.4.2交通灯印制板图................................................15 第4章交通灯的软件设计...............................................16 4.1延时设计..........................................................16 4.1.1 硬件延时.....................................................16 4.1.2 软件延时......................... ........... ...... (17) 4.2 时间及信号灯的显示...............................................18 4.2.1 74LS164 8位并行输出串行输入移位寄存...........................18 4.2.2显示原理......................................................18 4.2.3数码管显示器显示..............................................18 4.3程序设计..........................................................18 4.3.1流程图........................................................18 4.3.2 程序源代码...................................................19

可控流水灯单片机课程设计报告(c语言)

EDA课程设计报告 流水灯 专业:电子信息工程 学号:xxx 姓名:xxx 2012-6-27

目录 1 引言 (1) 2课题综述 (1) 2.1 课题的来源 (1) 2.2课题的意义 (1) 2.3预期的目标 (1) 2.4面对的问题 (1) 2.5课题的技术 (2) 3系统分析 (2) 3.1涉及的基础知识 (2) 3.289C51单片机引脚图及引脚功能介绍 (2) 3.3 解决问题的基本思路 (3) 3.4总体方案 (3) 4系统设计 (3) 4.1硬件设计 (3) 4.2 软件设计 (4) 4.3元件清单 (4) 4.4硬件原理图 (5) 4.5 硬件焊接图 (5) 4.6设计主要功能 (6) 5代码编写 (6) 6程序调试 (8) 结论 (9) 致谢 .................................................................................................. 错误!未定义书签。参考文献 .............................................................................................. 错误!未定义书签。

1 引言 单片机课程设计主要是为了让我们增进对89C51单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 2课题综述 2.1课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2课题的意义 这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。找出自身的不足并加以改正。 2.3预期的目标 对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。 2.4面对的问题 这次课程设计是通过8951位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。首先我们需要通过protel将设计的实物的电路图画出来,再根据电路图连接实物电路。

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

案例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:感谢大家的阅读,本文由我司收集整编。仅供参阅!

基于51单片机的流水灯设计说明

基于51单片机的流水灯设计 一.基本功能 利用AT89c51作为主控器组成一个LED流水灯系统,实现8个LED 灯的左、右循环显示。 二.硬件设计 图1.总设计图

1.单片机最小系统 1.1选用AT89C51的引脚功能 图2. AT89C51 XTAL1:单芯片系统时钟的反向放大器输入端。 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语言虽然执行效率没有汇编语言

(完整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

按键控制流水灯设计报告

按键控制流水灯设计报告 一、项目名称: 按键控制流水灯 二、目的: 通过对按键控制发光二极管项目的改变,设计出自己的方案,来加深对硬件技术的理解,同时锻炼关于硬件的编程技术,掌握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,所以暂时不清楚如何感应到按键一和按键二什么时候按下。 九、后续设计计划: 可以设计更炫酷的亮灯方式。

基于单片机的十字路口交通灯控制系统设计讲解

长沙航空职业技术学院毕业设计(论文) 题目:基于单片机的十字路口 交通灯控制系统设计 学生姓名 系别航空电子电气工程系 专业应用电子技术专业 学号 指导教师 职称

目录 摘要 (2) 前言 (4) 第一章绪论 (5) 1.1背景 (5) 1.2 设计的目的及意义 (5) 1.3 交通灯控制系统设计的任务与要求 (5) 1.4 设计实现的主要功能 (6) 第二章交通灯的总体方案设计与论证 (7) 2.1 显示界面方案 (7) 2.2 输入方案 (7) 第三章交通灯原理分析 (8) 3.1 交通灯显示时序的理论分析 (8) 3.2 交通灯显示的理论分析 (9) 3.2.1倒计时显示的理论分析 (9) 3.2.2状态灯显示的理论分析 (10) 第四章交通灯系统硬件设计 (11) 4.1 交通灯系统设计芯片选择 (11) 4.2.1系统构成: (12) 4.2.2七段数码管介绍: (12) 第五章交通灯系统软件设计 (14) 5.1程序设计流程图 (14) 5.2 交通灯系统编程信息 (16) 第六章交通灯的仿真及调试 (17) 6.1 Proteus软件仿真 (17) 6.2功能调试 (18) 6.3 交通灯实物调试 (19) 结论 (21) 致谢 (22) 参考文献 (23) 附录 A(源程序) (24) 附录 B(电路原理图) (27) 附录 C(PCB图) (28)

摘要 近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用MCS-51系列单片机AT89C51为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051芯片的P1口设置红、绿、黄灯燃亮时间的功能;红绿灯循环点亮,倒计时剩3秒时黄灯警示,显示时间通过P2口输出至双位数码管。本系统设计周期短、可靠性高、实用性强、操作简单、维护方便、扩展功能强。 关键词:单片机;交通灯;AT89C51

精品可控流水灯单片机课程设计报告(c语言)-定

目录 1 引言 (1) 2课题综述 (1) 2.1 课题的来源 (1) 2.2课题的意义 (1) 2.3预期的目标 (1) 2.4面对的问题 (1) 2.5课题的技术 (2) 3系统分析 (2) 3.1涉及的基础知识 (2) 3.280C51单片机引脚图及引脚功能介绍 (2) 3.3 解决问题的基本思路 (3) 3.4总体方案 (3) 4系统设计 (3) 4.1硬件设计 (3) 4.2 软件设计 (4) 4.3元件清单 (4) 4.4硬件原理图 (5) 4.5 硬件焊接图 (6) 4.6设计主要功能 (6) 5代码编写 (6) 6程序调试 (7) 结论 (8) 致谢 .................................................................................................. 错误!未定义书签。参考文献 .............................................................................................. 错误!未定义书签。

1 引言 单片机课程设计主要是为了让我们增进对80C51单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 2课题综述 2.1课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2课题的意义 这次单片机课程设计是为了通过对流水灯控制的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。能够让学生深入真是的体会到所学的理论知识和实践相结合的过程。找出自身的不足并加以改正。 2.3预期的目标 对8个LED灯设计5种流水灯显示方式,用一个按键进行方式选择,并用一个数码管显示方式编号;用两个键来控制流水灯流动的速度。 2.4面对的问题 这次课程设计是通过80C51位单片机实现。但面对的问题却是两方面的:一个是软件的设计,也就是实现流水灯控制功能的程序编辑;另一个是硬件的设计,需要我们自己连接、焊接电路板。而更为严峻的就是设计的最后还要将软硬件相结合。首先我们需要通过protel将设计的实物的电路图画出来,再根据电路图连接实物电路。

单片机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微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

基于单片机的交通灯控制系统

基于单片机的交通灯控制系统 一、实验目的 1、了解交通灯的控制方法 2、掌握8051单片机基本操作 3、掌握keil和PrOteuS软件的使用 二、实验原理 通过对十字路口的观察,发现红绿灯的控制原理:首先南北方向右转加直行的绿灯亮起。此时,东西方向为红灯;当右转加直行绿灯倒计时进入最后5秒, 绿灯切换为黄灯并开始闪烁,东西方向红灯不变;接着南北方向切换为左转灯,东西方向依然是红灯;同样当倒计时进入最后5秒时,黄灯开始闪烁。东西方向为红灯。然后东西方向的右转加直行绿灯亮起,以此类推。 三、实验内容及程序 主程序: void main (VOid)

Busy_LED=O; SPeCiaLLED=O; ITO=1; //INTO 负跳变触发 TMOD=O X OI;//定时器工作于方式1 TH0=(65536-50000)∕256;// 定时器赋初值TL0=(65536- 50000)%256; EA=1; //CPU开中断总允许 ET0=1;//开定时中断 EX0=1;//开外部INTO中断 TR0=1;// 启动定时 while(1) { Flag_EW_Yellow=0; //EW关黄灯显示信号 Time_EW=EW; Time_SN=SN; WhiIe(Time_SN>=5) {P仁S[0]; /∕SN 通行,EW红灯 DiSPIay();} P仁0x00; WhiIe(Time_SN>=0 ) {Flag_SN_Yellow=1; EW_Red=1; /∕SN //SN开黄灯信号位 黄灯亮,等待左拐信号,EW红灯 DiSPIay(); } Flag_SN_Yellow=0; /∕SN关黄灯显示信号Time_SN=SNL; WhiIe(Time_SN>=5) {P仁S[2];//SN左拐绿灯亮,EW红灯 DiSPIay();} P仁0x00; WhiIe(Time_SN>=0 ) {Flag_SN_YeIIow=1; EW_Red=1; /∕SN //SN开黄灯信号位 黄灯亮,等待停止信号,EW红灯 DiSPIay(); }

燕山大学单片机课设 设计可控流水灯(c语言)

目录 一、引言 二、课题综述 2.1 课题的来源 2.2 课题的意义 2.3 课题的目标 2.4 课题的技术 三、系统分析 3.1 80C51单片机的基本组成 3.2 80C51单片机引脚图及引脚功能介绍 3.3 解决问题的基本思路 3.4 解决问题的总体方案 四、硬件组成 4.1 晶振震荡电路 4.2 按键复位电路 4.3 电源电路 4.4 独立按键电路 4.5 八位跑马灯电路 4.6 彩灯的总驱动电路 五、代码编写 六、程序调试 七、结论 八、参考文献

一、引言 单片机课程设计主要是为了让我们增进对单片机芯片电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。二.课题综述 2.1 课题的来源 当今社会,随着科学技术的进步和电子产业的迅猛发展,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2 课题的意义 这次单片机课程设计是为了通过对单片机编程设计控制LED灯流水闪亮的设计加强学生团队配合的能力和创造力;综合运用专业及基础知识,解决实际工程技术问题的能力。能够让学生深入真是的体会到所学的理论知识和实践相结合的过程,并融入的所学知识的海洋里,从中找出自身的不足并加以改正。 2.3 预期的目标 对8个LED灯设计几种流水灯显示方式,用按键进行方式选择,

基于51单片机的流水灯

基于51单片机的流水灯 利用51单片机P0口实现8个LED(发光二极管)的流水灯控制。可以使用Proteus软件进行仿真调试。 1 硬件设计 利用单片机的PO口控制8个LED,其电路如下图所示。 在桌面上双击图标,打开ISIS 7 Professional窗口(本人使用的是v7.4 SP3中文版)。单击菜单命令“文件”→“新建设计”,选择DEFAULT模板,保存文件名为“LSD.DSN”。在器件选择按钮中单击“P”按钮,或执行菜单命令“库”→“拾取元件/符号”,添加如下表所示 都可以不画,它们都是默认的。 在ISIS原理图编辑窗口中放置元件,再单击工具箱中元件终端图标,在对象选择器中单击POWER和GROUND放置电源和地。放置好元件后,布好线。左键双击各元件,设置相应元件参数,完成电路图的设计。 2 软件设计 流水灯又称为跑马灯,在函数中可以将P0口的八种不同状态做成一维数组,循环执行即可,如下所示。当然也可以采用其它函授来实现,如左移一位<<1(或右移一位>>1),循环左移函授_crol_(或循环右移函授_cror_)等。 /****************************************************************** 流水灯

*******************************************************************/ #include "reg51.h" const tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void delayms(unsigned int x) //延时 { unsigned int j; unsigned char k; for(j=0;j

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

实验三流水灯控制实验 姓名专业通信工程学号成绩 一、实验目的 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:八反相三态缓冲器/线驱动器 引脚排列图:

基于51单片机的交通灯控制系统设计

目录 一引言 (2) 二概要设计 (2) 2.1 设计思路 (2) 2.2总体设计框图 (3) 三硬件设计 (3) 3.1LED循环电路设计 (3) 3.1.1 89cs51单片机概述 (3) 3.1.2 LED循环说明 (5) 3.2 倒计时显示电路 (6) 3.2.1 74LS164芯片 (6) 3.2.2 共阴极数码显示管 (7) 3.2.3 倒计时电路 (7) 3.2.4 急通车电路 (7) 四软件按设计 (8) 4.1 程序流程图: (8) 4.2 LED红绿灯显示 (9) 4.3倒计时显示 (10) 4.4 急通车控制 (10) 4.5程序代码 (10) 五总结 (10) 参考文献 (10) 附录一: (10) 附录二: (11)

基于51单片机的交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提 高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED 显示、交通灯延时组成。系统除具有基本交通灯功能外,还具有时间设置、LED信息显示功 能,市交通实现有效控制。 关键词:交通灯,单片机,自动控制 一引言 当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,是警察受伤,遂被取消! 电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一种标志禁止某一种转向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口! 二概要设计 2.1 设计思路 利用单片机实现交通灯的控制,该任务分以下几个方面: a 实现红、绿、黄灯的循环控制。要实现此功能需要表示三种不同颜色的LED灯分别接在P1个管脚,用软件实现。 b 用数码管显示倒计时。可以利用动态显示或静态显示,串行并出或者并行并出实现。

单片机流水灯课程设计报告书

基于AT89C51单片机的流水灯 1 引言 1.1 课题简介 单片机全称叫单片微型计算机(Single Chip Microcomputer),是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个畴:在智能仪器仪表上的应用,例如精密的测量设备;在工业控制中的应用,用单片机可以构成形式多样的控制系统、数据采集系统,例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等;在家用电器中的应用可从手机,机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动,集群移动通信,无线电对讲机等。单片机在医用设备领域中的应用,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等;在各种大型电器中的模块化应用,如音乐集成单片机,看似简单的功能,微缩在纯电子芯片中(有别于磁带机的原理),就需要复杂的类似于计算机的原理。 本设计着重在于分析计算器软件和开发过程中的环节和步骤,并从实践经验出发对计算器设计做了详细的分析和研究。本系统就是充分利用了8051芯片的I/O引脚。系统以采用MCS-51系列单片机Intel8051为中心器件来设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示,并实现循环的速度可调。 1.2 设计目的 (1) 学习基本理论在实践中综合运用的初步经验,掌握电路设计的基本方法、设计步骤,培养综合设计与调试能力。

相关文档
最新文档