AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx

上传人:b****5 文档编号:3525754 上传时间:2022-11-23 格式:DOCX 页数:14 大小:265.53KB
下载 相关 举报
AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx_第1页
第1页 / 共14页
AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx_第2页
第2页 / 共14页
AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx_第3页
第3页 / 共14页
AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx_第4页
第4页 / 共14页
AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx

《AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx》由会员分享,可在线阅读,更多相关《AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx(14页珍藏版)》请在冰豆网上搜索。

AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序.docx

AT89S51单片机控制红绿黄交通灯亮及闪烁时间与顺序

桂林电子科技大学

微机单片机接口

指导老师:

吴兆华

学生:

冯贤明

学号:

092011133

 

桂林电子科技大学机电工程学院

一设计题目1

二设计目的要求和意义1

2.1设计目的要求1

2.2系统设计意义1

三系统硬件电路图设计2

3.1系统结构框图2

3.2系统硬件电路图2

3.3电路设计PCB图3

四程序流程图与源代码4

4.1程序流程图4

4.2程序源代码4

五系统功能分析与说明5

5.1微处理器5

5.2复位电路的设计9

5.3二极管输出电路9

5.4晶振电路10

5.5制作PCB图10

六设计体会12

七参考文献13

一设计题目

按桂林市微笑堂十字街的交通规则用AT89S51单片机控制红、绿、黄交通灯亮及闪烁时间与顺序。

二设计目的要求和意义

2.1设计目的要求

1通过单片机最小系统的设计,了解常用单片机应用系统开发手段和过程,进一步熟悉和掌握单片机的结构和工作原理,并能初步掌握一般单片机控制系统的编程和应用,从而进一步加深对单片机理论知识的理解。

2掌握单片机内部功能模块。

如定时器/计数器、中断系统、存储器、I/O口等;

3掌握单片机的接口及相关外围芯片的特性、使用与控制方法;

4掌握单片机的编程方法,调试方法;

5掌握单片机应用系统的构建和使用,为以后设计和实现单片机应用系统打下良好的基础。

6.学会使用并熟练掌握电路绘制软件Protel99SE(或DXP);

7.掌握电路图绘制及PCB图布线技巧。

2.2系统设计意义

1、在系统掌握单片机相应基础知识的前提下,熟悉单片机最小应用系统的设计方法及系统设计的基本步骤。

2、完成所需单片机最小应用系统原理图设计绘制的基础上完成系统的电路图设计。

3、完成系统所需的硬件设计制作,在提高实际动手能力的基础上进一步巩固所学知识。

4、进行题目要求功能基础上的软件程序编程,会用相应软件进行程序调试和测试工作。

5、通过单片机应用系统的设计将所学的知识融会贯通,锻炼独立设计、制作和调试单片机应用系统的能力;领会单片机应用系统的软、硬件调试方法和系统的研制开发过程,为进一步的科研实践活动打下坚实的基础。

三系统硬件电路图设计

3.1系统结构框图

本系统的设计思想:

1、以P0口作为输出口,控制六个发光二极管的亮灭,模拟交通灯控制。

2、观察发光二极管的状态是否满足实验要求。

3、设某十字路口P0.0-P0.2为南、北方向,P0.3-P0.5为东、西方向。

初始状态为东、西红灯南、北绿灯亮延时18秒后,东西红灯亮南北黄灯闪烁,然后东、西路口绿灯亮,南、北路口红灯亮,东、西路口通车。

延迟一段时间后,东、西路口绿灯灭,黄灯开始闪烁。

黄灯闪烁若干次后,东、西路口红灯亮,南、北路口绿灯亮,南、北方向通车。

延迟一段时间后,南、北路口绿灯灭,黄灯闪烁。

黄灯闪烁若干次后,再切换到东、西路口方向。

本实验所用发光二极管为共阳极,故输出低电平时二极管亮。

3.2系统硬件电路图

用Protel99SE绘制的硬件电路原理图如下:

图2是系统设计原理图,在复位电路中,其中10K的电阻为电容放电提供回路,同时也减小了对单片机复位口的冲击。

系统比较简单,主要是通过对AT89S51编程序来处理。

图2系统原理图

3.3电路设计PCB图

本次小系统的设计要求设计的电路板实单面板,PCB的生成,主要是在绘制好电路原理图之后,定义各个元器件的封装形式,生成网络表之后,在新建的PCB中导入网络表,即可自动生成PCB。

根据元器件之间的飞线,设置各个参数之后手动布线。

本次设计的PCB图如图3所示。

图3电路PCB图

四程序流程图与源代码

4.1程序流程图

开始

东西红灯亮,南北绿灯亮

延时18秒

东西红灯亮,南北黄灯闪烁

东西绿灯亮,南北红灯亮

延时18秒

东西黄灯闪烁,南北红灯亮

图4程序流程图

4.2程序源代码

ORG0000H

LOOP:

MOVP0,#0F3H

MOVR1,#3

LOOP0:

LCALLDE6S

DJNZR1,LOOP0

MOVR2,#6

LOOP2:

MOVP0,#0F5H

LCALLDE02S

MOVP0,#0F7H

LCALLDE02S

DJNZR2,LOOP2

MOVP0,#0DEH

MOVR1,#3

LOOP3:

LCALLDE6S

DJNZR1,LOOP3

MOVR2,#6

LOOP4:

MOVP0,#0EEH

LCALLDE02S

MOVP0,#0FEH

LCALLDE02S

DJNZR2,LOOP4

LJMPLOOP

DE6S:

MOVR5,#50

SJMPDE1

DE02S:

MOVR5,#08H

DE1:

MOVR6,#200

DE2:

MOVR7,#126

DE3:

DJNZR7,DE3

DJNZR6,DE2

DJNZR5,DE1

RET

END

五系统功能分析与说明

本系统主要是实现对交通灯的控制功能。

本最小系统包括微处理器、复位模块、二极管输出模块、晶振模块,下面详细的介绍了各模块的功能:

5.1微处理器

本系统微处理器用的是AT89S51单片机,下面详细介绍AT89S51的功能和引脚图。

AT89S51单片机是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4Kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准8051指令系统及引脚。

它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。

AT89S51是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及89C51引脚结构,如图4芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:

40个引脚,8kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

图5AT89S51引脚图

引脚排列及功能:

AT89S51/LS51具有PDIP,TQFP和PLCC三种封装形式。

1)P0——8位、开漏极、双向I/O口

P0口可作为通用IO口,但须外接上拉电阻;作为输出口,每个引脚可吸收8个TTL的灌电流。

作为输入时,首先应将引脚置1。

P0口也可用做访问外部程序存储器和数据存储器时的低8位地址数据总线的复用线。

在该模式下,P0口含有内部上拉电阻。

在Flash编程时,P0口接收代码字节数据;在编程校验时,P0口输出代码字节数据(需要外接上拉电阻)。

2)P1口——8位、双向IO口,内部含有上拉电阻

P1口可作为普通IO口。

输出缓冲器可驱动4个TTL负载;用做输入时,先将引脚置1,由片内上拉电阻将其抬到高电平。

P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供拉电流。

在Flash并行编程和校验时,P1口可输入低字节地址。

在串行编程和校验时,P15/MOSI,P16/MISO和P17/SCK分别是串行数据输入、输出和移位脉冲引脚。

3)P2口——具有内部上拉电阻的8位双向IO口

P2口用做输出口时,可驱动4个TTL负载;用做输入口时,先将引脚置1,由内部上拉电阻将其提高到高电平。

若负载为低电平,则通过内部上拉电阻向外输出电流。

CPU访问外部16位地址的存储器时,P2口提供高8位地址。

当CPU用8位地址寻址外部存储器时,P2口为P2特殊功能寄存器的内容。

在Flash并行编程和校验时,P2口可输入高字节地址和某些控制信号。

4)P3口——具有内部上拉电阻的8位双向口

P3口用做输出口时,输出缓冲器可吸收4个TTL的灌电流;用做输入口时,首先将置1,由内部上拉电阻抬为高电平。

若外部的负载是低电平,则通过内部上拉电阻向外部输出电流。

在与Flash并行编程和校验时,P3口可输入某些控制信号。

P3口除了通用IO功能外,还有替代功能,如下表1所示。

引脚

符号

说明

P3.0

RXD

串行口输入

P3.1

TXD

串行口输出

P3.2

INT0

外部中断0

P3.3

INT1

外部中断1

P3.4

T0

T0定时器的外部计数输入

P3.5

T1

T1定时器的外部计数输入

P3.6

WR

外部数据存储器的写选通

P3.7

RD

外部数据存储器的读选通

5)ALE/PROG——地址锁存允许/编程脉冲信号端

在CPU访问外部程序存储器或外部数据存储器时,ALE提供一个地址锁存信号,将低8位地址锁在片外地址锁存器中。

在与Flash并行编程时,该引脚也是编程负脉冲的输入端。

在正常操作状态下,该引脚端口输出恒定频率的脉冲。

其频率为晶振频率的16,可用做外部定时或其他触发信号。

应注意,CPU每次访问外部数据存储器时,都要丢失一个ALE脉冲。

如果需要,则通过将SFR(8EH)的第0位置1,可禁止ALE操作,但在使用MOVC或MOVX指令时,ALE仍然有效。

也就是说,ALE的禁止位不影响对外部存储器的访问。

6)PSEN——外部程序存储器读选通信号,低电平有效

当AT89S51LS51执行来自外部程序存储器的指令代码时,PSEN每个机器周期两次有效。

在访问外部数据存储器时,PSEN无效。

7)ENV——外部程序存储器访问允许

当EA接地时,CPU只执行片外程序存储器中的程序;当EA接V时,CPU首先执行片内程序存储器中的程序(0000H~0FFFH),然后自动转向执行片外程序存储器中的程序(1000H~FFFFH)。

如果程序锁定位LB1被编程(P),那么EA值将在复位时由片内锁存。

在与Flash并行编程时,该引脚可接入12V的编程电压Vpp。

8)XTAL1和XTAL2——XTAL1和XTAL2分别为反向放大器的输入和输出。

该反向放大器可以配置为片内振荡器。

石晶振荡和陶瓷振荡均可采用。

如采用外部时钟源驱动器件,XTAL2应不接。

有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

9)PEROM

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。

在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。

在闲置模式下,CPU停止工作。

但RAM,定时器,计数器,串口和中断系统仍在工作。

在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。

10)RST——复位输入端,高电平有效

在振荡器稳定有效运行情况下,RST端维持两个机器周期的高电平,便可复位器件。

当看门狗定时器溢出输出时,该引脚将输出长达98个振荡周期的高电平。

11)VCC——电源电压输入端

12)GND——电源地

AT89S51有两种节电运行模式:

空闲模式和掉电模式。

①空闲模式

在空闲模式下,CPU处于睡眠状态,振荡器和所有片内外围电路仍然有效。

空闲模式可由软件设置进入(设IDL=1)。

在这种模式下,片内RAM和SFR中的内容保持不变。

空闲模式可通过任何一个允许中断或硬件复位退出。

若用硬件复位方式结束空闲模式,则在片内复位控制逻辑发生作用前长达约两个机器周期时间内,器件从断点处开始执行程序。

片内硬件禁止访问内部RAM,但不禁止访问端口。

为避免采用复位方式退出空闲模式时对端口的不应有的访问,在紧随设置进入空闲指令(即设IDL=1)的后面,不能是写端口或外部RAM的指令。

②掉电模式

引起掉电模式的指令是执行程序中的最后一条指令(使PD=1的指令)。

在掉电模式下,振荡器停止工作,CPU和片内所有外围部件均停止工作,但片内RAM和SFR中的内容保留不变,直到掉电模式结束。

退出掉电模式可用硬件复位或任何一个有效的外部中断INT0和INT1。

复位可重新设置SFR中的内容,但不改变片内RAM中的内容。

在Vcc电源恢复到正常值并维持足够长的时间之后,允许振荡器恢复并达到稳定,方可进行复位,以退出掉电模式。

在本系统中,主要利用了P1、P0口。

5.2复位电路的设计

图6复位电路

复位电路的基本功能是:

系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。

复位电路采用简单的电阻、电容以及按键开关构成手动复位。

如图6所示,在给AT89S51的RST引脚加上高电平并保持2个机器周期的时间,单片机内部就执行复位操作。

若此引脚持续高电平,单片机就处于循环复位状态。

上电瞬间RST引脚获得高电平,随着电容C的充电,RST引脚的高电平将逐渐下降。

RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。

复位电路一般R取10K,C取10uF,RC越大,充电时间越长,单片机上电复位过程越长,其实RC取值不是需要特别严格。

还有种说法,R=1K,C=22uF,抗干扰性更好。

5.3二极管输出电路

图7输出电路

如图7所示,输出电路由发光二极管和电阻组成。

D1至D6依次为南北方向的红灯、黄灯、绿灯;东西方向的红灯、黄灯、绿灯;D7为电源指示灯。

5.4晶振电路

图8晶振电路

如图8所示,晶振电路由12Mhz的石英晶体和两个30PF的电容并联而成。

系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。

AT89S单片机内部有一个用于构成振荡器的高增益反相放大器。

引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。

外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。

对外接电容的值虽然没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性、起振的快速性和温度的稳定性。

因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。

在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证振荡器稳定和可靠地工作。

此电路为单片机提供了稳定的频率,保证了单片机的工作的可靠性。

5.5制作PCB图

Protel99功能强大,为我们进行电子电路原理图和印制板图的设计提供了良好的操作环境。

用Protell99进行电路设计分为两大部分:

原理图的设计和电路板的设计。

原理图的设计实在SCH系统中进行的,电路原理图是印刷板电路设计的基础,只有设计好原理图才有可能进行下一步的电路板设计。

用protel99进行电路板设计的第一步是其原理图的设计。

显然,原理图决定整个电路的基本功能,也是接下来生成网表和设计印刷板电路的基础。

具体步骤如下:

(1)图面设置:

Protel99允许用户根据电路的规模设置图面的大小,按照偏好和习惯设置图面的样式。

实际上,设置图面就是设置了一个工作平面,以后的工作就要在这个平面上进行。

所以图面应该设置得足够大,为进一步工作提供一个足够大的工作空间。

(2)放置元件:

所谓放置元件就是从元件库中选取所需得元件,将其布置到图面上合适的位置,有时还要重定义元件的编号、封装。

元件的封装很重要,要根据元件的实际尺寸和实际封装来决定,要是元件没封装好,将会给以后电路板的制作带来很大的麻烦。

这些都是下一步工作的基础。

Protel99为用户提供了一个非完备的元件库,并且允许用户对这个元件库进行编辑或者新建自己的元件库。

电路板的制作过程

(1)打印:

将生成的PCB图打印到热转印纸上,需注意线不能太窄,墨要加重,否则制板时容易断线,如果在操作过程中断了线,可用电烙铁将锡带过。

(2)熨烫:

将热转印纸覆在铜板上,用电熨斗进行熨烫,关键要注意熨烫的时间,不能太久,也不能时间太短,否则,太久会把铜板烫坏,不够的话墨迹覆不上去。

(3)腐蚀:

把铜板放到三氯化铁溶液中腐蚀,需注意溶液浓度要较高,最好用热水配置,这样腐蚀更快,一般3分钟即可。

如果时间过长,需剩下的铜线也可能被腐蚀。

(4)打孔:

打孔时注意钻头尺寸,本次用的钻头大小是0.712mm的,最需注意的地方是集成块的管脚,如果打孔误差大,管座就很难插上。

(5)放置元件:

放置前应先打磨一下打孔后留下的毛刺,并均匀地涂上松香水(目的是防止铜线氧化,易于焊锡覆着焊盘,但多涂会导致焊接时焊点变黑,影响美观)。

放置元件时注意集成块的管脚,二极管和电解电容的正负,这些都是平时比较容易出错的地方。

(6)焊接:

焊接技术比较难掌握,焊锡、烙铁与焊盘的位置关系,焊锡熔化时间

长短,松香水的浓度,烙铁的温度等等,都是影响焊点美观的因素。

(7)检查:

检查是否有虚焊,集成块管脚位置是否正确,电源引线位置是否恰当等。

检查完毕就能进行调试了。

在电路中的开关本来是用按键,但由于材料有限,用拨位开关取代。

整个系统经过电路设计的修改和仿真软件的验证之后,做成实物这样大大降低了调试和检测的时间。

其功能基本上实现。

六设计体会

制作了这个最小系统后,基本理解了protel99SE软件的一些基本使用思路:

1、主要分两个部分,一个为原理图,一个为PCB图,原理图为你所要实现电路的基本原理结构,只是实现其原理的框图。

一个为PCB,就是你所做的电路的具体实现形式,所做电路的大小,元件大小,导线大小都完全和做出后的电路板一摸一样,做PCB的时候,要考虑到很多的因素,比如导线的宽度,焊盘大小,安全间距,元件摆放位置,元件大小,干涉情况等。

2、原理图和PCB又是有关联的,它们电气特性是一样的,在一边的修改完全可以反映到另一方面。

这就使的设计思路的唯一性,也让改动变得更加合理以及人性化。

3、原理图和PCB都有自己元件库里的元件和一些基本的电路线路组成的。

在做原理图和PCB的时候,最好先把元件进行封装库统一。

似得原理图和PCB能环环相扣,减少设计出错的可能性。

在进行电路板和元件的组装过程中,自己也摸索出一些方法。

比如元件放置到电路板上的时候,最好一个模块一个模块地放上去,做好第一次(比如是单片机及其最基本电路),先检测成功,然后再计划放第二个模块。

放前事先考虑好放入模块后可能出现地电气特性(比如灯的亮灭,某些引脚的高的电平的状态),放入模块后检测这些状态是否和原先设想的一样,不一样就分析问题解决问题,

每放上一个模块都要尽量保证其正确,这样能很大解决以后的故障分析时间。

检查整个板子的时候从电源和接地检查起,确定所有电源和接地都正确,然后对每个模块进行检查。

按照这样顺序,能减少不少的检查时间。

在调试过程中,遇到了很多问题。

经过检查发现很多东西只有通过实践才能验证。

比如在做PCB时,以前没有做过实物只是知道是怎么回事,但做起来发现不是这里出错就是那里出错了。

经过这次实践的经历学到了很多,也通过这次机会,使我的动手能力得到了锻炼,也为以后的科研课题打下了基础。

感谢在整个设计单片机最小系统过程中给我很大帮助的师兄,同学等。

 

七参考文献

[1]徐惠民、安德宁.微型计算机原理、接口与应用[M].北京:

北京邮电大学出版社,2000.

[2]秦晓梅.育斌.单片机原理综合实验教程[M].辽宁:

大连理工大学出版社,2004.

[3]彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].北京电子出版社.2006.

[4]黎文模.ProtelDXP电路设计与实例精解[M].北京:

人民邮电出版社,2006.

[5]李光飞.单片机课程设计实例指导[M].北京:

北京航空航天大学出版社,2004.

[6]胡汉才.单片机原理及其接口技术[M].北京:

清华大学出版社,1996.

[7]黄菊生.单片机原理与接口技术[M].北京:

国防工业出版社,2007.9.

[8]崔伟等.Protel99SE电路原理图与电路板设计教程[M].北京:

海洋出版社,2005.1.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1