




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥学院电子信息与电气工程系微型计算机原理与接口技术课程设计报告20122013学年第一学期课程 微型计算机原理与接口技术 课程设计名称流水线的工件计数报警学生姓名张利学号1005071023专业班级通信(1)班指导教师1、题义分析及解决方案1.1、课程设计名称及内容:用STAR ES598PCI单板开发机,设计一款流水线的工件计数报警设计要求:8086系统中应用8253的通道0来对流水线的工件计数,当计满500个从OUT0端产生一个高电平中断请求信号。CPU响应中断就使通道1的OUT1端产生频率为1000Hz的方波推动扬声器发声,时间为5s,GATE1通过I/O端口接到DB总线D0位地址为88H,8253各端口的地址为80-86H,CLK1接2MHz信号,Delay为延时程序,中断类型码为N 1.2、题意需求分析根据本设计给定的内容和要求,分析得出初步的设计思路:本设计中需要用到的主要有两种芯片(8253和8259A),一种用来计数并产生中断,另一种则用来对中断信号做出响应,并驱动扬声器。其中最核心的是实现计数和响应中断。这里我们考虑到要用到可编程计数器8253的方式0和方式1,8253中方式0时一次中断计数,方式1是可编程触发器,我们用方式的OUT0的输出高电平来触发中断。中断服务程序用方式3产生1000Hz的方波。由于8253的方式0只是实现一次计数,如果不重新装入初值就不会再次触发,所以要实现循环只需要每次都循环装入初值就可以了。1.3、解决问题的思路及方法1.3.1、硬件部分:2.1.2 8253A的功能分析8253A是一种可编程的定时器/计数器芯片,它可用于计数、分频、定时器等的方面。8253的主要性能为:内有三个独立的16位计数器,最大计数范围为065535;工作方式可编程控制,可编程6种不同的工作方式;所有输入和输出都与TTL兼容。计数脉冲频率为0MHZ-2.6MHZ,可以按二进制或BCD码计数,使用单一+5V电源2.1.3 8253的内部结构8253的内部结构如图一所示,由数据总线缓冲器、控制寄存器、读/写控制逻辑和计数器等部分组成。 图一(1)、数据总线缓冲器:三态,双向的8位缓冲器,用于将8253与系统数据总线连接。CPU执行I/O指令时,缓冲器发送或者接收数据,用于写入8253控制字,装入计数初值或读出当前计数值。(2)、读/写逻辑:决定三个计数器和控制字寄存器中哪一个能进行工作,并控制内部总线上数据传送的方向。 CS片选信号:低电平有效(此时CPU才能对 8253进行读写操作),由地址总线经I/O端口译码电路产生。 RD读信号:低电平有效,表示CPU正在读取所选定的计数器通道中的内容。 WR写信号:低电平有效,此时表示CPU正在将计数初值写入所选中的计数通道中或将控制字写入控制寄存器中。 A1A0端口选择信号:8253内部有3个计数器通道和一个控制寄存器端口。A1A0=00,01,10表示分别选中计数器通道0,1,2,当A1A0=11时选中控制寄存器端口。(3)、控制寄存器:接收从CPU来的控制字,并由控制字的D7、D6位的编码决定该控制字写入哪个计数器的控制寄存器,控制寄存器只能写入,不能读出。 (4)、计数器0-2:当8253用作计数器时,加在CLK引脚上脉冲的间隔可以是不相等的;当它用作定时器时,则在CLK引脚应输入精确的时钟脉冲,8253所能实现的定时时间,取决于计数脉冲的频率和计数器的初值,即:定时时间=时钟脉冲周期Tc预置的计数初值n。对8253来讲,外部输入到CLK引脚上的时钟脉冲频率不能大于2MHZ,否则需分频后才能送到CLK端。2.1.4 8253内部引脚功能8253是一片具有3个独立通道的16位计数器/定时器芯片,使用单一+5V电源,24引脚双列直插式封装,如图二所示。图二2.1.4.1、与CPU的接口信号(1)D0D7三态双向数据线。与CPU数据总线相连,用于传递CPU与8253之间的数据信息、控制信息和状态信息; (2)CS片选信号(Chip Select),输入,低电平有效; (3)WR写信号,输入,低电平有效,用于控制CPU对8253的写操作,可与A1,A0信号配合以决定是写入控制字还是计数初值; (4)RD读信号,输入,低电平有效。用于控制CPU对8253的读操作,可与A1,A0信号配合读取某个计数器的当前计数值; (5)A0,A1地址输入线。用于8253内部寻址的4个端口,即3个计数器和一个控制字寄存器。一般与CPU低位的地址线相连。 2.1.4.2、与外部设备的接口信号(1)CLK0(CLK1,CLK2)时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。CLK可以是系统时钟脉冲,也可以是由其他脉冲源提供。8253规定加在CLK引脚的输入时钟周期不得小于380ns; (2)GATE0(GATE1,GATE2)门控输入端,用于外部控制计数器的启动或停止计数的操作。当GATE为高电平时,允许计数器工作,当GATE为低电平时,禁止计数器工作; (3)OUT0(OUT1,OUT2)计数输出端。在不同工作方式中,当计数器计数到0时,OUT引脚上必输出相应的信号。 2.1.5 8253的工作方式方式0计数结束中断方式 (Interrupt on Terminal Count)方式1 可编程的单稳态触发器(Programmable One Short)方式2-比率发生器、分频器 (Rate Generator) 方式2用门控信达到同步计数的目的。方式3-方波发生器 (Square Wave Generator)方式3的工作过程同方式2,只是输出的脉宽不同。方式4 软件触发选通方式 (Software Triggered Strobe) 用方式4工作时,GATE门控信号只是用来允许或不允许定时操作的,定时的执行过程由装入的初值决定。方式5 硬件触发选通方式 (Hardware Triggered Strobe)方式5为硬件触发选通方式,完全由GATE端引入的触发信号控制定时和计数。2.1.6 8253芯片可编程外围信号状态表表32.1.7 所选用8253的工作方式本实验要求产生频率初值,并且根据步进值来调节频率和占空比,这样我们想到了8253的工作方式0,每次都装入初值。而要调节占空比的时候要考虑到高电平的输入,这样在周期固定的情况下就必须使用方式1,可编程触发器,即可编程单稳态触发器,此时GATE具有控制装入的功能。下面我就介绍一下这两种工作方式的原理以及时序图。(1) 首先是方式0-计数结束产生中断在这种工作方式下,当GATE为1时,写入控制字和计数值后,需要一个CLK脉冲周期计数初值才能被送到计数器减一部件。OUT是在写入控制字后变成低电平,直到计数器减到0才变成高电平。OUT端输出信号可以作为中断请求信号。计数器在外部时钟作用下,每个时钟周期减一。当GATE为0时,每次写入数值可以获得一个负脉冲,计数停止。 图1.5.1 正常计数图1.5.2GATE信号的作用图1.5.3方式2时计数过程中改变计数值(2)、方式1-可编程触发器在这种工作方式下,写入控制字和计数初值后,计数开始是以GATE的上升沿触发。之后,OUT输出低电平,次低电平一直维持到计数器减到0。这样就可以从OUT输出一个负脉冲,该负脉冲由GATE上升沿之后的下一个CLK脉冲的下降沿开始,负脉冲的宽带为计数值乘时钟脉冲时间长度。若想再次获得同样宽度的负脉冲,只要GATE上升沿再触发一次即可。可见,这种方式下,装入计数值后可以多次触发。 图1.5.4 正常计数 图1.5.5 GATE信号的作用 图1.5.6改变初值2.1.8 8253的控制字与初始化编程 D7 D6 D5 D4 D3 D2 D1 D0计数器读写格式工作方式数制D7、D6:00-选择通道0 01-选择通道1 10-选择通道 11-无效D5、D4:00-计数器锁存 01-只读写计数器低字节 10-只读写计数器高字节 11-先读写计数器低字节,再读写计数器高字节D3、D2、D1:000-方式0 001-方式1 *10-方式2 *11-方式3 100-方式4 101-方式5D0:1-BCD码计数 0-二进制计数2.1.9 8253A的技术参数表4参数名称符号测试条件最大规范值最小规范值输入低电平电压VIL0.8V-0.5V输入高电平电压VIAVcc+0.5 V2.2V输出低电平电压VOLVin=Vcc-0V0.45 V输出高电平电压VOHVout=Vcc-0.45V2.4V输入负载电流IIL+/-10 V输出浮动漏电流IOFL+/-10 V电源电流Icc140 V8253A主要参数分析:输入低电压的范围是-0.5 V0.8 V,输出低电压的范围0.45 V2.4 V,输入高电压的范围是2.2 VVcc+0.5 V。而测试条件均为Vin=Vcc-0V,Vout=Vcc-0.45V。2.2 、选择8259芯片1)芯片8259A在本设计中的作用本设计中用于中断源的判断2)芯片8259A的功能分析18259A的主要特性微机系统中,可以使用8259A 扩展外部中断,Intel 8259A 可编程中断控制器,主要有以下功能: 1片8259A 能管理8级中断,通过级联用9片8259A可以构成64 级主从式中断系统。 每一级中断可以屏蔽或允许。中断响应周期,8259A 可提供相应的中断类型号。编程使8259A 工作在多种不同的方式。 28259A 的内部结构与引脚信号 数据总线缓冲器8位、双向、三态,是8259A与 CPU 之间的数据接口。 D0D7直接与CPU 数据总线的低8位连结。 读/写控制逻辑CS 接高位地址的译码输出A0:常常与地址信号线A0相连。 RD,WR与CPU的RD,WR相连,低平有效。CPU 通常利用: OUT 指令,WR与A0配合写入有关的控制字IN 指令,RD与CS,A0配合读出8259A内部有关寄存器的内容。中断请求寄存器 IRR8 位,若IRi 有效(“1”,),对应位置“1”,直到IRi 得到响应。 因此,IRR记录外中断源IRi的请求信息。中断服务寄存器 ISR8位,当IRi得到响应时,对应位置“1”。ISR 记录正在处理的IRi,当中断嵌套时,可能多位置“1”。 因此,ISR记录CPU对IRi的响应情况。中断屏蔽寄存器 IMR8位,某位置“ 1”,对应IRi 禁止产生中断。因此,IMR控制是否对IRi进行屏蔽操作。优先权电路实现优先权的判断与处理,采用编码器和比较器电路,如下图所示。图2-7 中断优先权电路控制逻辑由IRR 和PR 的情况,向8259A 其它部件发出控制信息。向CPU 发出INT 信号,接收CPU信号 级联缓冲/比较器可以实现8259A的级联,扩展外中断。 38259A 的中断处理过程下面以8259A单片使用为例,说明其中断处理过程。当一条或多条中断请求线IR0 IR7变高时,设置相应的IRR位。PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如某中断优先权最高且为允许中断状态,就向CPU发高电平信号INT,请求中断服务。CPU响应中断时,送回应答信号 INTA 。8259A接到来自CPU的第一个信号INTA时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,8259A准备向数据总线发送中断类型号。在8259A发送中断类型号的后一个INTA 脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个 INTA 脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。48259A 的工作方式8259A有多种工作方式,这些工作方式可以通过初始化命令字(ICW1ICW4)和操作命令字(OCW1OCW3)来设置。引入中断请求的方式边沿触发方式。以上跳沿向8259A请求中断,上跳沿后可一直维持高电平,不会再产生中断。电平触发方式。以高电平申请中断,但在响应中断后必须及时清除高电平,以免引起第二次误中断。中断查询方式。外设通过8259A申请中断,但8259A却不使用INT信号向CPU申请中断,CPU用软件查询确定中断源,并为其服务连接系统总线的方式在大系统中,要求数据总线有总线缓冲器。8259A与这种带总线缓冲器的系统总线连接的方式称缓冲器方式。在小系统中,则8259A不需要总线缓冲器而是将其直接接至数据总线。8259A与这种不需总线缓冲器而直接连到系统总线的方式称非缓冲器方式。屏蔽中断源的方式普通屏蔽方式。利用操作命令字OCW1,使屏蔽寄存器IMR中的一位或几位置1来屏蔽一个或几个中断源的中断请求。若要开放某一个中断源的中断请求,则将IMR中相应的位置0。特殊屏蔽方式。在某些场合,在执行某一个中断服务程序时,要求允许另一个优先级比它低的中断请求被响应,此时可采用特殊屏蔽方式。它可通过OCW3的D6D511来设定。优先级排队的方式全嵌套方式。在此种方式下中断优先级按0 7顺序进行排队,只允许中断级别高的中断源去中断中断级别低的中断服务程序。特殊全嵌套方式。它和全嵌套方式基本相同,所不同的是在特殊全嵌套方式下,当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套(8259A级联使用时,某从片的8个中断源对主片来说,可以认为是同级的)。特殊全嵌套方式用于多片级联。优先级自动循环方式。在这种方式下,优先级顺序不是固定不变的,一个设备得到中断服务后,其优先级自动降为最低。其初始的优先级顺序规定为IR0,IR1,IR7。该方式用在系统中多个中断源优先级相等的场合。优先级特殊循环方式。这种方式与优先级自动循环方式唯一的区别是,其初始的优先级顺序不是固定IR0为最高,然后开始循环,而是由程序指定IR0 IR7中任意一个为最高优先级,然后再按顺序自动循环,决定优先级。结束中断的处理方式自动中断结束方式。在中断服务程序中,中断返回之前,不需发中断结束命令就会自动清除该中断源所对应的ISR位(实际上在CPU发第二个信号时,8259即自动消除ISR中的对应位)。这种方式用在多个中断不会嵌套的系统中。非自动中断结束方式。在中断服务程序返回之前,必须发中断结束命令才能使ISR中的当前服务位清除。58259A 的初始化命令字8259A 初始化编程时,有四个初始化命令字ICW(Initialiation Command Word),即ICW1ICW4 ;8259A工作期间,有三个操作命令字OCW(Operation Command Word),即OCW1OCW3。 8259A 只有两个端口地址 ,A0=0 偶地址端口/A0=1 奇地址端口 。因此,对8259A读/写操作时,要注意控制字:写入的端口地址,写入的顺序,有关的标志位ICW1(IRi 触发方式,是否单片使用,是否写入ICW4)A0 D7 D6 D5 D4 D3 D2 D1 D0 0XXX1标记位LTIMXSNGICW4是否写入ICW4IC41,要写入ICW4IC40,不写入ICW4,即ICW4规定的位全为0ICW2(中断类型号的高5位)A0 D7 D6 D5 D4 D3 D2 D1 D01T7T6T5T4T3XXXIRi对应中断类型号的高5位(中断类型号的低3位由8259A 自动编码产生)设置中断向量号T7T3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、IR7为111ICW3(级联时,主从芯片的级联引脚)若ICW1 中SNGL=1不写入ICW3 =0写入ICW3D7 D6 D5 D4 D3 D2 D1 D0S7 /ID7S6 /ID6S5 /ID5S4 /ID4S3 /ID43S2/ID2S1/ID1S0/ID0级连命令字主片8259A:Si1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0ID2编码说明从片INT引脚接到主片哪个IR引脚(1) 写给主片的ICW3ICW4A0 D7 D6 D5 D4 D3 D2 D1 D01000SFNM BUFM/SAEOI1D7,D6,D5为标志位,D0为1表示用于8088/8086系统SFNM: 规定8259A中断的嵌套方式 SFNM=0 正常的完全嵌套方式 =1 特殊的完全嵌套方式(单片使用时,两种方式一样。)68259A 的操作命令字OCW1(中断屏蔽操作命令字)设置或清除IMR 的各个位。D7 D6 D5 D4 D3 D2 D1 D0 M7M6M5M4M3M2M1M0屏蔽命令字内容写入中断屏蔽寄存器IMRDiMi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。OCW2 (优先权循环方式和中断结束方式操作命令字)D7 D6 D5 D4 D3 D2 D1 D0RSLEOR00L2L1L0R、SL和EOI配合使用产生中断结束EOI命令和改变优先权顺序L2L0的3位编码指定IR引脚 OCW3(特殊屏蔽方式和中断查询方式操作命令字)D7 D6 D5 D4 D3 D2 D1 D00ESMMSMM01PRRRISESMM、SMM设置中断屏蔽方式P、RR和RIS规定随后读取的状态字含义78259A 查询字D7 D6 D5 D4 D3 D2 D1 D01-W2W1W0中断位I位为1,有外设请求中断W2W0的编码当前中断请求的最高优先级3、控制程序设计3.1. 控制程序设计思路实验代码:.MODELTINYCOM_ADDREQU0086HT0_ADDREQU0080HT1_ADDREQU0081H.STACK100 .CODESTART:MOV DX,COM_ADDR MOV AL,31H OUT DX,AL;计数器T0设置在模式0状态,BCD码计数 MOV DX,T0_ADDR MOV AL,00 OUT DX,AL MOV AL,05 OUT DX,AL;写入初值500 CALL Init8259Init8259PROCNEARMOVDX,IO8259_0MOVAL,1BHOUTDX,AL;向偶地址端口写入ICW1=13H,单片,写入ICW4,高电平触发MOVDX,IO8259_1MOVAL,08HOUTDX,AL;向奇地址端口写入ICW2=08H,中断类型号从08H-0FHMOVAL,09HOUTDX,AL;向奇地址端口写入ICW4=09H,正常的嵌套方式, 缓冲方式,从片,非自动中断结束方式,16位8086MOVAL,0FEH OUTDX,AL;向奇地址端口写入OCW1=0FEH屏蔽寄存器,允许IR0产生中断,其他中断请求被屏蔽RETInit8259ENDP ZHONGDUAN: MOV DX,COM_ADDR ;中断服务程序 MOV AL,77H OUT DX,AL;计数器T1为模式3状态,输出方波,BCD码计数 MOV DX,T1_ADDR MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL;CLK1/1000 JMP$;OUT1输出频率为1000HZ的方波 END START3、程序设计流程图及原理图3.1、程序流程图YN结束初始化8253,产生预置方波,驱动扬声器OUT0为高电平?开始初始化PCI板卡,将偏移地址转化为实地址初始化8253初始化82593.2、程序原理图4、上机调试过程4.1调试分析主要是对两个芯片的调试,即8253芯片,8259芯片。首先, 8253芯片主要是计数作用并引发中断。4.2 设计遇到的问题如何解决时延问题?如果用到方式1和方式2结果又如何呢?5、设计结果分析以及心得体会5.1总结在作课程设计之前,由于查阅了各种资料,了解到很多功能相似的芯片性能,通过比较选出最适合本设计的硬件搭配,拓宽了知识面。在设计的过程中,程序的设计出现了很多问题,几乎都是是逻辑上出现的问题而且具有很强的隐蔽性,不易被发觉,这需要反复进行单步调试细心观察每一步各个寄存器的变化。通过本次的课程设计,强化了汇编语言的编程能力,了解到各个部件之间的连接及协调工作。学到了关于微机原理课程的更多相关内容。完成这次课程设计,不仅要掌握这些硬件,还要有一定汇编语言基础,熟练汇编编程,此次课程设计需构建多个子程序,把每个功能分成一个一个得小子程序来实现,使程序最优化,让读者看起来一目了然,同时增加程序的可读性,提高运行速度,要充分掌握调用子程序。在程序调试时单步调试非常重要,往往在程序正确的情况下得到的结果不对,通过单步调试可以一步一步的检查找出问题。这次实验中我就出现了一个这样的问题,检查了程序几篇都没发现错,还让别人帮我检查了也没有查出,最后通过单步调试才解决了这个问题。还有就是关于波形不规范的问题,8253的方式0和方式1由于每次都装入初值,所以肯定会产生时延
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 日照市中石油2025秋招笔试模拟题含答案市场营销与国际贸易岗
- 2025年福建省龙岩市第一医院招聘7人模拟试卷及完整答案详解
- 2025年新联兴职业学校(邯郸永年校区)公开招聘教师62名模拟试卷及一套完整答案详解
- 2025年皖南医学院第二附属医院招聘编外28人模拟试卷及答案详解(考点梳理)
- 2025年4月浙江海宁市中心医院(浙江省人民医院海宁医院)招聘4人模拟试卷及1套完整答案详解
- 土地承包转让合同(集合15篇)
- 2025年安徽省高校毕业生三支一扶计划招募笔试考试大纲模拟试卷及一套参考答案详解
- 2025年细胞治疗产品临床试验审批流程与临床试验报告评价报告
- 2025年地热能源供暖设备技术创新与市场潜力报告
- 2025年文化旅游演艺项目市场细分与品牌建设研究报告
- 广东电网公司海南电网公司南网能源公司2025年9月社会招聘笔试参考题库附带答案详解
- 2025年储能技术在电力系统需求侧响应中的应用报告
- LED交通诱导屏运行维护手册
- 《Matlab编程与应用》课程简介与教学大纲
- 2025年时事政治考试100题(含参考答案)
- 城乡供水一体化项目(一期)-给水工程施工图设计说明
- NISP一级考前模拟训练题库200题(含答案)
- CT检查设备十大品牌简介
- (完整版)最实用小学英语单词总表(含音标、单词默写表)
- 项目产品研发各阶段质量控制输出文件
- 述情障碍的社会根源
评论
0/150
提交评论