欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    【大学论文】用单片机和可编程并行接口控制交通灯P98.ppt

    • 资源ID:5613925       资源大小:3.85MB        全文页数:98页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【大学论文】用单片机和可编程并行接口控制交通灯P98.ppt

    任务7 用单片机和可编程并行接口控制交通灯,教学导航任务单任务准备案例示范知识梳理与总结任务作业,http:/,教学导航,任务单,任务准备,7.1 单片机简单I/O扩展7.2 存储器的扩展7.3 8255A可编程并行I/O接口,7.1 MCS-51单片机的简单扩展,7.1.1 外部总线结构,地址锁存器,A15A8,A7A0,D7D0数据总线DB,控制总线CB,并行,串行,中断输入,计数脉冲,复位,地址总线AB,7.1.1 外部总线结构,1.地址总线 传送存储单元或外设的地址P0口低8位地址总线(一般需要加一级锁存器)P2口高8位地址总线2.数据总线P0提供数据线,传送数据、指令和信息 P0口分时复用的双向数据总线和低8位地址总线3.控制总线,3.控制总线,用来传送各种控制信息/:片外数据存储器RAM和外设接口的读写控制信号。PSEN:片外程序存储器的读控制;ALE:地址锁存控制;下降沿锁存P0口的低8位地址 EA:片内/片外程序存储器选择信号,EA=0时,只访问外部程序存储器,7.1.2 地址锁存器和总线驱动器,1.地址锁存器,带三态缓冲输出:74LS373、8282带清除端:74LS273,74LS373功能表,8282的功能表和74LS373相似,表中的G端和8282的STB端对应,74LS273功能表,74LS273只有清除端为高电平才具锁存功能,锁存器控制为CLK,上升沿锁存数据。单片机ALE(下降沿锁存地址)引脚需接反相器,2.总线驱动器,当单片机外接芯片较多,超出总线负载能力,必须加 总线驱动器。驱动器可增强单片机对外围接口电路的驱动能力,而且可以起到对负载波动的隔离作用根据驱动的方向可分为单向总线驱动器和双向总线驱动器 单向驱动器74LS244、74LS241用于地址总线驱动 双向驱动器74LS245用于数据总线驱动,总线驱动器芯片管脚,7.1.3 并行I/O口简单扩展,1、用锁存器扩展简单输出口,(1)用74LS377扩展8位输出口 图7-4为利用锁存器74LS377扩展的简单输出口的接口电路。74LS377为带有允许输出端的8D锁存器。D7D0为其输入端口,输出端口为Q7Q0,CLK为时钟控制端,上升沿锁存。图中P0口的P0.0和P0.1引脚分别作为地址选择线与两个74LS377的片选控制端相连,使得两个74LS377的口地址分别为0XFFFE和0XFFFD。当某一个74LS377该输出口被选中,且CLK端电平正跳时,P0口数据锁存到74LS377的输出端,从而实现数码管的静态显示。,案例12 用单片机扩展口控制秒表,源程序清单:,#include#include#define addr377_1 XBYTE0XFFFE#define addr377_2 XBYTE0XFFFDunsigned char led10=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90;unsigned time=0,count=20;,主函数和中断服务函数,void main()addr377_1=addr377_2=led0;TMOD=01;TH0=-500008;TL0=-50000;EA=1;ET0=1;TR0=1;while(1);,void isr_time()interrupt 1 TH0=-500008;TL0=-50000;count-;if(count=0)count=20;time=(time+1)%60;addr377_1=ledtime/10;addr377_2=ledtime%10;,(2)74LS373扩展简单的8位输出口,案例13:用单片机扩展口控制流水灯 P2.7、P2.6引脚分别与片选控制G端相连,以选通锁存器,案例13:用单片机扩展口控制流水灯利用该电路使16个发光二极管实现从左至右逐一点亮的流水灯效果的程序,#includesbit p27=P27;sbit p26=P26;sbit p36=P36;unsigned char cword=0 xfe;void main()unsigned int i,j;p27=1;p26=0;p36=0;while(1),for(i=0;i0;j-);cword=(cword1)|1;P0=cword;cword=0 xfe;p27=p27;p26=p26;,2、用三态门74LS244扩展8位输入口,P2.7和 相“或”控制信息的输入,案例14 用单片机扩展输入口进行开关控制,#include#include#define addr244 XBYTE0X3FFF/74LS244的地址为3FFFHvoid main()unsigned char mdata;while(1)mdata=addr244;/从74LS244中读取数据(按键的开合状态)P1=mdata;,7.2 存储器的扩展,7.2.1 程序存储器的扩展7.2.2 数据存储器的扩展7.2.3 存储器的综合扩展,7.2.1 程序存储器的扩展,外扩的存储器芯片通过地址总线、数据总线和控制总线同单片机相连,地址总线是单向输入的,其数目与芯片容量有关。如容量为2K8时,地址线有11根,即211=2048。容量为16K8时,地址线有14根,即214。数据线是双向的,即可输入,也可输出,其数目与数据位数有关。如2K8的芯片,其数据线有8根;控制线主要有读/写控制线与片选线两种。由于可以扩展多个存储芯片,需要用片选信号来确定哪个芯片被选中。读/写控制线决定芯片进行读/写操作。,1.程序存储器芯片,Mask ROM型:掩膜ROMOPTROM型:一次可编程ROMEPROM型:可擦除可编程ROME2PROM型:电可擦除可编程ROMFlash ROM型:闪速只读存储器,1.程序存储器芯片,典型的EPROM芯片(Intel公司):2716(2K8)、2732(4K8)、2764(8K8)、27128(16K8)、27256(32K8)、27512(64K8)等。,在这些芯片上均设有玻璃窗口,在紫外线下照射20分钟左右,存储器的各位信息均变为1,通过相应的编程器将工作程序固化到这些芯片中,便可成为MCS-51的外部程序存储器。,(1)并行2716 EPROM的特点,2716的存储容量为16384(2K8)位,24线的双列直插式器件,单一5V供电,运行时最大功耗为252mW,维持功耗为132mW,读出时间最大为450ns。,(2)引脚说明,O0O7数据线:传送存储单元内容。根数与单元数据位数相同。A0A10地址线:选择芯片内部一个存储单元。根数由存储器容量决定。CE片选线:选择存储器芯片。CE无效,其他信号线不起作用。OE:数据读选通线,Vcc:+5V主电源Vpp:编程电源(+25V)GND:接地端,(3)2716的工作方式,2.单片程序存储器扩展,D7 Q7 373D0 Q0 G,(1)单片2716存储器扩展电路,总线连接,1)地址总线的连接P0.0P0.7 和P2.0P2.2连接地址总线A0A10低8位地址信号AB0AB7,高3位地址信号AB8AB102)数据总线的连接P0.0P0.7连接数据总线D0D7,3)片选端及控制总线的连接,PSEN连接OE:片外程序存储器读控制信号ALE连接锁存器G:地址锁存允许控制信号EA接地:选择片外程序存储器,(2)读取外部程序存储器的时序,不执行MOVX指令,执行MOVX指令,3.多片程序存储器扩展,最大扩展容量64K外扩多片存储器进行的选择:片选:选存储器芯片,片选信号区别不同芯片的地址空间。字选:选中该芯片中的相应存储器单元,片选方法:,(1)线选法单片机剩余高位地址总线直接连接各存储器片选线。各芯片间地址不连续 有相当数量的地址不能使用,否则造成片选混乱(2)地址译码法 单片机剩余高位地址总线通过地址译码器输出片选信号。,(1)线选法,各存储器芯片的地址空间:ABi:15141312 111098 7 6 5 4 3 2 1 0 15141312 1110 98 7 6 5 4 3 2 1 0:1100 0000 0000 00001100 0111 1111 1111=C000HC7FFH:1010 0000 0000 00001010 0111 1111 1111=A000HA7FFH:0110 0000 0000 00000110 0111 1111 1111=6000H67FFH,(2)地址译码法,3-8地址译码器:74LS138,地址译码法原理,译码法选址就是利用地址译码器对系统的片外高位地址进行译码,以其译码输出作为存储器芯片的片选信号,将地址划分为连续的地址空间块,避免了地址的间断。(1)完全译码:地址译码器使用了全部地址线,地址与存储单元一一对应。(2)部分译码:地址译码器仅使用了部分地址,地址与存储单元不是一一对应。部分译码也会浪费大量的存储单元,对于要求存储器容量较大的微机系统,一般不采用。但对于单片机系统来说,由于实际需要的存储器容量不大,采用部分译码器可以简化译码电路。,各存储器芯片的地址空间:Abi:15141312 11109 8 7 6 5 4 3 2 1 0 15141312 11109 8 7 6 5 4 3 2 1 0:0000 0000 0000 00000000 0111 1111 1111=0000H07FFH:0000 1000 0000 00000000 1111 1111 1111=0800H0FFFH:0001 0000 0000 00000001 0111 1111 1111=1000H17FFH,7.2.2 数据存储器的扩展,MCS-51系列单片机的内部一般都仅有128字节或256字节的RAM数据存储器。数据存储器和程序存储器使用相同的64KB地址空间,但两者却是相互独立的的存储空间,具有各自独立的控制信号线和读写操作指令。同时,外部的数据存储器和其它I/O接口芯片的扩展统一编址。,1.数据存储器芯片,典型的SRAM芯片有Intel公司的:6216(2K8)、6264(8K8)、62128(16K8)等,存储器的外部信号线:I/O0I/O7:8位数据线 A0A12:13位地址线:CE1片选线1:低电平有效 CE2片选线2:高电平有效 OE:读选通信号输入线 WE:写允许信号输入线,6264的工作方式,2.数据存储器扩展,(1)单片6264数据存储器扩展,(2)多片6264数据存储器扩展,ABi:15141312 111098 7 6 5 4 3 2 1 0 15141312 111098 7 6 5 4 3 2 1 0:0100 0000 0000 00000100 0111 1111 1111=4000H5FFFH:0010 1000 0000 00000010 1111 1111 1111=2000H3FFFH:0000 0000 0000 00000001 1111 1111 1111=0000H1FFFH,+5V,(3)外部数据存储器的数据传送,#includeunsigned char xdata DATABUFF100 _at_ 0 x00;/外部RAM,地址从0000H开始void delay();void main()unsigned char cword;int i;for(i=0;i100;i+)DATABUFFi=i;for(i=0;i100;i+)cword=DATABUFFi;P1=cword;delay();while(1);,void delay()unsigned int i,j;for(i=1000;i0;i-)for(j=100;j0;j-);,利用Proteus调试程序的方法:,(1)点击仿真按钮,系统开始全速运行,可以看到写入P1的数据由P1连接的发光二极管以二进制形式显示。(2)点击暂停按钮,系统暂时停下来了,点击“Debug”菜单下的“Memory Contents-U3”子菜单,这时系统将弹出“Memory Contents-U3”窗口,,(4)读取外部存储器的时序,1)外部数据存储器读周期,2)外部数据存储器写周期,7.2.3 存储器的综合扩展,地址总线和数据总线公用片外ROM用到PSEN,片外RAM用到RD与WE,各芯片地址是多少?,7.3 8255A可编程并行I/O接口,7.3.1 8255A的结构及引脚,数据端口A、B、C(包含I/O数据锁存器,控制寄存器和状态寄存器)端口A:包括一个 8 位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种。端口B:包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入缓冲器,可作为数据输入或输出端口,作数据输入口时,没有锁存功能。端口B不能工作于方式2。端口C:结构和B口相同,但在方式字控制下分为两个4位的端口,每个4位端口都有4位的锁存器,用来配合端口A与端口B锁存输出控制信号和输入状态信号,1.8255A组成结构,A组控制和B组控制电路 实现对8255A端口工作方式的控制 A组:PA和PC47 B组:PB和PC03 数据总线缓冲器 三态双向8位缓冲器,8255A和单片机数据总线接口读/写控制逻辑电路单片机控制信号(RD、WR、RESET)地址总线控制信号(A1、A0)片选信号(CS),1.8255A组成结构,2.8255A的引脚,电源和地线:VCC、GND与单片机相连的引脚(14条)RESET 复位信号,高电平有效CS 片选信号,低电平有效RD 读信号,低电平有效WR 写信号,低电平有效D7D0 双向三态数据线,和单片机数据总线相连A1、A0 端口选择信号与外设相连的引脚(24条)PA7PA0:A口输入/输出引脚PB7PB0:B口输入/输出引脚PC7PC0:C口输入/输出引脚,8255A的控制信号与端口工作状态,7.3.2 8255A的工作方式,1.方式0基本的输入/输出方式不需要任何联络(选通、握手)信号,相当于该端口在单片机与外设之间建立一个直接的数据通信,端口A、B、C都可作为输入或输出口使用。应用场合:无条件传送数据:默认为传送数据的双方均已准备好。查询方式传送数据:可以由程序定义C口的某些位作为联络信号线,以配合A口、B口完成查询方式下的数据传送。,2.方式1选通的输入/输出方式,无论是输入还是输出都通过应答关系实现,这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。若端口A、B只有一个工作于方式1,另一个端口和端口C的其它位可工作于方式0若端口A和B同时工作于方式1,端口C余下的两位还可用于传送数据或控制信号等。,A口方式1输入组态,B口方式1输入组态,A口方式1输出组态,B口方式1输出组态,INTE:中断允许信号INTR:中断请求信号,方式1的输入过程,方式1的输出过程,方式2 双向传送方式,仅适用于端口A,PA7PA0作为双向的数据总线端口C有5条引脚用作A的握手信号线和中断请求线B口和C口余下的3位仍可工作于方式0或1,7.3.3 8255A的控制字,1.方式选择控制字,2.C口按位置位/复位控制字,7.3.4 8255A应用实例,8255A各端口的地址,A口:0111 1111 1111 1100B 7FFCH B口:0111 1111 1111 1101B 7FFDH C口:0111 1111 1111 1110B 7FFEH D口:0111 1111 1111 1111B 7FFFH,1.8255工作方式设定,实例7-1:用8255A芯片扩展MCS51单片机的并行I/O接口,由图示可知8255A芯片A口、B口、C口和控制字寄存器的地址分别为7FFCH、7FFDH、7FFEH和7FFFH,现要求其3个数据端口均工作在方式0,其中A口和C口的高4位作为输出口,B口和C口的低4位作为输入口。,实例7-1,根据题意,A口方式0输出:D6D5D4000 B口方式0输入:D2D101 C口的高4位输出:D30 C口的低4位输出:D01因此8255A的工作方式控制字为10000011B,即83H,实例7-1,#include#include#define addrc XBYTE0 x7FFFvoid main()addrc=0 x83;,例6-2:同上题8255A芯片,要求对C口的PC7位置0,PC5位置1。,解:根据C口按位置位/复位控制字的格式,对PC7位置0其控制字为0EH,对PC5位置1其控制字为0BH。,#include#include#define addrc XBYTE0 x7FFFvoid main()addrc=0 x0E;addrc=0 x0B;,2.工作方式0的应用,8255A工作在基本的输入输出方式下,A口、B口均可置为输入方式或输出方式,但不能既作输入又作输出;在工作方式0下,C口不提供固定的联络信号,C口的高4位和低4位也可分别设置为输入方式或输出方式。,实例7-4 从8255A的A口读入8个按钮状态,送到8255A的B口输出,当某一按钮按下则对应发光二极管亮,否则灭。,实例7-4,#include#include#define addra XBYTE0 xFFF8#define addrb XBYTE0 xFFF9#define addrcon XBYTE0 xFFFB void main()unsigned char cdata;addrcon=0 x90;while(1)cdata=addra;addrb=cdata;,小技巧:18255A的负载能力有限,因此外接I/O设备时要接总线驱动器,本例用的是74LS240。28255A的、A1、A0分别接74LS373的Q2、Q1、Q0,则其A口、B口、控制字寄存器的地址的最后三位为000、001和011,不用地址位设为1,则地址分别为FFF8H、FFF9H、FFFBH。,3.工作方式1的应用,8255A工作在选通的输入输出方式下,A口、B口由编程可分别设定为输入口或输出口,而C口则分为两部分,分别用作A口和B口的控制信号和同步信号,为8255A与CPU或外部设备之间传送状态信息及中断请求信号。,7.3.5 单片机应用系统设计方法,(1)确定任务:,开发任何一个应用系统,都必须以市场需求为前提。因此,在系统设计前,首先要进行广泛的市场调查,了解该系统的市场应用概况,分析系统当前存在的问题,研究系统的市场前景,确定系统开发设计的目的和目标。在此基础上,再对系统的具体实现进行规划,包括应该采集的信号的种类、数量、范围,输出信号的匹配和转换,控制算法的选择,技术指标的确定等。,(2)总体设计,在对应用系统进行总体设计时,应根据应用系统提出的各项技术性能指标,拟订出性价比最高的一套方案。首先,应根据任务的繁杂程度和技术指标要求选择机型。选定机型后,再选择系统中要用到的其它外围元器件,如传感器、执行器件等。在总体方案设计过程中,对软件和硬件进行分工是一个重要的环节。用硬件实现速度比较快,节省CPU的时间,但系统的硬件接线复杂、系统成本较高。用软件实现则较为经济,但要更多地占用CPU的时间,原则上,能够由软件实现的任务就尽量用软件来实现,以降低成本,简化硬件结构。如果系统回路多、实时性要求强,则要考虑用硬件完成。同时,还要求大致规定各接口电路的地址、软件的结构和功能、上下位机的通信协议、程序的驻留区域及工作缓冲区等。总体方案一旦确定,系统的大致规模及软件的基本框架就确定了。,(3)硬件电路图设计,硬件的设计是根据总体设计要求,在选择完单片机机型的基础上,具体确定系统中所要使用的元件,并设计出系统的电路原理图,经过必要的实验后完成工艺结构设计、电路板制作和样机的组装。主要硬件设计包括:1)单片机电路设计:主要完成时钟电路、复位电路、供电电路的设计。2)扩展电路和输入/输出通道设计:主要完成程序存储器、数据存储器、I/O接口电路、传感器电路、放大电路、多路开关、A/D转换电路、开关量接口电路、驱动及执行机构的设计。3)控制面板设计:主要完成按键、开关、显示器、报警等电路的设计。,4)软件设计,单片机应用系统的软件设计是研制过程中任务最繁重的一项工作,难度也比较大。单片机应用系统的软件主要包括两大部分:用于管理单片机微机系统工作的监控程序和用于执行实际具体任务的功能程序。对于前者,应尽可能利用现成微机系统的监控程序。为了适应各种应用的需要,许多单片机开发系统的监控软件功能相当强,并附有丰富的实用子程序,可供用户直接调用,例如键盘管理程序、显示程序等。因此,在设计系统硬件逻辑和确定应用系统的操作方式时,就应充分考虑这一点。这样可大大减少软件设计的工作量,提高编程效率。后者要根据应用系统的功能要求来编程序。例如,外部数据采集、控制算法的实现、外设驱动、故障处理及报警程序等等。软件设计通常采用模块化程序设计、自顶向下的程序设计方法。,(5)系统调试,包括硬件调试和软件调试。硬件调试的任务是排除系统的硬件电路故障,包括设计性错误和工艺性故障。软件调试是利用开发工具进行在线仿真调试,除发现和解决程序错误外,也可以发现硬件故障。,案例15 单片机控制简单智能设备,假设8255A连接一台智能设备(该智能设备由89C51控制,例如打印机等),主控机U1向8255A分别传送09,8255A接收到将该数字在智能设备的数码管中闪烁5次,如果8255A工作在方式1,请实现之。,请单击左图,(1)控制字分析:,8255A的A口PA0PA7,连接智能外部设备的8根数据线(本例是U3的P2口),作为输出口;工作在方式1的中断方式下,方式控制字为10100000B,即A0H;根据产生中断的条件,应先置PC6(INTEA)为1,因此,C口的控制字为0DH。,(2)源程序:,#include#include#define addra XBYTE0 xFFF8#define addrcon XBYTE0 xFFFB unsigned char cword=0;void main()addrcon=0 x0D;/PC6(INTEA)置1,允许B口中断 addrcon=0 xA0;/A口的输出方式1 IT1=0;EX1=1;EA=1;addra=cword;while(1);,中断服务函数,void isr_int1()interrupt 2 cword+;if(cword10)addra=cword;else EX1=0;,/*中断服务函数:当一个数字输出到8255A处理完后,再将下一个数字送到8255A再进行处理,依次类推,直到将9送到8255A处理完成后停止传送数据。*/,智能设备程序:,本例中的智能设备是由89C51控制的,要把从8255A的A口收到的数据从P2口接收,再从P1口输出到数码管显示。为了配合8255A的方式1,8255A的PC7连接U3(89C51)的P3.3(外部中断1的输入端),PC6连接U3的P3.0,当8255A的A口接收到数据,则将PC7()变为低电平,即可向U3发出中断请求,在中断服务程序中,读取P2的值,将P2的值显示在数码管上,延时一段时间后数码管熄灭达到闪烁效果,闪烁5次完将P3.0变为低电平,使8255A的PC6变为低电平(),该引脚的低电平使 置1,当返回主程序时,置P3.0为1,则满足INTRA为1的条件,则该信号经非门后送到主控机U1的P3.3,产生外部中断1的中断请求。,智能设备程序,#includesbit P30=P30;unsigned char led=0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90;void main()IT1=0;EX1=1;EA=1;while(1)P30=1;,智能设备中断服务函数,void int1()interrupt 2 unsigned char cword,i;int time;P2=0XFF;cword=P2;for(i=0;i0;time-);P1=0 xff;for(time=10000;time0;time-);,本例是利用89C51和数码管虚拟一台智能设备,例如打印机,打印机内部是由单片机控制打印头运动实现打印功能,但在Proteus仿真软件中无法仿真打印机,因此笔者设计了这样一个虚拟的智能设备。,案例16 用单片机和8255A控制交通灯,用8255做输出口,控制十二个发光二极管亮灭,模拟交通灯系统。,(1)确定任务,可由8255A的PA、PB口连接12个发光二极管,分别代表四个路口的红、绿、黄灯,初始态为四个路口的红灯全亮之后,东西路口的绿灯亮20秒,南北路口的红灯亮,东西路口方向通车;延时一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁,每隔0.5s闪烁1次,闪烁3次后,东西路口红灯亮,而同时南北路口的绿灯亮20秒,南北路口方向开始通车;延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,每隔0.5s闪烁1次,闪烁6次后,再切换到东西路口的绿灯亮,东西方向通车;之后重复以上过程。,(2)总体设计,根据本任务的要求,选用AT89S51,配备晶振电路和复位电路,晶振频率为12MHz,四个路口的红、绿、黄交通灯由8255A控制。,(3)硬件电路设计,为了方便线路连接,8255的PA的低6位分别接西、北路口的红、黄、绿灯(发光二极管,采用共阳极的连接方式),PB口的低6位分别接东、南路口的红、黄、绿灯,设计的原理图如图所示。,请单击左图,(4)软件设计,参考任务5中的有关知识,各路口的灯亮的规律与PA、PB口的取值有关系到,其规律如表所示。,(4)软件设计,本任务涉及两个定时时间,一是每个路口的绿灯亮20s,另一个是黄灯闪烁时间间隔0.5s,显然最容易实现的方法就是利用定时器,可以用定时器0控制路口绿灯亮的时间,用定时器1控制黄灯闪烁的时间间隔,但是两个定时器的定时都不可达到20s或1s,所以可以让两个定时器都工作于方式1,定时时间为50ms,引进两个变量time(初值为400)和timey(初值为20),当定时器发出中断时,这两个变量分别减1,直到为0则达到定时时间。,源程序(全局变量):,#include#include#define addra XBYTE0XFF20#define addrb XBYTE0XFF21#define addrcon XBYTE0XFF23unsigned char time=20*20,timey=10,county=6;/绿灯亮20s,黄灯状态转换时间间隔为0.5s,转换6次unsigned char allr=0 x36;/所有路口的灯全红unsigned char ewg_snr=0 x1e;/东西路口绿灯亮,南北路口红灯亮unsigned char ewy=0 x2e;/东西路口黄灯亮,南北路口红灯亮unsigned char sng_ewr=0 x33;/南北路口绿灯亮,东西路口红灯亮unsigned char sny=0 x35;/南北路口黄灯亮,东西路口红灯亮bit ewg=1;/刚才是否是东西路口绿灯亮过,源程序(主函数):,main()unsigned int i,j;addrcon=0 x80;addra=addrb=allr;for(i=1000;i0;i-)for(j=200;j0;j-);addra=addrb=ewg_snr;TMOD=0 x11;/定时器1和定时器0均工作于方式1 TL0=-50000;TH0=-500008;/两个定时器均定时50ms TL1=-50000;TH1=-500008;EA=1;ET0=1;ET1=1;TR0=1;while(1);,源程序(定时器0中断服务函数):,void isr_time0()interrupt 1TL0=-50000;TH0=-500008;time-;if(time=0)TR0=0;TR1=1;/定时器0停止定时,启动定时器1,以便黄灯每隔0.5s闪烁一次 time=400;if(ewg)addra=addrb=ewy;else addra=addrb=sny;,源程序(定时器1中断服务函数):,void isr_time1()interrupt 3 TL1=-50000;TH1=-500008;timey-;if(timey=0)timey=10;county-;if(county)if(ewg)ewy=ewy0 x10;addra=addrb=ewy;else sny=sny0 x02;addra=addrb=sny;else county=6;if(ewg)addra=addrb=sng_ewr;else addra=addrb=ewg_snr;TR1=0;TR0=1;ewg=ewg;,/东西方向的黄灯闪烁,让PB4和PA4与1异或,使得PB4和PA4取反。,/东西方向的黄灯闪烁,让PB1和PA1与1异或,使得PB1和PA1取反。,知识梳理与总结,本任务通过8255A来控制交通灯系统的实现,让读者掌握单片机系统扩展的有关知识,包括扩展需要锁存器、总线驱动器,存储器扩展,并掌握8255A的工作原理及其应用。本任务重点内容如下:(1)单片机外部总线结构,锁存器与总线驱动器的功能,利用锁存器等芯片扩展I/O口;(2)程序存储器、数据存储器芯片及存储器的扩展技术(3)8255A的结构与工作方式,学会利用8255A作为并行I/O接口解决实际问题。,任务作业,P224P225 T7-1T7-4,

    注意事项

    本文(【大学论文】用单片机和可编程并行接口控制交通灯P98.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开