精华内容
下载资源
问答
  • 043 交通灯 51单片机仿真
  • 交通灯 51单片机 红绿灯 Proteus 马兴录 课程设计 青岛科技大学 红绿灯 倒计时
  • 基于51单片机交通灯控制系统设计

    万次阅读 多人点赞 2018-11-24 13:38:11
    设计为基于51单片机交通灯系统的设计,采用模块化、层次化设计。运用单片机AT89C51进行数据的分析和处理,为显示提供信号,显示部分采用8位数码管显示倒计时值。系统电路简单、集成度高、工作稳定、调试方便、检测...

    第一章 硬件设计与原理
    以AT89C51单片机为核心,起着控制作用。系统包括数码管显示电路、复位电路、时钟电路、发光二级管电路和按键电路。设计思路分为六个模块:复位电路、晶振电路模块、AT89C51、数码管显示电路、发光二级管电路和按键电路这六个模块。

    在这里插入图片描述

    1.2 硬件设计分析
    1.2.1 电源的设计
    系统电源使用直流5伏。
    由电脑USB接口提供电源。
    USB是通用串行总线(Universal Serial Bus)接口的简称。它是目前使用比较广泛的电脑接口之一,主要版本有1.0、1.1和最新的2.0三种版本。根据USB总线的工业标准,它可以提供额定功率为5V/500mA的电源供USB设备使用。
    1.2.2 单片机最小系统
    51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件:
    一个8位CPU;一个片内振荡器及时钟电路;
    4KB的ROM程序存储器;
    一个128B的RAM数据存储器;
    寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;
    32条可编程的I/O口线;
    两个16位定时/计数器;
    一个可编程全双工串行口;
    5个中断源、两个优先级嵌套中断结构。
    如图1-2-1所示为AT89C51单片机基本构造,其基本性能介绍如下:
    图1-2-1 AT89C51单片机

    AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,3个16位可编程定时计数器,2个全双工串行通信口,STC89C51RC可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
    AT89C51的主要特性如下表所示:

    在这里插入图片描述

    AT89C51为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。P0~P3 为可编程通用I/O脚,其功能用途由软件定义,在本设计中,P0端口(32~39脚)被定义为N1功能控制端口,分别与N1的相应功能管脚相连接,13脚定义为IR输入端,10脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12脚、27脚及28脚定义为握手信号功能端口,连接主板CPU的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。
    P0口:P0口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
    P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash编程和程序校验期间,P1接收低8位地址。
    P2口:P2是一个带有内部上拉电阻的8 位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口输出P2锁存器的内容。Flash编程或校验时,P2亦接收高位地址和一些控制信号。
    P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能P3口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
    RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
    ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个AL脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条 MOVX 和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
    PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
    EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
    XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
    XTAL2:振荡器反相放大器的输出端。
    单片机最小原理图如图1-2-2所示。
    图1-2-2 单片机最小系统

    单片机最小系统说明:
    时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。
    时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。
    一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。
    单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。
    1.2.3 显示系统
    数码管是一种半导体发光器件,其基本单元是发光二极管。
    数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。
    数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
    1) 静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动(要知道一个89C51单片机可用的I/O端口才32个呢),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
    2) 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
    本设计中数码管采用的是动态驱动方式。
    数码管外形如图1-2-3,数码管电路结构如图1-2-4。

    图1-2-3 数码管外形图
    图1-2-4 数码管电路结构示意图

    在这里插入图片描述
    图1-2-5 数码管显示电路
    1.2.4 发光二级管电路

    图1-2-6 发光二级管电路
    1.2.5 按键电路
    图1-2-7 按键电路

    第二章 软件设计与分析
    2.1 软件设计的组成
    该系统由延时子函数、数码管显示子函数、定时器0中断子函数、主函数和数据定义这几部分组成。
    在这里插入图片描述

    在这里插入图片描述

    //----------------------------------------------------------------------//
    上传过程感觉繁琐,里面可能有不全面的地方,请见谅。下面的是实现的目的。以及电路原理图

    **本次设计的主要目的是设计一个城市十字路口的交通灯控制系统,设计中将交通灯控制系统分为东西方向(主干道)和南北方向(次干道)两个方向,且在东西南北四个路口的每个路口设置红、绿、黄三个交通信号灯(用发光二极管模拟)和一个二位的LED数码显示管。设计的要求是规定在每一段时间内东西和南北两个方向中只有一个方向能够通行,另一个方向处于禁行状态,然后在经过一段时间后,禁行的方向和通行的方向互相转换状态,原来通行的状态变禁行状态,原来禁行的状态变为通行状态,如此循环下去。详细过程如下图2-1:
    状态① 状态②
    图 1图2-1 交通灯状态图
    状态①:东西方向的交通灯黄灯闪烁3秒后,红灯熄灭,绿灯点亮(东西方向允许车辆和行人通行),同时南北方向绿灯熄灭,红灯点亮(南北方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态②。
    状态②:南北方向黄灯闪烁3秒后,红灯熄灭绿灯点亮(南北允许车辆和行人通行);同时东西方向绿灯熄灭,红灯点亮
    (东西方向禁止车辆和行人通行),LED数码管倒计时显示40秒,在倒计时3秒时进入状态①。
    接下来在没有人为干涉下将会一直按照上述进行循环。设计中还外设6个按键实现对交通灯控制系统的调控作用。

    电路原理图

    在这里插入图片描述

    在这里插入图片描述

    //——————————————————————————-——————————//
    相应的代码已经上传

    下载地址
    https://download.csdn.net/download/weixin_43442020/12231456

    下载链接里可以下载,解压后里面有压缩文件,压缩文件里面的资料更详细

    展开全文
  • 简单的单片机交通灯 包含程序+proteus仿真 系统实现的功能:系统电路上电后 (一)东西方向显示绿灯时,南北方向显示红灯,持续20秒钟后,绿灯变为黄灯并持续3秒钟; (二)然后东西方向显示红灯,南北方向显示...
  • 原标题:51单片机控制交通灯的课程设计51单片机控制交通灯的课设程序如下:ORG 00H;************************************************************;灯操作及数码管显示;*******************************************...

    原标题:51单片机控制交通灯的课程设计

    51单片机控制交通灯的课设

    程序如下:

    ORG 00H

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

    ;灯操作及数码管显示

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

    START:MOV DPTR,#TAB

    MOV S CON,#00H

    MOV P1,#6CH

    MOV R0,#11

    D1: DEC R0 ;自定义为10S

    CJNE R0,#3,LP0

    LCALL DBDB

    MOV P1,#6CH

    LCALL DISP1

    D11: DEC R0

    CJNE R0,#0,LP00

    MOV P1,#6CH

    LCALL DBDB

    LCALL DISP

    MOV P1,#0AAH

    MOV R0,#04

    D2: DEC R0

    CJNE R0,#0,LP1

    LCALL DBDB

    LCALL DISP

    MOV P1,#0C6H

    MOV R0,#16 ; 自定义为15S

    D3: DEC R0

    CJNE R0,#3,LP2

    LCALL DBDB

    MOV P1,#0C6H

    LCALL DISP1

    D33: DEC R0

    CJNE R0,#0,LP22

    MOV P1,#0C6H

    LCALL DBDB

    LCALL DISP

    MOV P1,#0AAH

    MOV R0,#04

    D4: DEC R0

    CJNE R0,#0,LP3

    LCALL DBDB

    LCALL DISP

    MOV P1,#6CH

    MOV R0,#11

    LJMP D1

    LP0: LCALL DBDB

    LCALL DISP

    LJMP D1

    LP00: LCALL DBDB

    MOV P1,#6CH

    LCALL DISP1

    LJMP D11

    LP1: LCALL DBDB

    LCALL DISP

    LJMP D2

    LP2: LCALL DBDB

    LCALL DISP

    LJMP D3

    LP22: LCALL DBDB

    MOV P1,#0C6H

    LCALL DISP1

    LJMP D33

    LP3: LCALL DBDB

    LCALL DISP

    LCALL D4

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

    ;除10运算

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

    DBDB: MOV A,R0

    MOV B,#10

    DIV AB

    MOV R1,A

    MOV R2,B

    RET

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

    ;显示子程序

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

    DISP: MOV A,R2

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV A,R1

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY

    RET

    DISP1: MOV A,R2

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV A,R1

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY1

    MOV P1,#0FFH

    MOV A,#10

    MOVC A,@A+DPTR

    MOV SBUF,A

    JNB TI,$

    CLR TI

    MOV SBUF,A

    JNB TI,$

    CLR TI

    LCALL DELAY2

    RET

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

    ;延时子程序

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

    DELAY:MOV R3,#09H

    K1: MOV R4,#100

    K2: MOV R5,#250

    K3: DJNZ R5,K3

    DJNZ R4,K2

    DJNZ R3,K1

    RET

    DELAY1:MOV R3,#09H

    SS1: MOV R4,#80

    SS2: MOV R5,#250

    SS3: DJNZ R5,SS3

    DJNZ R4,SS2

    DJNZ R3,SS1

    RET

    DELAY2:MOV R3,#09H

    AA1: MOV R4,#30

    AA2: MOV R5,#250

    AA3: DJNZ R5,AA3

    DJNZ R4,AA2

    DJNZ R3,AA1

    RET

    TAB: DB 3FH,06H,5BH

    DB 4FH,66H

    DB 6DH,7DH,07H

    DB 7FH,6FH,00H返回搜狐,查看更多

    责任编辑:

    展开全文
  • 交通灯 51单片机

    2013-08-11 11:25:06
    采用51单片机作为系统的MCU,基本完成控制两组交通指示交替亮每个街口有左拐、直行及行人三种指示
  • 基于51单片机交通灯控制设计

    万次阅读 多人点赞 2019-07-12 21:29:19
    题目 交通灯控制设计 课程设计目标与任务、计划与进度安排: 实践教学要求与任务: 1、了解交通灯的基本工作原理; 2、用Proteus模拟实现交通灯控制; 3、用Keil C51编程实现上述功能; 4、用Keil与Proteus联调。 工作...

    课程设计任务书及成绩

    课程名称

    单片机课程设计

    题目

    交通灯控制设计

    课程设计目标与任务、计划与进度安排:

    实践教学要求与任务:

    1、了解交通灯的基本工作原理;
    2、用Proteus模拟实现交通灯控制;
    3、用Keil C51编程实现上述功能;
    4、用Keil与Proteus联调。

    工作计划与进度安排:

    17周查找相关资料。
    18周详细设计。
    19周程序测试,书写论文,进行答辩。

    1 引言

    交通事业蓬勃发展,交通流量年年增长,大、中、小城市的汽车、摩托车等各种车辆与日俱增,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,机动车、非机动车、行人来往非常混乱,为了在叉口的各条干道实现合理的科学分流。本人根据单片机具有物美价廉、功能强、使用方便灵活、可靠性高等特点,提出了一种用STC89c51单片机自动控制交通信号灯及时间显示的方法,同时给出了软硬件的实现方法,为交通指挥自动化提供了一种新的廉价手段,具有一定的推广意义。本文介绍了控制基本原理以及控制的表现,同时也介绍了城市交通信息系统的设计目标, 开发途径及其系统结构与功能和数据地理编码、建库, 同时, 论述了系统中交通现状、交通管理、交通规划及背景信息查询模块的建造及应用。介绍了用于城市交叉路口的三色程控交通信号时间显示器的研制方案,对其电源供电、发光二极管构成的负载结构、灯色时间检测都给出了精巧合理的优化结构,大幅度地提高了产品可靠性并降低了制造成本。

    2 应用软件介绍

    2.1 C语言介绍

    C语言是于1972年由贝尔实验室的Dennis Ritchie在B语言的基础上开发出来的。最初的C语言是作为UNIX操作系统的开发语言而被人们所认识。此后,贝尔实验室对C语言进行了多次改进和版本的公布,C语言的优点才引起人们的普遍注意。随着UNIX操作系统在各种机器上的广范使用,使C语言得到了迅速推广。1978年由Brian W. Kernighan和Dennis M. Ritchit合著了《The C Programming Language》一书,该书对C语言作了详细的描述,这本书对C语言发展影响深远,并成为了后来C语言版本的基础,称之为标准C。随后C语言在各种计算机上快速得以推广,并导致了许多C语言版本的出现。

    2.2 Keil C51

    Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行 Keil软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。

    2.3 Proteus

    Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件。它不仅具有其它EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。 Proteus 是英国著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010年又增加了 Cortex 和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil 和 MATLAB 等多种编译器。

    3 硬件资源介绍

    3.1单片机简介

    单片机(MCU)又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
    目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。

    3.2 89C51 简介

    89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 89C51 是一种高效微控制器,89C2051 是它的一种精简版本。

    3.3 89C51 单片机的片内逻辑结构

    在这里插入图片描述

    3.4 89C51 硬件资源

    (1)微处理器(CPU):一个 8 位 CPU。
    (2)数据存储器(RAM):片内为 128B,片外最多可外扩 64KB。
    (3)程序存储器(4KB Flash ROM):片内为 4KB,片外最多可外扩程序存储器至 64KB。
    (4)4 个 8 位可编程并行 I/O 口(P0、P1、P2、P3),1 个全双工的串行口。
    (5)定时器/计数器:片内有 2 个 16 位的定时器/计数器,具有 4 种工作方式。
    (6)中断系统:具有 5 个中断源,2 级中断优先级。
    (7)特殊功能寄存器(SFR): 共有 21 个特殊功能寄存器,用于 CPU 对片内各功能部件进行管理、控制和监视。
    (8)1 个看门狗定时器(WDT)。

    3.5 89C51 的引脚图

    在这里插入图片描述

    (1)P0 口:8 位,漏极开路的双向 I/O 口。
    (2) P1 口:8 位,准双向 I/O 口,具有内部上拉电阻。
    (3)P2 口:8 位,专为用户使用的准双向 I/O 口,具有内部上拉电阻。
    (4)P3 口:8 位,准双向 I/O 口,具有内部上拉电阻。也可作为普通的 I/O 口使用。除此之外,P3 口还有第二功能的定义。

    4 设计课题

    交通灯控制设计:
    1.了解一个十字路口交通灯基本工作原理,要求分主次干道,并加入倒计时功能
    2.用Keil C51编程实现上述功能
    3.用Proteus模拟实现十字路口交通灯控制电路。
    4.用Keil与Proteus联调

    5.方案设计

    5.1交通灯四种通行模式及行车方向指示

    按照简单的交通路口规则,有四种模式

    1. 南北绿灯亮 东西红灯亮
    2. 南北黄灯闪 东西红灯亮
    3. 南北红灯亮 东西绿灯亮
    4. 南北红灯亮 东西黄灯闪

    在这里插入图片描述

    5.2 交通灯控制系统

    实用交通灯控制系统主要CPU控制模块为了、信号灯显示模块、倒计时显示模块等组成,如下图所示:
    在这里插入图片描述
    其中控制模块是最核心的部分,控制核心采用AT89C51单片机,利用AT89C51单片机内部定时器实现交通指示灯控制的计时功能,在正常情况下产生相应的控制信息控制倒计时显示电路,信号灯显示电路的正常运行。
    信号灯显示模块采用四个集成交通指示灯来模拟红、黄、绿交通指示灯,用单片机的P1口控制发光二极管的亮灭状态。
    倒计时显示模块的接口电路有静态显示和动态显示两种方式,由于动态显示方式在仿真软件中不易于查看,所以本次采用静态显示方式,这种方式优点是易于操作,缺点是浪费单片机接口资源。
    为了倒计时更加准确,采用外加晶振电路方法实现其功能。

    6硬件系统设计

    6.1 信号灯显示模块

    由于南北方向的信号灯始终是同一种状态,所以南北信号灯为一组,只需将对应的信号灯并联即可,东西方向同理。
    在这里插入图片描述

    6.2 倒计时显示模块

    选取8个7段数码管分别模拟显示四个方向的倒计时,数码管采用共阴极接法。
    为了提高P0、P2端口的电流输出能力,保证数码管亮度,保护端口引脚,在P0端口与数码管之间增加了74LS245芯片。
    在这里插入图片描述

    6.3 复位模块

    此系统可以通过复位按键实现从新工作,电路图如图所示:

    在这里插入图片描述

    7软件系统设计

    7.1 中断服务程序框图

    在这里插入图片描述

    7.2 主程序框图

    在这里插入图片描述
    7.3 程序代码

    #include<reg51.h>
    sbit g1=P1^0; 	//位定义
    sbit r1=P1^1; 
    sbit y1=P1^2; 
    sbit g2=P1^3; 
    sbit r2=P1^4; 
    sbit y2=P1^5; 
    unsigned char f=0;
    unsigned char nanbei_time=15;	 //定义南北的时间长度
    unsigned char dongxi_time=11;    //定义东西的时间长度
    unsigned char m; 
    unsigned char code  t[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x27,0x7F,0x6F}; 
    void init_timer0(void) 	   //中断初始化函数
    	{
      	TMOD=0x01;  
      	TH0=(65536-50000)/256;  
     	 TL0=(65536-50000)%256;  
     	 ET0=1;  
     	 EA=1;  
      	TR0=1; 
     	 } 
     void display(unsigned char x) 
     	 {  
      	unsigned char m,n;  
    	m=x/10;  
    	n=x%10;  
    	P0=t[m];  
    	P2=t[n]; 
    	} 
    void timer(void) interrupt 1 using 1  //中断服务函数
    {
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        f++;
        if(f==20)
        {
            f=0;
            m--;
        }
    }
    void main() 
    {
    	m=nanbei_time;
       	P1=0x00;  
    	init_timer0(); 
       	while(1)  {  
      	 do   {   
    	 display(m);   
       		g1=1;  
    		r1=0;
            g2=0;
            r2=1;
            }
            while(m!=3);
            do
            {        
                if(m<=3)
                {
                    y1=~y1;
    				r1=0;
    				g1=0;
                    r2=1;
    				g2=0;
                         }
            display(m);    
            		r1=0;
            g2=0;
            r2=1;
            }
            while(m!=3);
            do
            {        
                if(m<=3)
                {
                    y1=~y1;r1=0;g1=0;
                    r2=1;g2=0; 
                 }
            display(m);    
            }
    		while(m!=0);
    		if(m==0)
    {        m = dongxi_time;
    		y1 = 0;
    		y2 = 0;
        }
    	do{
    	display(m);
    	g1 = 0;
    	r1 = 1;
    	g2 = 1;
    	r2 = 0;
    	}
    	while(m!=3);
    	do{
    	      if(m<=3)
                {    
                    r1=1,g1=0;
                    y2=~y2,r2=0,g2=0;
              }
            display(m);
            }while(m!=0);
                if(m==0)
                {
                    m=nanbei_time;
                    y1=0;
                    y2=0;
                }
        }
    }
    

    8 电路仿真
    在这里插入图片描述
    在这里插入图片描述
    开始仿真:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    9设计总结
    通过这次单片机课设,我不仅学到了许多新的知识,而且加深了我对以前学习的理论知识的掌握。以前我们学的东西仅限于课本,对实实在在的应用还比较模糊,这次课程设计有利于同学们学习目的的明确性和主动性。通过这次课程设计,我们知道了哪些东西是应该确实掌握的,在实践中填充我理论知识的不足,可以将理论很好地应用到实际当中去。
    10参考文献
    1.《单片机原理及接口技术》 张毅刚 人民邮电出版社
    2.《单片机课程设计指导书》 皮大能 北京理工大学出版社

    展开全文
  • 交通灯51单片机

    2012-04-16 09:25:47
    交通灯 红绿黄三色 基于PROTEUS的仿真,看起来非常方便。
  • 程序在protues仿真环境下通过,含紧急放行功能
  • 交通灯程序设计 交通灯protues仿真程序基于51单片机交通灯仿真
  • 交通灯程序设计+交通灯protues仿真程序基于51单片机交通灯仿真
  • 一个实现简易但是完备功能的交通灯模块,一侧红一侧绿,黄灯准备。
  • 基于51单片机交通灯的系统设计,包括论文,原理图,源代码都有。
  • 关于51单片机交通灯的代码和仿真!
  • C51单片机交通灯设计

    2011-06-03 11:06:52
    用C51单片机设计交通灯设计控制系统,其中包括仿真电路图和设计程序等。
  • 51单片机设计简易交通灯

    千次阅读 2020-05-26 11:45:06
    51单片机设计简易交通灯 ** 单片机好难啊 (好像学啥都难。。。)皮毛也没学到设计简陋(尴尬) 不过通过自己的学习做出了一点东西 虽然很简陋 但还是很让人开心啊 使用Proteus设计电路图连接电路图 使用keil进行...

    **

    51单片机设计简易交通灯

    **

    单片机好难啊 (好像学啥都难。。。)皮毛也没学到设计简陋(尴尬)
    不过通过自己的学习做出了一点东西 虽然很简陋 但还是很让人开心啊

    使用Proteus设计电路图连接电路图
    使用keil进行C语言代码编程
    使用keil生成的.hex文件在Proteus中进行仿真运行主要元件

    电路仿真运行
    电路仿真运行
    有兴趣的可以看着玩

    51单片机设计交通灯(学习单片机感觉要被劝退了。。。我是新手设计简陋勿喷)

    展开全文
  • 51单片机交通灯设计.rar
  • 基于51单片机交通灯设计,包括源代码,原理图源文件,电路制作详细步骤!相关重要文件,保证您交通灯设计畅通无阻!
  • 51单片机交通灯设计

    2011-01-10 20:34:34
    基于51单片机交通灯设计,数码管显示时间,LED显示红绿灯
  • 红绿灯,用C语言编写的51单片机程序,包括实物图仿真。
  • C51单片机LED交通灯程序设计
  • 51单片机设计交通灯keil工程文件C源文件,P1链接LED用于显示红绿灯,数码管显示时间
  • 基于51单片机设计交通灯毕业设计
  • 51单片机交通灯课程设计,含源码程序,视频讲解,元件清单,操作说明,原理图,毕业论文等超全,是毕业设计非常有用的参考资料
  • AT89C51单片机交通灯控制系统是由AT89C51单片机、键盘电路、LED倒计时、交通灯显示等模块组成。系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行通过、交通特殊情况处理等相关功能,实验...
  • 基于51单片机交通灯控制系统设计 摘要:在日常生活中,交通信号灯的使用,市交通得以有效管理,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。交通灯控制系统由80C51单片机、键盘、LED显示、交通...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,832
精华内容 732
关键字:

交通灯51单片机设计