ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:197.15KB ,
资源ID:17337162      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17337162.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(交通灯亮灯的实现Word格式文档下载.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

交通灯亮灯的实现Word格式文档下载.docx

1、3.1 器件选择元件名数目备注MSC-51(8051)1个 单片机8255A1个可编程外设接口芯片LED-RED、GREEN、YELLOW各3个红绿黄LED74LS3731个地址锁存器芯片3.2 MSC-51芯片简介MCS-51单片机内部结构 8051是MCS-51系列单片机的典型产品。8051单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。图1下图是MCS-51系列单片机的内部结构示意图2。 图2MCS-51的引脚说明:MCS-51系列单片机中的8031、8051及875

2、1均采用40Pin封装的双列直接DIP结构,下图是它们的引脚配置,40个引脚中,正电源VCC和地线VSS,外置石英振荡器的时钟线XTAL1、XTAL2,4组8位共32个I/O口,中断口线与P3口线复用。图3 图340只引脚按其功能可分为:(1)电源及时钟引脚Vcc Vss;XTAL1 XTAL2;(2)控制引脚PSEN(低电平有效) ALE 、EA(低电平有效) RESET(3)I/O引脚P0、 P1、 P2、 P3 ,为4个8位I/O口的外部引脚3.3 8255可编程并行接口芯片简介: 8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7PA0、PB7PB0和P

3、C7PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A配合使用,可以用作控制信号输出或作为状态信号输入。方式控制字格式说明如表1:D7D6D5D4D3D2D1D0D7=1 设定工作方式标志。(D7=0为置位复位控制字标志位)D6、D5、D4、D3为A组工作方式选择:D6、D5:A口方式选择 0 0 方式0 0 1 方式1 1 方式2D4:A口功能 (1=输入,0=输出)D3:C口高4位功能 (1=输入,0=输出)D2、D1、D0为B组工作方式选择:

4、D2:B口方式选择 (0=方式0,1=方式1) D1:B口功能 (1=输入,0=输出)D0:C口低4位功能 (1=输入,0=输出)本次课程设计8255A各口的应用:仿真电路图中用到8255的PA口与PB口,它们分别与12个发光二极管相连,来控制发光二极管的熄灭。其方位为东(PA0、PA1、PA2),南(PA3、PA4、PA5),西(PA6、PA7、PB0),北(PB1、PB2、PB3)。控制寄存器控制8255A的工作方式,控制字为88H即10001000B,A口方式0输出,B口方式0输出,C口没有用到。即无条件传输方式。3.4 74LS373简介74LS373 是一种带三态门的8D锁存器,其管

5、脚示意图如下示:其中:1D-8D为8个输入端。 1Q-8Q为8个输出端。 LE为数据打入端:当LE为“1”时,锁存器输出 状态同输入状态;当LE由“1”变“0”时,数据 打入锁存器; OE为输出允许端:当OE=0时,三态门打开; 当OE=1时,三态门关闭,输出高阻。因为P0口为数据线、地址线复用,所以用一个锁存器将8255a的地址所存;4 系统硬件设计4.1交通管理的方案论证东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃亮时间为东西、南北两干道的公共停车时间。设计一

6、个十字路口的交通灯控制系统。南北东西四个方向:东西口绿灯亮,南北红灯亮,东西方向通车,时间为60秒;东西口绿灯灭,黄灯闪烁3次亮灭共6秒,红灯亮;南北口红灯灭,绿灯亮,南北口方向通车,时间为60秒;南北口绿灯灭,黄灯闪烁3次,红灯亮;东西口红灯灭,绿灯亮,东西口通车,以此类推循环运行。 东 北 南 西4.2 设计其目的:应用、掌握单片机与各芯片,学习应用仿真软件,会分析硬件电路的组成及学习简单汇编程序的编写方法。4.3 设计与步骤43 1 用12个发光二级管模拟十字路口交通灯信号。用AT89C51、可编程并行接口芯片8255A及地址锁存器芯片74LS373来实现。连接仿真图。单片机写入程序,先

7、写入8255的工作方式控制字(方式0输出),再对8255各端口进行置位复位操作,由8255的PA口与PB口输出的高低电平(“0”亮灯或“1”灭灯)决定发光二极管的熄灭,实现交通灯的功能。 (1)方式控制字:88H,即1000 1000,其中1(1 设定工作方式字标志)00(A口方式选择方式0)0 (A口输出) 1 0(B口方式选择方式0)0(B口输出)0,其余位没有用到可任意设为0或1。(2)8255A的端口地址:A口地址为0FF28H,即1111 1111 0(置位复位控制字标志位)010 10 00(00选中PA口)B,其余为无用位可任意设为0或1;B口地址为0FF29H,即1111 11

8、11 0 010 10 01(01为PB口地址)B,其余为无用位可任意设为0或1;控制端口地址为0FF2B,即1111 1111 0 010 1011(11控制口地址)B,其余为无用位可任意设为0或1。8255输出信号与发光二极管的连接:发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以用置位方法点亮红,绿,黄发光二极管。43 2 交通灯亮灯的实现 硬件方框图:程序流程图:43 3 交通灯亮灯的实现电路proteus仿真图 434 系统工作原理单片机写入程序,规定8255工作方式,再对8255各端口进行置位复位操作,由8255的PA口与PB口输出的高低电平(“0”亮灯或“1”灭灯

9、)决定发光二极管的熄灭,实现交通灯的亮灯。 5程序运行后状态表:其中0代表灯灭,1代表灯亮。状态北西南东黄绿红PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA0开始4个红灯亮1该四个工作状态按此次序将重复出现南北红灯亮,东西绿灯亮南北红灯亮,东西黄灯亮南北绿灯亮,东西红灯亮南北黄灯亮,东西红灯亮5.程序设计 (汇编语言版本) 编程提示:(1) 通过8255控制发光二极管PB3 PB0 PA5 PA2对应黄灯,PB1 PA6 PA3 PA0对应红灯,PB2 PA7 PA4 PA1对应绿灯,以模拟交通灯的亮灯.(2) 程序中设定好8255A的工作方式,三个端口均工作在方式0且

10、输出状态。(3) 各发光二极管共阳极,使其点亮应使对应的端口输出低电平 ORG 0BB0H ;主程序起始地址JOD0: MOV SP, #60H ;设置堆栈 MOV DPTR,#0FF2BH ; 指向8255控制寄存器地址 MOV A,#88H ; 设定A值为88H,即设置控制字(方式字送A、B、C口)MOVX DPTR,A ;将A中数据送入8255控制口,即8255初始化,写入控制字;- MOV DPTR,#0FF28H ;指向PA口地址 MOV A , #0B6H ;设定A值为10110110 MOVX DPTR,A ;将A中数据送入8255的PA口输出,即从PA 口输出 ,即PA6、PA

11、3、PA0分别为0,表明与这些端口相联的(发光二极管)红灯点亮 INC DPTR ;指向PB口地址 MOV A,#0DH ;A的内容为00001101将A中数据送入8255的PB口输出,即从PB口输出,即PB1为0,表明与该端口相联的(发光二极管)红灯点亮,因此4个红灯 MOV R2,#1 ;延时,将延时计数器R2赋值1 LCALL DELAY ;调用延时子程序延时1S-以上4个红灯亮-JOD3: MOV DPTR, #0FF28H MOV A, #75H MOVX DPTR, A ;将A中数据送入8255的PA口输出,PA口为01110101,即与PA7西绿、PA3南红、PA1东绿相联的灯

12、INC DPTR MOV A, #0DH ;A为00001101 MOVX DPTR,A ;将A中数据送入8255的PB口输出,PB口的PB1北红灯亮 MOV R2,#60 ;延时60秒 LCALL DELAY -以上东西绿灯亮,南北红灯亮- MOV R0,#03H ;设置黄灯(一亮一灭)闪烁3次JOD1: MOV DPTR, #0FF28H MOV A, #0F3H MOVX DPTR, A ;将A中数据送入8255的PA口输出,PA为11110011,即PA3南红、PA2东黄灯亮 MOV A, #0CH MOVX DPTR,A ;将A中数据送入8255的PB口输出,PB为00001100,

13、即PB1北红、PB0西黄亮,因此东西黄灯亮,南北红灯亮 MOV R2, #1黄灯亮短延时1秒 MOV A, #0F7HPA为11110111,即PA3南红亮 MOV A , # 0DHPB为00001101,即PB1北红亮,因此南北红灯亮 ,此时黄灯灭了 MOV R2, #1 LCALL DELAY ;黄灯灭短延时1秒 DJNZ R0,JOD1 ;若闪烁次数未到则循环-以上实现南北红灯亮东西黄灯烁- MOV A, #0AEH MOVX DPTR, A MOV A, #0BH东西红灯亮,南北绿灯亮 MOV R2, #60 LCALL DELAY ;延时-以上东西红灯亮,南北绿灯亮- MOV R0

14、,#03H ;黄灯闪烁次数JOD2: MOV A, #9EH MOV A, #07H东西红灯亮,南北黄灯亮 MOV R2, #2H LCALL DELAY 短延时1秒 MOV A, #0BEH MOV A, #0FH东西红灯亮,南北黄灯灭 DJNZ R0,JOD2 ;判断移动次数,若R0不为0时程序跳转到标号JOD2 -以上东西红灯亮,南北黄灯闪烁-LJMP JOD3 ;主程序循环执行- ORG 0C30H ;延时子程序.起始地址DELAY: MOV R5,#50 ;延时 1秒子程序DELY1: MOV R6,#100 DELY2: MOV R7,#100 DJNZ R7,$ ; 若R7还未减

15、到0则跳转到目前的地址,即该语句被执行100次 DJNZ R6,DELY2 DJNZ R5,DELY1 DJNZ R2,DELAYRET ;子程序返回-以上延时 1秒子程序- END ;程序结束软件调试:软件调试是通过对拥护程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序后,编辑,查看程序是否有逻辑的错误。 1、 1秒延时程序的分析。、上述程序中用的1秒延时程序:-1个机器周期 MOV R6,#100 ;-1 MOV R7,#100 ;-2 DJNZ R6,DELY2 ;-2 DJNZ R5,DELY1 ; DJNZ R2,DELAY ;-2 多重循环时钟周

16、期:单片机的基本时间单位,为时钟晶体的周期。机器周期:CPU完成一个基本操作用的时间,包含几个时钟周期。89C51的机器周期包括12个时钟周期,选石英晶体为f=12MHZ,则机器周期为:12f=1s .指令周期:执行一条指令用的时间.包含几个机器周期。上述程序中用的1秒延时程序 循环过程:R2(R5(R6(R7$2s +1s)+1s)+1s)=R250(100(100+1)+1)=R2(50+5000(200+1) )=R2 50s+1S+5000s=R21S+5050sR21S即该1S延时程序 用时要比1S多出5050s。、1秒的延时子程序还可以是定时器加软件延时(经调试成功): MOV R

17、1,#20 ;1 设置软件计数初值,每次调用延时子程序时,定时器在子程序里将重复定时20次-定时器计数器初始化- MOV TMOD,#00000001B ;1设T0工作在模式1定时方式 SETB TR0 ;将TR0置1,即启动T0开始工作 AGAIN: MOV TL0,#LOW(65536-50000) ;1设置计数初值,装入低位 MOV TH0,#HIGH(65536-50000) ;1设置计数初值,装入高位-LOOP11: JBC TF0,LOOP22 ;等待益出,TF0为T0溢出标志位,TE0=1则执行跳转到LOOP22并清0 JMP LOOP11 ;2LOOP22: DJNZ R1,A

18、GAIN ;2 R1不是0则跳转至AGAIN,每执行一次该语句R1值减一2 R2不是0则跳转至AGAIN CLR TR0 ;是则停止T0计时,即将TR0置0 RET 模式1下(采用12MHZ的晶体)最大定时时间:TMAX=65536s,计数器从计数初值65536-50000=15536开始计数,当计到65536时,计数器计满溢出TF0=1,输出跳转信号,再由软件计数器将定时器重复20次,此时用时2050MS=1S.2、这个方案只能实现交通灯亮灯的基本功能。且实际中仅一个单片机接发光二极管通过编程就可以实现交通灯的亮灯,这是方案二。方案二硬件选择 : 单片机一片 发光二极管12个。单片机的P端口

19、接12发光二级管负极,二极管正极接电源,其中东西的二极管串联、南北的二极管串联。对单片机编程,由A寄存器传送入单片机P口的数据,0代表亮1代表灭,实现交通灯的亮灯即可。硬件方框图方案二仿真图:方案二汇编程序:ORG 0BB0HJODO: MOV SP,#60H MOV A,#11000110 MOV P2,A MOV A,#00000110 MOV P3,A MOV R0,#1 LCALL DELAY;-四个红灯亮- MOV A,#11000101 MOV R0,#60 MOV R7,#03H-东西绿灯亮南北红灯亮- MOV A,#11000011 MOV R0, #1 -东西黄灯亮南北红灯亮

20、- MOV A,#11000111-东西黄灯灭南北红灯亮- DJNZ R7,JOD1-东西黄灯共闪烁三次 南北不变-jod2: mov A,#10100110 MOV A,#00000101-东西红灯亮南北绿灯亮-JOD4: MOV A,#01100110 MOV A,#00000011-东西红灯亮南北黄灯亮- MOV A,#11100110 MOV A,#00000111-东西红灯亮南北黄灯灭- DJNZ R7,JOD4-东西不变 南北黄灯闪烁三次- LJMP JOD3-返回JOD3重新开始- MOV R1,#20 MOV TMOD,#00000001B SETB TR0AGAIN: MOV

21、 TL0,#LOW(65536-50000) MOV TH0,#HIGH(65536-50000) JBC TF0,LOOP22 JMP LOOP11 DJNZ R1,AGAIN DJNZ R0,DELAY CLR TR0 RET-1S延时子程序-END通过方案一和方案二的比较可以知道,8255只是接口芯片单片机可以规定8255的工作办法对8255赋值;对单片机写入程序单片机就可以对8255控制;单片机是核心,围绕它可以组成有其他功能的产品。这里把需要交换的物品,需要物品的地方的信息集合在一起,由单片机接收发放分配管理。学习微机课程也是学习组织管理分配。通过此设计,我们对AT89C51单片机及8255的结构功能和工作办法有了更深的理解。通过对硬件的编程,微型计算机技术可以在很多工业生产和日常生活中得以应用,在计算机领域中更有举足轻重的作用,这使我们更有兴趣学习这门课程。这

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

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