微机原理8255编程

微机原理8255编程,第1张

;;8255硬件连接及软件设置:

;;B口方式0输入,PB0~PB3分别连接K1~K4;

;;A口方式0输出,PA0~PA3外接驱动电路控制灯的4种动作;

;;驱动电路,可由74LS06、ULN2003作反相电流放大驱动继电器或固体继电器组成;

;;C口闲置;

;;按以上设置,8255方式控制字是82H ;

;;在PC机作主机的系统中,8255的4个寄存器地址是:

;;A口60H,B口61H,方式控制寄存器63H。

;;汇编程序如下:

SSEG SEGMENT PARA STACK ;堆栈段定义

DW 30H DUP()

SSEG ENDS

CSEG SEGMENT ;代码段定义

ASSUME CS:CSEG,DS:CSEG

ORG 200h ;主程序首址

START: MOV AL, 82H ;方式控制字

MOV DX, 63H

OUT DX, AL ;方式控制字送入方式控制寄存器

Scan: IN AL,61H ;扫描从B口读入的K1~K4状态

CALL PRC1 ;开灯、关灯

CALL PRC2 ;是否暂停

CALL PRC3 ;是否换向

CALL PRC3 ;是否移动

JMP Scan ;主程序循环

PRC1 PROC NEAR ;"开/关灯" *** 作 子程序定义

PUSH AX ;B口状态进栈暂存

TEST AL,00000001B ;检测PB0输入状态

JZ CloseL ;若PB0低电平,表示K1断,转CloseL处执行

OpenL: OUT 60H,AL ;若PB0高电平,表示K1通,PA0输出高电平,开灯

JMP RT1 ;转RT1处指令返回

CloseL: MOV AL,00000000B ;PA0输出低电平

OUT 60H,AL ;关灯

RT1: POP AX ;B口状态出栈

RET ;返回主程序

PRC1 ENDP ;子程序定义完毕

PRC2 PROC NEAR ;"暂停" *** 作 子程序定义

PUSH AX ;B口状态进栈暂存

TEST AL,00000010B ;检测PB1输入状态

JZ RT2 ;若PB1低电平,表示K2断,不暂停

PAUS: OUT 60H,AL ;若PB1高电平,表示K2通,PA1输出高电平,暂停

RT2: POP AX ;B口状态出栈

RET ;返回主程序

PRC2 ENDP ;子程序定义完毕

PRC3 PROC NEAR ;"换向" *** 作 子程序定义

PUSH AX ;B口状态进栈暂存

TEST AL,00000100B ;检测PB2输入状态

JZ RT3 ;若PB2低电平,表示K3断,不换向

CHG: MOV AL,00000101B ;若PB2高电平,表示K3通

OUT 60H,AL ;PA2、PA0输出高电平、换向,灯保持亮

RT3: POP AX ;B口状态出栈

RET ;返回主程序

PRC3 ENDP ;子程序定义完毕

PRC4 PROC NEAR ;"移动" *** 作 子程序定义

TEST AL,00001000B ;检测PB3输入状态

JZ RT4 ;若PB3低电平,表示K4断,不移动

MOVE: MOV AL,00001001B ;若PB3高电平,表示K4通

OUT 60H,AL ;PA3、PA0输出高电平、移动,灯保持亮

RT4: RET ;返回主程序

PRC4 ENDP ;子程序定义完毕

CSEG ENDS ;代码段定义完毕

END START ;主程序结束

分类: 教育/科学 >> 科学技术 >> 工程技术科学

问题描述:

有什么意义

解析:

《微机原理》是一门专业基础课程,它的主要内容包括微型计算机体系结构、8086微处理器和指令系统、汇编语言设计以及微型计算机各个组成部分介绍等内容。要求考生对微机原理中的基本概念有较深入的了解,能够系统地掌握微型计算机的结构、8086微处理器和指令系统、汇编语言程序设计方法、微机系统的接口电路设计及编程方法等,并具有综合运用所学知识分析问题和解决问题的能力。

一、考试内容

(一)基础知识

1数和数制(二进制、十进制、十六进制)及其转换

2二进制编码

3二进制逻辑运算

4二进制算术运算

5BCD码

6计算机中字符表示

7计算机的组成结构

(二)8086指令系统

1基本数据类型

2寻址方式

36个通用指令

(三)汇编语言程序设计

1汇编语言的格式

2语句行的构成

3指示性语句

4指令性语句

5汇编语言程序设计的过程

6程序设计

7宏汇编与条件汇编

(四)总线 *** 作和时序

1总线 *** 作的概念

28086的总线

38086的典型时序

4计数器和定时器电路Intel 8253

(五)存储器和PC机存储结构

1半导体存储器的种类

2读写存储器(RAM)

3只读存储器(RQM)

4PC/XT的存储结构

(六)输入和输出

1输入输出的寻址方式

2CPU与外设数据传送方式

3DMA控制器主要功能

4DMA控制器8237

(七)中断

1中断的基本概念

28086的中断方式

3PC/XT的中断结构

4Intel 8259A

(八)并行接口芯片8255

1微机系统并行通信的概念

2并行芯片8255的结构

3并行芯片8255的方式

4PC/XT中8255的使用

(九)串行通信及接口电路

1串行通信的基本概念

2异步通信接口Intel 8251A

(十)数模(D/A)转换与模数(A/D)转换

1D/A转换的概念

2D/A转换器接口

3A/D转换的概念

4A/D转换器接口

二、考试要求

(一)基础知识

1掌握(BCD码),掌握二、十转换,二、十六进制转换。理解计算机数制中二进制、十六进制、十进制的制式。

2掌握二进制编码,了解ASCII码及数字和大写字母A~Z的ASCII码表述,理解组合式、未组合式数的表达方法。

3掌握二进制的原码、反码和补码,及其在8位和16位字长下的范围,掌握二进制逻辑运算和代数运算。

4掌握位(Bit)、字(Word)、字节(Byte)、中央处理单元(CPU)等名词术语的含义。

5了解一般微型计算机的组成。

6熟悉PC机的基本配置及各部件的主要功能。

(二)8086指令系统

1理解基本数据类型(数字数据、指针数据、位字段数据、串数据)

2理解指令的构成,指令 *** 作数有效地址(EA)的形成

3理解立即寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,基址加变址寻址方式中 *** 作数寻址过程。

4掌握间接寻址和基址加变址寻址方式中寄存器的约定,段基数及 *** 作数地址的确定,了解段超越的概念及其使用。

5掌握8086指令系统中数据传送,算术运算,逻辑运算,串 *** 作和控制传送指令的含义及 *** 作过程及算术和逻辑运算对标志位的影响。了解指令代码和执行周期数的含义,了解处理器控制指令的含义。

6掌握算术运算中加减法运算指令的组合BCD数的十进制调整过程及在码制转换中的应用。

(三)汇编语言程序设计

1掌握汇编语言程序的一般格式,源程序的分段结构

2理解语句中标记,符号,表达式的要求和含义,了解指令性语句和指示性语句的意义和区别。

3了解指示性语句中5种语句的概念及其在程序编制中的应用。

4掌握指令性语句在程序设计中的应用,了解附加指令助记符,理解指令前缀的含义和 *** 作。

5掌握程序设计的步骤,能根据问题要求分析画出程序框图,正确编制完成程序设计

6掌握分支程序,循环程序,码制转换程序的设计,了解列表和参数传送技术程序设计。

7理解子程序,中断服务程序,宏调用的概念及其异同点。掌握子程序的编写,栈段的安排,了解子程序的嵌套。

8了解I/O的DOS调用功能,掌握输入单个字符,屏幕显示单个字符及字符串的功能调用及在程序设计中的正确应用。

9了解宏汇编和条件汇编的概念,理解宏定义格式的含义及宏调用 *** 作。

(四)总线 *** 作和时序

1了解总线 *** 作的指令周期,总线周期和T状态的含义及基本总线周期的组成。

2了解8086总线的两种组态的概念,及其在硬件结构和执行时序上的区别。

3理解8086外部引线的功能分类,理解三态信号的含义,掌握数据/低位地址线,高位地址线的信号流向及其确定的内存空间。

4了解8086存储器读写周期与I/O读写周期及其区别。能读懂时序图,了解最大组态和最小组态下存储器读写周期的区别。

5了解IBM PC/XT的CPU系统控制核心的主要组成,了解等待控制电路的功能。

6掌握8253控制命令字,了解各种工作方式的特点,熟悉外部引线的连接。

7掌握8253方式2、方式3的输出特性及编程。

(五)存储器和PC机存储结构

1了解半导体存储器的种类及主要应用特性。

2了解静态RAM和动态RAM的结构。掌握2114、2164构成不同存储器空间的配置,及对工作周期的要求。

3了解ROM的应用,理解ROM EPROM EEPROM的区别。

4了解PC/XT的存储空间分配,理解ROM在系统中的作用,掌握系统板和扩充板上RAM的位结构。

5掌握用2114、2164构成不同地址空间扩展内存的硬件连接。

(六)输入和输出

1了解计算机输入输出的两种寻址方式,了解PC/XT的端口寻址及相应的CPU控制引脚。

2了解CPU与外设间的接口信息,掌握其数据传送的四种传送方式。

3了解DMA *** 作的基本过程,理解DMA控制器(DMAC)的主要功能。

4了解DMA 8237在PC/XT机中的功能及工作过程。

(七)中断

1理解中断的功能,中断源,中断优先权,中断嵌套及中断执行过程。

2了解8086的软件中断和硬件中断,理解中断类型号,中断向量表,中断向量的含义,掌握INT n指令中断的处理过程。

3了解PC/XT的中断结构。

4了解中断控制器8259A在微机系统中的作用,理解初始化编程命令和工作方式命令。

5了解8259A的工作方式,理解8259A级联方式。

(八)并行接口芯片8255

1了解并行接口的概念,了解可编程并行接口芯片的功能。

2了解并行接口芯片8255A的外部结构,理解其三种工作方式及特点。

3掌握8255A的端口地址分配,掌握方式0的功能及端口命令字的设置。

4了解8255A在PC/XT种的使用的基本情况,了解8255A和DIP开关在系统板RAM容量配置方面的作用。

(九)串行通信及接口电路

1了解串行通信和并行通信的区别,了解串行通信的半双工和全双工工作的数据传送方向及示意图。

2了解远距离串行通信中信号的调制和解调及RS-232C串行通信接口。了解串行通信的校验方法。

3理解8251A初始化编程的主要步骤,掌握传送数据格式命令字和波特率的确定。

(十)数模(D/A)转换与模数(A/D)转换

1了解D/A转换的概念。掌握CPU与8位D/A芯片DAC98131的连接。

2了解8位CPU与10位D/A转换器的连接方式。

3了解A/D转换的概念。逐次逼近式A/D的工作原理。

4理解8位和10位A/D芯片与PC/XT总线接口电路。掌握单回路8位A/D转换的编程。

《微机原理及接口技术》第03章在线测试

第一题、单项选择题(每题1分,5道题共5分)

 1、主程序将数据本身传递给子程序,这是___A____。

A、传数值的入口参数          B、传地址的入口参数

C、传数值的出口参数           D、传地址的出口参数

 2、指令“JMP EAX”所采用的指令寻址方式是__D____。

A、相对寻址                      B、直接寻址

C、存储器间接寻址           D、寄存器间接寻址

 3、已知NVAR是一个变量,指令“JMP NVAR”中访问NVAR所采用的数据寻址方式是__B____。

A、寄存器寻址                                   B、存储器的直接寻址

C、存储器的寄存器间接寻址             D、存储器的寄存器相对寻址

 4、MASM中,实现段间转移的转移类型属性名是__C____。

A、SHORT                 B、NEAR

C、FAR                      D、PTR

 5、IA-32处理器使用CALL指令调用子程序时,返回地址被保存到__C____。

A、共享变量               B、寄存器EBP

C、当前堆栈顶部         D、寄存器ESP

第二题、多项选择题(每题2分,5道题共10分)

 1、(本题空白。您可以直接获得本题的2分)

 2、(本题空白。您可以直接获得本题的2分)

 3、(本题空白。您可以直接获得本题的2分)

 4、(本题空白。您可以直接获得本题的2分)

 5、(本题空白。您可以直接获得本题的2分)

第三题、判断题(每题1分,5道题共5分)

 1、在IA-32处理器中,若CS不变,只改变EIP值,不能改变程序的执行顺序。     F

正确     错误

 2、执行JNS指令顺序执行的条件是SF=1 。     T

正确     错误

 3、条件转移指令JL和JNGE虽然是两个助记符,但却是同一个指令。     T

正确      错误

 4、主程序调用子程序使用CALL指令。     T

正确      错误

 5、JMP指令对应高级语言的GOTO语句,所以不要使用。     F

正确       错误

《微机原理及接口技术》第03章在线测试

《微机原理及接口技术》第03章在线测试

剩余时间:

59:55

答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)

1、IA-32处理器的条件转移指令Jcc采用指令的_____A_____地址寻址方式。

A、相对 B、直接

C、寄存器间接 D、存储器间接

2、MASM进行子程序设计时,需要使用____B____伪指令对。

A、segment / ends B、proc / endp

C、macro / endm D、call / ret

3、指令“JMP EAX”所采用的指令寻址方式是___D___。

A、相对寻址 B、直接寻址

C、存储器间接寻址 D、寄存器间接寻址

4、MASM中,实现段间转移的转移类型属性名是___C___。

A、SHORT B、NEAR

C、FAR D、PTR

5、IA-32处理器使用CALL指令调用子程序时,返回地址被保存到___C___。

A、共享变量 B、寄存器EBP

C、当前堆栈顶部 D、寄存器ESP

第二题、多项选择题(每题2分,5道题共10分)

1、(本题空白。您可以直接获得本题的2分)

2、(本题空白。您可以直接获得本题的2分)

3、(本题空白。您可以直接获得本题的2分)

4、(本题空白。您可以直接获得本题的2分)

5、(本题空白。您可以直接获得本题的2分)

第三题、判断题(每题1分,5道题共5分)

1、在IA-32处理器中,若CS不变,只改变EIP值,不能改变程序的执行顺序。 F

正确 错误

2、为了保护和恢复寄存器,进入子程序后,将EAX,EBX,ECX和EDX依次压入堆栈,则子程序返回前d出这些寄存器的顺序依次是EDX,ECX,EBX,EAX。 T

正确 错误

3、带有出口参数的寄存器,子程序在进入时无需保护,在返回主程序前也不能恢复。T

正确 错误

4、介绍LOOP指令时,常说它相当于DEC ECX和JNZ两条指令。但考虑对状态标志的影响,它们有差别。LOOP指令不影响标志,而DEC指令却会影响除CF之外的其他状态标志。 T

正确 错误

5、子程序需要保护寄存器,包括保护传递入口参数和出口参数的通用寄存器。F

正确 错误

汇编语言中主程序与子程序参数传递的方法有以下几种:

1寄存器法

寄存器法就是将入口参数和出口参数存放在约定的寄存器中。

优点:数据传递书读快、编程较方便、节省内存单元。

缺点:当传递参数过多时候,由于寄存器个数有限,及寄存器的频繁使用,将导致寄存器不足。

适用:参数较少的子程序

2。约定单元法:

约定单元法顾名思义是吧入口参数和出口参数都放在事先约定好的单元中

优点:不占用寄存器、参数个数任意、每个子程序要处理的数据和送出的结构都有独立的存储单元

缺点:但用一定数量的存储单元,增加编程中对变量定义的难度

3堆栈法

堆栈法是利用堆栈来传递参数的。

优点:参数不占用寄存器,和存储单元。参数存放在公共堆栈区,处理完后客恢复。参数个数一般不限

缺点:由于参数和子程序混杂在一起,存取参数时候必须小心计算它在堆栈中的位置。要注意断点的保存和恢复。

4地址表法

这种方法是把参数组成的一张参数表放在某个存储区中,然后只要主程序和子程序约定好这个存储区的首地址和存放的内容,在主程序中将参数传递给地址表,在子程序中根据地址表给定的参数就可以完成 *** 作。

它们的主要差异有:\x0d\1、 子程序调用一定是程序员在编写程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外) \x0d\2、 子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序); \x0d\3、 子程序的返回指令是RET,而中断服务程序的返回指令是IRET/IRETD。 \x0d\4、 在通常情况下,子程序是由应用程序开发者编写的,而中断服务程序是由系统软件设计者编写的。 \x0d\5、中断方式具有实时性,其可以在函数中的任意位置产生。而子程序调用是编程着写的在程序的特定位置其特定功能的函数。

;2编写子程序。将DX中的十六进制数输出到屏幕上。主程序调用子程序实现上述功能

data segment

MESS DB 'DX=$'

data ends

code segment

main proc far

assume cs:code,ds:data

start:

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV DX,0A2C9H

CALL DISP

RET

main endp

;=====================

DISP PROC NEAR

PUSH DX

MOV AH,9

MOV DX,OFFSET MESS

INT 21H

POP DX

MOV CH,4

NEXT:

MOV CL,4

ROL DX,CL

MOV BX,DX

AND DL,0FH

CMP DL,9

JA BE_AF

ADD DL,30H

JMP D1

BE_AF:

ADD DL,'A'-0AH

D1:

MOV AH,2

INT 21H

MOV DX,BX

DEC CH

JNZ NEXT

RET

DISP ENDP

;====================

code ends

end start

data segmenr

dat db xxh

sqrtab db 0,1,4,981

sqr db

data ends

code segment

assume cs:code,ds:data

start:mov ax,data

mov ds,ax

lea si,dat

lea di,sqr

cmp byte ptr [si],0

jns zhengshu

neg byte ptr [si]

zhengshu:mov al,[si]

call chabiao

mov [di],al

mov ah,4ch

int 21h

code ends

chabiao proc near

lea bx,sqrtab

xlat

ret

chabiao endp

end start

以上就是关于微机原理8255编程全部的内容,包括:微机原理8255编程、微机原理 学的是什么、2020下学期《微机原理及接口技术》第03章在线测试等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9770436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存