西电微机原理大作业

发布 2022-09-04 22:44:28 阅读 1877

科目: 微机原理与系统设计

授课老师: 李明、何学辉

学院: 电子工程学院

专业: 电子信息工程

学生姓名。学号。

基于8086最小方式系统总线完成电路设计及编程:

1、扩展16k字节的rom存储器,起始地址为:0x10000;

intel 2764的存储容量为8kb,因此用两片intel 2764构成连续的ram存储区域的总容量为28kb=16kb=04000h,鉴于起始地址为10000h,故最高地址为。

10000h+04000h-1=13fffh

电路如图。2、扩展16k字节的ram存储器,起始地址为:0xf0000;

intel 6264的存储容量为8kb,因此用两片intel 6264构成连续的ram存储区域的总容量为28kb=16kb=04000h,鉴于起始地址为f0000h,故最高地址为。

f0000h+04000h-1=f3fffh

片内地址总线有13根,接地址总线的,和用于区分奇偶片,用74ls155作译码电路,如图所示。

3、设计一片8259中断控制器,端口地址分别为:0x300,0x302;

鉴于端口地址分别是300h和302h,可将8259接到8086,其他作译码。电路如图:

4、设计一片8253定时控制器,端口地址分别为:0x320,0x322,x324,0x326;

根据端口地址可知,8253应该分别接到8086的,其余参与译码。电路如图:

5、设计一片8255并行接口,端口地址分别为:0x221,0x223,x225,0x227;

由于端口地址为奇地址,8086数据总线应该接,且参与译码。根据端口地址可得8255应该分别接到8086的,其余参与译码。电路如图:

6、设计外部连接电路实现通过8253每一秒钟产生周期中断信号,并利用该信号通过8259向8086处理器发送中断请求,利用该中断同步,8086处理器周期的从8255并行接口输入8位开关量的值,并存入到ram的某个地址中。

利用8253输出端(out)产生的信号接入8259的中断请求输入端,以为例,然后8259向8086处理器发中断请求,可利用8086中断响应信号参与到8255译码电路中来同步,从而周期的从8255输入开关量的值。可将8255的a端口作为8位开关量的输入,b端口作为输出存到ram中。省略各个端口的译码电路,主要控制信号的连接如图:

7、请编写实现上述功能的完整的汇编程序**,包括主程序及中断服务程序,在主程序中需要完成中断向量表的初始化(假定8259采用8086的30号中断进行同步,中断服务程序段的标号为:int30_isr),8259,8253(假定外部能有的时钟源为1mhz)及8255的初始化;在中断服务程序实现从8255中输入开关量并存储到ram的某个地址中。

stack segment stack

db 256 dup(?)

top label word

staca ends

data segment

in_buffer db 100 dup(?)

in_pointer

in_imr

data ends

codem segment

assume cs:codem,ds:data,es:data,ss:stack

start:

mov ax,int30_isr ;设置中断向量。

mov ds,ax

lea da,int30_isr

mov ax,300bh

int 21h

mov ax,data

mov ds,ax

mov in_pointer offset in_buffer

mov dx,302h

in al,dx

mov int_imr,al

and al,1111110

out dx,al

mov dx,227h

mov al,10010000b

out dx,al

mov dx,326h

mov al,00110110

out dx,al

mov dx,320h

mov ax,1000h

out dx,al

xchg al,ah

out dx,al

mov dx,326h

mov al,01110110

out dx,al

mov dx,322h

mov ax,1000

out dx,al

xchg ah,al

out dx,al

sti中断服务程序。

codes segment

assume cs:code

int30_isr proc far

push ds

push ax

push bx

push dx

mov bx,in_pointer

mov dx,221h

in al,dx

mov [bx],al

inc bx

mov in_pointer,bx

exit: cli

mov al,20h

mov dx,300h

out dx,al

pop dx

pop bx

pop ax

pop ds

iretint30_isr endp

codes ends

end start

微机原理大作业

一 1.程序。stack segment stack db 256 dup top label word stack ends data segment table dw g1,g2,g3,g4,g5 string1 db 1.change small letters into capital le...

微机原理大作业

大作业2 8086微机系统设计,具体要求如下 工作在最小方式。2 工作时钟频率为 5mhz。3 系统地址总线形成用74ls373。系统数据总线形成用74ls245。4 外部扩充设计16kb程序存储器,芯片选用intel2764,首地址从fc000h开始 外部扩充设计16kb数据存储器,芯片选用int...

微机原理课程大作业

张三在工作中需用8086汇编语言编程,且经常需进行三个变量x,y及z的如下运算 为此张三决定将该三变量的运算操作写成子程序,以便随时调用。不过张三不想自己独立编写该8086汇编子程序,而是采用如下方式获得该8086汇编子程序 编写如下c语言程序 注意 整理过程主要包括调整变量x,y及z为16位数据长...