基于8086的交通灯控制系统课程实验设计报告

合集下载

微机交通灯控制系统课程设计报告

微机交通灯控制系统课程设计报告

《微型计算机技术》课程设计报告题目:交通信号灯控制系统专业名称:电子信息工程班级: 092班学号: 000000000l 姓名: xxx2011年 12月交通信号灯控制系统XXX(电子信息工程学系)摘要:本文介绍了以8086微处理器为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制,主要是模拟十字路口的红绿灯,介绍了交通灯控制器的原理以及电路接线。

在设计中所用到的编程语言是汇编语言,延时采用的是软件延时(即通过汇编指令)。

关键词:8086微处理器;交通灯;8255A一、课程设计任务1.1 设计目标利用ZY15MicInt12BB微机原理及接口实验箱上的8086微处理器模块、并行接口8255A模块,地址译码单元以及0—1LED灯显示等模块,根据所学的微机原理知识,按照实际交通情况设定一种交通灯规则,设计一个简单的交通信号灯控制系统。

1.2 设计要求在一个十字路口,东西方向和南北方向各有两组交通指示灯,每组有红、黄绿三个灯。

东西方向同色灯连在一起,南北方向同色灯连在一起。

对各组的交通灯进行控制,以保证车辆在各道上通畅运行。

两组组的交通灯工作过程为:1.南北方向亮绿灯允许通行,东西方向亮红灯禁止通行2.当延时25秒后,南北方向的黄灯同时变亮,且延时5秒。

3.延时后,东西方向转为绿灯,南北方向转为红灯,且延时25秒。

4.25秒后,转为东西方向黄灯亮,延时5秒后,回到第一步,以次重复进行,不断循环。

5.当遇到道路障通,或紧急情况时,A、B道全为红灯。

二、原理说明与硬件设计2.1原理说明在本次课程设计当中,采用的是以8086微处理器为核心,以8255A芯片作为接口芯片,运用软件定时(即通过汇编指令)控制LDE灯(即交通灯)按照设定的交通规则显示。

2.2 8086简介8086微处理器是Intel系列的第三代微处理器,拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器,其主频为5MHz/10MHz,地址总线宽度为20位,可寻址的内存空间打1MB。

基于8086的交通信号控制器的设计

基于8086的交通信号控制器的设计

基于8086的交通信号控制器的设计报告这次课程设计,我们的任务是:基于8086的交通信号控制器的设计。

8086系统是我们这个学期学习的主线方向,我们将在8086系统的基础上完成交通信号控制器的设计,其具体功能是:1.显示十字路口东西、南北2个方向的红、黄、绿的指示状态。

2.实现正常的倒计时功能。

用2组数码管作为东西和南北方向的倒计时显示,显示时间为红灯30s,绿灯50s,黄灯5s。

3.按S1键能实现特殊的功能,显示倒计时的2组数码管闪烁,计数器停止计数并保持在原来的状态;东西、南北路口均显示红灯状态;特殊状态解除后能继续计数。

4.按S2键实现总体清零功能。

计数器由初始状态计数,对应的指示灯亮。

1.2 设计思想在此次设计过程中,我们选择了数码管、发光二极管、8255A和8086来控制实现交通灯按设计要求工作。

1)硬件部分1、LED设计说明:用LED作为倒计时时间的显示器, LED在亮度、功耗、可视角度和刷新速率等方面,都更具优势。

LED与LCD的功耗比大约为10:1,利用LED技术,可以制造出比LCD更薄、更亮、更清晰的显示器,LED 是发光二极管属于二极管的一种,LCD是液晶显示器,两者相差太多.但是用LED的点阵也能组成显示器,适用于户外大屏幕显示,分辨率较低,LED与LCD具体比较如下图2、8255设计说明:用8255A可编程并行接口芯片的A、B、C三口作为红、绿、黄交通灯的控制输入口。

8255有三个并行输入输出口,可以方便的对三种颜色的交通灯进行很好的控制。

解决方案是:PB0~PB7接模拟灯二极管,PA0~PA7接7段二极管的段选,PC0~PC3接7段二极管的位选,PC4~PC7与开关相连,处理器芯片集成芯片卡PCI卡连接,用于完成硬件方面的实验正常通信。

其芯片比较说明:如下表:2根据硬件需求采用8255A芯片,为实现对通信的控制,采用汇编语言,分别编程控制8255的工作方式,在编程时应考虑到状态的转换采用查询方式控制,根据需求分析可采用8255的方式0下工作具体如下设置:硬件连接说明:8255A芯片的PA、PB、PC三口的工作方式为方式0,将8255的PB0~PB7接红绿灯用以模拟交通灯的变化,PA0~PA7接7段LED灯的段选码,,完成LED显示器的段选,PC0~PC3接LED显示器的位选码用以完成位选,PC4-PC7接开关,以完成初值接收。

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计

《微机原理与接口技术》课程设计实验报告-交通灯控制功能设计
7
微机课程设计——交通灯控制系统
中断子程序模块是通过扩充中断源实现的,主要是通过设置 8259 的工作模 式,开放 TR1 和 TR0 的中断,按上开关 K 后,TR0 就发生中断,在 TR0 中断没有 触发的情况下,从 OU1 口输出一个上升沿脉冲,TR1 就中断一次, 程序如下所示:
QUERY: MOV DX,MY8259_OCW3 MOV AL,0CH OUT DX,AL IN AL,DX ;读出查询字 ;判断中断是否已响应 ; 没有响应则继续查询 ; 向 8259 的 OCW3 发送查询命令
《微机原理与接口技术》 课程设计实验报告
题目:交通灯控制功能设计
指导老师:
专业:
班级:
目录
微机课程设计——交通灯控制系统
ห้องสมุดไป่ตู้
一、设计思想和实施方案论述,硬件原理图及分析 1.1、课程设计名称 1.2、课程设计要求 1.3、课程设计目的 二、设计思想和实施方案论述,硬件原理图及分析 2.1、设计思想和实施方案 2.2、硬件原理图 三、典型模块以及典型编程技巧分析 3.1、8086 典型模块分析 3.2、编程技巧分析 四、设计中遇到的问题及解决方法 五、程序清单和程序注释,相关流程图 5.1 程序清单和注释 5.2、实验室及流程图 六、收获与体会 七、参考文献
微机课程设计——交通灯控制系统
MOV OUT 器输出 1HZ 的方波
AL,2 DX,AL ;1.041667MHZ/2000/1000=1HZ, 即计数
数码管的显示是通过调用显示函数实现的, 通过设置 8255 的工作模式, 选择数码管的高位工作, 然后将计数的高位送到数码管, 再选择数码管的低位工 作,然后将计数的低位送到数码管,在 1s 钟内多次扫描就可以消除闪烁,从而 达到理想的计数效果,它的程序如下所示:

课程设计交通灯8086

课程设计交通灯8086

课程设计交通灯8086一、教学目标本课程旨在让学生了解和掌握交通灯8086的基本原理和编程方法。

通过本课程的学习,学生应达到以下目标:1.了解交通灯控制系统的工作原理。

2.掌握8086微处理器的基本结构和指令系统。

3.掌握交通灯控制程序的编写和调试方法。

4.能够运用8086汇编语言编写简单的交通灯控制程序。

5.能够使用调试工具对程序进行调试和优化。

情感态度价值观目标:1.培养学生的创新意识和团队合作精神。

2.培养学生对交通安全的重视和责任感。

二、教学内容本课程的教学内容主要包括以下几个部分:1.交通灯控制系统的基本原理和工作原理。

2.8086微处理器的基本结构和指令系统。

3.交通灯控制程序的编写和调试方法。

4.交通灯控制程序的优化和升级。

三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:通过讲解交通灯控制系统的基本原理和8086微处理器的指令系统,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解交通灯控制程序的编写和调试方法。

3.实验法:让学生亲自动手进行实验,培养学生的实际操作能力和解决问题的能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《交通灯8086编程指南》。

2.参考书:关于8086微处理器和交通灯控制系统的相关书籍。

3.多媒体资料:交通灯工作原理和8086微处理器的相关视频资料。

4.实验设备:8086微处理器实验板、调试器等。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估学生的学习态度和理解能力。

2.作业:布置与课程内容相关的编程作业,评估学生的编程能力和对知识的掌握程度。

3.考试:定期进行考试,测试学生对交通灯8086知识的掌握程度和编程能力。

4.实验报告:评估学生在实验过程中的操作能力和解决问题的能力。

评估结果将以分数或等级形式记录,并及时反馈给学生,以便学生了解自己的学习状况并进行改进。

1_4606612_课程设计(论文)-基于8086微处理器的交通信号灯控制设计

1_4606612_课程设计(论文)-基于8086微处理器的交通信号灯控制设计

摘要随着现代科学技术的发展,人民生活水平的提高,汽车已走进千家万户。

而由之带来的交通问题也越发的普遍和严重,这些交通问题在城市中表现得尤为突出。

十字路口的交通状态控制已显得尤为重要,人们既不愿意在十字路口等待过久又不能陷入无休无止的堵塞状态。

于是一种新型的交通灯设计迫在眉睫,它既能满足普通的控制指挥要求,又能根据不同的车流量路段或是不同的时间段设定不同的通行时间。

本交通灯设计就是在新的设计要求下,利用8086系统开发出来的。

它基本上可以满足不同路段和时间段的通行时间设定,即保证在源程序不变的情况下,通过硬件接口(键盘)设定通行时间。

关键字:8086微处理器、可编程并行I/O接口芯片8255A、8253可编程定时器/计数器、8259A可编程中断控制器、8284A时钟发生器、中断与查询方式相结合键盘。

一、方案论证与比较1.1总体方案比较在进行交通灯设计前定下一设计原则:在可以满足设计要求的前提下,运用已学到的知识,以最简单明了的设计思路进行交通灯控制设计。

对于本次交通灯设计现提出三种方案,分别比较如下:方案1:利用纯数字电路实现交通信号灯设计。

该种方案的系统框图如图1.1.1所示:由系统框图可以知道,整个系统包括秒脉冲发生器、分频器、控制器、计数译码器等电路组成。

秒信号发生器产生整个定时系统的时基脉冲,通过减法计数器实现秒脉冲个数进行减计数,完成每一种工作状态的持续时间。

整个电路基本上由数字电子器件组成,电路以及控制逻辑较复杂。

设计的功能实现全部是由电路或是某些器件来保证的,若要适当的改变计数时间或是其他功能,则必须改动硬件电路或是某些器件,因而纯电子电路实现起来比较机械,不如软硬件结合的电路灵活。

方案2:利用51单片机进行交通信号灯设计。

单片机将控制器、运算器、存储器以及输入输出端口集于一体的高性能处理器。

利用51单片机开发系统,外围元件少,电路简单,实时性高。

对于本系统完全可以利用51单片机实现,且51单片机实现起来硬件电路和程序设计思路都比较简单,还可以应用一些仿真软件对设计的系统进行仿真,从而在理论与实际中保证设计的可行性。

微机原理交通信号灯控制系统设计报告

微机原理交通信号灯控制系统设计报告

HEFEI UNIVERSITY微机原理设计报告题目交通信号灯的控制系别电子信息与电气工程系班级11级电子信息工程(2)班姓名钟文俊学号1105012012指导老师丁健完成时间2013年5月28日交通信号灯控制系统摘要:本文介绍了以8086微处理器为核心.利用可编程并行接口芯片8255A的软硬件功能,实现对交通灯控制,主要是模拟十字路口的红绿灯,介绍了交通灯控制器的原理以及电路接线。

在设计中所用到的编程语言是汇编语言,延时采用的是软件延时(即通过汇编指令)。

关键词:8086微处理器;交通灯;8255A一、课程设计任务1.1 设计目标利用ZY15MicInt12BB微机原理及接口实验箱上的8086微处理器模块、并行接口8255A 模块,地址译码单元以及0—1LED灯显示等模块,根据所学的微机原理知识,按照实际交通情况设定一种交通灯规则,设计一个简单的交通信号灯控制系统。

1.2 设计要求在一个十字路口,东西方向和南北方向各有两组交通指示灯,每组有红、黄绿三个灯。

东西方向同色灯连在一起,南北方向同色灯连在一起。

对各组的交通灯进行控制,以保证车辆在各道上通畅运行。

两组组的交通灯工作过程为:1.南北方向亮绿灯允许通行,东西方向亮红灯禁止通行2.当延时25秒后,南北方向的黄灯同时变亮,且延时5秒。

3.延时后,东西方向转为绿灯,南北方向转为红灯,且延时25秒。

4.25秒后,转为东西方向黄灯亮,延时5秒后,回到第一步,以次重复进行,不断循环。

5.当遇到道路障通,或紧急情况时,A、B道全为红灯。

二、原理说明与硬件设计2.1原理说明在本次课程设计当中,采用的是以8086微处理器为核心,以8255A芯片作为接口芯片,运用软件定时(即通过汇编指令)控制LDE灯(即交通灯)按照设定的交通规则显示。

2.2 8086简介8086微处理器是Intel系列的第三代微处理器,拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器,其主频为5MHz/10MHz,地址总线宽度为20位,可寻址的内存空间打1MB。

8086汇编语言-模拟交通灯_实验报告

8086汇编语言-模拟交通灯_实验报告

计算机接口技术实验模拟交通灯控制一、实验目的:综合运用接口芯片,提高实践能力。

二、实验设备:TDN86/51教学实验系统一台。

三、实验要求:自行设计实验电路,独立编写程序,实现模拟交通灯控制系统。

模拟交通灯有三个状态往复循环:1、初始时,东西方向的绿灯亮,同时,南北方向及人行道上的红灯全亮。

持续5S。

2、然后,南北方向的绿灯亮,同时,东西方向及人行道上的红灯全亮。

持续8S。

3、最后,人行道方向的绿灯亮,同时,东西方向及南北的红灯全亮。

持续6S。

四、实验步骤:1. 系统分析:根据TDN86/51教学实验系统中的LED单元进行的约定如下:状态1时LED单元的状态如下:即1000 0111B=87H状态2时LED单元的状态如下:2即0100 1011B=4BH状态1时LED单元的状态如下:即0011 1100B=D3H电路连接如下图:2. 芯片工作状态分析:8253:芯片端口地址:40H~43H。

工作在方式0,0号计数器,工作方式命令字:30H。

CLK0为1.19MHZ,故最大计数时间为:65536/(1.19x106) =55ms。

可令其产生50ms定时,计数初值约为:0.05x1.19x106=59500。

从而,5s定时外循环次数为100次,8s定时外循环次数为160次,6s定时外循环次数为120次。

8259:芯片端口地址:20H、21H实验IRQ0中断,初始化时需要开IRQ0中断。

8255:芯片端口地址:60H~63HA口工作在方式0状态,输出,工作方式控制字:80H。

3. 程序流程图:主程序流程图:IRQ0中断服务程序流程图:五、实验程序源代码:STACK SEGMENT STACKDW 64 DUP (?)STACK ENDSCODE SEGMENTASSUME CS:CODESTART:CLI ;关中断,开始填0中断矢量PUSH DSMOV AX,00H ;填偏移量MOV DS,AXMOV AX,OFFSET IRQ0ADD AX,2000HMOV SI,20HMOV [SI],AXMOV AX,00H ;填CS段基址MOV SI,22HMOV [SI],AXPOP DSIN AL,21H ;读8259中断屏蔽字AND AL,0FEH ;开中断0OUT 21H,ALMOV AL,80H ;初始化8255OUT 63H,ALMOV AL,30H ;初始化8253OUT 43H,ALMOV AL,0FFH ;循环前把所有的灯关闭OUT 60H,ALA0:MOV CX,100 ;开始进入1状态,CX初值为100A1:MOV AX,59500 ;8253载入初值OUT 40H,ALMOV AL,AHOUT 40H,ALMOV AL,87H ;状态1的数据存入AL,等待输出STI ;开中断HLT ;停机等待中断LOOP A1 ;根据CX的值循环本状态MOV CX,160 ;开始进入2状态,CX初值为160A2:MOV AX,59500 ;8253载入初值OUT 40H,ALMOV AL,AHOUT 40H,ALMOV AL,4BH ;状态2的数据存入AL,等待输出STIHLTLOOP A2MOV CX,120 ;开始进入3状态,CX初值为120 A3:MOV AX,59500OUT 40H,ALMOV AL,AHOUT 40H,ALSTIHLTLOOP A3JMP A0IRQ0: ;中断服务程序OUT 60H,AL ;输出AL数据到8255,改变灯状态MOV AL,20H ;发EOIOUT 20H,ALIRET ;中断返回CODE ENDSEND START。

基于8086的交通灯控制系统课程实验设计报告

基于8086的交通灯控制系统课程实验设计报告

目录一、设计要求。

2二、设计目的。

2三、设计的具体实现。

2(一)系统概述。

2 (二)单元电路设计。

5 (三)软件程序设计。

9四、结论与愿望。

15五、心得体会及建议。

16六、附录。

17七、参考文献。

18交通灯设计报告一、设计要求1、完成系统总体方案设计;2、设计控制算法;3、设计系统接线图;4、完成控制软件的编写;5、编写课程设计说明书。

二、设计目的1、了解交通灯管理的基本工作原理2、熟悉8259A中断控制器的工作原理和应用编程3、熟悉8255A并行接口的各种工作方式和应用4、熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法。

5、掌握多位LED显示问题的解决。

三、设计的具体实现(一)系统概述系统要求实现正常时序控制,启动开关接通时,交通信号按设定的时序工作,并且各个方向的红、黄、绿灯接通时间倒计时显示,东西方向和南北方向的绿灯接通时间可以由外部设定。

所以设计中使用了8259A中断控制器、8254计数器、8255可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。

城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:1.东西南北两个方向起始状态全为红,延续3秒。

2.东西方向红灯亮,南北方向绿灯亮,延续45秒。

3.东西方向红灯亮,南北方向绿灯以频率1HZ闪烁3秒。

4.东西方向红灯亮,南北方向黄灯亮,延续3秒。

5.东西方向绿灯亮,南北方向红灯亮,延续40秒。

6.东西方向绿灯亮以频率1HZ闪烁3秒,南北方向红灯。

7.东西方向黄灯亮,南北方向红灯亮,延续3秒。

8.东西方向红灯亮,南北方向红灯亮循环以上步骤。

通过分析灯亮的规律,总结出如下的功能表:交通灯亮灭功能表转换成控制码为:系统流程图如下:(二)单元电路设计1、 8259的工作原理1)、数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录一、设计要求。

2二、设计目的。

2三、设计的具体实现。

2(一)系统概述。

2 (二)单元电路设计。

5 (三)软件程序设计。

9四、结论与愿望。

15五、心得体会及建议。

16六、附录。

17七、参考文献。

18交通灯设计报告一、设计要求1、完成系统总体方案设计;2、设计控制算法;3、设计系统接线图;4、完成控制软件的编写;5、编写课程设计说明书。

二、设计目的1、了解交通灯管理的基本工作原理2、熟悉8259A中断控制器的工作原理和应用编程3、熟悉8255A并行接口的各种工作方式和应用4、熟悉8253计数器/定时器的工作方式及应用编程,掌握利用软硬件相结合定时的方法。

5、掌握多位LED显示问题的解决。

三、设计的具体实现(一)系统概述系统要求实现正常时序控制,启动开关接通时,交通信号按设定的时序工作,并且各个方向的红、黄、绿灯接通时间倒计时显示,东西方向和南北方向的绿灯接通时间可以由外部设定。

所以设计中使用了8259A中断控制器、8254计数器、8255可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。

城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:1.东西南北两个方向起始状态全为红,延续3秒。

2.东西方向红灯亮,南北方向绿灯亮,延续45秒。

3.东西方向红灯亮,南北方向绿灯以频率1HZ闪烁3秒。

4.东西方向红灯亮,南北方向黄灯亮,延续3秒。

5.东西方向绿灯亮,南北方向红灯亮,延续40秒。

6.东西方向绿灯亮以频率1HZ闪烁3秒,南北方向红灯。

7.东西方向黄灯亮,南北方向红灯亮,延续3秒。

8.东西方向红灯亮,南北方向红灯亮循环以上步骤。

通过分析灯亮的规律,总结出如下的功能表:交通灯亮灭功能表转换成控制码为:系统流程图如下:(二)单元电路设计1、 8259的工作原理1)、数据总线缓冲器:8259A与系统数据总线的接口,是8位双向三态缓冲器。

CPU与8259A之间的控制命令信息、状态信息以及中断类型信息,都是通过缓冲器传送的。

2)、读/写控制逻辑:CPU通过它实现对8259A的读/写操作。

3)、级连缓冲器:用以实现8259A芯片之间的级连,使得中断源可以由8级扩展至64级。

4)、控制逻辑电路:对整个芯片内部各部件的工作进行协调和控制。

5)、中断请求寄存器IRR:8位,用以分别保存8个中断请求信号,当响应的中断请求输入脚有中断请求时,该寄存器的相应位置1。

6)、中断屏蔽寄存器IMR:8位,相应位用以对8个中断源的中断请求信号进行屏蔽控制。

当其中某位置“0“时,则相应的中断请求可以向CPU提出;否则,相应的中断请求被屏蔽,即不允许向CPU提出中断请求。

该寄存器的内容为8259A的操作命令字OCW1,可以由程序设置或改变。

7)、中断服务寄存器ISR:8位,当CPU正在处理某个中断源的中断请求时,ISR寄存器中的相应位置1。

8)、用以比较正在处理的中断和刚刚进入的中断请求之间的优先级别,以决定是否产生多重中断或中断嵌套。

2. 8255A的工作原理1)、8255A的内部结构:(1)数据总线缓冲器:这是一个双向三态的8位数据缓冲器,它是8255A与微机系统数据总线的接口。

输入输出的数据、CPU输出的控制字以及CPU输入的状态信息都是通过这个缓冲器传送的。

(2)三个端口A,B和C:A端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入锁存器。

B端口包含一个8位数据输入/输出锁存器和缓冲器,一个8位数据输入缓冲器。

C端口包含一个8位数据输出锁存器和缓冲器,一个8位数据输入缓冲器(输入没有锁存器)。

(3) A组和B组控制电路:这是两组根据CPU输出的控制字控制8255工作方式的电路,它们对于CPU而言,共用一个端口地址相同的控制字寄存器,接收CPU输出的一字节方式控制字或对C口按位复位字命令。

方式控制字的高5位决定A组的工作方式,低3位决定B组的工作方式。

对C口按位复位命令字可对C口的每一位实现置位或复位。

A组控制电路控制A口和C口上半部,B 组控制电路控制B口和C口下半部。

(4)读写控制逻辑:用来控制把CPU输出的控制字或数据送至相应端口,也由它来控制把状态信息或输入数据通过相应的端口送到CPU。

2)、8255A的工作方式:方式0---基本输入输出方式;方式1---选通输入输出方式方式2---双向选通输入输出方式。

3)、引脚信号8255A的引脚如图7.5所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

D7~D0(data bus):三态、双向数据线,与CPU数据总线连接,用来传送数据。

(chip select):片选信号线,低电平有效时,芯片被选中。

A1, A0(port address):地址线,用来选择内部端口。

(read):读出信号线,低电平有效时,允许数据读出。

(write):写入信号线,低电平有效时,允许数据写入。

RESET(reset):复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。

PA7~PA0(port A):A口输入/输出信号线。

PB7~PB0(port B):B口输入/输出信号线。

PC7~PC0(port C):C口输入/输出信号线。

VCC:+5V电源。

GND:电源地线。

3、 8253的工作原理:8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。

其CLK0~CLK2是计数器0~2的时钟脉冲输入端, GATE0~GATE2是门控脉冲输入端, OUT0~OUT2是输出端。

4、计时功能实现逻辑:通过8253计数器0和计数器1级联实现准确定时;用8255的A口低六位控制东西、南北路口交通灯的状态;灯的亮灭可直接由8086输出0,1控制。

用8259A管理可屏蔽中断即开机初始化。

采用两个计数器级联的方式, 并且计数器0工作于方式3用于产生方波信号,计数器1工作方式0,计数到时高电平信号。

计数器1的输出端OUT1接入8255芯片的PC0口,通过查询8255的C口的值,以完成计时功能。

将计数器0的输出OUT0接到计数器1的输入端CLK1,而CLK0的输入采用1.19MHZ的时钟频率, 计数器0计数初值为59499=0E86BH,则OUT0=20HZ, 即计数器1的时钟频率为20HZ。

当计数器1的记数初值为9时,0.5S后OUT1输出一高电平。

8086通过读取8255C口的值,来决定对A口写入的数据。

因此每隔0.5秒8086变换灯的状态,持续6次即完成3秒的闪烁功能。

当计数器1的记数初值为899时,45S后OUT1输出一高电平。

通过查询8255的C口PC0的状态改变,达到延时45秒的作用。

同理计数器1的计数初值分别为59、799时,分别为3、40秒的延时。

5、译码电路设计通过分析8259、8253、8255各端口地址,设计合理的地址译码电路。

8259的地址为20H、21H,8253的地址为40H、41H、42H、43H,8255的端口地址为0F0H、0F1H、0F2H、0F3H。

故芯片的地址只与8086的地址的低8位有联系,不妨设高十二为全为1将它们相与后作为38译码器的始能信号E3。

再分析发现8259、8253、8255各端口地址的低八位其中D2、D3均为0,将8086的地址总线的D2、D3作为38译码器的始能信号E1、E2。

将8086的地址总线的D0、D1分别与8253和8255的A0、A1连接,利用D4、D5、D6、D7构成译码电路。

将8086的地址总线的D0与8259的A0连接,利用D2、D4、D5、D6、D7通过38译码器构成译码电路。

具体见下图所示:(三)软件程序设计******************************************************** *********MY8259_ICW1 EQU 20H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU 21H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU 21H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU 21H ;实验系统中8259的ICW4端口地址MY8259_OCW1 EQU 21H ;实验系统中8259的OCW1端口地址MY8259_OCW2 EQU 20H ;实验系统中8259的OCW2端口地址MY8259_OCW3 EQU 20H ;实验系统中8259的OCW3端口地址MY8253_COUNT0 EQU 40H ;实验系统中8253计数器0端口地址MY8253_COUNT1 EQU 41H ;实验系统中8253计数器1端口地址MY8253_COUNT2 EQU 42H ;实验系统中8253计数器2端口地址MY8253_MODE EQU 43H ;实验系统中8253控制寄存器端口地址MY8255_A EQU 0F0H ;实验系统中8255的A口地址MY8255_B EQU 0F1H ;实验系统中8255的B口地址MY8255_C EQU 0F2H ;实验系统中8255的C口地址MY8255_MODE EQU 0F3H ;实验系统中8255的控制寄存器地址******************************************************** *********DATA SEGMENTCS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量DATA ENDSCODE SEGMENTASSUME CS:CODE ,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV AX,3508HINT 21HMOV IP_BAK, ES ;保存INTR原中断处理程序入口偏移地址MOV CS_BAK, BX ;保存INTR原中断处理程序入口段地址MOV AX,SEG INITIALMOV DS,AXMOV DX,OFFSET INITIALMOV AX,2508HINT 21H ;设置中断向量MOV DX,MY8259_ICW1 ; 初始化实验系统中8259的ICW1 MOV AL,13H ;边沿触发、单片8259、需要ICW4OUT DX,ALMOV DX, MY8259_ICW2 ;初始化实验系统中8259的ICW2 MOV AL,08H ;IR0中断类型号OUT DX,ALMOV DX,MY8259_ICW4 ;初始化实验系统中8259的ICW4 MOV AL,03H ;自动结束EOIOUT DX,ALMOV DX,MY8259_OCW1 ;初始化实验系统中8259的OCW1 MOV AL,0FEH ;打开IR0的屏蔽位OUT DX,ALMOV AL,00HMOV DX, MY8259_OCW2 ;初始化实验系统中8259的OCW2,完成8259的初始化OUT DX,ALQUERY: MOV DX,MY8259_OCW3 ;向8259的OCW3发送查询命令MOV AL,0CHOUT DX,ALIN AL,DX ;读出查询字TEST AL,80H ;判断中断是否已响应JZ QUERY ;没有响应则继续查询AND AL,01HCMP AL,00HJNE QUERY ;若不是IR0请求,继续查询L4: INT 08H ;调用08H中断程序CALL DELAY3S ;延时3秒MOV DX,MY8255_A ;写8255的A口MOV AL,12HOUT DX,AL ; L2、L5亮CALL DELAY45S ;延时45秒MOV CX, 03H ;周期1S,循环三次完成灯闪烁L2: MOV DX,MY8255_A ;写8255的A口MOV AL,02HOUT DX,AL ; L2亮、L5灭CALL DELAYHALFS ;延时0.5秒MOV DX,MY8255_AMOV AL,12HOUT DX,AL ; L2、L5亮CALL DELAYHALFS ;延时0.5秒DEC CXJNZ L2 ;L2亮,L5闪烁MOV DX,MY8255_A ;写8255的A口MOV AL,06HOUT DX,AL ; L2、L3亮CALL DELAY3S ;延时3秒MOV DX,MY8255_A ;写8255的A口MOV AL,21HOUT DX,AL ; L1、L6亮CALL DELAY45S ;延时45秒MOV CX,03H ;周期1S,循环三次完成灯闪烁L3: MOV DX,MY8255_A ;写8255的A口MOV AL,01HOUT DX,AL ; L1亮、L6灭CALL DELAYHALFS ;延时0.5秒MOV DX,MY8255_A ;写8255的A口MOV AL,21HOUT DX,AL ; L1、L6亮CALL DELAYHALFS ;延时0.5秒DEC CX ;L1亮,L6闪烁JNZ L3MOV DX,MY8255_A ;写8255的A口MOV AL,09HOUT DX,AL ; L1、L4亮CALL DELAY3S ;延时3秒JMP L4 ;循环一次完成,跳到L4重新开始循环MOV AH,4CHINT 21H ;返回DOSINITIAL PROC ;中断类型号08H的中断子程序MOV DX,MY8253_MODE ;对8253初始化MOV AL,36HOUT DX,ALMOV AX, 0E86BHMOV DX,MY8253_COUNT0OUT DX,ALMOV AL,AHOUT DX,AL ;计数器0工作方式3 ,OUT0为频率20HZ的方波MOV DX, MY8255_MODEMOV AL,89HOUT DX,AL ;8255初始化完成A口输出,C口输入MOV DX,MY8255_AMOV AL,03HOUT DX,AL ;两个红灯L1、L2亮,灯初始化完成IRETINITIAL ENDP ;开机初始化完成DELAY3S PROC ;延时3S子程序MOV AL,51HMOV DX,MY8253_MODEOUT DX,ALMOV AL,59HMOV DX,MY8253_COUNT1OUT DX,AL ;计数器1工作方式0 ,计数初值为59 L1: MOV DX, MY8255_CIN AL,DXCMP AL,01HLOOPNZ L1RETDELAY3S ENDPDELAY45S PROC ;延时45S子程序MOV AL,71HMOV DX,MY8253_MODEOUT DX,ALMOV AX,0899HMOV DX,MY8253_COUNT1OUT DX,ALMOV AL,AHOUT DX,AL ;计数器1工作方式0 ,计数初值为899 L5: MOV DX, MY8255_CIN AL,DXCMP AL,01HLOOPNZ L5RETDELAY45S ENDPDELAYHALFS PROC ;延时0.5S子程序MOV AL,51HMOV DX,MY8253_MODEOUT DX,ALMOV AL,09HMOV DX,MY8253_COUNT1OUT DX,AL ;计数器1工作方式0 ,计数初值为9L6: MOV DX, MY8255_CIN AL,DXCMP AL,01HLOOPNZ L6RETDELAYHALFS ENDPDELAY40S PROC ;延时40S子程序MOV AL,71HMOV DX,MY8253_MODEOUT DX,ALMOV AX,0799HMOV DX,MY8253_COUNT1OUT DX,ALMOV AL,AHOUT DX,AL ;计数器1工作方式0 ,计数初值为799L7: MOV DX, MY8255_CIN AL,DXCMP AL,01HLOOPNZ L7RETDELAY40S ENDPCODE ENDSEND START四、结论与愿望1、结论:理论上结果应为东西南北两个方向起始状态全为红,延续3秒。

相关文档
最新文档