微机原理课设带数码管显示的交通灯模拟控制系统设计.docx

上传人:b****5 文档编号:5896422 上传时间:2023-01-02 格式:DOCX 页数:14 大小:222.90KB
下载 相关 举报
微机原理课设带数码管显示的交通灯模拟控制系统设计.docx_第1页
第1页 / 共14页
微机原理课设带数码管显示的交通灯模拟控制系统设计.docx_第2页
第2页 / 共14页
微机原理课设带数码管显示的交通灯模拟控制系统设计.docx_第3页
第3页 / 共14页
微机原理课设带数码管显示的交通灯模拟控制系统设计.docx_第4页
第4页 / 共14页
微机原理课设带数码管显示的交通灯模拟控制系统设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

微机原理课设带数码管显示的交通灯模拟控制系统设计.docx

《微机原理课设带数码管显示的交通灯模拟控制系统设计.docx》由会员分享,可在线阅读,更多相关《微机原理课设带数码管显示的交通灯模拟控制系统设计.docx(14页珍藏版)》请在冰豆网上搜索。

微机原理课设带数码管显示的交通灯模拟控制系统设计.docx

微机原理课设带数码管显示的交通灯模拟控制系统设计

成绩

南京工程学院

课程设计说明书(论文)

题目带数码管显示的交通灯模拟控制系统设计

课程名称微机原理及应用

院系

专业

班级

学生姓名

学号

设计地点

指导教师

设计起止时间:

2013年12月23日至2017年12月27日

一、方案说明…………………………………………………………………2

1、硬件设计………………………………………………………………………2

、硬件接线图………………………………………………………………2

、主机接线说明………………………………………………………………3

2、软件设计………………………………………………………………………3

、程序流程图………………………………………………………………4

二.源程序清单………………………………………………………………5

三、调试现象…………………………………………………………………10

四、心得体会…………………………………………………………………12

1.课程设计应达到的目的

通过课程设计加深理解课堂教学内容,掌握微机原理的基本应用方法。

通过实验熟悉微机基本接口芯片的外型、引脚、编程结构,掌握汇编语言程序设计和微机基本接口电路的设计、应用方法,做到理论联系实际。

2.课程设计题目及要求

题目:

交通信号灯模拟控制系统的设计

利用STARES598PCI实验仪的硬件资源设计一个“带时间显示的交通信号灯模拟控制系统”。

所有输入该装置信号采用STARES598PCI实验仪上的状态输入开关,东西、南北方向的红绿黄灯采用实验仪上的LED发光二极管模拟,东西、南北方向的信号灯变化,通行倒计时时间用数码管显示。

1、功能要求:

1)假设在一个A道(东西方向)和B道(南北方向)交叉的十字路口安装有自动信号灯。

当A道和B道均有车辆要求通过时,A道和B道轮流放行。

A道放行10秒钟,B道再放行10秒钟,依次轮流。

绿灯转换红灯前黄灯亮4秒钟。

2)夜间工作时A道(东西方向)和B道(南北方向)的黄灯闪烁,绿灯和红灯不亮(实验时用开关K8控制)。

3)开关K8=0,则工作在以上功能

(1);开关K8=1,则工作在以上功能

(2)。

2、难度要求:

1)基本要求:

采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,用循环程序软件定时实现功能要求;(60分)

2)中级要求:

采用8255PA口输出控制信号灯,8255PC0输入K8控制开关信号,用8253硬件定时,软件查询方式实现功能要求;(80分)

3)高级要求:

在中级要求的基础上,增加用8255PB口动LED数码显示器显示绿灯倒计时秒数,从9倒计数到0,倒计数到4时黄灯亮。

(100分)

一、设计说明

硬件方面:

8253产生1HZ的方波,脉冲到8259的IR1端,产生中断,调中断服务子程序。

在加入紧急车道后,单脉冲()连到8259的IRO端,产生一个高级的中断请求信号。

软件方面:

主程序先对各个硬件初始化,在开CPU中断,然后空操作,等待中断。

执行低级中断(IR1)时,8255的PA口负责选数码管,PB口负责显示数字,用查表法可查到0~9的数码管编码。

采用循环扫描方法,人眼即可看到连续的二位数。

当倒计时减到零时,对红绿灯取反。

若手动上下拨动单脉冲()一次,则产生一个高级中断(IR0),程序转而执行此中断处理程序,处理完后返回继续执行低级中断(IR1)。

1、硬件设计

、硬件接线图

连线说明:

C5区:

CS、A0、A1

————

A3区:

CS3、A0、A1

C5区:

OUT0

————

C5区:

CLK1

C5区:

GATE0、GATE1

————

C1区:

VCC

C5区:

CLK0

————

B2区:

2M

C5区:

OUT1

————

B3区:

IR1

B3区:

CS、A0

————

A3区:

CS2、A0

B3区:

INT、INTA

————

ES8688:

INTR、INTA

B3区:

IR0

————

B2区:

单脉冲(

B4区:

CS、A0、A1

————

A3区:

CS1、A0、A1

B4区:

PA口、PB口

————

G5区:

C口、B口

B4区:

PC口

————

G6区:

JP65(LED灯)

实物连线图

2、软件设计

1、程序流程图

2.设计思路

①8255

交通信号灯的灯光变化和数码显示通过8255实现控制。

8255是一种具有多种功能的可编程并行通信接口电路芯片。

芯片包括A、B、C三个数据端口、A组控制部件、B组控制部件、读写逻辑控制电路、数据总线缓冲器。

8255有三种工作方式,其中方式0是基本输入/输出方式,适用于无条件传送和查询方式的接口电路。

本设计中,PA口用于输出信号控制灯光的变化(D6D5=00,D4=0),PB口用于输出信号控制数码管的显示(D2=0,D1=0),PC0用于输入K8的控制开关信号,PC1用于输入用于硬件延时的方波信号(D0=1)。

PC7用于输出控制数码管工作/不工作的信号(D3=0)。

故写入方式控制字为。

8255A输入/输出信号接线方案如下表所示:

8255-PB输出方式

PCH输出方式

8255-PA输出方式

PCL输入方式

引脚

输出信号

引脚

输出信号

引脚

输出信号

引脚

输入信号

PB7

PB7—DP段

PB6—G段

PB5—F段

PB4—E段

PB3—D段

PB2—C段

PB1—B段

PB0—A段

PC7

数码管的位码选择

PC7=0,则该位选中

PA7

不用(灭)

PB6

PA6

南北红灯

PB5

PA5

南北黄灯

PB4

PA4

南北绿灯

PB3

PA3

不用(灭)

PC3

PB2

PA2

东西红灯

PC2

PB1

PA1

东西黄灯

PC1

8253-OUT0

PB0

PA0

东西绿灯

PC0

开关K8输入

a.灯光显示:

送低电平则灯亮,送高电平则灯灭。

东西绿灯,南北红灯:

PA0~PA7应输出01111101B=7DH

东西闪灯,南北红灯:

黄灯亮,红灯亮PA0~PA7应输出

黄灯灭,红灯亮PA0~PA7应输出

东西红灯,南北绿灯:

PA0~PA7应输出

东西红灯,南北黄闪:

红灯亮,黄灯亮PA0~PA7应输出H

红灯亮,黄灯灭PA0~PA7应输出

②8253

交通信号灯亮、灭的时间及数码管的倒计时间隔都通过8253控制。

8253可编程定时/计数器是Intel公司生产的通用外围接口芯片,它有三个独立的16位计数器,计数范围为0~2MHz。

8253有6种工作方式,其中方式三是方波发生器方式。

本设计中选用通道0,CLK0接1953HZ的时钟信号,GATE0接高电平VCC,OUT0接8255的PC1。

因为需要产生周期为的方波,即产生2Hz的方波而固有频率为1953Hz,故分频系数N=1953/2=976。

由于选用了通道0(SC1SC0=00),工作在方式3(M2M1M0=011),对计数器进行读写/操作时,先送低8位,再送高8位(RW1RW0=11),计数器的数值采用10进制(BCD=1),故初始化时命令字为00110111B=37H。

4、运行情况和结论

(1)实际情况

运行时的图片

(2)结论

①本设计基本完成了任务书中所要求的功能。

a.白天模式:

①东西方向和南北方向各放行10秒。

绿灯转红灯前黄灯闪烁4秒。

②LED数码显示器显示倒数计时,从9倒数到0;倒数到4时黄灯亮。

②有待改进之处:

a.夜间模式能在1s内切换到白天模式。

但在白天模式必须等一个循环结束后才能切换。

延时程序不精确,最大存在的误差。

C.东西南北放行时间不准确,数码管显示时间存在误差

5、系统调试中的问题和解决办法

遇到的问题:

不能立刻从白天模式切换到夜晚模式

解决的方法:

修改了代码,在白天每次灯闪烁的后面判断是否切换,如果切换就跳到黄灯循环模式,由于程序长度限制,需要每隔一段设置一个中间点jmp.

2.源程序清单

.MODELTINY

COM_ADDREQU0B003H

T0_ADDREQU0B000H

T1_ADDREQU0B001H

T2_ADDREQU0B002H

COM_ADDEQU0F003H

PA_ADDEQU0F000H

PB_ADDEQU0F001H

PC_ADDEQU0F002H

.STACK300

.DATA

DB00111011B

SHUMADB01111111B

DB00000110B

DB01011011B

DB01001111B

DB01100110B

DB01101101B

DB01111101B

DB00000111B

DB01111111B

CNT0DB?

CNT3DB?

.CODE

START:

MOVAX,@DATA

MOVDS,AX

MOVDX,COM_ADD

MOVAL,88H

OUTDX,AL

MOVDX,COM_ADDR

MOVAL,0B0H

OUTDX,AL

MOVDX,PC_ADD

INAL,DX

ANDAL,0FEH

ORAL,01H

OUTDX,AL

MOVCNT0,0

MOVCNT3,0

LP:

CALLDL500ms

MOVDX,PC_ADD

INAL,DX

TESTAL,80H

JZK7

JMPJMP1

K7:

MOVCH,CNT3

CMPCH,0

JZRRS

RRM:

MOVAL,5

XLAT

MOVDX,PA_ADD

OUTDX,AL

JMPLAST0

RRS:

MOVAL,4

XLAT

MOVDX,PA_ADD

OUTDX,AL

CALLDL500ms

MOVAL,5

XLAT

MOVDX,PA_ADD

OUTDX,AL

LAST0:

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

XORCH,0FFH

MOVCNT3,CH

MOVCNT0,0

JMPLP

JMP1:

MOVDX,PC_ADD

INAL,DX

TESTAL,20H

JNZJMP2

MOVDX,PC_ADD

INAL,DX

TESTAL,40H

JNZK5

JMPJMP3

K5:

MOVAL,1

XLAT

MOVDX,PA_ADD

OUTDX,AL

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

MOVCNT0,0

MOVCNT3,0

JMPLP

JMP2:

MOVDX,PC_ADD

INAL,DX

TESTAL,40H

JZK6

JMPJMP3

K6:

MOVAL,3

XLAT

MOVDX,PA_ADD

OUTDX,AL

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

MOVCNT0,0

MOVCNT3,0

JMPLP

LP1:

JMPLP

JMP3:

MOVCNT3,0

MOVCH,CNT0

SHRCH,1

LEABX,LED_Data

CMPCH,0

JZRY

CMPCH,8

JBGR

CMPCH,8

JZYR

JMPRG

RG:

MOVAL,3

XLAT

MOVDX,PA_ADD

OUTDX,AL

PUSHBX

LEABX,SHUMA

MOVAL,14

SUBAL,CH

XLAT

MOVDX,PB_ADD

OUTDX,AL

POPBX

LAST:

INCCNT0

CMPCNT0,28

JNZLP1

MOVCNT0,0

JMPLP1

RY:

MOVAL,0

XLAT

MOVDX,PA_ADD

OUTDX,AL

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

JMPLAST

GR:

MOVAL,1

XLAT

MOVDX,PA_ADD

OUTDX,AL

PUSHBX

LEABX,SHUMA

MOVDX,PB_ADD

MOVAL,8

SUBAL,CH

XLAT

MOVDX,PB_ADD

OUTDX,AL

POPBX

JMPLAST

YR:

MOVAL,2

XLAT

MOVDX,PA_ADD

OUTDX,AL

MOVDX,PB_ADD

MOVAL,00H

OUTDX,AL

JMPLAST

DL500msPROCNEAR

MOVDX,T2_ADDR

MOVAL,24H

OUTDX,AL

MOVAL,0F4H

OUTDX,AL

DELAY:

MOVDX,PC_ADD

INAL,DX

TESTAL,10H

JZDELAY

RET

DL500msENDP

ENDSTART

三、调试现象

1.调试现象

程序调试时,交通信号灯系统初始状态为所有红灯闪烁4次,数码管此时不显示;系统初始状态之后东西向车行道绿灯亮,南北向车道红灯亮;当数码管数字减为0时,东西向、南北向红绿灯交换亮,即南北向车行道绿灯亮,东西向车道红灯亮,数码管数字减为0秒后,红绿灯再次交换,如此循环重复。

当道路发生紧急状况时,可拨单脉冲,使调试状态重新进入初始化,此时数码管停止计时(灭),初始化状态结束后,继续从刚刚被停止时刻开始计时,红绿灯状态仍为停止时刻的状态。

四、心得体会

一个星期的微机原理课程设计终于结束了。

在整整一星期的日子里,从刚开始的完全迷惑到最后的豁然开朗,真是经历了很多,但是却让我们学到很多的东西,不仅可以巩固了课上所学过的理论知识,而且学到了很多在书本上所没有学到过的知识。

以前在上课的时候,老师经常强调在写一个程序的时候,一定要事先把程序原理方框图画出来,但是我开始总觉得这样做没必要,很浪费时间。

但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。

因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问:

调试程序时,发现只有初始化状态显示,知道了中断程序进不去,就开始查中断程序,最后查出原来是没写STI等待中断,所以中断才进不去。

在检查错误的过程中发现会自己的不足之处,发现自己对以前所学过的知识理解得不够深刻,掌握得不够牢固,同时对知识的理解和接受能力还不是太强。

这次课程设计任务终于顺利完成了,在设计中遇到了很多问题,最后在自己的努力下以及与同学之间和老师的探讨下,终于一个一个得解决了问题,当看到数码管和二极管按照自己编写的程序显示的时候,心情异常兴奋,好有成就感。

这次课程设计在培养我们编程能力的同时,也让我学会了要完成一项任务,除了需要过硬的技术和能力之外,还要有不屈不挠的精神,有些同学就是没有耐心做下去,才没有好好的完成任务。

所以,感谢我们的指导老师,谢谢!

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

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

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

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