版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程设计任务书课题名称: 基于8086/8088的交通信号灯设计 完成期限: 2015年06月22日 至 2015年06月28日 院系名称 机械工程与自动化学院 指导教师 专业班级 学生姓名 院系课程设计(论文)工作领导小组组长签字 一、课题训练内容设计一个基于8086/8088微型计算机的一个交通信号灯控制系统,要求能完成基本的交通灯控制,如红、绿、黄三种灯的定时交替点亮与熄灭;能提供行人通过时的临时信号修改;能提供当时当地的温度、湿度信息;提供基本的键盘输入。要求学生了解8086/8088微型计算机控制系统的基本设计方法与思路,能独立查阅资料并汇总,具备一定的控制系统设计能力,掌握绘制电路
2、原理图的能力,能编写一定难度的汇编程序并调试。二、设计(论文)任务和要求(包括说明书、程序、图纸、等具体要求)1. 设计一个基于8086/8088微型计算机的一个交通信号灯控制系,要求使用如下器件:8086、8259、8253、8255、ADC0809、温度传感器(选择数字式或模拟式均可)和湿度传感器(选择数字式或模拟式均可)、健盘(5按键,包括4个路口紧急按键和1个复位按键);(20分)2. 交通灯的亮、灭情况如下:东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)3. 每个路口设
3、一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)4. 使用8253提供时间定时,每6s读入1次温、湿度;(20分)5. 说明书正文不少于10页,小4号宋体,1.5倍行距,正文不包含程序;(30分)6. 提供完整的电路原理图并给出每个外设的地址(电路图必需是打印稿);(50分)7. 提供软件流程图与完整的程序;(50分)8. 按要求时间提交课程设计。微机原理课程设计报告一、分析课题基于8086/8088交通信号灯设计主要需要实现这几部分功能:第一、信号灯的通断延时;第二、紧急按键对交通信号灯的控制,则每一个路口有一个紧急按键,可以中断当前的交通状
4、态,当前状态为绿灯,经过12秒后恢复;第三、环境湿度、温度的采集。2、 设计思路分析及步骤 (1)、设计内容分析: A、 0至6秒: 东西方向红灯亮,南北方向绿灯亮 B、 6至12秒:东西方向红灯亮,南北方向黄灯亮 C、12至18秒:东西方向绿灯亮,南北方向红灯亮 D、18至24秒:东西方向黄灯亮,南北方向红灯亮 通过分析信号灯的亮灭规律,可总结以下功能表:交通信号灯亮功能表状态时间段东西绿东西红东西黄南北绿南北红南北黄无效1无效2A0-601010000B6-1201000100C12-1810001000D18-2400101000(1表示灯亮,0表示灯灭)由此可比较东西,南北方向在一个周
5、期内不同时间段的亮灯情况:0661212181824东西方向红红绿黄南北方向绿黄红红 将交通信号灯亮功能表信息转换成控制码十六进制二进制状态A09H00001010B状态B12H00010001B状态C11H00010001B状态D24H00010100B(2) 交通信号灯的组成 交通灯控制系统,主要是由控制器,定时器,译码器和秒脉冲信号发生器等部分组成。秒脉冲发生器是该系统中定时器和控制器的标准时钟信号源,译码器输出两组信号灯的控制信号,经驱动电路后驱动信号灯工作,控制器是系统的主要部分,由它控制定时器和译码器的工作。3、 电路设计及思路 1、延时功能实现逻辑:可编程计数/定时控制器器825
6、3芯片具有定时、计数双功能。它由数据总线缓冲存储器、读/写控制器、控制字寄存器及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的输出OUT
7、0接到计数器1的输入端CLK1,而CLK0的输入采用1.19MHZ的时钟频率,计数器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,将808
8、6的地址总线的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内部结构及引脚,易得,用一片
9、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响应中断后控制各个交通灯变为
10、状态。端口C的低4位用作输出接口,用来控制LED显示。8259A内部结构图5、ADC0809 A/D转换器ADC 0809是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:转换结束信号输出引
11、脚,开始转换时为低电平,当转换结束时为高电平。 OE:输出允许控制端,用以打开三态数据输出锁存器。 CLK:时钟信号输入端(一般为500KHz)。 A、B、C:地址输入线。6、8086/8088 CPU 8086 CPU从功能上可分为为两部分,即总线接口部分和执行部件。执行部件的功能就是负责指令的执行。将指令译码并利用内部的寄存器和ALU对数据进行所需的处理。总线接口部件的功能是负责与存储器、I/O端口传送数据,即BIU管理在存储器中存取程序和数据的实际处理过程。 执行部件的组成: (1)四个通用寄存器,即AX,BX,CX,DX; (2)四个专用寄存器,即基数指针寄存器BX,堆栈指针寄存器SP
12、,源变址寄存器SI,目的变址寄存器DI; (3)标准寄存器(FR); (4)算术逻辑部件(ALU) 总线部件的组成: (1)四个段地址寄存器 CS16位代码段寄存器; DS16位数据段寄存器; ES16位附加段寄存器; SS16位堆栈段寄存器; (2)16位指令指针寄存器IP (3)20位的地址加法器 (4)6字节的指令队列7、湿度传感器 湿度传感器是把相对湿度的变化转换成电信号的器件。 感湿特点:在基片涂覆材料形成感湿膜。空气中的水蒸气吸附于感湿材料后,原件的阻抗、介电常数发生很大的变化,从而制成湿敏原件。湿敏电阻器可分为:半导体陶瓷湿敏电阻器、元素材料湿敏电阻器、化合物湿敏电阻器、高分子湿
13、敏电阻器。工作原理:水分子具有很强的电子亲和力,易于在多孔性半导体陶瓷表面附着,并俘获电子,在半导体陶瓷表面形成空穴积累,导致半导体陶瓷的电阻率降低。晶胞间界水分子的电离。芯片内部结构7、温度传感器 温度传感器是指能感受温度并转换成可用输出信号的传感器。温度传感器是温度测量仪表的核心部分,品种繁多。按测量方式可分为接触式和非接触式两大类,按照传感器材料及电子元件特性分为热电阻和热电偶两类。原理:感应温度的变化,使敏感元件(如:热敏电阻、热电偶等)的阻值发生变化,从而在电路中,使输出的电压发生变化。外空气温度传感器发光二极管8、总体设计框图可编程并行通信接口8255A键盘8086可编程中断控制器
14、8259ADC0809A/D转换器PTC可编程计数/定时控制器8253温,湿度传感器 以上各种硬件相连接,组成整个系统的硬件系统。但是除了硬件系统外,还需要有软件来驱动硬件之间的相互配合执行。现给出其流程图如下:主程序流程图:开始东西绿=1 东西红=0 东西黄=0南北绿=0 南北红=1 南北黄=0Y时间总额小于等于18时间总额小于等于12Y东西绿=0 东西红=1 东西黄=0南北绿=0 南北红=0 南北黄=1YN东西绿=0 东西红=1 东西黄=0南北绿=1 南北红=0 南北黄=0时间总额小于等于6NN东西绿=0 东西红=0 东西黄=1南北绿=0 南北红=1 南北黄=0结束紧急处理程序流程图YN退
15、出执行主程序SEGMENTMOV TIMESUM , 18AL>0MOV DX,南北按钮地址IN AL, DXMOV TIMESUM ,0AL>0MOV DX AL 东西按钮地址Int AL ,DX开始端口地址结果如下表:芯片A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A08255A0000000000000000B0000000000000001C0000000000000010控制000000000000001182530通道00100000000000001通道00100000000000012通道0010000000000010控制0010000
16、000000011四、程序源代码STACK SEGMENT STACK 定义堆栈段 DB 64 DUP() 申请64个字节的空间 STACK ENDS DATA SEGMENT &
17、#160; 定义数据段 BUFFER DW 5B6FH,5B7FH,5B07H,5B7DH,5B6DH,5B66H, 5B4FH,5B5BH,5B06H,5B3FH DW 066FH,067FH,0607H,067DH,066DH,0666H, 064FH,065BH,0606H,063FH DW 3F6FH,3F7FH,
18、3F07H,3F7DH,3F6DH,3F66H, 3F4FH,3F5BH,3F06H,3F3FH 定义从290的LED驱动码MAIN DB 00H ZHUANGTAI
19、0;DW 00H 用来存放交通灯的最近状态ZHONGDUAN WD 00H 用来存放中断时倒计时的状态DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA
20、60; START:MOV AX,DATA 程序开始 MOV DS,AX 中断向量初始化 PUSH DS
21、60; 保护DS现 场 MOV AX,0000H MOV DS,AX 将0至入DS MOV AX,OFFSET IRQ6 MOV AX,2000H MOV SI,0038
22、H MOV SI,AX 将IRQ6 的首地址偏移地址放入第16个中断向量字的低字中 MOV AX,0000H MOV SI,003AH MOV SI,AX 将IRQ6 的首地址段地址放入第16个中断向量字的高字中 &
23、#160; MOV AX,OFFSET IRQ7 ADD AX,2000H MOV SI,003CH MOV SI,AX 将IRQ7 的首地址偏移地址放入第16个中断向量字的低字 MOV AX,0000H MOV SI,
24、003EH MOV SI,AX 将IRQ7 的首地址段地址放入第16个中断向量字的高字中 POP DS 中断向量初始化完毕 MOV AL,80H OUT 63H,AL 8255初始化 LEA BX,BUFFER MOV DX,60H&
25、#160; DX,SI两个寄存器的值用来控制LED显示的值 AGAIN:MOV CX,4 JUMP:MOV ZHUANGTAI,CX 记录最近交通灯的状态 CMP CX,4 JE AAA1 CMP CX,3
26、; JE AAA2 CMP CX,2 JE AAAA3 JUMP AAAA4 根据CX确定的状态输出交通灯(二级管表示) AAAA:MOV AL,0 MOV MAIN,AL
27、; PUSH CX 每一个新的状态将阻塞车辆数清零;QIOANEXT3:MOV CX,23H 根据CX值通过延时得出一秒的时间 MOV AX,29 CMP MAIN,AL
28、160; JE ZONGD NEXT2:CMP CX,25H 根据CX的值,在黄灯时,闪烁 JAE SHAN2 CMP CX,19H JAE
29、SHAN CMP CX,0CH JAE SHAN2 JUMP SHAN AAAS:PUSH CX CALL ZDCSH 中断初始化 MOV AX,BX+SI XCHG&
30、#160;AL,AH CALL LED POP CX LOOP NEXT2 INC SI INC SI MOV ZHONGDUAN,SI CMP SI,DX J
31、NE NEXT3 倒计时 ZONGD:POP CX LOOP JUMP JUMP AGAIN
32、0; 状态循环转换 主程序逻辑结束 AAAAL:MOV SI,0 调用第一种信号灯状态代码,SI=0表示从29开始倒计时 CALL LIGHT1 JUMP AAAA AAAA2:MOV SI,54 调用第二种信号灯状态代码,SI=54表示从2开始倒计时 CALL LIGHT
33、2 JUMP AAAA AAAA3:MOV SI,0 调用第三种信号灯状态代码,SI=0表示从29开始倒计时 CALL LIGHT3 JUMP AAAA AAAA4:MOV SI,54 调用第四种信号灯状态代码,SI=54表示从2开始倒计
34、时 CALL LIGHT4 JUMP AAAA SHAN:PUSH AX 黄灯时闪烁代码中的灯灭 MOV AX,ZHUANGTAI 根据信当前状态判断是否是黄灯
35、; CMP AX,3 JE SHAN1 状态三和一是黄灯,让灯灭 CMP AX,1 JE
36、 SHAN1 POP AX LUMP AAAS ELSE 返回原程序 SHAN1:CALL LIGHT6 灯灭
37、60; POP AX JMP AAAS SHAN2:PUSH AX 黄灯时闪烁代码中的黄灯亮 MOV AX,ZHUANGTAI 根据信当前状态判断是否是黄灯 CMP
38、;AX,3 JE SHAN3 状态三时,主干道黄灯,支干道红灯 CMP AX,1 JE SHAN4 JMP SHAN5
39、0; 状态一时,主干道红灯,支干道黄灯 SHAN3:CALL LIGHT2 主干道黄灯,支干道红灯 JMP CHAN5 SHAN4:CALL LIGHT4 主干道红灯,支干道黄灯 SHAN5:POP&
40、#160;AX LMP AAAS 中断子程序 IRQ6:STI 当按键K1高电平触发时IRQ6时,开中断 PUSH AX MOV AL,29 CMP MAIN,AL &
41、#160; JE ZON INC MAIN ZON:POP AX IRET IRQ7:STI 当按键K2高电平触发时IRQ7时,开中断PUSH AX
42、160; PUSH BX PUSH CX CALL LIGHT5 主,支干道灯都是红灯 MOV CX,00E0H 开始延时3秒
43、 MOV BX,OFFSET BUFFER MOV SI,ZHONGDUAN 1111:PUSH CX MOV AX,BX+SI XCHG AL,AH CALL LED&
44、#160; 根据中断时刻倒计时时间暂停的LED显示 POP CX LOOP 1111 中断子程序逻辑完后,返回现场 MOV AX ZHUANGTAI 根据不同的状态信号灯返回现场
45、; CMP AX,4 JE ZHUANGTAI1 判断为状态一时 CMP AX,3 JE ZHUANGTAI2 判断为状态二时&
46、#160; CMP AX,2 JE ZHUANGTAI3 判断为状态三时 JMP ZHUANGTAI4 判断为状态四时 ZHUANGTAI1:CALL LIGHT1
47、 返回状态一的现场 JMP END2 ZHUANGTAI2:CALL LIGHT2 返回状态二的现场 JMP END2 ZHUANGTAI3:CALL LIGHT3 返回状态三的
48、现场 JMP END2 ZHUANGTAI4:CALL LIGHT4 返回状态四的现场 END2:POP CX 寄存器返回现场 POP BX POP AX
49、 IRET 中断初始化 ZDCSH PROC PUSH AX MOV AL,13H OUT 20H,AL
50、; 给8259送入ICW1控制字 MOV AL,08H OUT 21H,AL 给8259送入ICW2控制字 MOV AL,09H OUT 21H,AL &
51、#160; 给8259送入ICW3控制字 MOV AL,ODH OUT 21H,AL 给8259送入ICW4控制字 STI 开中断 POP
52、;AX RET ZDCSH ENDS LED PROC 控制四个LED的显示 PUSH CX 保护父程序环境 CALL LED1
53、 显示每一个LED MOV CX,0617H DELAY1:LOOP DELAY1 MOV AL,AH CALL LED2 显示第二个LED &
54、#160; MOV CX,0617H DELAY2:LOOP DELAY2 CALL LED3 显示第三个LED MOV CX,0617H DELAY3:LOOP DELAY3 CALL LED4
55、; 显示第四个LED MOV CX,0617H DELAY4:LOOP DELAY4 POP CX RET LED ENDP LED1:PROC
56、 控制第一个LED的显示 PUSH AX MOV AH,AL PUSH AX MOV AH,AL MOV AL,11111110B OUT
57、60;62H,AL 初始化第一个LED MOV AL,AH OUT 61H,AL 显示第一个LED的值(AL传来的) POP AX RET LED1 ENDP LED
58、2 PROC 控制第二个LED的显示 PUSH AX MOV AH,AL MOV AL,11111101b OUT 62H,AL
59、; 初始化第一个LED MOV AL,AH OUT 61H,AL 显示第二个LED的值(AL传来的) POP AX RET LED2 ENDPLED3 PROC
60、160; 控制第三个LED的显示 PUSH AX PUSH BX MOV AL 11111011H OUT 62H,AL
61、0; 初始化第一个LED LEA BX,BUFFER MOV AL,29 SUB AL,main ADD AL,AL INC AL XLAT &
62、#160; OUT 61H,AL POP BX POP AX RET LED3 ENDP LED4 PROC 控制第四个LED的显示
63、0; PUSH AX PUSH BX MOV AL,11110111b OUT 62H,AL 初始化第一个LED MOV AL,29 SUB AL,main
64、 ADD AL,AL XLAT 通过main计算出阻塞车辆数的个位LED驱动码 OUT 61H,AL 显示第四个LED POP BX POP
65、AX RET WULIGHT1 PROC 交通灯第一种状态下的二级管情况 PUSH AX MOV AL,01111101b (主干道绿灯,次干道红灯) OUT 60H,AL
66、60; 将要显示的灯对应的值通过PA07 控制灯亮 POP AX RET LIGHT1 ENDP LIGHT2 PROC 交通灯第二种状态下的二级管情况 PUSH AX
67、 MOV AL,01111011b (主干道黄灯,次干道红灯) OUT 60H,AL 将要显示的灯对应的值通过PA07 控制灯亮 POP AX RET LIGHT2 ENDP LIGHT3 PROC 交通灯第三种状态下的二级管情况 PUSH AX MOV AL,10111110b (主干道红灯,次干道绿灯) OUT 60H,AL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 事业单位保密教育培训
- 人教版三年级语文下册教案全集
- 【初中物理】物态变化单元练习2024-2025学年人教版物理八年级上册
- 成品油零售经营批准证书变更、补办、到期换证申请表
- 职业学院游艇设计与制造专业人才培养方案
- 升降机操作装置产业深度调研及未来发展现状趋势
- 保险信息行业市场调研分析报告
- 婴儿用驱蚊贴市场发展预测和趋势分析
- 单板滑雪服市场发展预测和趋势分析
- 振动按摩器产业链招商引资的调研报告
- Unit 4 Natural Disasters Discovering Useful Structures 定语从句课件-高一英语人教版 2019 必修第一册
- 第6章景区导游服务程序与服务质量《导游业务》(第五版)
- 通信工程拟投入的主要施工设备表
- 快递公司与菜鸟驿站合作协议【六篇】
- 度日如年(关于清末广州十三行历史的小品剧本)
- 2022年浙江出版联合集团有限公司招聘笔试题库及答案解析
- 燕歌行(并序)课件
- 人民币收付业务培训课件
- 妇女权益的法律保护课件
- 08S305-小型潜水泵选用及安装图集
- 质量部KPI考核指标
评论
0/150
提交评论