微机原理课程设计交通灯
- 格式:docx
- 大小:262.18 KB
- 文档页数:9
一、设计题目:十字路口交通灯控制器二、设计要求:通过对红绿黄LED发光二极管的控制,熟练掌握8255A可编程并行接口的编程方法。
编写程序控制8255A可编程并行接口芯片,使实验台上的红、绿、黄发光二极管按照十字路口交通信号灯的燃灭规律发光。
三、硬件方案:(一)设计原理:通过8255A并口来控制LED发光二极管的亮灭。
A口控制红灯,B口控制黄灯,C口控制绿灯。
输出为0则亮,输出为1则灭。
用8253定时来控制变换时间。
设有一个十字路口,1、3为南,北方向,2、4为东西方向,初始态为4个路口的红灯全亮。
之后,1、3路口的绿灯亮,2、4路口的红灯亮,1、3路口方向通车。
延迟30秒后,1、3路口的绿灯熄灭,而1,3路口的黄灯开始闪烁(1HZ)。
闪烁5次后,1、3路口的红灯亮,同时2、4路口的绿灯亮,2、4路口方向开始通车。
延迟30秒时间后,2、4路口的绿灯熄灭,而黄灯开始闪烁。
闪烁5次后,再切换到1、3路口方向。
之后,重复上述过程。
要求使用可编程并行接口8255,8088CPU,双色灯,PC机等实现。
(二).部分所使用的芯片极其原理:(1)8255的基本功能:Intel公司生产的可编程并行接口芯片8255A已广泛应用于实际工程中,例如8255A与A/D、D/A配合构成数据采集系统,通过8255A连接的两个或多个系统构成相互之间的通信,系统与外设之间通过8255A交换信息,等等,所有这些系统都将8255A用作为并行接口。
8255A为一可编程的通用接口芯片。
它有三个数据端口A、B、C,每个端口为8位,并均可设成输入和输出方式,但各个端口仍有差异:端口A(PA0~PA7):8位数据输出锁存/缓冲器,8位数据输入锁存器;端口B(PB0~PB7):8位数据I/O锁存/缓冲器,8位数据输入缓冲器;端口C(PC0~PC7):8位输出锁存/缓冲器,8位输入缓冲器(输入时没有锁存);在模式控制下这个端口又可以分成两个4位的端口,它们可单独用作为输出控制和状态输入。
交通信号灯的控制一、设计目的巩固“微机原理”课程学过的知识,加强理论与实践的联系。
通过本课程设计,使学生初步了解微机系统的硬件设备,学会 8086 系列编程指令的基本功能。
二、设计要求1、通过 8255A 并口来控制 LED 发光二极管的亮灭。
2、A 口控制红灯,B 口控制黄灯,C 口控制绿灯。
3、输出为 0 则亮,输出为 1 则灭。
4、用8253 定时来控制变换时间。
要求:设有一个十字路口,1、3 为南,北方向,2、4 为东西方向,初始态为 4 个路口的红灯全亮。
之后,1、3 路口的绿灯亮,2、4 路口的红灯亮,1、3 路口方向通车。
延迟 30 秒后,1、3 路口的绿灯熄灭,而 1,3 路口的黄灯开始闪烁(1HZ)。
闪烁 5 次后,1、3 路口的红灯亮,同时 2、4 路口的绿灯亮,2、4 路口方向开始通车。
延迟 30 秒时间后,2、4 路口的绿灯熄灭,而黄灯开始闪烁。
闪烁 5 次后,再切换到 1、3 路口方向。
之后,重复上述过程。
三、流程图:四、真值表:五、电路图:电路图中地址线连接在 A2,A3 上,用 74HC139 译码,故地址范围为00H~03H,04H~07H,08H~0BH,每个芯片的 A0、A1 均与8086 的A0、A1 相连,RD、WR 与8086 的RD、WR 相连,以控制芯片的读写。
8253 使用定时器 0,输出接 8259 的IR0,故中断向量为08H。
13 方向的绿灯同 PC0 相连,24 方向的绿灯同 PC1 相连,红灯、黄灯接 PA、PB,方式同上。
六、源程序:;-------------------------------------------------------------;模块作用:交通灯控制;编程语言:汇编;编程:孙逸痕,本程序无版权,欢迎使用;日期:2011-12-11;-------------------------------------------------------------;---------STACK------------------------------------------STACK SEGMENT STACK 'STACK'DW 32 DUP(0)STACK ENDS;---------DATA--------------------------------------------DATA SEGMENTCOUNT_L EQU 0H ;计数器初值COUNT_H EQU 0HADD_8253_T0 EQU 00H ;芯片地址ADD_8255 EQU 04HADD_8259 EQU 08HRED_ADD EQU ADD_8255 ;PAYELLOW_ADD EQU ADD_8255+1 ;PBGREEN_ADD EQU ADD_8255+2 ;PCLIGHT_ON EQU 01H ;Pi1/Pi0=01 (i=A,B)LIGHT_OFF EQU 03H ;Pi1/Pi0=11SYS_COUNTER DB 18 ;系统频率GREEN_COUNTER DB 30 ;绿灯30 秒计数YELLOW_COUNTER DB 5 ;黄灯5 秒计数DATA ENDS;----------CODE------------------------------------------CODE SEGMENTMAIN PROC FARASSUME SS:STACK,CS:CODE,DS:DATA;----系统初始化--------PUSH DSMOV AX,0PUSH AXMOV ES,AXMOV AX,DATAMOV DS,AX;----中断向量----------MOV AX,OFFSET TIMER ;装入中断向量表MOV ES:20H,AXMOV AX,SEG TIMERMOV ES:22H,AX;----8253 定时器 0 初始化---MOV AL,36HOUT ADD_8253_T0,AL ;16 位,方式 3MOV AL,COUNT_L ;装入初值OUT MOV OUT ADD_8253_T0,AL AL,COUNT_H ADD_8253_T0,AL;----8255 初始化--------MOV AL,80H ;方式0OUT ADD_8255+3,AL;----8259 初始化--------MOV AL,13H ;单片,边沿触发OUT ADD_8259,ALMOV AL,8H ;中断类型码为 08H~0FHOUT ADD_8259+1,ALMOV AL,0DHOUT ADD_8259+1,AL;-----系统运行---------SYS_ON:IN AL,ADD_8259+1 ;开中断IRQ0AND AL,0FEHOUT ADD_8259+1,ALMOV AL,LIGHT_ON ;开13 方向绿灯,24 方向红灯,关黄灯OUT GREEN_ADD,ALNEG ALOUT RED_ADD,ALMOV AL,LIGHT_OFFOUT YELLOW_ADD,ALGRE_30:JMP $ ;等待计时中断DEC GREEN_COUNTER ;等待绿灯亮30 秒JNZ GRE_30MOV BX,OFFSET GREEN_COUNTER ;复位计数器MOV [BX],30MOV AL,LIGHT_OFF ;关绿灯,开黄灯OUT GREEN_ADD,ALMOV AL,LIGHT_ONOUT YELLOW_ADD,ALYEL_5: JMP $ ;等待计时中断MOV AL,LIGHT_ONMOV AH,03H ;取辅助值(用于黄灯状态取反)放在AH 中SUB AH,ALXOR AL,AH ;黄灯状态取反OUT YELLOW_ADD,ALDEC YELLOW_COUNTER ;计时值,每一秒改变一次状态,共5 秒JNZ YEL_5MOV BX,OFFSET YELLOW_COUNTER ;复位计数器MOV [BX],5MOV AL,LIGHT_ON ;点亮红灯OUT RED_ADD ,ALMOV BX,OFFSET LIGHT_ON ;将13 边换位 24 边MOV [BX],AHMOV AL,LIGHT_OFF ;熄灭黄灯OUT YELLOW_ADD,ALMOV AL,LIGHT_ON ;24 边绿灯亮UT GREEN_ADD,ALJMP SYS_ON ;循环RET;----中断函数------------TIMER: DEC SYS_COUNTER ; 是否计数18 次JNZ OVERMOV BX,OFFSET SYS_COUNTER ;复位计数器MOV [BX],18POP AXINC AXINC AXPUSH AXOVER: IRETMAIN ENDPCODE ENDSEND MAIN。
中南大学微机课程设计报告题目交通灯设计专业班级姓名学号指导老师林立新老师目录1.课程设计题目、功能、目的 (2)2.系统分析与设计 (3)2.1系统所用芯片分析 (3)2.2所选用芯片的简要介绍 (4)2.3系统框图 (6)3.程序设计 (7)3.1十字路口交通灯状态转换表 (7)3.2主程序流程图 (7)3.3 中断子程序流程图 (8)3.4 数码管码表 (8)3.5 各芯片初始化说明 (9)4.运行情况 (10)5.具体源代码及注释 (11)6.心得体会 (16)一、课程设计题目、功能、目的1.课程设计题目--------------交通灯设计2.本设计所实现功能1)实现十字路口交通灯各种状态的转换;2)各种状态转换的时间可进行灵活设置;3)采用中断的方法对状态转换进行控制,提高处理器效率;4)在各个状态转换的同时实现倒计时提醒。
3.本次课程设计目的1)通过《微机原理与接口》课程设计,使学生能够进一步了解微型计算机工作原理, 微型计算机的硬件结构及微型计算机软件编程。
2)要求学生根据接口电路的硬件要求进行计算机的汇编语言程序设计,使学生的软件编程能力得到加强,对接口电路的综合应用能力有较大提高。
二、系统分析与设计1.系统所用芯片分析1)首先本个系统需要一个中央处理器来负责对整个系统进行控制管理,因为《微机原理与接口技术》这门课上介绍了8086芯片,所以可以采用8086作为本系统的中央处理器。
2)由于本次的课程设计的题目是交通灯,而根据十字路口处的交通灯南北和东西方向各有红、绿、黄三种颜色的灯,因此可用8255来控制6个LED灯的实现模拟的南北和东西方向上的交通灯。
3)而交通灯的状态转换时间要由中断方式来控制,所以很容易想到了可以用8259作为中断芯片,与8086芯片相连。
4)交通灯的状态转换时间可灵活设置,于是想到了可以采用一块8253或8254芯片和一个脉冲源相连,8253对脉冲源送来的脉冲进行分频,然后将输出送到8259作为中断源,而8253采用不用的计数初值其输出脉冲的频率就不一样,因此实现了交通类状态转换时间的灵活设置。
1设计任务描述1.1设计题目:交通信号灯1.2设计内容利用微机原理试验箱,采两组红,黄,绿发光二极管来模拟A,B两路交差路口的信号灯控制。
1.2.1设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
1.2.2设计要求一、基本要求:1.(1)按实际交通灯控制规程控制;(2)当路口发生交通事故时,能强制A、B两路禁行;(3)K0-K7为开关,K7来模拟紧急情况,K1-K6来模拟车辆多少;D11-D8为黄灯;D7-D0分别为4红4绿。
2.也可以选择具有一定难度的其他题目,但要经过指导老师的同意。
3.认真查阅资料,理解题目要求。
4.按时上机,认真调试程序。
5.运行程序,检查结果是否和设计要求一致。
6.记录出现的问题及现象,并对问题进行分析,思考解决方法。
7.遵守课程设计时间安排。
8.独立思考,认真设计。
9.认真书写课程设计说明书,避免相互抄袭。
二、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
三、设计完成后应提交成果的种类、数量、质量等方面的要求提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
微机原理课程设计报告书课题名称 红绿灯设计姓 名学 号 院、系、部 电气系 专 业 电子信息工程 指导教师孙秀婷、马丽2011年 1 月12日红绿灯设计一、设计目的※※※※※※※※※ ※※※※ ※※ ※※※※※※※※※2008级微机原理 课程设计查阅可编程并行芯片8255或其他相关资料,用简单的输入输出端口等硬件,配合延时和控制程序控制灯的亮灭。
通过对红、绿、黄LED(发光二极管)的控制熟练掌握8255A可编程并行接口的编程方法。
二、设计要求编写程序控制8255A可编程并行接口芯片,使红、绿、黄发光二极管按照十字路口交通信号灯的规律交替发光。
当按下任意键则停止运行,返回DOS。
1、红绿灯亮灭规律:a:初态为东西南北4个红灯全亮,禁止通行;b:经过一定时间南北路口绿灯亮东西路口红灯亮;c:经过一定时间,南北路口绿灯灭;d:南北路口黄灯闪烁;e:经过一定时间,4个路口红灯全亮。
f:经过一定时间,东西路口绿灯亮,南北路口红灯亮;g:东西路口绿灯灭;h:东西路口黄灯闪烁.i:转向步骤a循环执行。
三、电路及连线设计四、使用说明本次微机原理设计的题目为交通灯,它是通过对8255芯片和LED发光二极管的连接设计来模拟交通信号灯的控制,使红黄绿三色灯按照正常交通规则亮灭;十字路口交通信号灯的工作原理是在正常情况下以8086/8088的CPU与8255芯片相连接来实现的。
8255芯片包括四个口,即A口、B口、C口和控制口。
通过对其控制端口写入控制字,来设定8255的工作方式,在本设计中,使8255工作于方式0,将B口和C口都设计为输出,A口设计成输入。
其中B口控制东西方向的交通灯,C口控制南北方向的交通灯。
当程序正常运行时,依次为东西南北方向都是红灯,延时后,南北方向的绿灯和东西方向红灯亮,延时后南北方向的黄灯闪3次,随后南北方向的红灯和东西方向的绿灯亮,延时后,东西方向的黄灯闪3次,之后同理进行循环。
五、流程图设计六、程序设计如下:SSTACK SEGMENT STACK ;定义堆栈段DW 32 DUP(?)SSTACK ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,SS:SSTACKSTART:MOV AL,90HMOV DX,9003HOUT DX,AL ;将8255控制字设置为10010000; B、C口输出 A口输入 工作方式0 RED: MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮MOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAY ;调用延时程序DELAY NORMAL:STIMOV AL,88HMOV DX,9002HOUT DX,AL ;南北方向绿灯亮MOV AL,22HMOV DX,9001HOUT DX,AL ;东西方向红灯亮CALL DELAY ;调用演示程序DELAYMOV AL,00HMOV DX,9002HOUT DX,AL ;南北方向绿灯灭CALL DELAY1 ;调用演示程序DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5 RECALL1:MOV AL,44HMOV DX,9002HOUT DX,AL ;南北方向黄灯亮CALL DELAY2XOR AL,ALOUT DX,AL ;南北方向黄灯灭CALL DELAY2 ;调用演示程序DELAY2LOOP RECALL1MOV AL,88HMOV DX,9001HOUT DX,AL ;东西方向绿灯亮MOV AL,22HMOV DX,9002HOUT DX,AL ;南北方向红灯亮CALL DELAYCALL DELAY ;两次调用演示程序DELAY,东西方向设为主干道 MOV AL,00HMOV DX,9001HOUT DX,AL ;东西方向绿灯灭CALL DELAY1 ;调用延时程序 DELAY1MOV CX,0005H ;将黄灯闪烁次数设为5RECALL2:MOV AL,44HMOV DX,9001HOUT DX,AL ;东西方向黄灯亮CALL DELAY2 ;调用延时程序DELAY2 XOR AL,ALOUT DX,AL ;东西方向黄灯灭CALL DELAY2 ;调用延时程序DELAY2LOOP RECALL2JMP NORMAL ;无条件跳转到NORMAL,实现循环 DELAY: PUSH CX ;延时程序 DELAYMOV BX,008FHT1:MOV CX,1000HT2:NOPNOPLOOP T2DEC BXCMP BX,0000HJNZ T1POP CXRETDELAY1: PUSH CX ;延时程序 DELAY1MOV CX,0FFFFHT3:NOPNOPLOOP T3POP CXRETDELAY2: PUSH CX ;延时程序 DELAY2MOV CX,0F900HT4:PUSH AXPOP AXLOOP T4POP CXRETCODE ENDSEND START七、设计总结:短短一周的微机原理课程设计已经过去了。
一、设计要求(1)南北路口的绿灯、东西路口的红灯同时亮5秒。
(2)南北路口的黄灯闪烁若干次,维持3秒,同时东西路口的红灯。
(3)南北路口的红灯、东西路口的绿灯同时亮5秒。
(4)南北路口的红灯、同时东西路口的黄灯亮烁若干次,维持3秒。
(5)转(1)重复。
(6)紧急情况可以手动控制红绿灯的变换。
一个开关控制南北绿,东西红,另一个按钮南北红,东西绿。
(7)黄灯闪烁时扬声器发声,提醒。
二、设计目的(1)了解红绿灯电路的基本工作原理;(2)了解8086微型计算机的工作过程;(3)学习8086CPU与外围设备的接口技术。
(4)运用微机原理与接口技术、数字电路、汇编语言程序设计等课程学到的知识,掌握微型计算机接口的方法和原理,具备一定的微机应用开发的实践能力,加深对理论课程的理解。
三、设计的具体实现原理框图3.1系统概述本次设计是模拟交通灯实时控制系统,以8086CPU为核心加以并行接口芯片8255、可编程计数器/定时器8253、LED灯、开关等组成的系统。
以LED灯模拟十字路口的红绿灯。
对交通灯控制的实现主要是通过编写汇编语言程序对8255的I/O及8253进行控制,从而实现对灯的亮与灭进行控制。
PC口做输入,读取定时,及应急开关状态。
用8253对扬声器的发声进行控制,利用软件编程给定8253芯片某一频率的方波信号,并且设定8255芯片的门控信号PB0 =1,则可控制扬声器发声。
利用8253的计数器1方式3、计数器0方式0实现对扬声器的控制,以及对于交通灯亮灭时间的精确延时。
3.2 8086CPU介绍8086由执行部件和总线接口部件组成(内部结构图如下图)外部设备8086内部结构图1. 执行部件EU由算术逻辑单元(ALU)、标志寄存器、通用寄存器组和EU控制器等部件组成。
主要功能是执行指令:一般顺序执行,EU不断地从指令队列中取指令连续执行,而省去访问存储器取指令的时间。
需要访问存储器取操作数时,EU将访问地址送给BIU后,将要等待操作数到来后才能继续操作;遇到转移类指令时,要将指令队列中的后续指令作废,等待BIU重新从存储器取出目标地址中的指令代码进入指令队列后,EU才能继续执行指令。
微机交通灯课程设计一、课程目标知识目标:1. 让学生理解微机控制交通灯的基本原理,掌握交通灯系统的硬件组成和软件设计方法。
2. 使学生掌握交通灯系统的程序编写,了解定时器、中断等微机技术,并能运用到实际项目中。
3. 帮助学生了解城市交通信号灯的运行规则和优化方法,提高对智能交通系统的认识。
技能目标:1. 培养学生动手搭建微机交通灯硬件系统的能力,提高实践操作技能。
2. 培养学生运用编程软件进行交通灯程序设计的能力,提高编程技巧。
3. 培养学生分析交通灯系统运行过程中存在的问题,并提出优化方案的能力。
情感态度价值观目标:1. 培养学生对微机技术在交通领域的应用产生兴趣,激发学习积极性。
2. 培养学生的团队合作精神,学会在团队中相互协作、共同解决问题。
3. 培养学生的创新意识,鼓励学生勇于尝试,提高解决问题的能力。
课程性质:本课程为实践性较强的课程,旨在让学生在实际操作中掌握微机交通灯的设计与实现。
学生特点:学生具备一定的电子技术基础和编程能力,对微机控制感兴趣,但实践操作经验不足。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的动手能力和创新能力。
通过本课程的学习,使学生能够独立完成微机交通灯的设计与实现,为将来从事相关领域工作打下坚实基础。
二、教学内容1. 交通灯系统基础知识:- 交通灯系统的基本原理与功能- 交通灯系统的硬件组成:微控制器、信号灯、传感器等2. 微机交通灯硬件设计:- 硬件系统搭建:选择合适的微控制器、信号灯、传感器等组件,搭建硬件系统- 硬件电路原理:分析并理解各组件之间电路连接关系3. 交通灯程序设计:- 编程环境与工具:熟悉编程软件和开发工具的使用- 程序设计:学习定时器、中断等微机技术,编写交通灯控制程序4. 交通灯系统调试与优化:- 系统调试:测试并调试硬件与软件,确保系统正常运行- 系统优化:分析系统运行过程中存在的问题,提出并实施优化方案5. 教学内容的安排与进度:- 第一周:交通灯系统基础知识学习,明确课程目标与要求- 第二周:微机交通灯硬件设计与搭建,熟悉硬件系统组成- 第三周:交通灯程序设计,学习编程技巧,编写控制程序- 第四周:系统调试与优化,提高系统性能,巩固所学知识教材章节关联:本教学内容与教材中“微控制器应用与实践”章节相关,涉及微控制器的基础知识、硬件设计、编程技巧等方面,帮助学生将理论知识与实际应用相结合,提高实践能力。
二○一一~二○一二学年第二学期信息科学与工程学院课程设计报告书课程名称:微机原理课程设计班级:电子信息工程2009级 6 班学号:200904135150姓名:张强指导教师:徐守明二○一二年二月二十日十字路口交通灯控制系统设计一、摘要随着现代科学技术的进步,自动化控制技术越来越多地被运用到生产生活当中。
现代交通的发展,对自动化控制技术也提出了较高的要求,如何科学有效对交通流量进行管理,已成为一项社会课题。
在课程设计的背景下,本系统运用了8255和8253芯片,基于8086CPU实现了通过B口控制南北东西方向的红绿灯的循环点亮,实现了对交通流量的模拟协调调度。
另外,本系统还有手动测试功能。
关键词:交通灯;8255;8253;LED;模拟控制Keywords:traffic light;8253;8255;LED;analog control二、设计任务及要求利用“微机实验系统”的8255可编程接口的A口(PA7-PA0)、B口(PB7-PB0)、C口(PC7-PC0)控制发光二级管(红、绿灯)的L1-L8和开关KK1- KK2,使发光二级管按照十字路口交通灯的规律交替发光,模拟交通信号灯的工作。
●发光二级管(LED) 显示电路①8个LED L1-L8,4个红灯、4个绿灯②L=0 LED亮; L= LED灭●开关对交通灯的控制①开关KK2=0 红灯皆亮;开关KK2=1 绿灯皆亮②开关KK1=0 启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭)●交通灯亮灭规律参考②北方向绿灯亮、东西方向红灯亮20秒②南北方向红灯亮、东西方向绿灯亮20秒●适当地加一些额外功能重复上述过程注:20秒定时由8253控制三、总体设计思路北(红绿灯)东(红绿灯)西(红绿灯)南(红绿灯)说明:其中KK3用于管理开关KK1、KK2;分析题意,红绿灯可直接接在8255的A 、B 、C 任意一个口上,灯的亮灭可直接由8086输出0,1控制;开关用于控制红绿灯的工作状态,可以从A 、B 、C 任意一个口进行读进判断;八段数码管的倒计时显示部分的位码有74LS273进行输入,段码则是经过8255端口输出。
微机原理课程设计 8255控制交通灯微机原理课程设计-8255控制交通灯微机原理课程设计:8255模拟交通灯1、目的:自学8255采用方法,自学演示交通灯掌控的方法,自学双色灯的采用。
2、建议:掌控4个双色led灯(可以红肿,蓝,黄光),演示十字路口交通灯管理。
3、电路及连线pc0-pc3连dg1-dg4,pc4-pc7连dr1-dr4。
8255片选cs8255连138译码处210h。
4、说明(1)因为本实验就是演示交通灯掌控实验,所以必须先介绍实际交通灯的变化规律。
假设一个十字路口为东西南北走向。
初始状态0为东西红灯,南北红灯。
然后转状态1南北绿灯通车,东西红灯。
过一段时间转状态2,南北绿灯闪几次转亮黄灯,延时几秒,东西仍然红灯。
再转状态3,东西绿灯通车,南北红灯。
过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯。
最后循环至状态1。
(2)双色led就是由一个红色led管芯和一个绿色led管芯PCB在一起,公用负端。
当红色正端提高电平,绿色正端提低电平时,红灯暗;红色正端提低电平,绿色正端提高电平时,绿灯暗;两端都提高电平时,黄灯暗。
(3)74ls240为8输入输出的逆向驱动器。
5、顺利完成的任务(1)利用计算机和微机原理试验箱,将实验6的程序tlamp_88.asm在试验箱运行和调试。
全速运行,观察整体效果。
单步运行,观察程序每条语句额执行效果,理解语句含义。
(2)修正实验连线为,pc7-pc4连dg1-dg4,pc3-pc0连dr1-dr4。
8255片挑选cs8255连138译码处为210h孔。
将tlamp_88.asm另存为jiaotong.asm。
修正jiaotong.asm,同时实现交通灯旧有功能。
(3)修改实验连线为,pb7-pb4连dg1-dg4,pb3-pb0连dr1-dr4。
8255片选cs8255连138译码处210h孔。
将jiaotong.asm另存为jiaotong2.asm。
一、课程设计题目
交通灯控制
二、课程设计目的
●综合运用《微机原理与应用》课程知识,利用集成电路设计实
现一些中小规模电子电路或者完成一定功能的程序,以复习巩
固课堂所学的理论知识,提高程序设计能力及实现系统、绘制
系统电路图的能力,为实际应用奠定一定的基础。
●掌握8255A方式0的使用与编程方法
●PC机及配套的接口电路实验装置
●IC芯片:8255A应用和8253
三、课程设计内容
●采用8255A设计交通灯控制的接口方案
●采用8253设计延时电路
●插接电路
●编写控制程序
四、课程设计过程
1、设计原理
●8255
8255是Intel公司生产的可编程并行I/O接口芯片,有3
个8位并行I/O口。
具有3个通道3种工作方式的可编程
并行接口芯片(40引脚)。
其内部与引脚图如图所示:
8255有三个端口A、B、C端口,3种不同的工作方式,在其控制字的作用下使某一个端口工作于某一种工作状态下。
8253
intel8253是NMOS工艺制成的可编程计数器/定时器,其内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同,如图所示:
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立,采用减1计数方式。
控制字如图所示:
在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。
当计数脉冲是已知周期的时钟信号时,计数就成为定时。
各通道可有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。
在这里我们主要采用方式0:计数结
束产生中断(由低电平变为高电平)。
其波形图如图所示:
a. 写CW后:OUT=0,直到计数到0
b. 写N后:下1个CLK脉冲下降沿开始计数
c. 计数过程中,可重写N,重写N后,同b.
d. GATE的作用:GATE=1计数、=0暂停计数
e. 计数到0:OUT=1,直到再写CW或N
2、方案设计
考虑普通十字路口,交通灯的控制可分东西向和南北向两
组,每组可用红、黄、绿三个灯进行交通管理,所以本方
案要点是至少对六个交通灯进行控制。
由于灯光控制只需
要开、关两个状态,所以可以采用开关量实施控制。
开关
量的输出可以采用8255A的端口,由于开关量有6位,所
以采用8位端口,又因为灯光控制不需要联络信号,所以
按照方式0输出即可。
由于题目要求时间的控制精确,所
以我们在这里运用8253芯片定时控制。
首先我们确定使
用8255端口A与交通灯的连接方式,如下表所示(假定
发光状态为高电平有效):
由上表可知状态变换流程为:
其中状态1和4持续30秒,其它状态持续0.5秒;又状态2各状态3,状态5和状态6之间各循环5次。
整个控制过程,要按照上面的流程,依次把相应的控制码输出到8255的端口A,时间由8253定时控制,6个交通灯就能够按照要求实现交通管理了。
3、电路插接
4、编程与运行
data segment
out_code db 14h,5dup(12h,10h),41h,5dup(21h,01h),0
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
mov ds,ax
mov dx,307h ;8255控制端口地址
mov al,80h ;1000 0000 8255端口A工作于0方式下
out dx,al
mov dx,304h ;8255端口A地址
loop0: lea si,out_code
loop1: mov al,[si]
and al,al ;al=al
jz loop0 ;al=0,zf=1,跳转到loop0
out dx,al
inc si
test al,44h ;al和44h相与的结果去影响标志位ZF
jz l1
delay 10,00 ;编译的时候,这里有点问题。
delay macro a,b
push dx
push ax
mov dx,383h ;8253控制端口地址
mov al,31h ;0011 0001 8253工作于计数器0的工作方
式0下的BCD计数,先写低字后写高字。
out dx,al
mov dx,380h ;选中8253计数器0,然后向其内依次写
入数据。
mov al,b
out dx,al
mov ah,a
out dx,al
pop ax
pop dx
endm
l1: nop
nop
nop
nop
mov ah,0bh ;检测键盘有无输入
int 21h
and al,al ;al=al
jz loop1
xor al,al ;关灯
out dx,al
mov ah,4ch
int 21h
code ends
end start
五、课程设计小结
交通灯是一个很熟悉的课题,因为在数电的课程设计的时候研究过类似的问题,不过那是一些相关芯片来完成的。
当然,本次课程有它自己的独特之处,我个人认为那就是他的灵便性,因为只需要改一些相关程序就可以使其工作在不同的状态下,也许这里体现了寻么一点点的循环利用,当然了这有点牵强。
怎么说呢?
通过本次课程设计,加深了对书本相关知识点的了解的同时,也还有很多疑惑的地方。
比如说在8253定时结束,是如何返回程序的,这一点还不是完全了解,也就是说中断这块还有待理解提高。
前面提到的了数电的课设,所以在做这个课设的时候也曾尝试过用555定时器来做定时功能,不过后来想了想它的精准度和稳定性不是很高。
还有就是在程序中,用到了汇编的宏,有些地方查了蛮多资料还是不很完全理解。
在课设中我用到的石英振荡器构成的时钟发生电路,主要是想为后来用单片机来设计交通灯的时钟模块提前预习下。
当然了,我们现在所知道的也仅仅只是皮毛而已,还有很多的地方值得我们去深研。