微机原理交通信号灯课程设计.docx

上传人:b****7 文档编号:25527125 上传时间:2023-06-09 格式:DOCX 页数:23 大小:109.59KB
下载 相关 举报
微机原理交通信号灯课程设计.docx_第1页
第1页 / 共23页
微机原理交通信号灯课程设计.docx_第2页
第2页 / 共23页
微机原理交通信号灯课程设计.docx_第3页
第3页 / 共23页
微机原理交通信号灯课程设计.docx_第4页
第4页 / 共23页
微机原理交通信号灯课程设计.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

微机原理交通信号灯课程设计.docx

《微机原理交通信号灯课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理交通信号灯课程设计.docx(23页珍藏版)》请在冰豆网上搜索。

微机原理交通信号灯课程设计.docx

微机原理交通信号灯课程设计

LGGROUPsystemofficeroom【LGA16H-LGYY-LGUA8Q8-LGA162】

 

微机原理交通信号灯课程设计

课程设计任务书

课题名称:

基于8086/8088的交通信号灯设计

完成期限:

2015年06月22日至2015年06月28日

院系名称机械工程与自动化学院

指导教师

专业班级

学生姓名

院系课程设计(论文)工作领导小组组长签字

一、课题训练内容

设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。

要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路原理图的能力,能编写一定难度的汇编程序并调试。

二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)

1.设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:

8086、8259、8253、8255、ADC0809、温度传感器(选择数字式或模拟式均可)和湿度传感器(选择数字式或模拟式均可)、健盘(5按键,包括4个路口紧急按键和1个复位按键);(20分)

2.交通灯的亮、灭情况如下:

东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;

南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)

3.每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)

4.使用8253提供时间定时,每6s读入1次温、湿度;(20分)

5.说明书正文不少于10页,小4号宋体,倍行距,正文不包含程序;(30分)

6.提供完整的电路原理图并给出每个外设的地址(电路图必需是打印稿);(50分)

7.提供软件流程图与完整的程序;(50分)

8.按要求时间提交课程设计。

微机原理课程设计报告

一、分析课题

基于8086/8088交通信号灯设计主要需要实现这几部分功能:

第一、信号灯的通断延时;第二、紧急按键对交通信号灯的控制,则每一个路口有一个紧急按键,可以中断当前的交通状态,当前状态为绿灯,经过12秒后恢复;第三、环境湿度、温度的采集。

2、设计思路分析及步骤

(1)、设计内容分析:

A、0至6秒:

东西方向红灯亮,南北方向绿灯亮

B、6至12秒:

东西方向红灯亮,南北方向黄灯亮

C、12至18秒:

东西方向绿灯亮,南北方向红灯亮

D、18至24秒:

东西方向黄灯亮,南北方向红灯亮

通过分析信号灯的亮灭规律,可总结以下功能表:

交通信号灯亮功能表

状态

时间段

东西绿

东西红

东西黄

南北绿

南北红

南北黄

无效

1

无效

2

A

0-6

0

1

0

1

0

0

0

0

B

6-12

0

1

0

0

0

1

0

0

C

12-18

1

0

0

0

1

0

0

0

D

18-24

0

0

1

0

1

0

0

0

(1表示灯亮,0表示灯灭)

由此可比较东西,南北方向在一个周期内不同时间段的亮灯情况:

0——6

6——12

12——18

18——24

东西方向

绿

南北方向

绿

将交通信号灯亮功能表信息转换成控制码

十六进制

二进制

状态A

09H

00001010B

状态B

12H

00010001B

状态C

11H

00010001B

状态D

24H

00010100B

(2)交通信号灯的组成

交通灯控制系统,主要是由控制器,定时器,译码器和秒脉冲信号发生器等部分组成。

秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。

3、电路设计及思路

1、延时功能实现逻辑:

可编程计数/定时控制器器8253芯片具有定时、计数双功能。

它由数据总线缓冲存储器、读/写控制器、控制字寄存器及3个计数通道组成,共有24条引脚。

把8253计数器0设为1s定时中断,周期为24s,用8255的A、B口低12位控制东西,南北路口交通灯的状态,灯的亮灭可直接由8088输出0,1控制。

用8259A管理可屏蔽中断及开机初始化。

计数器0,累计时间与状态时间相比较,从而控制灯的状态改变,达到延时效果。

采用两个计数器级联的方式,并且计数器0工作方式3用于产生方波信号,计数器1工作方式0,计数到时高电平信号,计数器1的输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。

将计数器0的输出OUT0接到计数器1的输入端CLK1,而CLK0的输入采用的时钟频率,计数器0计数初值为59499=0E86BH,则OUT0=20HZ,即计数器1的时钟频率为20HZ。

2、译码电路设计

通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。

8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。

故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。

再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。

将8086的地址总线的D0、D1分别与8253和8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。

将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。

3、可编程并行通信接口芯片8255A

它可为86系列CPU与外部设备之间提供并行输入/输出的通道。

由于它是可编程的,可以通过软件来设置芯片的工作方式。

本课题系统中,微机需要检测2键送来的主干道信号,并按一定的条件发出主、支干道6个信号灯的控制信号,以及LED显示器的控制信号。

根据8255内部结构及引脚,易得,用一片8255A完全可以达到以上条件。

对8255A作如下安排。

PA0-PA7用来给信号灯在不同时刻发送不同状态的信号。

PB0-PB7用来给LED发送LED驱动码。

PC0-PC3用来发送LED的控制信号,PC4-PC7暂时不用。

8255A的内部逻辑结构见下图:

4、可编程中断控制器8259A

端口A工作方式与方式0的无条件数据传输方式,用以控制交通灯的亮灭;端口B工作方式与方式1的输入方式,并设置为允许中断;将端口C的PC2,PC3接到负脉冲源上,使得每按一下按钮时分别表示支干道有车过来。

而将PC0接到中断请求线上,模拟当干道上有特殊情况是,中断请求线向CPU发出中断,CPU响应中断后控制各个交通灯变为状态。

端口C的低4位用作输出接口,用来控制LED显示。

8259A内部结构图

5、ADC0809A/D转换器

ADC0809是National半导体公司生产CMOS材料的A/D转换器。

它是具有8个通道的模拟量输出线,可在程序控制下对任意通道进行A/D转换,得到8位二进制数字量。

ADC0809各脚功能如下:

D7-D0:

8位数字量输出引脚。

IN0-IN7:

8位模拟量输入引脚。

VCC:

+5V工作电压。

GND:

地。

REF(+):

参考电压正端。

REF(-):

参考电压负端。

START:

A/D转换启动信号输入端。

ALE:

地址锁存允许信号输入端。

(以上两种信号用于启动A/D转换)

EOC:

转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。

OE:

输出允许控制端,用以打开三态数据输出锁存器。

CLK:

时钟信号输入端(一般为500KHz)。

A、B、C:

地址输入线。

6、8086/8088CPU

8086CPU从功能上可分为为两部分,即总线接口部分和执行部件。

执行部

件的功能就是负责指令的执行。

将指令译码并利用内部的寄存器和ALU对数据

进行所需的处理。

总线接口部件的功能是负责与存储器、I/O端口传送数据,

即BIU管理在存储器中存取程序和数据的实际处理过程。

执行部件的组成:

(1)四个通用寄存器,即AX,BX,CX,DX;

(2)四个专用寄存器,即基数指针寄存器BX,堆栈指针寄存器SP,源变

址寄存器SI,目的变址寄存器DI;

(3)标准寄存器(FR);

(4)算术逻辑部件(ALU)

总线部件的组成:

(1)四个段地址寄存器

CS——16位代码段寄存器;

DS——16位数据段寄存器;

ES——16位附加段寄存器;

SS——16位堆栈段寄存器;

(2)16位指令指针寄存器IP

(3)20位的地址加法器

(4)6字节的指令队列

7、湿度传感器

湿度传感器是把相对湿度的变化转换成电信号的器件。

感湿特点:

在基片涂覆材料形成感湿膜。

空气中的水蒸气吸附于感湿材料后,原件的阻抗、介电常数发生很大的变化,从而制成湿敏原件。

湿敏电阻器可分为:

半导体陶瓷湿敏电阻器、元素材料湿敏电阻器、化合物湿敏电阻器、高分子湿敏电阻器。

工作原理:

水分子具有很强的电子亲和力,易于在多孔性半导体陶瓷表面附着,并俘获电子,在半导体陶瓷表面形成空穴积累,导致半导体陶瓷的电阻率降低。

晶胞间界水分子的电离。

芯片内部结构

7、温度传感器

温度是指能感受温度并转换成可用输出信号的传感器。

温度传感器是温度测量仪表的核心部分,品种繁多。

按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为和热电偶两类。

原理:

感应温度的变化,使敏感元件(如:

热敏电阻、热电偶等)的阻值发生变化,从而在电路中,使输出的电压发生变化。

外空气温度传感器

8、总体设计框图

 

以上各种硬件相连接,组成整个系统的硬件系统。

但是除了硬件系统外,还需要有软件来驱动硬件之间的相互配合执行。

现给出其流程图如下:

主程序流程图:

 

紧急处理程序流程图

端口地址结果如下表:

芯片

A

15

A

14

A

13

A

12

A

11

A

10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

8

2

5

5

A

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

B

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

C

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

控制

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

8

2

5

3

0

通道

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

通道

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

1

2

通道

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

控制

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

1

四、程序源代码

STACKSEGMENTSTACK定义堆栈段

DB64DUP()申请64个字节的空间

STACKENDS

DATASEGMENT定义数据段

BUFFERDW5B6FH,5B7FH,5B07H,5B7DH,5B6DH,5B66H,

5B4FH,5B5BH,5B06H,5B3FH

DW066FH,067FH,0607H,067DH,066DH,0666H,

064FH,065BH,0606H,063FH

DW3F6FH,3F7FH,3F07H,3F7DH,3F6DH,3F66H,

3F4FH,3F5BH,3F06H,3F3FH定义从29~0的LED驱动码

MAINDB00H

ZHUANGTAIDW00H用来存放交通灯的最近状态ZHONGDUANWD00H用来存放中断时倒计时的状态

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA程序开始

MOVDS,AX

;中断向量初始化

PUSHDS保护DS现场

MOVAX,0000H

MOVDS,AX将0至入DS

MOVAX,OFFSETIRQ6

MOVAX,2000H

MOVSI,0038H

MOV[SI],AX将IRQ6的首地址偏移地址放入第16个中断向量字的低字中

MOVAX,0000H

MOVSI,003AH

MOV[SI],AX将IRQ6的首地址段地址放入第16个中断向量字的高字中

MOVAX,OFFSETIRQ7

ADDAX,2000H

MOVSI,003CH

MOV[SI],AX将IRQ7的首地址偏移地址放入第16个中断向量字的低字

MOVAX,0000H

MOVSI,003EH

MOV[SI],AX将IRQ7的首地址段地址放入第16个中断向量字的高字中

POPDS

中断向量初始化完毕

MOVAL,80H

OUT63H,AL8255初始化

LEABX,BUFFER

MOVDX,60HDX,SI两个寄存器的值用来控制LED显示的值

AGAIN:

MOVCX,4

JUMP:

MOVZHUANGTAI,CX记录最近交通灯的状态

CMPCX,4

JEAAA1

CMPCX,3

JEAAA2

CMPCX,2

JEAAAA3

JUMPAAAA4根据CX确定的状态输出交通灯(二级管表示)

AAAA:

MOVAL,0

MOVMAIN,AL

PUSHCX每一个新的状态将阻塞车辆数清零

;QIOA

NEXT3:

MOVCX,23H根据CX值通过延时得出一秒的时间

MOVAX,29

CMPMAIN,AL

JEZONGD

NEXT2:

CMPCX,25H根据CX的值,在黄灯时,闪烁

JAESHAN2

CMPCX,19H

JAESHAN

CMPCX,0CH

JAESHAN2

JUMPSHAN

AAAS:

PUSHCX

CALLZDCSH中断初始化

MOVAX,[BX+SI]

XCHGAL,AH

CALLLED

POPCX

LOOPNEXT2

INCSI

INCSI

MOVZHONGDUAN,SI

CMPSI,DX

JNENEXT3倒计时

ZONGD:

POPCX

LOOPJUMP

JUMPAGAIN状态循环转换

主程序逻辑结束

AAAAL:

MOVSI,0调用第一种信号灯状态代码,SI=0表示从29开始倒计时

CALLLIGHT1

JUMPAAAA

AAAA2:

MOVSI,54调用第二种信号灯状态代码,SI=54表示从2开始倒计时

CALLLIGHT2

JUMPAAAA

AAAA3:

MOVSI,0调用第三种信号灯状态代码,SI=0表示从29开始倒计时

CALLLIGHT3

JUMPAAAA

AAAA4:

MOVSI,54调用第四种信号灯状态代码,SI=54表示从2开始倒计时

CALLLIGHT4

JUMPAAAA

SHAN:

PUSHAX黄灯时闪烁代码中的灯灭

MOVAX,ZHUANGTAI根据信当前状态判断是否是黄灯

CMPAX,3

JESHAN1状态三和一是黄灯,让灯灭

CMPAX,1

JESHAN1

POPAX

LUMPAAASELSE返回原程序

SHAN1:

CALLLIGHT6灯灭

POPAX

JMPAAAS

SHAN2:

PUSHAX黄灯时闪烁代码中的黄灯亮

MOVAX,ZHUANGTAI根据信当前状态判断是否是黄灯

CMPAX,3

JESHAN3状态三时,主干道黄灯,支干道红灯

CMPAX,1

JESHAN4

JMPSHAN5状态一时,主干道红灯,支干道黄灯

SHAN3:

CALLLIGHT2主干道黄灯,支干道红灯

JMPCHAN5

SHAN4:

CALLLIGHT4主干道红灯,支干道黄灯

SHAN5:

POPAX

LMPAAAS

;中断子程序

IRQ6:

STI当按键K1高电平触发时IRQ6时,开中断

PUSHAX

MOVAL,29

CMPMAIN,AL

JEZON

INCMAIN

ZON:

POPAX

IRET

IRQ7:

STI当按键K2高电平触发时IRQ7时,开中断

PUSHAX

PUSHBX

PUSHCX

CALLLIGHT5主,支干道灯都是红灯

MOVCX,00E0H开始延时3秒

MOVBX,OFFSETBUFFER

MOVSI,ZHONGDUAN

1111:

PUSHCX

MOVAX,[BX+SI]

XCHGAL,AH

CALLLED根据中断时刻倒计时时间暂停的LED显示

POPCX

LOOP1111

中断子程序逻辑完后,返回现场

MOVAXZHUANGTAI根据不同的状态信号灯返回现场

CMPAX,4

JEZHUANGTAI1判断为状态一时

CMPAX,3

JEZHUANGTAI2判断为状态二时

CMPAX,2

JEZHUANGTAI3判断为状态三时

JMPZHUANGTAI4判断为状态四时

ZHUANGTAI1:

CALLLIGHT1返回状态一的现场

JMPEND2

ZHUANGTAI2:

CALLLIGHT2返回状态二的现场

JMPEND2

ZHUANGTAI3:

CALLLIGHT3返回状态三的现场

JMPEND2

ZHUANGTAI4:

CALLLIGHT4返回状态四的现场

END2:

POPCX寄存器返回现场

POPBX

POPAX

IRET

中断初始化

ZDCSHPROC

PUSHAX

MOVAL,13H

OUT20H,AL给8259送入ICW1控制字

MOVAL,08H

OUT21H,AL给8259送入ICW2控制字

MOVAL,09H

OUT21H,AL给8259送入ICW3控制字

MOVAL,ODH

OUT21H,AL给8259送入ICW4控制字

STI开中断

POPAX

RET

ZDCSHENDS

LEDPROC控制四个LED的显示

PUSHCX保护父程序环境

CALLLED1显示每一个LED

MOVCX,0617H

DELAY1:

LOOPDELAY1

MOVAL,AH

CALLLED2显示第二个LED

MOVCX,0617H

DELAY2:

LOOPDELAY2

CALLLED3显示第三个LED

MOVCX,0617H

DELAY3:

LOOPDELAY3

CALLLED4显示第四个LED

MOVCX,0617H

DELAY4:

LOOPDELAY4

POPCX

RET

LEDENDP

LED1:

PROC控制第一个LED的显示

PUSHAX

MOVAH,AL

PUSHAX

MOVAH,AL

MOVALB

OUT62H,AL初始化第一个LED

MOVAL,AH

OUT61H,AL显示第一个LED的值(AL传来的)

POPAX

RET

LED1ENDP

LED2PROC控制第二个LED的显示

PUSHAX

MOVAH,AL

MOVAL

OUT62H,AL初始化第一个LED

MOVAL,AH

OUT61H,AL显示第二个LED的值(AL传来的)

POPAX

RET

LED2ENDP

LED3PROC控制第三个LED的显示

PUSHAX

PUSHBX

MOVALH

OUT62H,AL初始化第一个LED

LEABX,BUFFER

MOVAL,29

SUBAL,main

ADDAL,AL

INCAL

XLAT

OUT61H,AL

POPBX

POPAX

RET

LED3ENDP

LED4PROC控制第四个LED的显示

PUSHAX

PUSHBX

MOVAL

OUT62H,AL初始化第一个LED

MOVAL,29

SUBAL,main

ADDAL,AL

XLAT通过main计算出阻塞车辆数的个位LED驱动码

OUT61H,AL显示第四个LED

POPBX

POPAX

RET

;WU

LIGHT1PROC交通灯第一种状态下的二级管情况

PUSHAX

MOVAL,01111101b(主干道绿灯,次干道红灯)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT1ENDP

LIGHT2PROC交通灯第二种状态下的二级管情况

PUSHAX

MOVAL,01111011b(主干道黄灯,次干道红灯)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT2ENDP

LIGHT3PROC交通灯第三种状态下的二级管情况

PUSHAX

MOVAL(主干道红灯,次干道绿灯)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT3ENDP

LIGHT4PROC交通灯第四种状态下的二级管情况

PUSHAX

MOVAL(主干道红灯,次干道黄灯)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT4ENDP

LIGHT5PROC交通灯第五种状态下的二级管情况

PUSHAX

MOVAL,01111110b(主干道红灯,次干道红灯)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT5ENDP

LIGHT6PROC交通灯第六种状态下的二级管情况

PUSHAX

MOVAL,0ffH(主、次干道灯全灭)

OUT60H,AL将要显示的灯对应的值通过PA0~7控制灯亮

POPAX

RET

LIGHT6ENDP

CODEENDS

ENDSTART

5、设计总结

本次课程设计是要设计一个交通灯系统,主要功能如上已有详细描述。

在本次对交通灯的设计过程中以此来加深对微机接口技术的理解,提高了自己的动手能力。

首先着手对硬件电路的设计,本次课程设计主要采用了8255A接口电路、8259A中断控制器这两个芯片电路。

由于对各个芯片不熟悉,通过课本了解到了他们的引脚及功能、工作纺织。

内部结构和控制字。

然后就是对程序的设计,想要设计出一个实用的控制系统需要了解程序的流程,先画出流程图,然后对代码进行编写,在编写过程中遇到了很多问题。

最后经过一段时间的研究,查阅很多资料并和同学们讨论后终于解决。

经过为期一个星期的课程设计,我获益很多。

将微机接口技术中的理论与实践相结合起来,对芯片的功能也有了进一步认识理解。

最后希望通过以后的学习,不断提升自身各方面的能力,如对专业知识的掌握程度,

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

当前位置:首页 > 求职职场 > 简历

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

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