微机原理课设Word下载.docx
- 文档编号:4874779
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:37
- 大小:179.27KB
微机原理课设Word下载.docx
《微机原理课设Word下载.docx》由会员分享,可在线阅读,更多相关《微机原理课设Word下载.docx(37页珍藏版)》请在冰点文库上搜索。
通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存器,位于CPU的EU中,每个数据寄存器可存放16位操作数,也可拆成两个8位寄存器,用来存放8位操作数。
指针和变址寄存器包括:
堆栈指针SP、基址指针BP、源变址寄存器SI、和目的变址寄存器DI四个16位寄存器,可以来存放数据和地址。
段寄存器包括:
代码段寄存器CS,用于存放当前代码段的段地址;
数据段寄存器DS,用于存放当前数据段的段地址;
附加段寄存器ES,用于存放当前附加段的地址;
堆栈段寄存器SS,用于存放当前堆栈段的段地址。
这些段寄存器彼此不能互换,每个段寄存器在8086存储寻址空间中规定了64KB的存储快。
该64KB存储快叫做段寄存器的当前段。
专用寄存器包括指令指针寄存器(IP)和标志寄存器(FR)。
3、28255简介
8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种工作方式下工作,下面将具体说明这三种工作方式:
方式0—基本输入/输出方式;
方式1—选通输入/输出方式;
方式2—双向选通输入/输出方式。
3.2.18255工作方式
工作方式分别为工作方式0,工作方式1和工作方式2。
1、工作方式0,又称为基本工作方式。
在此方式下,可分别将A口的8条线,B口的8条线,C口高4位对应的4条线和C口的低四位对应的四条线定义为输入或输出。
故它们的输入输出共有16种不同的组合。
A组
B组
A口(PA0---PA7)
C口(PC4---PC7)
B口(PB0---PB7)
C口(PC0---PC3)
入
出
表3.18255输入输出组合
2:
工作方式1,既选通输入输出方式。
在这种方式下,A口和B口仍作为数据的输出口和输入口,同时还要利用C口的某些位作为控制和状态信号。
3:
工作方式2,又称双向输入输出方式。
这种方式只有8255的口A才有。
在A口工作于双向输入输出方式时,要利用C口的5条线才能实现。
因此,B口只能工作在工作方式0或工作方式1,而C口剩下的3条线可以作为输入输出线使用或B口方式1下的控制线。
3.2.28255的控制字
7
6
5
4
3
2
1
控制C口抵4位
1:
输入
0:
输出
控制B口8位
方式选择
方式0
方式1
控制C口高4位
控制A口8位
00:
01:
1X:
方式2
功能控制
位操作
图3.18255的控制字格式
说明:
当控制字BIT7=1时,控制字的BIT6~BIT3这4位用来控制A组,即A口的8位和C口的高4位,而控制字的低3位BIT2~BIT0用来控制B组,包括B口的8位和C口的低4位。
8255的C口具有位控功能,即端口C的8位中的任一位都可通过CPU向8255的控制寄存器写入一个按位置位/复位控制字来置1或清0,而C口中其他位的状态不变。
其格式注意8255的C口按位置位/复位控制字的最高位D7(特征位)应为0。
‘图3.2C口按位置位/复位控制字格式
3、38254简介
8254是Intel公司生产的可编程计时器,具有以下功能:
(1)有3格独立的16位计数器;
(2)每个计数器可按二进制或十进制计数;
(3)每个计数器可编程工作于6种不同工作方式;
(4)8254每个计数器允许的最高计数频率为10MHZ;
(5)8254有读回命令,除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容;
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
3.3.18254的内部结构
图3.38254的内部结构图
A0、A1为8254的内部计数器和一个控制寄存器的编码选择信号,其功能如下:
A1
A0
选择
计数器0
计数器1
计数器2
控制寄存器
表3.28254内部编码
CLK0是计数器的时钟输入端。
本次设计的时钟为1MHZ,计数器对此时钟信号进行分频。
GATE0门控信号,即计数器的控制输入信号,用来控制计数器的工作,这里使其为高电平,直接接系统5V。
OUT计数器输出信号,用来产生不同方式工作时的输出波形,本次设计的1ms方波由此输出。
3.3.28254的工作方式
(1)方式0:
计数到0结束输出正跃变信号方式。
(2)方式1:
硬件可重触发单稳方式。
(3)方式2:
频率发生器方式。
(4)方式3:
方波发生器。
(5)方式4:
软件触发选通方式。
(6)方式5:
硬件触发选通方式。
3、48259简介
8259是一种可编程的中断控制器。
每块芯片可管理8级向量中断,同时,可通过多片级连实现多达64级的中断管理。
中断控制器8259有四种主要工作方式,即全嵌套、循环优先级、特定屏蔽和程序查询方式。
同时,它还有一4种从属工作方式,即结束中断、读状态、中断请求触发和数据缓冲方式。
3.4.18259的工作方式
(1)特殊屏蔽方式
在正常情况下,当一个中断请求被响应时,8259将被禁止所有同级及更低优先级中断请求这就称为一般屏蔽方式。
但是,在一特殊情况下,希望也允许较低优先级的中断请求产生中断。
(2)中断结束
中断结束分自动结束和利用命令结束
(3)优先级循环
它有两种优先级规定:
循环优先级和固定优先级。
固定优先级规定8个中断源以IR0的优先级最高依次降低。
循环优先级有3个结构:
自动优先级循环用于中断源具有相等优先级的情况。
指定优先级循环可以利用命令一次性改变优先级。
自动结束方式下的优先级循环,其优先权控制方式与自动优先级循环的相同。
(4)查询状态
通过将操作命令字OCW3中的P位置1,可以查询8259的状态。
3.4.28259的内部控制字
8259工作之前必须通过CPU来命令它。
CPU命令分为两大类:
一类是初始化命令字(ICW),主要是为了让8259处于初始化状态;
另一类是操作命令字(OCW),使初始化的8259去执行具体的某种操作方式。
⑴初始化命令字
1初始化命令字ICW1(写入偶地址)
LTIM
A
S
IC4
1:
需要ICW4
0:
不需要ICW4
单片8259
多片8259级联
间隔为4
间隔为8
电平触发
边沿触发
8080/85模式下,中断
低口低8编程位
图3.48259初始化命令字ICW1
②初始化命令字ICW2(写入奇地址)
8086/88模式下,仅用ICW2提供不同中断源的中断向量码。
当中断响应时,根据中断向量表获得入口地址。
③初始化命令字ICW3(写入奇地址)
该命令字用于多片8259的级联。
相应IR接从属8259
不接8259
主控ICW3
3位编码对应从属
8259接主控的IR编号
从属ICW3
图3.58259初始化命令字ICW3
④初始化命令字ICW4(写入奇地址)
SFNM
BUF
M/S
AEOI
PM
8086/88模式
8080/85模式
1:
自动EOI
非自动结束
0X:
非缓冲方法
10:
缓冲方式/从属片
11:
缓冲方式/主控片
特殊全嵌套方式
一般嵌套方式
图3.68259初始化命令字ICW4
[2]操作命令字OCW(可单独使用)
对8259初始化之后,该芯片就进入工作状态,准备好接收IR端进入的中断请求。
1操作命令字OCW1(写入奇地址)
它用于设置对8259中断的屏蔽操作。
该八位的操作字的某一位为1时,它就屏蔽相对应的IR输入。
2操作命令字OCW2(写入偶地址)
该命令字用来设置优先级是否循环、循环的方式及中断结束的方式。
R
SL
EOI
L2
L1
L0
编码对应IR的
最低优先级
001一般EOI
011特殊EOI中断结束命令
101循环优先级的一般EOI命令
100在自动EOI下置循环优先级自动循环
000在自动EOI下清循环优先级
111循环优先级的特殊EOI命令
110设置优先级特殊循环
01无效
图3.78259初始化命令字OCW2
4频率计设计原程序及注解
SSTACKSEGMENTSTACK
DW64DUP(?
)
SSTACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE,ES:
CODE,SS:
SSTACK
ORG3400H
H8:
JMPP8259
LEDDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH;
0~9
BUFDB?
?
;
六位数码管
P8259:
CLI
CALLWP;
初始化显示“000000”
MOVAX,OFFSETMIR7;
中断IR7入口地址
MOVBX,003CH;
IR7偏移地址
MOV[BX],AX
MOVBX,003EH
MOVAX,SEGMIR7;
IR7段地址
CALLFOR8259;
对8259初始化设置
CALLFOR8254;
对8254初始化设置
CALLFOR8255;
对8255初始化设置
MOVDX,0604H;
给中断一个低电平
MOVAL,00H
OUTDX,AL
CALLFOR8254X;
对频率范围进行设置
CALLDIS;
调用显示子程序
STI
CALLDELAY1;
延时1s
启动中断
MOVAL,01H
PPP:
CALLDIS
JMPPPP
;
==============================================
对8259进行初始化
--------------------------------
FOR8259:
MOVAL,13H;
写入ICW1,边沿触发,间隔8,单片,需要ICW4
OUT20H,AL
MOVAL,0FH;
ICW2,中断向量码
OUT21H,AL
MOVAL,09H;
ICW4,一般全嵌套,缓冲,非自动结束
MOVAL,07FH;
IR7为中断入口,屏蔽其他
RET
对8254进行初始化
---------------------------------------------------------
FOR8254:
MOVDX,06C6H
MOVAL,36H;
T0,高->
低,方式3,二进制
MOVDX,06C0H;
T0对输入频率分频
MOVAX,10000
MOVAL,AH
对8255进行初始化
-------------------------
FOR8255:
MOVAL,80H;
A,B,C口作为输出
MOVDX,0606H
对频率范围设置
FOR8254X:
MOVDX,06C6H;
设置T1,高->
底,方式0,二进制
MOVAL,70H
MOVDX,06C2H;
T1计数的最大值
MOVAX,65535
MOVCX,10;
延时
WAIT1:
LOOPWAIT1
二——十进制转化
---------------------------------------
BTRO:
MOVCL,5
XORCH,CH
XORDX,DX
MOVBX,10
MOVSI,OFFSETBUF
ADDSI,5;
由低位到高位存储
NEXT:
DIVBX
MOV[SI],DL;
除以10的余数存放低位
DECSI
ANDAX,AX
JZSTOP;
判断是否除尽
MOVDL,0
LOOPNEXT
STOP:
8259中断子程序
------------------------------------
MIR7:
PUSHAX;
断点保护
PUSHDX
PUSHBX
STI;
开中断
将计数器锁存
MOVAL,40H
读T1锁存器值
INAL,DX
MOVBL,AL
MOVBH,AL
MOVAX,BX;
计数值放在AX
MOVDX,65535;
将计数值转化为频率值
SUBDX,AX;
65535-计数值=通过脉冲个数
MOVAX,DX
压栈保存等待显示
CALLFOR8254X
CALLBTRO
POPBX;
出栈,恢复中断前数据
POPDX
POPAX
LAST:
IRET
显示子程序DIS
-------------------------------
DIS:
PUSHAX
PUSHSI
MOVDX,0600H
MOVAX,SEGLED
MOVDX,AX
MOVBX,OFFSETLED
MOVAX,0
MOVAL,BUF+5
MOVSI,AX
MOVAL,[BX+SI]
MOVDX,0602H
MOVAL,0FEH
MOVAX.0
MOVAL,BUF+4
MOVAL,0FDH
MOVAL,BUF+3
MOVAL,OFBH
MOVAL,BUF+2
MOVAL,0F7H
MOVAL,BUF+1
MOVAL,0EFH
MOVAL,BUF
MOVAL,0DFH
POPSI
POPBX
WP:
MOVBUF,0;
MOVBUF+1,0
MOVBUF+2,0
MOVBUF+3,0
MOVBUF+4,0
MOVBUF+5,0
延时1s子程序
DELAY1:
PUSHCX
MOVCX,0006H
T1:
MOVAX,009FH
T2:
DECAX
JNZT2
LOOPT1
POPCX
RET
CODEENDS
ENDH8
5频率计程序接线图
芯片8254系统总线芯片8255LED数码管
D0PB0
D1PB1
D2PB2
D3PB3
D4PB4
D5PB5
D6PB6
D7
WRPA0
RDPA1
CSPA2
A0PA3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理
![提示](https://static.bingdoc.com/images/bang_tan.gif)