微机原理课程设计交通信号灯模拟控制系统的设计本科论文.docx

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

微机原理课程设计交通信号灯模拟控制系统的设计本科论文.docx

《微机原理课程设计交通信号灯模拟控制系统的设计本科论文.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计交通信号灯模拟控制系统的设计本科论文.docx(17页珍藏版)》请在冰豆网上搜索。

微机原理课程设计交通信号灯模拟控制系统的设计本科论文.docx

微机原理课程设计交通信号灯模拟控制系统的设计本科论文

成绩

南京工程学院

通信工程学院

课程设计说明书(论文)

 

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

课程名称微机原理与接口技术

专业

班级

学生姓名

学号

设计地点

指导教师

 

设计起止时间:

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

目录

1、设计目的……………………………………………………………………….2

2、设计内容及要求……………………………………………………………….2

3、设计原理……………………………………………………………………….2

3.1、电路接线方案………………………………………………………………...……...…2

3.2、定时问题………………………………………………………………………….....….3

3.3、工作状态……………………………………………………………………...…….…..3

4、实验元件解释……………………………………………..……………………3

4.1、可编程并行通信接口8255A…………………………………….……………..........3

4.2、可编程计数器/定时器8253…………………………………………………………....4

5、程序流程图及说明…………………………………………..………………....5

5.1、基本和中级要求的流程图………………………………………………..……………5

5.2、高级要求的流程图……………………………………………………………………..6

5.3、流程图说明………………………………………………………………….………….7

6、实验源代码及解释………………………………….………………….…...…7

7、实际接线图……………………………………………………..….………….13

8、运行结果………………………………………………………….……..…….13

9、设计心得与体会…………………………..………………….……………….16

10、主要参考文献………………………………………………………..………16

1、设计目的

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

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

2、设计内容及要求

2.2.1功能要求:

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

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

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

绿灯转换红灯时黄灯亮1秒钟。

2)一道有车,另一道无车时(实验时用开关K5和K6控制),交通控制系统能立即让有车道放行。

3)有紧急车辆要求通过时,系统要能禁止普通车辆通过,A、B道均为红灯,紧急车由K7开关模拟,有紧急车时另有一红灯闪烁。

2.2.2难度要求:

4)基本要求:

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

5)中级要求:

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

6)高级要求:

在中级要求的基础上,增加用8255输出驱动LED数码显示器显示绿灯倒计时秒数,黄灯时不显示时间。

(100分)

3、设计原理

设计任务中的A道代表东西方向,B道代表南北方向。

3.1、电路接线方案:

交通信号灯由实验仪的LED发光二极管模拟,由8255-PA输出控制:

见下表。

带时间显示的交通信号灯模拟控制系统8255A输入/输出信号一览表(供参考)

8255-PB输出方式

PCH输入方式

8255-PA输出方式

PCL输出方式

引脚

输出信号

引脚

输入信号

引脚

输出信号

引脚

输出信号

PB7

 

驱动数码管字型

PC7

K7

PA7

紧急车辆闪光

PB6

PC6

K6

PA6

东西红灯

PB5

PC5

K5

PA5

东西黄灯

PB4

PC4

8253-OUT2

PA4

东西绿灯

PB3

PA3

PC3

PB2

PA2

南北红灯

PC2

PB1

PA1

南北黄灯

PC1

PB0

PA0

南北绿灯

PC0

数码管的位码选择

注:

1)、8255-PA输出方式可根据实验设备红绿黄灯具体位置改变

2)、采用软件延时,则8255的PC4不用接8253-OUT2。

数码管的位码选择

3.2、定时问题

用8253#2工作方式0进行500ms定时,CLK2接125kHz时钟信号,GATE2接高电平,OUT2接8255-PC4。

主程序通过查询8255-PC4的状态,获知准确的定时信息。

也可以采用软件延时,500ms延时子程序参见实验一。

3.3、工作状态

根据设计任务功能要求,依K5、K6、K7的状态分为四种工作状态:

状态0:

K5、K6、K7均断开(1电平)或K5、K6均闭合K7断开,A、B道交替通行;状态1:

仅K5闭合,A道有车、B道无车;状态2:

仅K6闭合,A道无车,B道有车;K5和K6均闭合,A、B道都有车,A、B道交替通行;状态3:

K7闭合,有紧急车辆通行。

4、实验元件及解释

4.1、可编程并行通信接口8255A

8255A的端口地址设为A口—0F000H,B口—0F001H,C口—0F002H,寄存器端口—0F003H

将LED灯的D0~D7分别与8255A的PC0~PC7相连,具体连接如下:

D0—1路口绿灯,D4—1路口红灯。

D1—2路口绿灯,D5—2路口红灯。

D2—3路口绿灯,D6—3路口红灯。

D3—4路口绿灯,D7—4路口红灯。

其中:

1、3路口魏东西方向,2,4路口为南北方向。

系统中的8255A电路如图(B4区:

8255A电路)

4.2、可编程计数器/定时器8253

用LED(发光二极管)模拟信号灯,8255A实现对信号灯的控制(PC0~PC6分别接D0~D6),8253的计数器2实现基本单位定时(如10ms)信号的输出;再用8255A的PA口查询定时信号的变化,并统计脉冲数,以实现3min、5s和1s的定时

实验系统中8253计数器2的CLK2可接OPCLK,频率为1.19318MHz,GATE2接+VCC,OUT2接8255A的PA0。

定时可采用软硬件香结合的方式实现。

系统中8253电路如图(C5区:

8253电路)

8253端口地址:

0#计数器—0B000H,1#计数器—0B001H,2#计数器—0B002H,控制寄存器—0B003H。

5、程序流程图及说明

5.1、基本和中级要求的流程图:

5.2、高级要求的流程图

5.3、流程图说明

流程图1设计思想:

1、主程序每0.5秒循环一次,每次查询三个开关状态,及时响应开关状态的变化。

其中CNT0和CNT3分别用于记录状态0和状态3工作进程的进程计数器,可以用寄存器或内存变量实现。

2、常用的工作状态0是A、B道交替通行,一个周期用时14秒。

用CNT0以0.5秒为单位进行加1计数,从0到27循环计数,CNT0/2就可知本周期进行到第几秒了。

根据设计任务功能要求,第0秒,A道红灯、B道黄灯;第1~7秒,A道绿灯、B道红灯;第8秒,A道黄灯、B道红灯;第9~13秒,A道红灯、B道绿灯。

3、工作状态3中,CNT3只有2种状态(0和0FFH),用于控制紧急车辆的灯光闪烁。

4、时间显示采用实验仪的数码管显示。

只用一个数码显示器显示绿灯通行倒计时,A道显示数=8-CNT0/2,B道显示数=14-CNT0/2。

参考流程图2。

如果用2个数码显示器分别显示A道、B道的倒计时,则需要用到动态显示扫描技术,难度较大,定为加分项目。

在500ms延时子程序中循环调用动态显示扫描子程序,定时器的定时周期应缩短到5ms。

参考流程图3。

此功能难度较大,定为加分项目。

2个数码管的位码选择(低电平有效)有8255的PC3、PC0来确定,接线到数码管选择脚接口JP41(注意JP41的接插方法:

JP41只接插一半,用PCL接JP41的1-4引脚。

如果PCL与JP41完全连接,PC4对应位会显示倒计时数码)。

显示内容由8255的B口接线到数码管段码接口JP42。

6、实验源代码及解释

源程序如下:

.MODELTINY

COM_ADDREQU0B003H;8253控制寄存器端口地址

T0_ADDREQU0B000H;计数器0

T1_ADDREQU0B001H;计数器1

T2_ADDREQU0B002H;计数器2

COM_ADDEQU0F003H;8255控制寄存器端口地址

PA_ADDEQU0F000H;PA口

PB_ADDEQU0F001H;PB口

PC_ADDEQU0F002H;PC口

.STACK300

.DATA

LED_DATADB10111101B;东西红灯,南北黄灯

DB11101011B;东西绿灯,南北红灯

DB11011011B;东西黄灯,南北红灯

DB10111110B;东西红灯,南北绿灯

DB00111011B;东西红灯,南北黄灯,紧急车辆闪光亮

DB10111011B;东西红灯,南北黄灯,紧急车辆闪光灭

SHUMADB01111111B;0

DB00000110B;1

DB01011011B;2

DB01001111B;3

DB01100110B;4

DB01101101B;5

DB01111101B;6

DB00000111B;7

DB01111111B;8

CNT0DB?

;定义一个字节变量,初始值不定

CNT3DB?

.CODE

START:

MOVAX,@DATA;AX=0040H

MOVDS,AX

MOVDX,COM_ADD;8255初始化

MOVAL,88H;AL=10001000,A口方式0输出,B口方式0输出,C口高四位输入,低四位输出

OUTDX,AL;把AL中的内容送入DX端口

MOVDX,COM_ADDR;8253初始化

MOVAL,0B0H;AL=10110000,通道2,先读/写寄存器低字节,后读/写高字节

OUTDX,AL;把AL中的内容送入DX端口

MOVDX,PC_ADD;位码选择

INAL,DX;把DX端口的数据送入AL

ANDAL,0FEH;逻辑与指令,使最低位清零

ORAL,01H;逻辑或指令,使最低位置1

OUTDX,AL;把AL中的内容送入DX端口

MOVCNT0,0;CNT0=0

MOVCNT3,0;CNT3=0

LP:

CALLDL500ms;调用DL500ms的指令

MOVDX,PC_ADD;将PC端口地址送给DX

INAL,DX;把DX端口的数据送入AL

TESTAL,80H;10000000PC7检查AL的D7=1?

JZK7;ZF=1,转移

JMPJMP1;无条件转JMP1

K7:

MOVCH,CNT3;紧急情况

CMPCH,0;比较CH-0

JZRRS;ZF=1则转移

RRM:

MOVAL,5;AL=0005H

XLAT;AX=BBH;RedRedDark

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值写入DX端口

JMPLAST0;跳转到JMP1

RRS:

MOVAL,4;AL=0004H

XLAT;AX=3BH;RedRedLight

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

CALLDL500ms;调用DL500ms指令

MOVAL,5;AL=0005H

XLAT;AX=BBH;RedRedDark

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

LAST0:

MOVDX,PB_ADD;DX=0F001H

MOVAL,00H;AL=00H

OUTDX,AL;将AL的值写入DX端口

XORCH,0FFH;异或指令,使操作数的某些位保留(与“0异或”)使某些位取反(与“1异或”)

MOVCNT3,CH;CH=0FFH

MOVCNT0,0;CNT0=0

JMPLP;跳转到LP指令

JMP1:

MOVDX,PC_ADD;DX=0F002H

INAL,DX;将DX端口的内容赋值给AL

TESTAL,20H;检测(00100000)PC5

JNZJMP2;ZF=0,转移

MOVDX,PC_ADD;DX=0F002H

INAL,DX;将DX端口的内容赋值给AL

TESTAL,40H;检测(01000000)PC6

JNZK5;ZF=0,转移

JMPJMP3;无条件跳转JMP3指令

K5:

MOVAL,1;AL=0001

XLAT;00EBH

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

MOVDX,PB_ADD;DX=0F001H

MOVAL,00H;AL=00H

OUTDX,AL;将AL的值送入DX端口

MOVCNT0,0;CNT0=0

MOVCNT3,0;CNT3=0

JMPLP;无条件跳转LP

JMP2:

MOVDX,PC_ADD;DX=0F002H

INAL,DX;将DX端口中的内容赋值给AL

TESTAL,40H;检测(01000000)PC6

JZK6;ZF=1,则转移

JMPJMP3;无条件转移JMP3

K6:

MOVAL,3;AL=0003

XLAT;DBH

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

MOVDX,PB_ADD;DX=0F001H

MOVAL,00H;AL=00H

OUTDX,AL;将AL的值送入DX端口

MOVCNT0,0;CNT0=0

MOVCNT3,0;CNT3=0

JMPLP;无条件跳转LP指令

LP1:

JMPLP;无条件跳转LP指令

JMP3:

MOVCNT3,0;CNT3=0

MOVCH,CNT0;CH=CNT0

SHRCH,1;CH=CNT0/2,CH右移一位

LEABX,LED_Data;取源操作地址的偏移量,并把它送到目的操作数所在单元

CMPCH,0;比较CH-0

JZRY;ZF=1,相等则转移

CMPCH,8;定时8s

JBGR;CF=1,低于则转移

CMPCH,8;定时8s

JZYR;ZF=1,相等则转移

JMPRG;无条件转移RG

RG:

MOVAL,3;AL=0003RedGreen

XLAT;BEH

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

PUSHBX;5~1S倒计时

LEABX,SHUMA;转换字形码

MOVAL,14

SUBAL,CH;AL=AL-CH/2

XLAT;表转换

MOVDX,PB_ADD

OUTDX,AL

POPBX;显示倒计时

LAST:

INCCNT0;指向下一个元素

CMPCNT0,28;一个计时周期28s

JNZLP1;ZF=0,则转移

MOVCNT0,0;CNT0=0

JMPLP1;无条件转移LP1

RY:

MOVAL,0;AL=0000RedYellow

XLAT;表转换

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

MOVDX,PB_ADD;DX=0F001H

MOVAL,00H;AL=00H

OUTDX,AL;将AL的值送入DX端口

JMPLAST;无条件转LAST指令

GR:

MOVAL,1;AL=0001GreenRed

XLAT;表转换

MOVDX,PA_ADD;AX=0F000H

OUTDX,AL;将AL的值送入DX端口

PUSHBX;7~1s倒计时

LEABX,SHUMA;转换字形码

MOVDX,PB_ADD;DX=OF001H

MOVAL,8;AL=0008

SUBAL,CH;AL=AL-CH/2

XLAT;表转换BDH

MOVDX,PB_ADD;DX=0F001H

OUTDX,AL;将AL的值送入DX端口

POPBX;显示计时

JMPLAST;无条件转移LAST指令

YR:

MOVAL,2;AL=0002

XLAT;表转换EBHYelloRed

MOVDX,PA_ADD;DX=0F000H

OUTDX,AL;将AL的值送入DX端口

MOVDX,PB_ADD;DX=0F001H

MOVAL,00H;AL=0000

OUTDX,AL;将AL的值送入DX端口

JMPLAST;无条件转移LAST指令

DL500ms:

PROCNEAR

MOVDX,T2_ADDR

MOVAL,24H;62500=F424H

OUTDX,AL;将AL的值送入DX端口

MOVAL,0F4H;AL=0F4H

OUTDX,AL;将AL的值送入DX端口

DELAY:

MOVDX,PC_ADD;DX=0F002H

INAL,DX;00010000PC4~OUT2

TESTAL,10H;查AL=10H?

JZDELAY;ZF=1,则转移

RET

DL500msENDP

ENDSTART;汇编结束

7、实际接线图

8、运行结果

当系统工作于状态1时,A、B道交替通行

当系统工作于状态2时,仅K5闭合,A道有车,B道无车:

 

当系统工作于状态3时,仅K6闭合,A道无车,B道有车:

当系统工作于状态4时,K7闭合,有紧急车辆通行:

9、设计心得及体会

为期一周的课程设计在不知不觉中已经结束了,短短的几天,让我重拾课本中关于并行通信接口8255A和8253计数器/定时器的原理及其应用,抛开我们应该掌握的知识和技能,我还明白了一些做人的道理,让我受益匪浅。

验收的时候,老师每个人都看了一遍,第二遍的时候,老师让我们自己选择是否留下来答辩,这个时候,我矛盾了,因为老师说,在答辩的过程中,一旦发现你什么都不会,那这次的课程设计就可能不及格。

当时,我的自卑感来作祟了,因为,我觉得自己比不上那些留下来答辩的人,也许有这么几个很水的人留下来浑水摸鱼的,在这方面我很佩服他们。

也许就是分分钟的选择吧。

老师问留下来答辩的人的问题的时候,我听了两个,我也都会。

为了逃避自己当时已经后悔了的事实,我很快逃走了。

事后,我反复思考这件事,我知道,人不能盲目地自卑或者自信。

这次的教训深深地警醒着我,我!

必须相信自己!

10、主要参考文献

[1]李干林.微机原理及接口技术实验指导书[M].北京:

北京大学出版社,2010年8月

[2]周荷琴冯焕清.微型计算机原理与接口技术(第5版)中国科学技术大学出版社,2013年1月

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

当前位置:首页 > 自然科学

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

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