1、课 程 设 计 任 务 书专 业 自动化 班 级12 自动化2姓 名设 计 起 止 日 期 2014.12.222014.12.26设计题目:交通灯系统设计设计任务(主要技术参数):1.利用 8253 定时器、8255 等接口,设计一电路,模拟十字路口交通灯控制。2.实现自动控制和手动应急控制。指导教师评语:成绩: 签字:年 月 日课程设计说明书 NO.11 引言交通灯是采用计算机通过编写汇编语言程序控制的。红灯停,绿灯行的交通规则。广泛用于十字路口,车站, 码头等公共场所,成为人们出行生活中不可少的必需品,由于计算机技术的成熟与广泛应用,使得交通灯的功能多样化,远远超过老式交通灯, 交通灯的
2、数字化给人们生产生活带来了极大的方便,而且大大地扩展了交通灯的功能。诸如闪烁警示、鸣笛警示,时间程序自动控制、倒计时显示,所有这些,都是以计算机为基础的。还可以根据主、次干道的交通状况的不同任意设置各自的不同的通行时间。或者给红绿色盲声音警示的人性化设计。现在的交通灯系统很多都增加了智能控制环节,比如对闯红灯的车辆进行拍照。当某方向红灯亮时,此时相应的传感器开始工作,当有车辆通过时,照相机就把车辆拍下。要将交通灯系统产品化,应该根据客户不同的需求进行不同的设计,应该在程序中增加一些可以人为改变的参数,以便客户根据不同的需要随时调节交通灯。因此,研究交通灯及扩大其应用,有着非常现实的意义。沈 阳
3、 大 学课程设计说明书 NO.22 设计方案论证2.1 设计原理此设计是通过并行接口芯片 8255A 和 8086 计算机的硬件连接,以及通过 8253 延时的方法,来实现十字路口交通灯的模拟控制。 用 LED 演示交通灯变化规律:亮、灭、闪烁; 通过 8253 计数器 0 和计数器 1 级联实现准确定时;用 8255 的某一输入输出口中的某些位控制东西、南北路口交通灯的状态;用 8259A 管理可屏蔽中断。2.2 设计环境及设备PC 机一台、 8255 并口:用做接口芯片。 LED:共有 12 个 LED 灯开关2.3 交通灯工作原理 1东西方向车辆放行 60 秒钟。即东西绿灯和南北方向的红
4、灯同时点亮 1 分钟;21 分钟后,东西方向的红(绿)灯闪烁 5 秒钟,以警示车辆将切换红绿灯。此时南北方向仍维持红灯点亮。3东西方向的红(绿)灯闪烁 5 秒钟后,转为南北方向放行 60 秒钟。即东西方向的红灯和南北方向的绿灯同时点亮 60 秒钟;4南北方向放行 60 秒钟后,转为南北方向的红(绿)灯闪烁 5 秒钟,以警示将切换红绿灯。此时东西方向仍维持红灯点亮。5南北方向的红(绿)灯闪烁 5 秒钟后转为东西方向放行 1 分钟。如此循环重复。沈 阳 大 学课程设计说明书 NO.33 系统硬件设计3.1 8086 简介Intel8086 是 16 位的微处理器(其内部总线为 16 位,外部总线为
5、 8 位,故称为准16 位微处理器) ,它采用 HMOS 工艺 40 条引脚封装。8086 工作时使用 5V 电源,时钟频率 5MHz( 8086-1 为 10MHz,8086-2 为 8MHz)它有 20 根地址线,故可寻址的内存空间为 1MB【2】 。(1)8086 的主要特性Intel8086/8088CPU 是 Intel 公司推出的高性能的微处理器,具体如下主要特性:(a)8086CPU 数据总线为 16 位,8088CUP 数据总线为 8 位。(b)地址总线都是 20 位,低 16 位用于数据总线复用,可直接寻址为 1MB 的存储空间。(c)有 16 位的端口地址,可以寻址 64K
6、B 的 I/O 端口。(d)有 99 条基本指令,指令功能强大。(e)有 9 种基本寻址方式。(f)可以处理内部和外部中断,外部中断源多达 256 个。(g)兼容性好,8086、8085 在源程序一级兼容。(h)8086/8088 标准主频为 5MHz,8086/8088-2 主频为 8MH【3】 。(i)支持单处理器或多处理器系统工作。(2)8086CPU 寄存器结构8086CPU 中有 14 个 16 位的寄存器,其中有 4 个 16 位的通用寄存器,2 个 16 位指针寄存器,2 个 16 位变址寄存器,1 个 16 位指令指针及 1 个 16 位标志寄存器 【8】 。通用寄存器包括累加
7、器 AX,基址寄存器 BX,计数寄存器 CX,数据寄存器 DX 四个寄存器,位于 CPU 的 EU 中,每个数据寄存器可存放 16 位操作数, 也可拆成两个 8 位寄存器,用来存放 8 位操作数。 沈 阳 大 学课程设计说明书 NO.4指针和变址寄存器包括:堆栈指针 SP、基址指针 BP、源变址寄存器 SI、和目的变址寄存器 DI 四个 16 位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器 CS,数据段寄存器 DS,附加段寄存器 ES,堆栈段寄存器 SS【4】 。图 1 8086CPU 的内部功能结构图3.2 8255 简介8255 可编程外围接口芯片是 Intel 公司生产的通用
8、并行 I/O 接口芯片,它具有 A、B、C 三个并行接口,并行接口是以数据的字节为单位与 I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递 8 位、16 位、32 位等。用+5V 单电源供电,能在以下三种方式下工作:方式 0-基本输入/出方式、方式 1-选通输入/出方式、方式 2-双向选通工作方式 【3】 。沈 阳 大 学课程设计说明书 NO.58255 的内部结构及引脚图如图 2 所示。图 2 8255 内部结构及引脚图具体的各引脚功能如下 【3】 :D0D7 为双向数据信号线,用来传送数据和控制字。RD 为读信号线,与其它信号线一起实现对 825
9、5 接口的读操作通常接系统总线的IOR 信号。WR 为写信号线,与其它信号一起实现对 8255 的写操作,通常接系统总线的 IOW。CS 为片选信号线,当它为低电平(有效)时,才能选中该 8255 芯片,也才能对8255 进行操作 【6】 。A0,A1 为口地址选择信号线。8255 内部有 3 个口;A 口,B 口,C 口,还有一个控沈 阳 大 学课程设计说明书 NO.6制寄存器,它们可由程序寻址。A0,A1 上的不同编码可分别寻址上述 3 个口和一个控制寄存器,具体规定如表 1 所示。表 1 8255 的寻址方式A1 A0 选择0 0 A 口0 1 B 口1 0 C 口1 1 控制寄存器通常
10、 A0,A1 分别接系统总线 A0 和 A1,它们与 CS 一起来决定 8255 的接口地址。RESET 为复位输入信号。此端上的高电平可使 8255 复位。复位后,8255 的 A 口,B 口,C 口均被定为输入状态。PA0PA7 为 A 口的 8 条输入输出信号线。PB0PB7 为 B 口的 8 条输入输出信号线。PC0PC7,8 条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线沈 阳 大 学课程设计说明书 NO.78255 工作方式控制字和 C 口按位置位/复位控制字格式如图 3 所示 【4】 。图 3 置位/复位控制字格式8255 的寻址:8255
11、 占外设编址的 4 个地址,即 A 口,B 口,C 口和控制寄存器各占一个外设接口地址。对同一个地址分别可以进行读写操作。例如,读 A 口可将 A口的数据读出;写 A 口可将 CPU 的数据写入 A 口并输出 【8】 。如表 2 为方式 0 下系统的输入输出组合,其中分为 A,B 组,A 组分为 A 口和 C 口,B 组分为 B 口和 C 口。沈 阳 大 学课程设计说明书 NO.8表 2 方式 0 下,8255 的 16 种输入输出组合A 组 B 组A 口(PA0-PA7) C 口(PC4-PC7) B 口(PB0-PB7) C 口(PC0-PC3)入 入 入 入入 入 入 出入 入 出 入入
12、 入 出 出入 出 入 入入 出 入 出入 出 出 入入 出 出 出出 入 入 入出 入 入 出出 入 出 入出 入 出 出出 出 入 入出 出 入 出出 出 出 入出 出 出 出沈 阳 大 学课程设计说明书 NO.93.3 8253 简介intel8253 是 NMOS 工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异。图 4 8253 内部结构及引脚图 8253 内部可分为 6 个模块,每个模块的功能如下:(1) 数据总线缓冲器及数据总线 D0D7(如上图所示)(2) 读/写控制逻辑及控制引脚 (3) 控制字寄存器 在初始化编程时,C
13、PU 写入方式控制字到控制字寄存器中,用以选择计数通道及其相应的工作方式。8253 的工作方式也是有控制字来决定。(4) 计数通道 0、计数通道 1、计数通道 2 3 个计数通道内部结构完全相同。每个计数通道都由一个 16 位计数初值寄沈 阳 大 学课程设计说明书 NO.10存器、一个 16 位减法计数器和一个 16 位计数值锁存器组成 计数初值存于预置寄存器,在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值计数器的 3 个引脚说明: 1.CLK 时钟输入信号 在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减2.G
14、ATE 门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型。3.OUT 计数器输出信号当一次计数过程结束(计数值减为 0),OUT 引脚上将产生一个输出信号。 8253 有 6 种工作方式,由方式控制字确定。区分这 6 种工作方式的主要标志由 3 点:一是输出波形不同;二是启动计数器的触发方式不同;三是计数过程中门控信号 GATE 对计数器操作的控制不同。图 5 8253 控制字沈 阳 大 学课程设计说明书 NO.11在 Proteus 环境下,结合课程设计题目,设计硬件原理图,搭建硬件电路软件设计1方式 0-低电平输出(GATE 信号上升沿继续2方式 1-低电平输出(GATE 信
15、号上升沿重新计数) 3方式 2-周期性脉冲输出 4方式 3-周期性方波输出 OUT 输出低电平,装入计数值 n 后,OUT 立即跳变为高电平。如果当前 GATE 为高电平,则立即开始减“1”计数,OUT 保持为高电平,若 n为偶数,则当计数值减到 n/2 时,OUT 跳变为低电平,一直保持到计数值为“0” ,系统才重新置入计数值 n,实现循环计数。这时 OUT 端输出周期为 nCLK 周期,占空比为1:1 的方波序列:若 n 为奇数,则 OUT 端输出周期为 nCLK 周期,占空比(n+1)/2 : (n-1)/2 的近似方波序列。 5方式 4-单次负脉冲输出(软件触发)6方式 5-单次负脉冲
16、输出(硬件触发) 每种工作方式的设置过程类似: 设定工作方式 设定计数初值 硬件启动 计数初值进入减 1 计数器 每输入一个时钟计数器减 1 的计数过程 计数过程结束3.4 八个 LED 显示器及其接口十二个 LED 小灯为共阳极,一端接高电平,一端接 8255 端口,当输出为 0 时,小灯才会亮。LED 技术参数说明:发光二极管的压降一般为 1.5-2.0V,即工作电压要求不高,而且构造简单,其工作电流一般取 10-20mA 为宜。沈 阳 大 学课程设计说明书 NO.123.5 模拟 8086 系统硬件接线图图 6 硬件连接图沈 阳 大 学课程设计说明书 NO.134 交通灯软件设计4.1
17、程序流程图图 7 程序流程图沈 阳 大 学课程设计说明书 NO.144.2 软件编程实现CS8253_T0 EQU 00010HCS8253_CTL EQU 01810HCS8255_PA EQU 00018HCS8255_PB EQU 00218HCS8255_CTL EQU 00618H CODE SEGMENTASSUME CS:CODE,DS:CODESTART: PUSH CSPOP DSCLI ;关中断MOV DX,CS8253_CTL ;定时器 0 工作在方式 3MOV AL,00010000BOUT DX,ALMOV DX,CS8253_T0MOV AL,01H ;频率 12h
18、z,计时为 1sOUT DX,ALMOV AL,10000000BMOV DX,CS8255_CONOUT DX,AL 沈 阳 大 学课程设计说明书 NO.15CALL STATUS0 ;初始状态(都是红灯)MLOOP: CALL STATUS1 ;南北绿灯,东西红灯CALL STATUS2 ;南北绿灯闪转黄灯,东西红灯CALL STATUS3 ;南北红灯,东西绿灯CALL STATUS4 ;南北红灯,东西绿灯闪转黄灯JMP MLOOPSTATUS0: MOV AL,0F0H ;南北红灯,东西红灯 MOV DX,CS8255_PA OUT DX,ALMOV BL,10STI ;开中断LOOPA
19、: CMP CL,1 ;判断是否计时为 1sJNE LOOPA ;不到一 s 则回去MOV CL,0CLI ;关中断RETSTATUS1: MOV AL,05AH ;南北红灯,东西红灯 MOV DX,CS8255_PA OUT DX,ALMOV BL,50STI ;开中断沈 阳 大 学课程设计说明书 NO.16LOOPB: CMP CL,5 ;判断是否计时为 5sJNE LOOPB ;不到一 s 则回去MOV CL,0CLI ;关中断 ;延时 5 秒RET STATUS2: MOV CX,3 ;绿灯闪 3 次FLASH: MOV AL,050H ;南北红灯,东西红灯 MOV DX,CS8255
20、_PA OUT DX,ALMOV BL,3CALL DELAY ;延时 0.3 秒MOV AL,05AH ;南北红灯,东西红灯 MOV DX,CS8255_PA OUT DX,ALMOV BL,3CALL DELAY ;延时 0.3 秒LOOP FLASHMOV AL,0FAH ;南北红灯,东西红灯 MOV DX,CS8255_PA OUT DX,ALMOV BL,10STI ;开中断沈 阳 大 学课程设计说明书 NO.17LOOPC: CMP CL,1 ;判断是否计时为 1sJNE LOOPC ;不到一 s 则回去MOV CL,0CLI ;关中断 ;延时 1 秒 RETSTATUS3: MO
21、V AL,0A5H ;南北红灯,东西绿灯 MOV DX,CS8255_PA OUT DX,ALMOV BL,50STI ;开中断LOOPD: CMP CL,5 ;判断是否计时为 5sJNE LOOPD ;不到一 s 则回去MOV CL,0CLI ;关中断 ;延时 5 秒RET 沈 阳 大 学课程设计说明书 NO.18STATUS4: ;南北红灯,东西绿灯闪转黄灯MOV CX,3 ;绿灯闪 3 次FLASH1: MOV AL,0A0H MOV DX,CS8255_PA OUT DX,ALMOV BL,3CALL DELAY ;延时 0.3 秒MOV AL,0A5H MOV DX,CS8255_P
22、A OUT DX,ALMOV BL,3CALL DELAY ;延时 0.3 秒LOOP FLASH1MOV AL,0F5H ;南北红灯,东西黄灯MOV DX,CS8255_PA OUT DX,ALMOV BL,10STI ;开中断LOOPE: CMP CL,1 ;判断是否计时为 1sJNE LOOPE ;不到一 s 则回去MOV CL,0CLI ;关中断 ;延时 1 秒 RET 沈 阳 大 学课程设计说明书 NO.19DELAY PROC NEARPUSH CXDL1: MOV CX,8000HDL2: LOOP DL2DEC BLCMP BL,0JNE DL1POP CXRETDELAY E
23、NDPIRQ2: CLIMOV AL,BLNOT ALMOV BL,ALADD CLSTIIRETCODE ENDSEND START沈 阳 大 学课程设计说明书 NO.205 仿真结果图 8 仿真结果图6 设计体会一周的微机课程设计很快就结束了,在课程设计的这段时间里,我不仅学到了许多新的知识,而且加深了我对以前学习的理论知识的掌握。 以前我们学的东西仅限于课本,对实实在在的应用还比较模糊,这次课程设计有利于同学们学习目的的明确性和主动性。通过这次课程设计,我们知道了哪些东西是应该确实掌握的,在学校里,没有实实在在的实习,我们总以为学的东西没太多用,当我们在课程设计过程中了解到我们学的东西是
24、如此重要时,我们学习的积极性有了,目的性提高了。总之,经过这次课程设计,我对今后的专业学习所要注意的事项有了更深刻地了解,这对我以后的学习必将产生深远的影响。沈 阳 大 学 课程设计说明书 NO.217 参考文献1 齐志儒、高福祥.汇编语言程序设计.沈阳:东北大学出版,2008.2:13-282 刘均、周苏、金海荣.汇编语言程序设计实验教程.北京:科学出版社,2011.4:286-3183 周佩玲、彭虎、傅忠谦.微机原理与接口技术.北京:电子工业出版社,2004.4:213-2584 方立友.微机原理与汇编语言实用教程.北京:清华大学出版社,2008.5:159-189 5 凌志浩.微机原理与接口技术.上海:华东理工大学出版社,2006.3:223-228 6 彭虎、周佩玲、傅忠谦.微机原理里与接口技术(第 2 版) M 北京:电子工业出版社 2007.1:133-2867 顾晖等.微机原理与接口技术-基于 8086 和 Proteus 仿真M电子工业出版社, 2005.2:187-258 8戴梅萼等.微型计算机技术及应用M北京:清华大学出版社,2012.1:12-54 9沈美明等.IBM-PC 汇编语言程序设计 M北京:清华大学出版社, 2006.4:113-228 10彭虎等. 微机原理与接口技术(第 2 版) M电子工业出版社,2003.1:223-238 沈 阳 大 学