微机课程设计报告
目 录
一、需求分析
1、系统设计的意义…………………………………3 2、设计内容…………………………………………3 3、设计目的…………………………………………3 4、设计要求…………………………………………3 5、系统功能…………………………………………4 二、总体设计
1、交通灯工作过程…………………………………4 三、设计仿真图、设计流程图
1、系统仿真图………………………………………5 2、流程图……………………………………………6 3、8253、8255A结构及功能………………………8 四、系统程序分析…………………………………10 五、总结与体会……………………………………13 六、参考文献………………………………………13
2
一、 需求分析
1系统设计的意义:
随着社会经济的发展,城市问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。城市交通控制系统是用于城市交通数据检测、交通信号灯控制与交通疏通的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。
随着城市机动车量的不断增加,组多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速通道,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速通道,缓解主干道与匝道、城市同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。
十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。交通灯的控制方式很多,本系统采用可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现本系统的各种功能。同时,本系统实用性强,操作简单。
2、设计内容
采用8255A设计交通灯控制的接口方案,根据设计的方案搭建电路,画出程序流程图,并编写程序进行调试
3、设计目的
综合运用《微机原理与应用》课程知识,利用集成电路设计实现一些中小规模电子电路或者完成一定功能的程序,以复习巩固课堂所学的理论知识,提高程序设计能力及实现系统、绘制系统电路图的能力,为实际应用奠定一定的基础。针对此次课程设计主要是运用本课程的理论知识进行交通灯控制分析及设计,掌握8255A方式0的使用与编程方法,通从而复习巩固了课堂所学的理论知识,提高了对所学知识的综合应用能力。
4、设计要求:
(1)、分别用C语言和汇编语言编程完成硬件接口功能设计; (2)、硬件电路基于80x86微机接口;
3
(3)、程序功能要求:小键盘给定、数码管(屏幕)显示; (4)、同时具备急救车应急响应功能和时间倒计时显示功能。
5、系统功能
根据要求,我所设计的系统主要主要是基于普通的十字路口,交通灯的控制分为东西和南北两组,每组用红、黄、绿进行交通管理,除了基本的功能外,还添加了七段译码器时间显示模块和一种紧急情况处理模块,比方说急救车恰好遇到了红灯,可通过控制,让急救车所在的干道尽快变成绿灯而通车。
二、总体设计
1、交通灯工作过程
考虑普通十字路口,交通灯的控制可分东西向和南北向两组,每组可用红、黄、绿三个灯进行交通管理,所以本方案要点是对12个交通灯进行控制。由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。时间显示模块采用七段数字显示器显示,运用共阴极接法,选用8255A的B口输出来控制七段数字显示器,其中低四位来控制个位的显示,高四位来控制十位的显示。我们知道七段数字显示器的段选是七个信号,用B口的高、低四位分别来控制十位、个位显示器显然是不行的,为了解决这个问题,我设计的是让B口输出的是经DAS指令调整过的压缩的BCD数,让译码器的输出来控制十位、个位显示器,同样B口按照方式0输出即可。延时模块采用8253来设计,让计数器0、1级联使用,让计数器0的输出OUT0作为计数器1的时钟输入(CLK1),让计数器1的输出信号接到8255A的C口的0位,让处理器反复的读取PC0的值,当有脉冲进来的时候,也就是设计的时间结束时,才执行下一步,达到延时的目的。为了满足设计,让8255A的C口按照方式0输入即可,让计数器0工作在方式2,让计数器1工作在方式0。当计数器0的CLK采用2Mhz,初值为2000,计数器1初值为500时,计数器1输出一个就是意味着延时0.5秒。计数器的端口地址为40H~43H,8255A的端口地址为60H~H。
4
三、设计仿真图、设计流程图
1、系统仿真图
5
2、流程图
主函数流程图 开始 初始化8255A,A、B口为方式0输出,C口输入 开机测试,让时间显示器显示00,让两干道均依 次亮红黄绿灯各0.5秒(调用延时函数) 让东西干道亮红灯,南北干道亮绿灯 DL保存亮灯的状态 AL中设置延时时间30秒,调用时间显示模块 让东西、南北干道均亮黄灯 DL保存亮灯的状态 AL中设置延时时间5秒,调用时间显示模块 让东西干道亮绿灯,南北干道亮红灯 DL保存亮灯的状态 AL中设置延时时间30秒,调用时间显示模块 让东西、南北干道均亮黄灯 DL保存亮灯的状态 AL中设置延时时间5秒,调用时间显示模块 延时有0.5 秒子函数流程图 时间显示模块函数流程图有无关机信号 结束
6
开始 AX入栈保存 设定8253计数器0的工作方式2 给计数器0装入初值(2000) 设定8253计数器1的工作方式1 给计数器1装入初值(500) 检测计数器1的OUT信号 否 是否检测到信号 是 POP AX 结束
开始 AX入栈保存 显示器显示当前剩余时间 PUSH AX AL>3? 灯熄灭0.5秒 重新让灯灯亮 延时0.5秒 延时0.5秒 是 是否有紧急信号 否 POP AX AX减1,DAS调整 是 AL>=0? 否 POP AX 结束 7
3、8253、8255A结构及功能
(1)8255具有两类控制字
A、 方式选择控制字
B、 c口复位/置位控制寄存器
(2)8253定时器/计数器的结构及功能
A、 8253计数器的结构
8
B、8253定时/计数器的功能
可编程定时器芯片可以产生精确的时间间隔,形成各种脉冲序列,灵活性强。
依所需时间间隔,设置计数器的时间常数,在一外部脉冲驱动下进行减1计数,计数值为0时,产生输出信号,供系统使用。
8253的每个通道均可以通过编程选择6种工作方式之一,这6种工作方式是:方式0: 计数到零产生中断请求;方式1: 硬件可重复触发的单稳态触发器; 方式2: 分频器;方式3: 方波发生器(用得最多的方式); 方式4: 软件触发选通;方式5: 硬件触发选通;
C、 8253定时/计数器的实现方法
利用CPU执行某一指令需要一定机器周期的原理,在软件编程时循环执行一段指令,从而产生累积的定时。
四、系统程序分析
9
.MODEL SMALL .8086 .STACK .CODE .STARTUP
START: MOV DX,0206H MOV AL,H
OUT DX,AL ;A、B口方式0输出,C口输入 MOV DX,0202H
STEP1: STEP2: STEP3:
MOV AL,88H DAS
OUT DX,AL MOV DX,0200H
MOV AL,11H OUT DX,AL CALL DELAY CALL DELAY MOV DX,0200H MOV AL,22H OUT DX,AL CALL DELAY CALL DELAY MOV DX,0200H MOV AL,44H OUT DX,AL CALL DELAY CALL DELAY MOV DX,0200H
MOV AL,41H MOV AH,AL OUT DX,AL MOV AL,30H CALL DISPLAY1 MOV DX,0200H
MOV AL,21H MOV AH,AL OUT DX,AL MOV AL,5H CALL DISPLAY1 MOV DX,0200H
MOV AL,14H MOV AH,AL OUT DX,AL ;让显示器显示00 ;让两干道均依次亮红黄绿灯0.5秒 ;设置亮灯情况(14H) ;保存亮灯状态
;东西干道亮红灯、南北干道亮绿灯 ;设置亮灯时间为30秒 ;调用时间显示模块函数 ;设置亮灯情况(22H) ;保存亮灯状态
;东西、南北干道均亮黄灯 ;设置亮灯时间为5秒 ;调用时间显示模块函数 ;设置亮灯情况(41H) ;保存亮灯状态
;东西干道亮绿灯、南北干道亮红灯
10
MOV AL,30H ;设置亮灯时间为30秒 CALL DISPLAY1 ;调用时间显示模块函数 STEP4: MOV DX,0200H
MOV AL,12H ;设置亮灯情况(22H) MOV AH,AL ;保存亮灯状态
OUT DX,AL ;东西、南北干道均亮黄灯 MOV AL,5H ;设置亮灯时间为5秒 CALL DISPLAY1 ;调用时间显示模块函数 JMP STEP1
DELAY PROC
PUSH MOV MOV OUT MOV MOV OUT MOV OUT MOV MOV OUT MOV MOV OUT MOV OUT AGAIN1: MOV IN AND JZ POP RET DELAY ENDP
DISPLAY1 PROC
PUSH AGAIN2: MOV OUT PUSH CMP JG
;延时0.5秒子函数 AX ;将当前AX入栈保存 DX,0406H
AL,34H ;设定8253计数器0的工作方式2 DX,AL DX,0400H
AX,2000 ;给计数器0装入初值(2000) DX,AL AL,AH DX,AL DX,0406H
AL,70H ;设定8253计数器1的工作方式0 DX,AL DX,0402H
AX,250 ;给计数器1装入初值(500) DX,AL AL,AH DX,AL
DX,0204H
AL,DX ;检测计数器1的输出信号 AL,1
AGAIN1 ;信号没来继续检测,否则结束 AX AX ;AX入栈保存 DX,0202H
DX,AL ;显示器显示当前剩余时间 AX ;AX入栈保存
AL,3 ;剩余时间是否多余3秒 D1 ;高于3秒,跳转到D1 ;低于3秒,灯开始闪烁
11
MOV DX,0200H
MOV AL,0 ;低于三秒,灯熄0.5秒 OUT DX,AL MOV DX,0204H
IN AL,DX ;检测是否有紧急信号 AND AL,2
JNZ EXIT ;有紧急信号则跳出子函数 CALL DELAY ;熄灯延时0.5秒 MOV DX,0204H
IN AND JNZ MOV MOV OUT JMP D1: MOV IN AND JNZ CALL MOV IN AND JNZ D2: CALL MOV IN AND JNZ POP DEC DAS CMP JNL EXIT: POP D3: MOV MOV OUT MOV MOV DAS
OUT MOV
AL,DX AL,2
EXIT AL,AH DX,0200H DX,AL D2
DX,0204H
AL,DX AL,2
EXIT DELAY DX,0204H
AL,DX AL,2
EXIT DELAY DX,0204H
AL,DX AL,2
EXIT AX AL AL,0 AGAIN2 AX
DX,0200H
AL,11H DX,AL DX,0202H
AL,0 DX,AL DX,0204H
;检测是否有紧急信号 ;有紧急信号则跳出子函数 ;灯亮0.5秒 ;检测是否有紧急信号 ;有紧急信号则跳出子函数 ;延时0.5秒 ;检测是否有紧急信号 ;有紧急信号则跳出子函数 ;延时0.5秒 ;检测是否有紧急信号 ;有紧急信号则跳出子函数 ;恢复AX
;把剩余时间减1秒 ;调整AL
;剩余时间不小于0就继续显示 ;否则就结束该子函数 ;让两干道均依次亮红黄绿灯0.5秒 ;让显示器显示00 12
IN AL,DX ;检测是否有紧急信号 AND AL,2
JNZ D3 ;有紧急信号则跳出子函数 RET DISPLAY1 ENDP END
五、总结与体会
这次课程设计的主要任务是根据课堂所学知识,运用8255A进行交通灯控制的设计。按照设计的要求,我查阅了相关的资料,先设计出了单元电路,在此基础上设计出了整个系统的电路图。通过此次课程设计,我对8255A、8253的工作方式有了深刻的理解和认识,由于灯光控制只需要开、关两个状态,所以可以采用开关量实施控制。开关量的输出可以采用8255A的端口,由于开关量有6位,所以采用8位端口,又因为灯光控制不需要联络信号,所以按照方式0输出即可。时间显示模块采用七段数字显示器显示,运用共阴极接法,选用8255A的B口输出来控制七段数字显示器,其中低四位来控制个位的显示,高四位来控制十位的显示。延时模块采用8253来设计,让计数器0、1级联使用,让计数器0的输出OUT0作为计数器1的时钟输入(CLK1),让计数器1的输出信号接到8255A的C口的0位,让处理器反复的读取PC0的值,当有脉冲进来的时候,也就是设计的时间结束时,才执行下一步,达到延时的目的。
这次的课程设计通过对微机原理这门课程有了进一步的认识,加深了理解,巩固了所学的的知识,在设计时,要考虑到8255A、8253不同工作方式的差异,通过查阅很多资料,拓展了知识面,在这一过程中,我也学到了很多东西。在设计时,根据要求选择合适的工作方式显得十分的重要。该次课程设计是利用课堂所学的知识来解决一个实际的问题,生动有趣,提到了我们运用知识的能力。通过课程设计,对于自己使用Proteus的技巧是一个很大的提高,如何让布局合理、如何让电路简单的设计是一种锻炼,同时也是一个娱乐的过程。
总之,课程设计作为一种教学方式,巩固了我们课堂上所学的知识,提高了我们对知识学习的热情,锻炼了我们运用知识解决实际问题的能力,让我们收获了很多。
六、参考文献
[1] 周荷清,吴秀清 微型计算机原理与接口技术.中国科技大学出版社 ,2008 [2] 舒贞权,任伟利·微机计算机原理[M]·西安:西安交通大学出版社,1997 [3] 顾元刚,韩燕汇编语言与微机原理教程[M]·北京:电子工业出版社,2000 [4] 楼顺天,周社佳.微机原理与接口技术[M] ·北京:科学出版社,2006
13
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- yrrf.cn 版权所有 赣ICP备2024042794号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务