硬件课程设计实践报告顺序控制系统设计学院:班级:姓名:学号:小组成员:指导老师:目录一.设计任务与要求 (3)1.1设计任务 (3)1.2要求 (3)二.总体设计与说明 (4)三.硬件框图与说明 (4)3.1设备器材 (4)3.2 8255原理及接线图 (4)3.3 8253原理及接线图 (8)四.电路原理图 (10)五软件主要模块流程图 (12)六源程序清单与注释……………………………………………………错误!未定义书签。
七问题分析与解决方案…………………………………………………….错误!未定义书签。
5八结论与体会 (16)8.1 实验现象 (16)8.1. 1 LED灯顺序亮起显示 (16)8.1.2 LED灯出现故障显示 (18)8.2 实验体会…………………………………………………..………… .20九参考资料 (20)一、设计任务与要求1.1设计任务顺序控制系统顺序控制系统是一种按照一定顺序实现的微机系统,它是实现大型机组自动化,保证安全经济运行的重要措施。
在影响系统完好率和投入率的诸多因素中,合理划分设计界面及人-机界面的设计是两个最重要的因素。
顺序控制是自动控制领域中最基本应用又最广泛的一个方面,进入21世纪以来,它发展的非常迅速,在多个行业都有应用,备受人们的青睐。
随着社会经济的发展和科学技术水平的提高,顺序控制在社会日常生活中的作用越来越受到人们的重视,经过前一阶段的学习和认识,我们做出了一个简单的顺序控制系统,用来模拟一些机器生产等,以及生产过程中出现安全隐患的排查情况等。
我们学习了微机原理与接口技术这门课程,课上我们学到了一些计算机硬件工作的基本原理,汇编语言程序设计方法,微型计算机接口技术,建立微型计算机系统的整体概念,初步形成微机系统软硬件开发的能力,我们决定通过这次大作业来指导督促自己的学习,培养学习的兴趣,使我们的学习更有针对性。
根据课程设计的要求,我们用微机原理与接口实验仪来模拟机器的工作过程,用到了8253、8255、LED灯、开关等等,利用这些器件的工作原理可以模仿正常工作等一系列过程。
在实现运行的过程中,我们利用汇编语言,利用上述几种芯片,增加对计算机硬件系统的了解和熟悉,培养创新能力和动手能力。
1.2 要求:当电路正常时,整个电路中的灯顺序亮起,当遇到故障时,使灯顺序熄灭。
二、总体方案与说明(1)8253用于对整个过程计时;(2)通过对8255A编程初始化,使8253和灯连接,控制灯的亮与灭;(3)将开关作为故障指示,开关闭合表示电路正常,LED灯能够顺序亮起,而在灯顺序亮起的过程中,当开关断开时,即表示电路出现故障,此时灯将顺序的熄灭。
三、硬件框图与说明3.1 设备器材(1)一台台式电脑用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱一台此设备能提供8253、8255、数码管等必要芯片。
并且能通过接受PC机传来的信息,显示出相应的功能。
以支持LED规则显示的实现。
(3)导线若干条用于电路和芯片之间的连接。
3.2 8255原理及接线图8255的基本工作原理8255A是Intel公司为其80系列微处理器生产的通用可编程并行输入输出接口芯片,也可以与其他系列的微处理器配套使用。
由于其通用性强,与微机接口方便,且可通过程序指定完成各种输入输出操作,因此,8255获得了广泛的应用。
它是具有3个8位的并行I/O端口,具有三种工作方式,被广泛地使用于单片机的并行I/O端口。
工作方式0:基本输入输出方式工作方式1:选通输入输出方式工作方式2:双向传送方式8255引脚功能说明:RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
PA0~PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。
D0~D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送8255A的工作方式与控制字8255A的工作方式8255A在使用前要先写入一个工作方式控制字,以指定A、B、C三个端口各自的工作方式。
8255A共有三种工作方式:方式0——基本输入输出方式,即无须联络就可以直接进行8255A与外设之间的数据输入或输出操作。
A口、B口、C口的高四位和低四位均可设置为方式0。
方式1——选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口的部分I/O线提供联络信号。
只有A口和B口可工作在方式1。
方式2——选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。
此种方式下需要C口的部分I/O线提供联络信号。
有关8255A三种工作方式的功能及应用的详细介绍见下一节。
8255A的控制字(1)工作方式选择控制字8255A的工作方式可由CPU写一个工作方式选择控制字到8255A的控制寄存器来选择。
控制字的格式,可以分别选择端口A、端口B和端口C上下两部分的工作方式。
端口A有方式0、方式1和方式2共三种工作方式,端口B只能工作在方式0和方式1,而端口C仅工作在方式0。
注意:在端口A工作在方式1或方式2,端口B工作在方式1时,C口部分I/O 线被定义为8255A与外设之间进行数据传送的联络信号线,此时,C口剩下的I/O 线仍工作在方式0,是输入还是输出则由工作方式控制字的D0和D3位决定。
(2)C口按位置位/复位控制字8255A的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255A 的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。
应注意的是,C口的按位置位/复位控制字必须跟在方式选择控制字之后写入控制字寄存器,即使仅使用该功能,也应先选送一个方式控制字。
方式选择控制字只需写入一次,之后就可多次使用C口按位置位/复位控制字对C口的某些位进行置1或清0操作。
8255A引脚及功能示意图8255A 内部结构框图8255A 引脚及功能示意图A 组B 组(a )引脚(b ) 功能示意图8255A 内部结构框图PA 7~ PA 0PC 7~ PC 4PC 3~ PC 0PB 7~ PB 03.3 8253原理及接线图8253是NMOS工艺制成的可编程计数器/定时器,有几种芯片型号,外形引脚及功能都是兼容的,只是工作的最高计数速率有所差异,例如8253(2.6MHz),8253-5(5MHz)8253内部有三个计数器,分别成为计数器0、计数器1和计数器2,他们的机构完全相同。
每个计数器的输入和输出都决定于设置在控制寄存器中的控制字,互相之间工作完全独立。
每个计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。
每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。
执行部件实际上是一个16位的减法计数器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通过程序设置的。
输出锁存器的值是通过程序设置的。
输出锁存器OL用来锁存计数执行部件CE的内容,从而使CPU 可以对此进行读操作。
顺便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器来用8253在方式2时有它自己的工作的特点。
对某一计数通道写入控制字,选定工作方式2时,OUT端输出高电平。
如果GATE为高电平,则在写入计数值后的下一个时钟脉冲时,将计数值装入执行部件.此后,计数器随着时钟脉冲的输入而递减计数.当计数值减为1时, OUT端由高电平变为低电平,待计数器的值减为0时, OUT端引脚又回到高电平, 与此同时,还将计数初值重新装入计数器,开始一个新的计数过程,并由些周而复始地计数.如果装入计数器的初值为n,那么在OUT引脚上,每隔n个周期就产生一个负脉冲,其宽度与时钟脉冲的周期相同,频率为输入时钟脉冲频率的n分之一.所以,这实际上是一种分频工作方式。
在操作过程中,任何时候都可由CPU重新写入新的计数值,它不会影响当前计数过程的进行.比如说,原来的计数值N=4,在计数过程中计数值回零前,又写入新的计数值N=3,8253仍按N=4进行计数.当计数值减为0时,一个计数周期结束,8253将按新写入的计数值N=3进行计数.当需要产生连续的负脉冲序列信号时,可使8253工作于方式2.在本实验当中,就是让0通道工作在方式2下.通道0的工作在实验中起到的作用是在OUT1端输出一个比较合适的时钟频率,然后用通道1进行时间的控制。
通道1在控制灯闪烁的时候采用的工作方式是方式3,这样可以让8255的A端口检测到输出端的方波信号。
对于方式3来说,它的工作方式与方式2有着很多相似的地方,然而,又不能等同.因为它们各自有着不同的特点.使用的时候就要加以区别。
我们可以从输出的波形上看出它们的一些不同之处。
因为方式3输出的不是序列负脉冲,而是对称的方波或基本对称的矩形波.当然,无论是方式2,还是方式3,都要将GATE端置为高电平才可实现它的功能。
8253有一些它的特点。
如果写入计数器的初值为偶数,则当8253进行计数时,每输入一个时钟脉冲,均使计数值减2。
计数值减为0时,OUT输出引脚由高电平变成低电平,同时自动重新装入计数初值,继续进行计数。
当计数值减为0时,OUT引脚又回到高电平,同时再一次将计数初值装入计数器,开始下一轮循环计数;如果写入的计数初值为奇数,则当输出端OUT为高电平时,第一个时钟脉冲使计数器减1,以后每来一个时钟脉冲,都使计数器减2,当计数值减为0时,输出端OUT由高电平变成低电平,同时重新装入计数初值,继续进行计数。
这时第一个时钟脉冲使计数器减3,以后每个时钟脉冲都使计数器减2,计数值减为0时,OUT引脚又回到高电平,并重新装入计数初值后,开始下一轮循环计数。