微机原理及应用结业论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理及应用结业论文
电信0901
A07090063
申浴阳
2011年12月
- 1 -
微机原理应用——继电器控制
1. 引言
通过该论文进一步了解直流继电器的工作原理和微机控制直流继电器的一般方法。同时进一步熟悉8253和8255的使用方法。
2. 原理图
3. 原理
实验原理如上图所示,按图连接电路,其中的继电器输出插头J 4接实验盒的继电器插头。编程使用8253定时,让继电器周而复始的闭合5秒钟(指示灯亮),断开5秒钟(指示灯灭)。 1. 8253的六种工作方式
(1) 方式0——计数结束时中断
控制字写入控制寄存器后,输出端OUT 立即输出低电平。写完计数初值后,
若GATE为高电平,在CLK的下降沿开始计数,输出OUT仍为低电平。当计数到0时,OUT立即输出高电平,并一直保持。
门控信号GATE为高电平时,计数器工作;当GATE为低电平时,计数器停止工作,其计数值保持不变,等GATE为高时继续计数。
在计数器工作期间,如果重新写入新的计数值,计数器按新写入的计数值重新工作。
(2)方式1——可重复触发的单脉冲触发器
控制字写入后,OUT端输出高电平。写入初值后并不开始计数而是等待GATE上升沿的到来。GATE出现上升沿后在CLK下降沿开始计数,OUT输出低电平,计数到0时,OUT变高。方式1可产生单拍负脉冲信号,脉冲宽度由计数初值决定。
在计数器工作期间,当GATE又出现一个上升沿时,计数器重新装入原计数初值并重新开始计数。可见,输出的负脉冲比原来延长了。
在计数期间对计数器又写入新的计数值,要等到当前的计数值计满回0且门控GATE信号再次出现上升沿后,才按新的计数值开始计数。
(3)方式2——频率发生器(能自动装入计数初值)
计数器计数期间,输出OUT为高电平,当减1计数器为1时(注意不是减到0),输出端OUT变为低电平,当减到0时,OUT端又变为高电平并自动重新装入原计数初值,从而开始一个新的计数过程。
在计数器工作期间,若写入新的计数值,而GATE一直维持高电平,计数器仍按原计数值计数,直到计数器回零并在输出一个时钟周期的低电平后,才按新计数值计数。
(4)方式3——方波发生器
与方式2相同,有自动装入计数初值的能力。
计数初值为偶数时,在前一半的计数过程中输出高电平,后一半的计数过程中输出低电平,输出波形为对称的方波。
当计数初值为奇数时,输出高电平比输出低电平的时间多一个时钟脉冲,波形为不对称方波。
(5)方式4——软件触发的选通信号发生器
设定好此方式后,输出OUT变成高电平;写入计数初值后,计数器开始计数,计数到0结束时,输出变为低电平,低电平维持一个时钟周期后,输出又恢复高电平,但计数器不再计数,输出一直保持高电平。
门控信号GATE为高电平时,允许计数器工作,为低电平时,计数器停止计数。在GATE恢复高电平后,计数器又从原设定的计数值开始减1计数。
计数器工作期间,若向计数器写入新的计数值,则按新的计数初值开始计数,称为软件再触发。
注意:要做到软件触发,要保持GATE=1。
(6)方式5——硬件触发的选通信号发生器
- 2 -
由GATE上升沿触发计数器。写入计数初值后并不立即开始计数,而要由门控信号的上升沿启动计数。
在计数过程中,如果门控信号再次出现上升沿,计数器按原设定的初值重新计数。其他特点与方式4相同。
所以一般,方式0、1和方式4、5 (输出一个电平或一个脉冲)选作计数器用;而方式2、3(输出周期脉冲或周期发波)选作定时器用。
2. 编程
1.将8253计数器0设置为方式3,计数器1设置为方式0串联使用,CLK0接1MHz,设置两个计数器的初值乘积为5000,000启动计数器工作后,经过5秒OUT1输出高电平。通过8255A口查询OUT1输出高电平。通过8255A口查询OUT1的输出电平,用C口的PC0输出开关量控制继电器动作。
2.继电器开关量输入端输入“1”,继电器常开触点闭合,电路接通,指示灯亮,输入“0”,开关断开,指示灯熄灭。
4.程序流程图
主程序流程图
- 3 -
子程序流程图5.程序
IO8255 EQU 28bh
IO8255A EQU 288h
IO8253 EQU 283h
IO82530 EQU 280h
IO82531 EQU 281h
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE
START:MOV DX,IO8255
MOV AL,90H
OUT DX,AL
MOV AL,01 ;置位
OUT DX,AL
- 4 -
CALL DELAY
MOV AL,0 ;复位
OUT DX,AL
CALL DELAY
JMP START
DELAY PROC NEAR ;延时子程序
PUSH DX
MOV DX,IO8253 ;设8253计数器0为方式3
MOV AL,36H
OUT DX,AL
MOV DX,IO82530 ;8253计数器0写初值
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,IO8253 ;设8253计数器1为方式0
MOV AL,70H
OUT DX,AL
MOV DX,IO82531 ;8253计数器1写初值
MOV AX,500
OUT DX,AL
MOV AL,AH
OUT DX,AL
PRESS:MOV AH,6
MOV DL,0FFH
INT 21H
JZ NEXT ;无键按下跳转
MOV AH,4CH
INT 21H
NEXT:MOV DX,IO8255A
- 5 -