微机原理交通信号灯课程设计_第1页
微机原理交通信号灯课程设计_第2页
微机原理交通信号灯课程设计_第3页
微机原理交通信号灯课程设计_第4页
微机原理交通信号灯课程设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论