




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 设计课题要求1.1 设计目的随着社会经济的发展,城市交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。交通灯控制系统是用于城市交通信号灯控制与交通疏导的计算机综合管理系统,它是现代城市交通监控指挥系统中最重要的组成部分。随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的问题。通过本实验:掌握交通信号灯实时控制系统的设计思想与实现方法。掌握定时/计时器和并行接口在实时控制系统中的应用。 加深对定时/计时器和并行接口芯片的工作方式和编程方法的了解。1.2 设计任务设计制作一个交通信号灯实时控制系统。要求:在一个十字路口的一条主干道和一条支干道上分别装一套红,黄,绿3种信号灯;用钮开关模拟十字路口的车辆检测传感器信号。在一般情况下,主干道上的绿灯常亮,而支干道上总是红灯。当检测到支干道上来车时(用按键开关模拟),主干道的绿灯转为黄,持续4秒后,又变成红灯,同时支干道由红灯变为绿灯。支干道绿灯亮后,或者检测到主干道上来了3辆车(用3个钮子开关模拟),或者虽未来3辆车,但绿灯已持续了25秒,则支干道立即变为黄灯,4秒后转为红灯,同时主干道由红灯变为绿灯。1.3 实验设备器材80X86系列微机一台。微机硬件实验平台。定时/计时器和并行接口芯片。按键开关1个(单脉冲源),钮子开关(高低电平开关)3个及红,黄,绿发光二极管(即实验平台上的三色显示灯)。 第二章 总体设计方案及其流程图 2.1 基本工作原理 根据实验任务要求,在本实验系统中,微机需要检测4个开关送来的主,支干道车辆到达信号,并按一定的条件发出主,支干道6个信号灯的控制信号。显然,用一片8255A足以满足上述要求。对8255A 各端口不妨作如下安排:令端口B 工作于方式0的无条件数据输出方式,用以控制交通灯的亮灭;端口C工作于方式0的输入方式,一方面当支干道上有车来时(用pc1,pc2,pc3,pc4控制),控制主,支干道交通灯变换状态。另一方面pc7用来检测8253A是否已经产生了1秒的脉冲,用来控制相应的程序。有关定时/计时器的功能,可以采用8253计时/定时器结合中断服务程序计数的方法来实现。可设想用8253来产生秒时钟信号,为此可以设置8253的定时器0工作方式3(方波方式),定时器2工作于方式2(分频方式),并将定时器0的输出端接到定时器1的时钟端T4。这样,就可以做到让定时器0每隔10ms向定时器1发出一个计数脉冲,而当定时器1计满100个数时,向主机发出一次中断请求信号,于是就实现了每隔1s发出一次中断请求的功能。然后在时钟中断服务程序中对秒信号作相应的计数。(通道0接10KHZ的方波脉冲源)。 对于LED灯只要给予各灯高电平就能实现各灯的正常工作(亮)。 2.2硬件的总计设计 2.2.1硬件电路设计 各芯片主要管脚的功能如下: 8255A: PB0:表示主干道红灯信号,其中1表示亮, PB1:表示支干道红灯信号,其中1表示亮 PB2:表示主干道黄灯信号,其中1表示亮 PB3:表示支干道黄灯信号,其中1表示亮 PB4:表示主干道绿灯信号,其中1表示亮 PB5:表示支干道绿灯信号,其中1表示亮 PC0PC3:用来模拟支道上车的信号 PC7:做标志信号,1表示计数器已经产生了一秒的脉冲 8253A: 定时器0:输入接在T4,工作在方式3,计数初值为1000 OUT0和PC0相与得到黄灯信号。 定时器2:输入信号为OUT0,工作在方式2,计数初值为100。 2.2.2 所用到的芯片及其各自功能说明 2.2.2.1 8255的功能简介 8255A是Intel系列的并行接口芯片。由于它是可编程的,可以通过软件来设置芯片的工作方式,所以,用8255A连接外部设备时,通常不需要再附加外部电路,给使用到来很大的方便。8255A有三个8位数据端口,即端口A、端口B、端口C 。设计人员可以用软件使它们分别作为输入端口或输出端口。8255A可以通过指令在控制端口中设置控制字来决定它的工作。控制字分为两类: 1、 各端口的方式选择控制字:它可以使8255A的3个数据端口工作在不同的工作方式。方式选择控制字总是将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。(图2.1)图2.12、C端口按位置1置0控制字:它可以使C端口中的任何一位进行置位或复位。第7位称为标识位,方式选择控制字的第7位总是1;而端口C置1置0控制字的第7位总是0。8255A的三种工作方式:方式0:基本的输入输出方式方式1:选通的输入输出方式方式2:双向传输方式 端口A可以工作在3种工作方式中的任何一种,端口B只能工作在方式0或方式1,端口C则常常配合端口A和端口B工作,为这两个端口的输入输出传输提供控制信号和状态信号。 归为同一组的两个端口可以分别工作在输入方式和输出方式,并不要求同为输入方式或同为输出方式。而一个端口具体到底作为输入端口还是输出端口,这也由方式选择控制字来决定。 2.2.2.2 8253A的功能简介 Intel 8253是一种具有计数和定时的芯片,被称为可编程间隔定时器。8253内部具有3个独立的16位计数器通道(分别为通道0,1,2),通过对它进行编程,每个计数器通道均可按6种不同的方式工作,并且都可以按2进制或十进制格式进行技术,最高计数频率能达到2Mhz。8253A可以通过指令在控制端口中设置控制字来决定它的工作。(图2.2)D7 D6 D5 D4 D3 D2 D1 D0 SC1SC0RW1RW0M2M1M0BCD00 计数器0 00 计数器锁存读命令 000 方式0 D0=0 按二进制格式计数01 计数器1 01 只读/写低字节 001 方式1 D0=1按BCD码格式计数10 计数器2 10 只读/写高字节 *10 方式211 非法 11 先读/写低字节 *11 方式3 ,后读/写高字节 100 方式4 101 方式5 图2.28253A有6种工作方式:1. 方式0:计数结束则中断 当将某计数器设置成方式0后,其输出OUT变低电平,装入初值后,仍保持低电平。门控为高电平开始计数。每来一个计数脉冲CLK,计数器的值减1,当计数到达终点即计数器的值变成0时,OUT变为高电平。在计数期间可用门控信号暂停计数(即门控为低电平时,计数暂停)。出端OUT由低变高可以用来作为中断请求信号(正是由于这种作用,许多教材中称方式0为完成计数时中断),也可作为查询信号,也可直接去控制某个操作,如让某个开关动作。 2.方式1:单脉冲发生器 即可编程单脉冲发生器所谓单稳,是指这样的电路,它有两种状态,但只能稳定在一种状态。在一定的外界作用下,它能从这一种状态进入到另一种状态,但经过一定时间后,又自动恢复到原来的状态。 3.方式2:速率波发生器 方式2用来对输入脉冲(即计数脉冲CLK)N分频(N为预置的初值),在输出信号周期中低电平的时间为一个CLK周期。 设置此方式后,OUT变高电平,装入初值后便自动开始计数,减到1时OUT变低电平。经过一个CLK周期,OUT恢复高电平,且计数器又自动装入初值,重新开始计数。如此循环下去。若GATE变低电平将禁止计数,并使输出为高电平。在GATE再次变高电平时,计数器将重新装入预置的初值,并开始计数。 4.方式3:方波发生器方式3类似于方式2,输出是周期性的。不同的是方式3输出方波。如果预置的初值N为偶数,则输出周期中高电平和低电平的宽度相等;如果N为奇数,则输出周期中高电平比低电平多一个CLK周期的时间,当N相当大时,也可认为是方波。当然,一般采用方式3时,置初值为偶数。设置成方式3后,OUT变高电平,装入初值后便自动开始计数。如初值为偶数,每个CLK使计数器减2,计到终点改变电平。如初值为奇数,则输出为高电平时第一个CLK使计数器减1,随后每个CLK使计数器减2;输出为低电平时第一个CLK使计数器减3,随后每个CLK使计数器减2。每当计数到终点都会改变电平,初值又被重新装入,并开始计数。如此循环下去, 5.方式4:软件触发方式计数 设置成方式4后,OUT变高电平,写入计数值后自动开始计数(所以称之为软件触发),计数到终点输出一个CLK周期的低电平脉冲。GATE变低可暂停计数,用GATE的上升沿可重新赋初值,并开始计数。 6.方式5:硬件触发方式计数设置成该方式后,OUT变高电平,写入计数值后需等待GATE上升沿的到来才开始计数(所以称之为硬件触发)。计数到终点也输出一个CLK周期的低电平脉冲。计数过程中不受GATE电平的影响。此后,用GATE的上升沿可重新赋初值,并开始计数。 2.2.3 硬件框图根据上面的分析可得下列硬件部分的流程框图(图2.3)微机扩展总线8255 PBPC7 PC1 PC2 PC3 PC48253 CLK0 OUT0 CLK2OUT2译 码电 路分 频电 路发光二极管开关状态信号T4图2.32.3 软件总体设计根据上面分析可得下列的软件流程图,主程序流程图如图2.4,第三章 典型程序模块及典型编程技巧分析 3.1 计数模块 为了实现本次设计要求的秒计数功能,软件编程8253A的定时器0工作方式3(方波方式),定时器1工作于方式0(分频方式),并将定时器0的输出端接到定时器1的时钟端。这样,就可以做到让定时器0每隔10ms向定时器1发出一个计数脉冲,而当定时器1计满100个数时,会产生一个高电平信号,用8255A的一个端口来检测这个信号,每隔1秒跳转到子程序实现倒计时每次减一运算,然后送显示。具体程序如下: ;定时器0 工作方式3(方波方式) 10ms mov dx,223h mov al,16h ;控制字 out dx,al mov dx,210h mov al,64h out dx,al ;定时器2 工作方式2(分频方式) 100个数 mov dx,223h mov al,54h ;控制字 out dx,al mov dx,221h mov al,00001010b out dx,al 3.2 倒计时模块 不管是支道还是主道上的黄灯闪烁4秒后必将变成绿灯或者是红灯,建一个DATA1存放字模,实现用数码管显示剩余时间。首先让BX指向DATA1首地址,将计数器中当前DL中的值赋给AL,通过检测8255A的pc7端口是否有高电平,检测到后进行减一然后在DATA1中找出相应的字模进行显示。 第四章 设计中存在的问题设计中具体出现的问题有:起初设置时将8255A的片选基地址粗心的弄错,B端口的片选基地址应为:0FF29H,C端口的片选基地址应为:0FF2AH.在设置红绿黄灯的亮灭时,实际程序是从PB0-PB7顺序来的,而我们设置时去想像成PB7,PB6PB0来的,所以在刚开始实验时总是感觉灯的亮灭有些颠倒次序.实验中曾出现了运行到红绿灯的第2个转换状态时,此时由于有绿灯到红灯之间的切换需要调用黄灯闪的子程序,实验箱上从此处开始会一直在黄灯子程序的状态之间变换显示.刚开始我们一直在查找是不是黄灯子程序在返回跳转上有问题,但是经过反复修改还是不行,最终发现是: MOV AL,10000111B OUT DX,AL CALL DISP MOV DX,IOCPT (此处起先未设置,应设置,因为这是调用的黄灯子程序,而他是由B口控制的和红绿灯的C口不是同一个状态口,既调用黄闪子程序时DX中的值被重新写入了,所以在重新使用C端口命令时要调用这一命令语句,将C口的地址重新写入,才可正确运行下去。) MOV AL,00101101B 第五章 源程序 CODE SEGMENT ASSUME CS:CODE ORG 11A0H START: CALL FORMAT CALL DISP MOV DX,43H MOV AL,00110111B ;写8253控制字 OUT DX,AL MOV DX,40H ;通道0 工作方式3(方波方式) MOV AL,00H ;初值设置(设为1000) OUT DX,AL MOV AL,10H OUT DX,AL MOV DX,43H ;通道2 工作方式0(分频方式) MOV AL,10110001B ;控制字 OUT DX,AL MOV DX,0FF2BH ;初始化8255,设置各端口工作模式 MOV AL,10011001B ;控制字 OUT DX,AL GOON: CALL DISP MOV DX,0FF29H ;从8255的b端口送出红绿灯信号 MOV AL,00010010B ;主绿支红 OUT DX,AL JUDGE1: MOV DX,0FF2AH ;支干道有车吗 IN AL,DX TEST AL,01H ;pc0开关 JNZ LED1 JMP GOON JUDGE2: MOV DX,0FF2AH ;主干道有3辆车吗? IN AL,DX AND AL,00001110B ;pc1,pc2,pc3 CMP AL,00001110B JZ GOON LED1: MOV DX,0FF29H ;送主干道黄灯,支干道红灯数据 MOV AL,00000110B ;主黄支红 OUT DX,AL MOV BYTE PTR DS:0701H,04 ;初始化倒计时秒数 MOV AL,DS:0701H CALL CONVERS ;转换 CALL DISP ;显示 P0: MOV DX,42H MOV AL,00H OUT DX,AL MOV AL,01H OUT DX,AL ;检测8253是否有1 P1: MOV DX, 0FF2AH ;8255A的C端口(输入,检查是否1秒到) IN AL,DX TEST AL,10000000B ;pc7 JZ P1 DEC BYTE PTR DS:0701H JZ LED2 MOV AL,DS:0701H CALL CONVERS CALL DISP JMP P0 LED2: MOV DX,0FF29H MOV AL,00100001B ;主红支绿 OUT DX,AL ;25秒倒计时 MOV BYTE PTR DS:0702H,25 MOV AL,DS:0702H CALL CONVERS CALL DISP P3: MOV DX,42H MOV AL,00H OUT DX,AL MOV AL,01H OUT DX,AL JUDGE4: MOV DX,0FF2AH ;主干道有3辆车吗? IN AL,DX AND AL,00001110B ;1,2,3 CMP AL,00001110B JZ LED3 MOV DX, 0FF2AH ;c IN AL,DX TEST AL,10000000B ;pc7 JZ JUDGE4 DEC BYTE PTR DS:0702H JZ LED3 MOV AL,DS:0702H CALL CONVERS CALL DISP JMP P3 H1: MOV BX,0 MOV WORD PTR DS:BX+077AH,0000H CALL DISP JMP GOON LED3: MOV DX,0FF29H ;送主干道红灯,支干道黄灯数据 MOV AL,00001001B ;主红支黄 OUT DX,AL MOV BYTE PTR DS:0701H,04D MOV AL,DS:0701H CALL CONVERS CALL DISP P5: MOV DX,42H MOV AL,00H OUT DX,AL MOV AL,01H OUT DX,AL P6: MOV DX, 0FF2AH ;c IN AL,DX TEST AL,10000000B ;pc7 JZ P6 DEC BYTE PTR DS:0701H JZ H1 MOV AL,DS:0701H CALL CONVERS CALL DISP JMP P5 RET CONVERS: MOV CL,10D MOV AH,0 DIV CL MOV BX,077AH MOV DS:BX,AH INC BX MOV DS:BX,AL RET ;显示模块 DISP: MOV CX,0FFH DISP2: PUSH CX MOV DX,077BH MOV AH,02H DISP0: MOV CX,00FFH MOV BX,DX MOV BL,DS:BX MOV BH,0H PUSH DX MOV DX,0FF22H MOV AL,CS:DATA1BX OUT DX,AL MOV DX,0FF21H MOV AL,AH OUT DX,AL DISP1: LOOP DISP1 POP DX DEC DX SHR AH,01H JNZ DISP0 MOV DX,0FF22H MOV AL,0FFH OUT DX,AL POP CX DEC CX JNZ DISP2 RET DATA1 DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH DB 0FFH,0CH,89H,0DEH,0C7H,8CH,0F3H,0BFH DB 90H,0A3H,0A1H,86H,8FH FORMAT: MOV BX,0 MOV WORD PTR DS:BX+077AH,0000H ADD BX,2 MOV WORD PTR DS:BX+077AH,0000H ADD BX,2 MOV WORD PTR DS:BX+077AH,0000H RET CODE ENDS END START 第六章 心得体会 微机原理与接口技术是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时又要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所以,在循序渐进的课堂教学过程中,我总是处于“学会了一些新知识,弄清了一些原来保留的问题,又出现了一些新问题”的循环中,直到课程结束时,才把保留的问题基本搞清楚。 学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。这次实验并不是很难,主要的困难来自对程序的理解以及对中断的使用。功夫不负有心人,经过合作和努力,我们最后对实验的原理有了清晰的认识。虽然很多模块单元没有用到,但是就系统功能来说,我觉得我们做的还是不错的。 虽然程序在编写时有一些参
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025内蒙古通辽市开鲁县卫生健康系统招聘卫生专业技术人员15人模拟试卷附答案详解(考试直接用)
- 2025湖南湘潭市湘潭县云龙中学名优教师招聘5人模拟试卷及一套参考答案详解
- 2025年台州天台县医疗卫生事业单位公开招聘卫技人员31人考前自测高频考点模拟试题及答案详解(新)
- 2025广东广州市横沥人力资源管理服务有限公司招聘服务外包人员1人模拟试卷附答案详解(完整版)
- 2025湖南衡阳市衡南县社会保险服务中心公益性岗位招聘4人模拟试卷附答案详解(模拟题)
- 2025江西吉安市吉水县吉瑞招商运营有限公司招聘1人考前自测高频考点模拟试题附答案详解
- 2025福建莆田市秀屿区上塘珠宝城实业有限公司招聘编外工作人员1人模拟试卷及一套完整答案详解
- 2025江苏南京交通职业技术学院招聘12人考前自测高频考点模拟试题完整答案详解
- 2025年安庆桐城市安徽安桐城乡发展集团有限公司招聘17人模拟试卷及答案详解(新)
- 2025江西中小学教师招聘考试南昌考区模拟试卷附答案详解(考试直接用)
- 《系统工程与决策分析》全册配套课件
- DL∕T 2033-2019 火电厂用高压变频器功率单元试验方法
- 高中数学-斐波那契数列与黄金分割教学设计
- 数据驱动的教育决策
- 农作物植保员职业技能竞赛题库及答案
- 糖尿病胰岛素泵的护理查房课件
- T梁湿接缝及横隔梁施工方案
- (完整)易制毒化学品使用管理责任书
- 石群邱关源电路课件(第8至16单元)白底
- 个人增资入股合同
- 外科学(1)智慧树知到答案章节测试2023年温州医科大学
评论
0/150
提交评论