ImageVerifierCode 换一换
格式:DOCX , 页数:37 ,大小:179.27KB ,
资源ID:11519892      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11519892.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理课设.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机原理课设.docx

1、微机原理课设 1数字频率计设计原理1频率测量方法频率测量方法有M法,T法,M/T法,测量的基本要求是快速准确。(1) M法:测量计数在一定时间Tc内的信号脉冲数M。譬如,Tc1秒,计数值M1200,则信号频率为1200Hz; Tc0.1秒,计数值M=1200,则信号频率为12000Hz。显然,M法适用于高频信号的测量。(2) T法:测量一个完整脉冲的周期T,则此周期T的倒数就是待测频率。譬如,测得T0.1ms,则信号频率为10000Hz。显然,T法适用于低频信号测量。(3) M/T法:测量在一定时间Tc左右M个整数脉冲的完整周期T,则待测信号频率为M/T。首先给定一个基本时间Tc,利用计数器测

2、得Tc内的脉冲个数,设为M。但是,一般情况下,在Tc结束时刻并不严格的与第M个脉冲结束时刻(即第M+1个脉冲上升沿时刻)相对应,因此,利用定时器测量出Tc结束时刻到第M个脉冲结束时刻的时间T,则T=Tc+T,于是可求频率。2频率测量参考方案本系统采用M法测量频率,即测量计数在一定时间Tc内的信号脉冲数M。譬如,Tc1秒,计数值M1200,则信号频率为1200Hz; Tc0.1秒,计数值M=1200,则信号频率为12000Hz。TD-PITE试验箱上芯片8254的CLK0接系统频率1MHz,因此,我使用8254通道0作分频器,对输入的信号进行分频,OUT0接通道1的CLK1,利用通道1进行计数。

3、利用延时程序每秒产生一次中断,没中断一次读一次通道1的计数值,用初值与当前计数值相减得到1秒钟计数脉冲个数,将这个差值直接送往数码管显示。即为测量频率。本设计能测量65535Hz以下的频率,误差小于1Hz,达到设计要求。 注:本系统只是简单的方波频率测量,没有进一步考虑测量正弦波、三角波、锯齿波等波形的频率,如果要测量这些波形,还须添加放大整形电路。 2程序流程图 3器件的功能简介3、1 8086简介由于此系统最终要在西安唐都科教仪器出品的32位微机机教学实验系统TD-PITE/PITC上进行实验,故设计硬件配置时采用Intel8086,整个实验的硬件配置都以此为原则进行设计选用。Intel8

4、086是16位的微处理器(理论学习中为8088,其内部总线为16位,外部总线为8位,故称为准16位微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5MHz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB。3.1.1 8086主要特性Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性:(1) 8086CPU数据总线为16位,8088CUP数据总线为8位。(2) 地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。(3) 有16位的端口地址,可以寻址64

5、KB的I/O端口。(4) 有99条基本指令,指令功能强大(5) 有9种基本寻址方式。(6) 可以处理内部和外部中断,外部中断源多达256个。(7) 兼容性好,与80*86,8085在源程序一级兼容。(8) 8086/8088标准主频为5MHz,8086/8088-2主频为8MH。(9)支持单处理器或多处理器系统工作。3.1.2 8086CPU寄存器结构8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器,2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器。通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于C

6、PU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。指针和变址寄存器包括:堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。段寄存器包括:代码段寄存器CS,用于存放当前代码段的段地址;数据段寄存器DS,用于存放当前数据段的段地址;附加段寄存器ES,用于存放当前附加段的地址;堆栈段寄存器SS,用于存放当前堆栈段的段地址。这些段寄存器彼此不能互换,每个段寄存器在8086存储寻址空间中规定了64KB的存储快。该64KB存储快叫做段寄存器的当前段。专用寄存器包括指令指针寄存器(IP)和标志寄存器(FR)。3

7、、2 8255简介8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作,下面将具体说明这三种工作方式:方式0基本输入/输出方式;方式1选通输入/输出方式;方式2双向选通输入/输出方式。3.2.1 8255工作方式工作方式分别为工作方式0,工作方式1和工作方式2。1、工作方式0,又称为基本工作方式。在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。故它们的输入输出共有16种不同的组合。A 组B组A口(PA0-PA7)C口(PC4-PC7)

8、B口(PB0-PB7)C口(PC0-PC3)入入入入入入入出入入出入入入出出入出入入入出入出入出出入入出出出出入入入出入入出出入出入出入出出出出入入出出入出出出出入出出出出表3.1 8255输入输出组合2:工作方式1,既选通输入输出方式。在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。3:工作方式2,又称双向输入输出方式。这种方式只有8255的口A才有。在A口工作于双向输入输出方式时,要利用C口的5条线才能实现。因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。 3.2.2 8255的控制

9、字76543210控制C口抵4位1:输入0:输出控制B口8位1:输入0:输出方式选择0:方式01:方式1控制C口高4位0:输出1:输入控制A口8位0:输出1:输入方式选择00:方式001:方式11X:方式2 功能控制0:位操作1:方式选择图3.1 8255的控制字格式说明:当控制字BIT71时,控制字的BIT6BIT3这4位用来控制A组,即A口的8位和C口的高4位,而控制字的低3位BIT2BIT0用来控制B组,包括B口的8位和C口的低4位。8255的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。

10、其格式注意8255的C口按位置位/复位控制字的最高位D7(特征位)应为0。 图3.2 C口按位置位/复位控制字格式3、3 8254简介8254是Intel公司生产的可编程计时器,具有以下功能:(1) 有3格独立的16位计数器;(2) 每个计数器可按二进制或十进制计数; (3) 每个计数器可编程工作于6种不同工作方式; (4) 8254每个计数器允许的最高计数频率为10MHZ;(5) 8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;(6) 计数脉冲可以是有规律的时钟信号,也可以是随机信号。3.3.1 8254的内部结构图3.3 8254的内部结构图A0、A1为8

11、254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:A1A0选择00计数器001计数器110计数器211控制寄存器 表3.2 8254内部编码CLK0是计数器的时钟输入端。本次设计的时钟为1MHZ,计数器对此时钟信号进行分频。GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。 OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。3.3.2 8254的工作方式(1) 方式0 :计数到0 结束输出正跃变信号方式。 (2) 方式1:硬件可重触发单稳方式。 (3) 方式2 :频率发生器方式。 (4) 方式3

12、:方波发生器。 (5) 方式4 :软件触发选通方式。 (6) 方式5 :硬件触发选通方式。3、4 8259简介8259是一种可编程的中断控制器。每块芯片可管理8级向量中断,同时,可通过多片级连实现多达64级的中断管理。 中断控制器8259有四种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。同时,它还有一4种从属工作方式,即结束中断、读状态、中断请求触发和数据缓冲方式。3.4.1 8259的工作方式(1)特殊屏蔽方式在正常情况下,当一个中断请求被响应时,8259将被禁止所有同级及更低优先级中断请求这就称为一般屏蔽方式。但是,在一特殊情况下,希望也允许较低优先级的中断请求产生中断。(

13、2)中断结束中断结束分自动结束和利用命令结束(3)优先级循环它有两种优先级规定:循环优先级和固定优先级。固定优先级规定8个中断源以IR0的优先级最高依次降低。循环优先级有3个结构:自动优先级循环用于中断源具有相等优先级的情况。指定优先级循环可以利用命令一次性改变优先级。自动结束方式下的优先级循环,其优先权控制方式与自动优先级循环的相同。(4)查询状态通过将操作命令字OCW3中的P位置1,可以查询8259的状态。 3.4.2 8259的内部控制字8259工作之前必须通过CPU来命令它。CPU命令分为两大类:一类是初始化命令字(ICW),主要是为了让8259处于初始化状态;另一类是操作命令字(OC

14、W),使初始化的8259去执行具体的某种操作方式。 初始化命令字1 初始化命令字ICW1(写入偶地址)1LTIMASIC4 1:需要ICW4 0:不需要ICW4 1:单片8259 0:多片8259级联1:间隔为4 0:间隔为81:电平触发 0:边沿触发 8080/85模式下,中断 低口低8编程位图3.4 8259初始化命令字ICW1 初始化命令字ICW2(写入奇地址) 8086/88模式下,仅用ICW2提供不同中断源的中断向量码。当中断响应时,根据中断向量表获得入口地址。 初始化命令字ICW3(写入奇地址) 该命令字用于多片8259的级联。 1:相应IR接从属8259 0:不接8259 主控I

15、CW300000 3位编码对应从属 8259接主控的IR编号 从属ICW3图3.5 8259初始化命令字ICW3 初始化命令字ICW4(写入奇地址) 000SFNMBUFM/SAEOIPM 1:8086/88模式 0:8080/85模式 1:自动EOI 0:非自动结束 0X:非缓冲方法 10:缓冲方式/从属片 11:缓冲方式/主控片 1:特殊全嵌套方式 0:一般嵌套方式图3.6 8259初始化命令字ICW4 2 操作命令字OCW (可单独使用)对8259初始化之后,该芯片就进入工作状态,准备好接收IR端进入的中断请求。1 操作命令字OCW1(写入奇地址)它用于设置对8259中断的屏蔽操作。该八

16、位的操作字的某一位为1时,它就屏蔽相对应的IR输入。2 操作命令字OCW2(写入偶地址)该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。RSLEOI00L2L1L0 编码对应IR的 最低优先级 0 0 1 一般EOI 0 1 1 特殊EOI 中断结束命令 1 0 1 循环优先级的一般EOI命令 1 0 0 在自动EOI下置循环优先级 自动循环 0 0 0 在自动EOI下清循环优先级 1 1 1 循环优先级的特殊EOI命令 1 1 0 设置优先级 特殊循环 0 1 无效图3.7 8259初始化命令字OCW2 4频率计设计原程序及注解SSTACK SEGMENT STACK DW 64

17、 DUP(?)SSTACK ENDS CODE SEGMENTASSUME CS:CODE, DS:CODE, ES:CODE,SS:SSTACK ORG 3400H H8: JMP P8259 LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH ;09BUF DB ?,?,?,?,?,? ;六位数码管 P8259: CLI CALL WP ;初始化显示“000000” MOV AX,OFFSET MIR7 ;中断IR7入口地址 MOV BX,003CH ;IR7偏移地址 MOV BX,AX MOV BX,003EH MOV AX,SEG MIR7 ;IR7段

18、地址 MOV BX,AX CALL FOR8259 ;对8259初始化设置 CALL FOR8254 ;对8254初始化设置 CALL FOR8255 ;对8255初始化设置 MOV DX,0604H ;给中断一个低电平 MOV AL,00H OUT DX,AL CALL FOR8254X ;对频率范围进行设置 CALL DIS ;调用显示子程序 STI CALL DELAY1 ;延时1s MOV DX,0604H ;启动中断 MOV AL,01H OUT DX,ALPPP: CALL DIS JMP PPP;=;对8259进行初始化;-FOR8259: MOV AL,13H ;写入ICW1,

19、边沿触发,间隔8,单片,需要ICW4 OUT 20H,AL MOV AL,0FH ;ICW2,中断向量码 OUT 21H,AL MOV AL,09H ;ICW4, 一般全嵌套,缓冲,非自动结束 OUT 21H,AL MOV AL,07FH ;IR7为中断入口,屏蔽其他 OUT 21H,AL RET;=;对8254进行初始化 ;-FOR8254: MOV DX,06C6H MOV AL,36H ;T0,高-低,方式3,二进制 OUT DX,AL MOV DX,06C0H ;T0对输入频率分频 MOV AX,10000 OUT DX,AL MOV AL,AH OUT DX,AL RET;=; 对8

20、255进行初始化;-FOR8255: MOV AL,80H ;A,B,C口作为输出 MOV DX,0606H OUT DX,AL RET;=;对频率范围设置;-FOR8254X: MOV DX,06C6H ;设置T1,高-底,方式0,二进制 MOV AL,70H OUT DX,AL MOV DX,06C2H ;T1计数的最大值 MOV AX,65535 OUT DX,AL MOV AL,AH OUT DX,AL MOV CX,10 ;延时WAIT1: LOOP WAIT1 RET;=;二 十进制转化;-BTRO: MOV CL,5 XOR CH,CH XOR DX,DX MOV BX,10 M

21、OV SI,OFFSET BUF ADD SI,5 ;由低位到高位存储NEXT: DIV BX MOV SI,DL ;除以10的余数存放低位 DEC SI AND AX,AX JZ STOP ;判断是否除尽 MOV DL,0 LOOP NEXTSTOP: RET;=;8259中断子程序;-MIR7: PUSH AX ;断点保护 PUSH DX PUSH BX STI ;开中断 MOV DX,06C6H ;将计数器锁存 MOV AL,40H OUT DX,AL MOV DX,06C2H ;读T1锁存器值 IN AL,DX MOV BL,AL IN AL,DX MOV BH,AL MOV AX,B

22、X ;计数值放在AX MOV DX,65535 ;将计数值转化为频率值 SUB DX,AX ;65535-计数值=通过脉冲个数 MOV AX,DX PUSH AX ;压栈保存 等待显示 CALL FOR8254X CALL BTRO POP BX ;出栈,恢复中断前数据 POP DX POP AXLAST: STI IRET ;=;显示子程序DIS;-DIS: PUSH AX PUSH BX PUSH SI MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX,0 MOV AL,BUF+5 MOV SI,AX MOV AL

23、,BX+SI OUT DX,AL MOV DX,0602H MOV AL,0FEH OUT DX,AL MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX.0 MOV AL,BUF+4 MOV SI,AX MOV AL,BX+SI OUT DX,AL MOV DX,0602H MOV AL,0FDH OUT DX,AL MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX,0 MOV AL,BUF+3 MOV SI,AX MOV AL,BX+SI O

24、UT DX,AL MOV DX,0602H MOV AL,OFBH OUT DX,AL MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX,0 MOV AL,BUF+2 MOV SI,AX MOV AL,BX+SI OUT DX,AL MOV DX,0602H MOV AL,0F7H OUT DX,AL MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX,0 MOV AL,BUF+1 MOV SI,AX MOV AL,BX+SI OUT DX,AL

25、 MOV DX,0602H MOV AL,0EFH OUT DX,AL MOV DX,0600H MOV AX,SEG LED MOV DX,AX MOV BX,OFFSET LED MOV AX,0 MOV AL,BUF MOV SI,AX MOV AL,BX+SI OUT DX,AL MOV DX,0602H MOV AL,0DFH OUT DX,AL POP SI POP BX POP AX RET;=;初始化显示“000000”;-WP: MOV BUF,0 ;初始化显示“000000” MOV BUF+1,0 MOV BUF+2,0 MOV BUF+3,0 MOV BUF+4,0 MOV BUF+5,0 RET;=;延时1s子程序;=DELAY1: PUSH CX PUSH AX MOV CX,0006H T1: MOV AX,009FH T2:DEC AX JNZ T2 LOOP T1 POP AX POP CX RETCODE ENDS END H85频率计程序接线图 芯片8254 系统总线 芯片8255 LED数码管D0 PB0D1 PB1D2 PB2D3 PB3D4 PB4D5 PB5D6 PB6D7 WR PA0RD PA1CS PA2A0 PA3A1

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1