交通灯设计《微机原理》课程设计报告.docx
- 文档编号:28564633
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:17
- 大小:105.13KB
交通灯设计《微机原理》课程设计报告.docx
《交通灯设计《微机原理》课程设计报告.docx》由会员分享,可在线阅读,更多相关《交通灯设计《微机原理》课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。
交通灯设计《微机原理》课程设计报告
摘要………………………………………………………………………………………
1设计内容………………………………………………………………………………………1
2设计器材、原理与说明…………………………………………………………………………2
2.1设计器材………………………………………………………………………………………………2
2.2原理与说明……………………………………………………………………………………………2
2.3流程图及电路接线图…………………………………………………………………………………3
3设计过程………………………………………………………………………………………6
4设计过程………………………………………………………………………………………9
5设计结果与分析………………………………………………………………………………10
6分析体会与建议………………………………………………………………………………11
源代码…………………………………………………………………………………………12
参考文献………………………………………………………………………………………16
摘要:
本报告主要介绍了微机原理与接口技术的应用之一——交通灯控制器的设计与实现,主要是模拟十字路口的红绿灯,还介绍了交通灯控制器的原理以及电路接线,其中主要用到的芯片有可编程并行通信接口芯片8255A。
在设计中所用到的编程语言是汇编语言,延时采用的是软件延时(即通过汇编指令)。
设计所用到的备是由西安唐都科技仪器公司生产的TD-PIT+实验系统一套。
在实验室将汇编程序调试通过后即可看到设计的结果。
关键字:
交通灯控制器,延时,并行接口
1设计内容
这次课程设计的题目是交通灯控制器的设计与实现,主要是模拟十字路口的红绿灯,如图1-1所示。
交通灯控制器的设计与实现主要是通过编写汇编语言程序利用8255A的A口和B口对灯的亮与灭进行控制。
首先,要了解的是8255A是如何工作的,包括它的A口、B口、C口和控制端口是如何写数据的,还包括芯片的初始化等。
由于实验室的仪器上只有16个发光二极管,所以还得弄清楚是每个发光二极管所代表的灯的颜色及方向。
最后要在实验室通过一个软件进行调试,调试通过后即可看到设计的结果。
图1-1十字路口交通灯
2设计器材、原理与说明
2.1设计器材
PC微机一台、TD-PIT+实验系统一套。
2.2原理与说明
在本次课程设计当中,本次设计采用的是软件定时(即通过汇编指令)实现的。
而灯的亮与灭以及闪烁是用8255的A口和B口控制的,工作在方式0,A口和B口均为输出。
并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。
CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:
方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。
8255的内部结构及引脚如图2-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2-2所示。
图2-18255的内部结构及引脚
图2-28255工作方式控制字和C口按位置位/复位控制字格式
2.3流程图及电路接线图
1、软件流程图如下:
图2-3软件流程图
2、电路接线图如下:
图2-4电路接线图
3、红、黄、绿灯的表示
由于仪器上面只有16个发光二级管,且从高到低依次为:
D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0。
在设计的过程中做了如下的规定:
R表示红灯,G表示绿灯,Y表示黄灯,E表示方向东,W表示方向西,S表示方向南,N表示方向北,例如:
ER表示东方向为红灯,WG表示西方向为绿灯,SY表示南方向为黄灯,其余的类似。
所以在设计中采用如下的规定:
D15D14表示ER,D13D12表示SR,D11D10表示EG,D9D8表示SG,D7D6表示WR,D5D4表示NR,D3D2表示WG,D1D0表示NG,D15D14D11D10表示EY,D7D6D3D2表示WY,D13D12D9D8表示SY,D5D4D1D0表示NY。
具体连线及表示如图2-5所示(圆圈表示发光二极管)。
图2-5红黄绿灯的表示
3详细设计
由于实验中所用到的发光二极管是共阳极的,所以在为8255的A口和B口写数据时,对应的每一位有:
1代表灯亮,0代表灯灭。
1、芯片初始化,写8255的方式字
MOVDX,MY8255_MODE;定义8255工作方式
MOVAL,80H;工作方式0,A口和B口为输出
OUTDX,AL
2、延时,延时是通过设置指令的循环次数实现的
DALLYPROCNEAR;软件延时子程序
PUSHCX
PUSHAX
MOVCX,0FFFH;循环次数
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
POPAX
POPCX
RET
DALLYENDP
DALLY1PROCNEAR;软件延时子程序,延时20秒
PUSHCX
PUSHAX
MOVCX,1EH;循环次数
D3:
CALLDALLY
LOOPD3
POPAX
POPCX
RET
DALLY1ENDP
DALLY2PROCNEAR;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔,
PUSHCX
PUSHAX
MOVCX,02H;循环次数
D4:
CALLDALLY
LOOPD4
POPAX
POPCX
RET
DALLY2ENDP
3、东西方向绿灯亮,南北方向红灯亮20秒
LOOP1:
MOVDX,MY8255_A;写A口发出的数据,东方向绿灯亮,南方向红灯亮
MOVAL,3CH
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向绿灯亮,北方向红灯亮
MOVAL,3CH
OUTDX,AL
CALLDALLY1;延时20秒
4、东西方向黄灯闪烁,南北方向红灯亮5秒
MOVCX,08H;黄灯闪烁的次数
L1:
MOVDX,MY8255_A;写A口发出的数据,东方向黄灯亮,南方向红灯亮
MOVAL,0FCH
OUTDX,AL
MOVDX,MY8255_B;写A口发出的数据,西方向黄灯亮,北方向红灯亮
MOVAL,0FCH
OUTDX,AL
CALLDALLY2
MOVDX,MY8255_A;写A口发出的数据,东方向黄灯灭,南北方向红灯亮
MOVAL,30H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向黄灯灭,南北方向红灯亮
MOVAL,30H
OUTDX,AL
CALLDALLY2
LOOPL1
5、东西方向红灯亮,南北方向绿灯亮20秒
MOVDX,MY8255_A;写A口发出的数据,东方向红灯亮,南方向绿灯亮
MOVAL,0C3H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向红灯亮,北方向绿灯亮
MOVAL,0C3H
OUTDX,AL
CALLDALLY1
6、东西方向红灯亮,南北方向黄灯闪烁5秒
MOVCX,08H;黄灯闪烁的次数
L2:
MOVDX,MY8255_A;写A口发出的数据,南方向黄灯亮,东方向红灯亮
MOVAL,0F3H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,北方向黄灯亮,西方向红灯亮
MOVAL,0F3H
OUTDX,AL
CALLDALLY2
MOVDX,MY8255_A;写A口发出的数据,南北方向黄灯灭,东方向红灯亮
MOVAL,0C0H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,南北方向黄灯灭,西方向红灯亮
MOVAL,0C0H
OUTDX,AL
CALLDALLY2
LOOPL2
7、判断是否有键按下
MOVAH,1;1号功能调用
INT16H;ROMBIOS功能调用
JZLOOP1;无按键则跳回继续循环,有则退出,
8、返回到DOS
MOVAX,4C00H;结束程序退出
INT21H;DOS系统功能调用
4设计过程
1、明确系统的设计任务要求,合理选择设计方案
根据选择题目的要求,结合所参考的资料,做出合适的设计方案,选择好要使用到的芯片以及其它的电路元件。
2、完成单元电路的设计及参数计算
8255的A口地址是:
0DA00H+00H*4,B口地址是:
0DA00H+01H*4,C口地址是:
0DA00H+02H*4,控制端口地址是:
0DA00H+03H*4。
3、电路元器件的选择
可编程并行通信接口芯片8255A。
4、软件流程图的绘制
如图2-3所示。
5、电路接线图的绘制
如图2-4所示。
6、软件的设计(程序)
程序源代码见附件。
7、进行软,硬件调试
将已写好的完整程序在汇编环境下进行编译,若无错误即可在TD-PIT+实验系统上进行调式。
5实验结果与分析
在实验室的实验台上可以看到如下的结果:
1、即东西方向的绿灯和南北方向的红灯同时点亮20秒钟;
2、20秒钟后,东西方向的黄灯闪烁5秒钟,。
此时南北方向仍维持红灯点亮。
3、东西方向的黄灯闪烁5秒钟后,转为东西方向的红灯和南北方向的绿灯同时点亮20秒钟;
4、 20秒钟后,转为南北方向的黄灯闪烁5秒钟,此时东西方向仍维持红灯点亮。
5、南北方向的黄灯闪烁5秒钟后,东西方向的绿灯和南北方向的红灯同时点亮 20秒钟。
如此循环重复。
在设计过程中,由于延时是通过编写程序实现的,而程序里面是通过执行指令的次数以达到延时,切执行一条指令的时间有很难计算,所以本次设计只是大概地估计了一下延时的时间,这是一点不足之处,若采用硬件延时(比如用8253定时器)的话,也许会使延时的时间相对的准确些。
6分析体会与建议
通过此次课程设计,结合所学的《微机原理与接口技术》这门课程的知识,对其应用之一——交通灯控制器进行设计与实现。
总体感觉收获比较多,因为可以将书本上的知识应用到实践当中。
刚开始的时候,翻阅了一些资料,还是没有什么头绪,后来在老师和同学的帮助下,终于找到了入口点,接下来的事情就相对的容易一些了。
首先,把握整个的设计的大概的流程,然后再对每一个分快进行设计,最后进行调试。
在设计的过程中,很重要的一点是要熟悉可编程并行通信接口芯片8255A的初始化及其端口的使用。
此次课程设计感觉收获很多,比如,翻阅资料提高了自学能力,和同学一起讨论汲取别人的长处。
希望老师能够引导学生应该如何去把握、分析课程设计的主题,找出突破点,让学生积极主动进行课程设计,以使学生更好地提高自学的能力。
源代码:
;8255交通灯显示实验,A口表示东、南方向,B口表示西、北方向,绿灯和红灯共同表示黄灯
;****************根据查看端口资源修改下列符号值*******************
IOY0EQU0DA00H;片选IOY0对应的端口始地址
;*****************************************************************
MY8255_AEQUIOY0+00H*4;8255的A口地址
MY8255_BEQUIOY0+01H*4;8255的B口地址
MY8255_CEQUIOY0+02H*4;8255的C口地址
MY8255_MODEEQUIOY0+03H*4;8255的控制寄存器地址
STACK1SEGMENTSTACK
DW256DUP(?
)
STACK1ENDS
DATASEGMENT
LADB?
;定义数据变量
LBDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,MY8255_MODE;定义8255工作方式
MOVAL,80H;工作方式0,A口和B口为输出
OUTDX,AL
LOOP1:
MOVDX,MY8255_A;写A口发出的数据,东方向绿灯亮,南方向红灯亮
MOVAL,3CH
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向绿灯亮,北方向红灯亮
MOVAL,3CH
OUTDX,AL
CALLDALLY1
MOVCX,08H
L1:
MOVDX,MY8255_A;写A口发出的数据,东方向黄灯亮,南方向红灯亮
MOVAL,0FCH
OUTDX,AL
MOVDX,MY8255_B;写A口发出的数据,西方向黄灯亮,北方向红灯亮
MOVAL,0FCH
OUTDX,AL
CALLDALLY2
MOVDX,MY8255_A;写A口发出的数据,东方向黄灯灭,南北方向红灯亮
MOVAL,30H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向黄灯灭,南北方向红灯亮
MOVAL,30H
OUTDX,AL
CALLDALLY2
LOOPL1
MOVDX,MY8255_A;写A口发出的数据,东方向红灯亮,南方向绿灯亮
MOVAL,0C3H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,西方向红灯亮,北方向绿灯亮
MOVAL,0C3H
OUTDX,AL
CALLDALLY1
MOVCX,08H
L2:
MOVDX,MY8255_A;写A口发出的数据,南方向黄灯亮,东方向红灯亮
MOVAL,0F3H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,北方向黄灯亮,西方向红灯亮
MOVAL,0F3H
OUTDX,AL
CALLDALLY2
MOVDX,MY8255_A;写A口发出的数据,南北方向黄灯灭,东方向红灯亮
MOVAL,0C0H
OUTDX,AL
MOVDX,MY8255_B;写B口发出的数据,南北方向黄灯灭,西方向红灯亮
MOVAL,0C0H
OUTDX,AL
CALLDALLY2
LOOPL2
MOVAH,1;判断是否有按键按下,调用功能号1
INT16H;ROMBIOS功能调用
JZLOOP1;无按键则跳回继续循环,有则退出
QUIT:
MOVAX,4C00H;结束程序退出
INT21H;DOS系统功能调用
DALLYPROCNEAR;软件延时子程序
PUSHCX
PUSHAX
MOVCX,0FFFH
D1:
MOVAX,0FFFFH
D2:
DECAX
JNZD2
LOOPD1
POPAX
POPCX
RET
DALLYENDP
DALLY1PROCNEAR;软件延时子程序,东西方向红灯亮,南北方向绿灯亮
PUSHCX
PUSHAX
MOVCX,1EH
D3:
CALLDALLY
LOOPD3
POPAX
POPCX
RET
DALLY1ENDP
DALLY2PROCNEAR;软件延时子程序,黄灯闪烁(即亮与灭)的时间间隔,
PUSHCX
PUSHAX
MOVCX,02H
D4:
CALLDALLY
LOOPD4
POPAX
POPCX
RET
DALLY2ENDP
CODEENDS
ENDSTART
参考文献
[1]杨素行.微型计算机系统原理及应用.北京:
清华大学出版社,1995.10
[2]钱晓捷.汇编语言程序设计.北京:
电子工业出版社,2000.9
[3]周明德.微型计算机IBMPC/XT系统原理及应用.北京:
清华大学出版社,1991.7
[4]西安唐都科技仪器公司.32位微机原理与接口技术实验教程
[5]西安唐都科技仪器公司.32位微机原理与接口技术用户手册
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理 交通灯 设计 微机 原理 课程设计 报告