欢迎来到天天文库
浏览记录
ID:9626069
大小:545.38 KB
页数:17页
时间:2018-05-04
《微机课程设计报告-交通灯》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、《微机实验及课程设计》课程设计报告姓名:学号:专业:自动化学院实验室:计算机硬件实验室组别:无同组人员:无设计时间:2013年5月17日——2013年6月8日评定成绩:审阅教师:17/17目录一.课程设计目的与要求……………………………………………3二.方案论证于原理设计……………………………………………3三.原理阐述及设计…………………………………………………4四.发难实现与测试…………………………………………………6五.分析与总结………………………………………………………7六.附录…………………………………………………………
2、…….817/17一.课程设计目的与要求设计目的:微机课程综合设计用于检验和提高学生在原理与接口综合应用方面分析问题与解决问题的能力,同时也给学生提供更多、更好的训练机会,课程给出了10道微机硬件应用综合测试题。为完成每道测试题,至少需要选用TPC微机实验装置中三部分以上的硬件电路(还需将它们有机组合起来)并编制相应的应用。通过试验还能够让学生更好的了解所学知识在实际控制中的运用,增加对本专业的认识和学习兴趣。设计要求:1)基本要求(难度系数1.0)L7、L6、L5作为南北路口的交通灯,L2、L1、L0作为东西路口的交通灯。编程
3、使六个灯按交通灯变化规律亮灭。要求进行周期性重复控制:(1)南北路口的绿灯、东西路口的红灯同时亮20秒;(2)南北路口的黄灯闪烁3秒,同时东西路口的红灯闪3秒;微机实验及课程设计教程(3)南北路口的红灯、东西路口的绿灯同时亮90秒;(4)南北路口的红灯、同时东西路口的黄灯亮闪烁3秒;(5)在8段LED上同步显示倒计时。2)设计提示(1)要求精确计时,采用实验系统8253定时器中断或主机8253定时器;(2)利用软件定时器。3)进一步设计要求(1)8×8点阵显示当前车流运行方向,上下对应南北,左右对应东西。绿色箭头对应,红色箭头对
4、应黄灯状态;(2)允许南北向路口设置人工按钮,请求行人提前过街,如东西绿灯已亮40秒则按钮后10秒南北绿灯亮,否则按钮后40秒南北绿灯亮;(3)考虑其他复杂情况。17/17二.方案论证与原理设计1)在考虑程序的整体要求和框架后,决定把程序总共分为四个模块,分别为交通灯显示模块,数码管显示的模块,中断程序模块,中断初始化模块。交通灯显示模块是整个程序的主模块,其主要功能就是判断交通状态的运行方向和显示模式,还有显示的时间长短,并且还有人工紧急按钮的功能。显示模块则由交通灯状态来判断并在数码管上显示倒计时。中断则主要用作计时。中断初
5、始化程序用来初始化9054和一些基本的置取中断向量的功能。2)各模块的实现交通灯模块通过一个全局变量irq_times来计时,通过中断服务子程序来改变它,在该模块中通过判断该变量的值去选择程序流程,并结合开关量来判断人工按钮有无按下。并在不同流程去显示交通灯和流向问题。并且调用数码管显示程序。数码管显示模块,通过irq_times来判断并显示。中断服务模块每调用一次说明已经过去一秒钟,则irq_times变化一次1.可编程定时/计数器8253定时/计数器8253主要是用于定时1s,触发中断把全局变量减一。电路连线是CLOCK0接
6、1MHZ,分频后频率为1KHz,OUT0接中断CLKCK1,分频后为1HZ,OUT1接IRQ,每一秒触发一次中断,GATE0,GATE1接5v。计数器的初值应都是1000;2.8255并行接口单元8255主要是用于数码管和发光二极管的数据输出。所以用8255A口高三位和低三位接6个发光二极管,B口接数码管的数据端,C口低两位接数码管位控制,最高位接开关K13.点阵使用由于提高要求需要显示上下箭头,所以使用8*8点阵显示箭头。由地址译码电路的地址控制点阵。4微机控制器程序在纯Dos下运行三.详细(机理)设计1)软件流程图(总流程图
7、)本设计的软件设计的思路:通过软件编程使8253输出定时信号申请中断,在中断服务程序中改变全局计数变量。在主程序体中通过判断全局变量的值来控制程序流向。17/17中断初始化8255,8253初始化Irq_times赋值36Irq_times>26?Irq_times>23状态1Irq_times>3状态2PC7=1?Irq_times>13?Irq_times=3Irq_times=8Irq_times>317/17Irq_times>0状态4状态3有无按键退出图表1交通灯系统总流程图2)中断模块进入中断后,关闭中断,然后压栈,
8、显示提示信息,最后处理数据算法实现:利用irq_times全局变量减一来实现倒计时。3)LED显示程序:本设计只用到了2个LED,只要将时间转换为相应的段码。先输出位码,再输出段码,循环输出就可以动态显示。将LED作偏移码,利用XLAT,很简单就可以实现译码。V
此文档下载收益归作者所有