中断响应与开关控制Word格式.docx
《中断响应与开关控制Word格式.docx》由会员分享,可在线阅读,更多相关《中断响应与开关控制Word格式.docx(18页珍藏版)》请在冰点文库上搜索。
8086CPU包括两大部分:
EU和BIU
BIU不断地从存储器取指令送入IPQ,EU不断地从IPQ取出指令执
行;
EU和BIU构成了一个简单的2工位流水线;
指令预取队列IPQ
是实现流水线操作的关键(类似于工厂流水线的传送带)。
主要引脚:
数据信号线(DB)与地址信号线(AB):
AD7~AD0:
三态,地址/数据复用线。
ALE有效时为地址的低8位;
地址信号有效时为输出,传送数据信号时为双向;
A19~A16:
三态,输出。
高4位地址信号,与状态信号S6-S3分时
复用;
A15~A8:
输出8位地址信号;
WR:
写命令信号;
RD:
读命令信号;
IO/M:
指出当前访问的是存储器还是I/O接口;
高:
I/O接口,低:
内存;
DEN:
低电平时,表示DB上的数据有效;
RESET:
输入,为高时,CPU执行复位;
ALE:
高:
AB地址有效;
DT/R:
数据传送方向,高:
CPU输出,低:
CPU输入
图1.8086芯片引脚图
●8253
概貌介绍:
3个16位的定时/计数器(通道);
4引脚双列直插式;
最高计数频率2MHz;
TTL电平兼容;
单电源+5V供电。
主要构成:
计数器(3个)包括:
16位初值寄存器(只写)、16位计数寄存器(减1
计数器)、16位锁存寄存器(只读);
控制寄存器(1个):
存放控制命令字(8位)(只写);
占用4个地址:
3个计数器,1个控制寄存器。
主要引线:
CLKn:
时钟脉冲输入,计数器的计时基准;
GATEn:
门控信号输入,控制计数器的启停;
OUTn:
计数器输出信号,不同工作方式下产生不同波形(n=0~2)。
图2.8253内部结构图图3.8253芯片引脚图
●8255
含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和
锁存/缓冲能力。
可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。
连接外设端的引脚:
PA0~PA7、PB0~PB7、PC0~PC7(分别对应A、
B、C三个8位输入/输出端口)
三个端口可通过编程分别指定为输入或输出口。
其中,C口即可用作
独立的输入/输出口,也可用作A、B口的握手联络信号(控制信号输
出或状态信号输入)。
图4.8255芯片引脚图
●8259
①一片8259A可以接受并管理8级可屏蔽中断请求,通过9片8259A
级联可扩展至64级可屏蔽中断优先控制。
②对每一级中断都可以通过程序来屏蔽或允许。
③在中断响应周期,8259A可为CPU提供相应的中断类型码。
④具有多种工作方式,并可通过编程来加以选择。
D7~D0:
双向、三态数据线,与CPU系统总线连接;
:
读信号,输入,低电平有效。
当有效时CPU对8259A进行读操作;
写信号,输入,低电平有效。
当有效时CPU对8259A进行写操作;
A0:
端口地址选择信号,输入,由8259A片内译码,选择内部寄存器;
CS:
片选信号,输入,低电平有效。
当有效时8259A被选中;
双向信号线,用于从片选择或总线驱动器的控制信号;
INT:
中断请求信号,与CPU的中断请求信号相连;
中断响应信号,与CPU的中断应答信号相连;
CAS2~CAS0:
级联信号线,作为主片与从片的连接线,主片为输出,从片为输入,主片通过CAS2~CAS0的编码选择和管理从片;
IR7~IR0:
中断请求输入信号,由外设输入。
图5.8259芯片引脚图
●ADC0808
如下特点:
8通道(8路)输入;
8位字长;
逐位逼近型;
转换时间100μs;
内置三态输出缓冲器(可直接接到数据总线上)。
引脚功能:
输出数据线(三态)
IN0~IN7:
8通道(路)模拟输入
ADDA、ADDB、ADDC:
通道地址(通道选择)
通道地址锁存
START:
启动转换
EOC:
转换结束,可用于查询或作为中断申请
OE:
输出允许(打开输出三态门)
CLK:
时钟输入(10KHz~1.2MHz)
VREF(+)、VREF(-):
基准参考电压
图6.ADC0808芯片引脚图
●74HC138
74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。
技术参数:
电压2.0~6.0V;
驱动电流±
5.2mA;
传输延迟12ns@5V;
逻辑电平CMOS;
功耗考量低功耗或电池供电应用;
封装与引脚SO16、SSOP16、DIP16、TSSOP16。
图7.74HC138引脚图
●74273
公共时钟复位八D触发器。
D0~D7为数据输入端,Q0~Q7为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
图8.74273引脚图
6、原理图和程序流程图
原理图:
图9.原理图
七、程序代码
DATASEGMENT
NUMDB0
DATAENDS
STACKSEGMENTSTACK
DB200DUP(0)
STACKENDS
CODESEGMENT'
code'
ASSUMECS:
CODEDS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,01030H
MOVAL,74H
OUTDX,AL
MOVDX,01010H
MOVAX,2000;
输入为1M频率,且OUT0接CLK1,1M*1000000=1S
MOVAL,AH
MOVAL,36H
MOVDX,01000H
MOVAX,1000
MOVDX,0220CH
MOVAL,8AH
CLI;
修改中断向量前关中断
MOVAX,0
MOVES,AX;
ES段=0
MOVSI,60H*4;
设置中断向量96号中断
MOVAX,OFFSETINT0;
中断入口地址
MOVES:
[SI],AX;
[SI]=60H*4,存放入口地址->
IP8086
MOVAX,CS;
SEGINT0->
CS8086
[SI+2],AX
MOVAL,00010011B
MOVDX,400H;
ICW1=00010011B//010000010000A0=0,D4=1,CS=0400H
MOVAL,060H;
060B
MOVDX,402h;
ICW2=01100000B//010000000010A0=1,CS=0402H
MOVAL,1BH;
ICW4=00011011B//1bH
MOVDX,402H
MOVAL,00H;
OCW1,八个中断全部开放00H
MOVAL,20H;
EOI
OUT20H,AL
MOVDX,400H;
//010000000000A0=0,CS=0
MOVAL,60H;
OCW2,非特殊EOI结束中断
OUTDX,AL;
OCW2可以不赋值;
完成8259初始化
STI;
开中断
LI:
MOVDX,400H;
CS=0400H
MOVAL,60h;
如果改为其它值,将出错,因为只有60H有中断向量
JMPLI;
中断服务程序
INT0:
关中断
MOVDX,02208H
MOVAL,00H
MOVAL,01H
MOVAL,02H
MOVCX,10000
LOP1:
NOP
LOOPLOP1
WAIT1:
INAL,DX
ANDAL,10H
JZWAIT1
MOVDX,02204H
CMPAL,0CCH;
大于4V
JAMAX
CMPAL,0B3H;
大于3.5V且小于等于4V
JAMA2
CMPAL,99H;
大于3V且小于等于4V
JAMA3
CMPAL,80H;
大于2.5V且小于等于3V
JAMIN
JMPDISPLAY
MIN:
MOVAL,08H
JMPDISPLAY
MA3:
MOVAL,0CH
MA2:
MOVAL,0EH
MAX:
MOVAL,0FH
DISPLAY:
MOVDX,02200H
OUTDX,AL
MOVDX,2008H
MOVAL,00H
STI;
IRET;
返回主程序
CODEENDS
ENDSTART
8、成果展示
采样值0<
x≤2.5,四个灯全灭:
采样值2.5<
x≤3,一个灯亮:
采样值3<
x≤3.5,两个灯亮:
采样值3.5<
x≤4,三个灯亮:
采样值X>
4,四个灯亮:
九、收获及体会
这次课程设计中,最重点的部分应该属于软件部分。
因为刚刚学习了《计算机硬件技术》这门课程,所以软件设计之前,自己大概想好了大体的思路,但是程序需要严格的逻辑,严格的语法,按着自己的思路去写程序是,总是发现错误,或者程序不稳定,有时是达不到预期的效果。
经过和同组成员的一番努力,整个程序完成了,虽然已经达到了题目的要求,但是自己觉得还可以继续改善。
通过这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正所要的。
在课程设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
总之,这次课程设计让我明白一个道理那就是:
只有理论必须和实际结合,才能更好地让我们掌握书本上的知识。
这个设计总体上不算完美,但是在这次设计训练的经历的益处是不能言表的,在此谢谢各位老师和同学的帮助!