文档视界 最新最全的文档下载
当前位置:文档视界 › 汇编与接口第四章作业

汇编与接口第四章作业

汇编与接口第四章作业
汇编与接口第四章作业

1.伪指令语句与硬指令语句的本质区别是什么?伪指令语句有什么主要作用?

答:区别:伪指令语句是能执行的语句,硬指令语句是CPU可以执行的语句。

伪指令语句主要作用是为汇编程序提供解释说明,它仅仅是在汇编过程中告诉汇编程序如果进行汇编。

2.什么是标识符?汇编程序中标识符怎样组成?

答:是用户自己定义的符号名。在汇编程序中标识符有两种:标号标识符,用在指令语句中,后面跟冒号,表示程序入口的逻辑地址。符号(或名字)标识符,用在伪指令语句中,后面不跟冒号,通常是定义一个变量,或说明变量类型。标识符一般不超31个字符,数字及常规符号($、@、?等)不能打头,也不能使用保留字。标识不区分大小写。

4.汇编语句有哪两种,每个语句有哪4部分组成?

答:指令语句(又称执行语句)和伪指令语句(又称说明性语句)。指令语句4部分包括,①标号:、②硬指令助记符、③操作数、④;注释。伪指令语句4部分包括,①符号名、②伪指令助记符、③参数、④;注释。

5.汇编程序开发有哪4个步骤?分别利用什么程序完成,产生什么输出文件?

答:①编辑。使用文本编辑器。产生汇编源程序文件: 文件名.ASM。源文件是文本文件。

②汇编。使用汇编程序,如MASM或ML,排除程序中的语法错误。产生目标文件:文件名.OBJ。目标文件是二进制文件,是不能执行的文件。

③连接。使用LINK。产生可执行文件:文件名.EXE.

④调试。使用DEBUG。本身不产生文件,是对连接产生的可执行进行调试,排除程序中的算法错误,保证可执行文件的正确性。

7.假设MYWORD是一个字变量,MYBYTE1和MYBYTE2是两个字节变量,指出下列语句中的错误原因。

(1) MOV BYTE PTR[BX], 1000

答:数据类型不匹配,目的地址单元是字节单元,1000大于255。无法存放。

(2) MOV BX, OFFSET[SI]

答:OFFSET后只能跟标识符。

(3) CMP MYBYTE1, MYBYTE2

答:CMP的两个操作数不能同时在存储器中。

(4) MOV AL, MYBYTE1+MYBYTE2

答:运算符只能对常数进行操作,不能对变量进行操作。

(5) SUB AL, MYWORD

答:数据类型不匹配,AL是8位的,MYWORD是16位变量。

(6) JNZ MYWORD

答:MYWORD是变量,其指的单元中存放的是操作数,不能用做跳转入口。

8.OPRL是个常数,请问下列语句中两个AND操作有什么不同?

AND AL, OPRL AND 0FEH

答:第一个AND是指令语句,在程序运行时才执行,第二个AND是逻辑运算符,

是在汇编时就对两个常量完成的关系运算。

《汇编语言与接口技术》答案习题解答(第三章)

解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 解:

.model small .stack .data bufX dw -7 signX db .code .startup cmp bufX,0 ;test bufX,80h jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h

编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ; .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 解: lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1

《汇编语言与接口专业技术》习题解答第三章

《汇编语言与接口技术》习题解答(第三章)

————————————————————————————————作者:————————————————————————————————日期:

问题: 画图说明下列语句分配的存储空间及初始化的数据值 解答: (1)byte_var DB 'ABC',10,10h,'EF',3 DUP(-1,?,3 DUP(4)) (2)word_var DW 10h,-5,3 DUP(?) 习题3.10 ‘A ’‘B ’‘C ’1010h ‘E ’‘F ’-1-444... 41h 42h 43h 0ah10h 45h 46h ffh -04h 04h 04h 3个10h 0FBh FFh ---- --10h -5?? ? 3.16 解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 3.18 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 3.19 解: .model small .stack .data bufX dw -7 signX db ? .code .startup cmp bufX,0 ;test bufX,80h

jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 3.20 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h 3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H 等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.30 解: lucase proc push bx mov bx,offset string cmp al,0 je case0

嵌入式系统设计大作业

嵌入式系统设计大作业 学号:14020520009 姓名:罗翔 1、叙述JTAG接口在嵌入式开发中的作用。 答: (1)用于烧写FLASH 烧写FLASH的软件有很多种包括jatg.exe fluted flashpgm等等,但是所有这些软件都是通过jtag接口来烧写flash的,由于pc机上是没有jtag接口的,所以利用并口来传递信息给目标板的jtag接口。所以就需要并口转jtag接口的电路。 (2)用于调试程序 同时应该注意到jtag接口还可以用来调试程序。而调试程序(如ARM开发组件中的AXD)为了通过jtag接口去调试目标板上的程序,同样是使用pc的并口转jtag接口来实现与目标板的通信。这样,并口转jtag接口的电路就有了两种作用。 (3)仿真器 根据(1)和(2)的总结,并口转jtag接口的电路是两种应用的关键,而这种电路在嵌入式开发中就叫仿真器。并口转jtag接口的电路有很多种,有简单有复杂的,常见的仿真器有Wigger,EasyJTAG,Multi-ICE等。这些所谓的仿真器的内部电路都是并口转jtag接口,区别只是电路不同或使用的技术不同而已。 2、叙述嵌入式平台的搭建过程,以linux为例。 答: 1) 一:建立宿主机开发环境 建立交叉编译的环境即在宿主机上安装与开发板相应的编译器及库函数,以便能够在宿主机上应用开发工具编译在目标板上运行的Linux引导程序,内核,文件系统和应用程序 交叉编译:在特殊的环境下,把嵌入式程序代码编译成不同的CPU所对应的机器代码。

开发时使用宿主机上的交叉编译,汇编及链接工具形成可执行的二进制代码(该代码只能在开发板上执行),然后下载到开发板上运行 2) 下载和安装arm-Linux-gcc编译工具链下载最新的arm-Linux-gcc并解压至当前目录下 在系统配置文件profile中设置环境变量方法:直接在profile文件中加入搜索路径立即使新的环境变量生效:运行source命令,检查是否将路径加入到path,测试是否安装成功, 编译程序,测试交叉工具链 3) 配置超级终端minicom minicom是宿主机与目标板进行通信的终端:在宿主机Linux终端中输入:minicom-s或输入minicom然后按ctrl+A+O对超级终端minicom进行配置,再选择串口并配置串口,最后保存即可 4) 建立数据共享服务:NFS服务是Linux系统中经常使用的数据文件共享服务 5) 编译嵌入式系统内核:内核配置,建立依存关系,建立内核 6) 制作文件系统 3、给出现今有哪些用于嵌入式开发的芯片名称,他们分别是哪些公司的产品? 体系结构是什么? S3C2410X基于ARM的Sumsang; XscalePXA255/PXA270基于ARM的Intel; 摩托罗拉MC基于68k; Power 601基于Power PC; MIPS32Kc基于MIPS 4、现今较流行的嵌入式操作系统有哪些? 答: (1) VxWorks (2)wince (3)linux (4)android

汇编与微机接口

信息工程与自动化学院学生实验报告 (2019 —2020学年第 2 学期) 课程名称:汇编与微机接口开课实验室: 442 2020年 4月29 日 实验一、根据材料编程 一、上机目的及内容 1.掌握十进制两位数输出的方法 2. 80×25 彩色字符模式显示原理 3. 综合应用寻址方式和汇编指令完成应用编程 二、实验原理及本技术路线图(程序流程图) 1)在内存中定义并初始化一个字符串:“welcome to masm!”(这个在数据段中定义就可以,使用db) 2)由材料提示(这里是8位的二进制的组合,形成一个属性) 属性字节的格式: 7 6 5 4 3 2 1 0 BL(闪烁) R(背景) G(背景) B(背景) I(高亮) R(前景) G(前景) B(前景) 知道:绿色属性:00000010B==02H 绿底红色:00100100B==24H 白底蓝色:01110001B==71H 也就是说02H如果存储在显示缓冲区中的奇数内存单元时,它显示的字符是绿色的。 3)在命令提示符窗口或dos窗口,我们可以显示80X25的字符(我的机器行数多,命令提示符窗口,跟设置有关)。每行80个字符,一共是25行。它们在内存中是在一个内存段中存储的,这个内存区域叫做显示缓冲区。从物理地址B8000H~BFFFH这个32K的内存区域就是显示缓冲区。 也就是说在显示缓冲区中,每2个字节负责屏幕上一个字符的显示(包括显示的属性)。 在显示缓冲区内写入的字符,立即就显示在屏幕上。 因为每行要显示80个字符,故从0000H~009FH是显示的第一行(共160个字节)。每行可以类推。 因为每行要显示80个字符,故从0000H~009FH是显示的第一行(共160个字节)。每行可以类推。 程序流程图

汇编语言练习题

一、单项选择题(共20题) 1.对于有符号的数来说,下列哪个值最大() A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是()A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是( )。 A.C+D=B B.A+D=B C.B=D D.A>C>D 4.下列四个寄存器中,可作为十六位寄存器的是( ) A.DL B.CL C.BP D.EBX 5.8088/8086存储器分段,每个段不超过() A.64K个字 B. 32K个字节 C.1兆个字节 D.64K个字节6.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式() A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成( )。 A..OBJ文件B..EXE文件

C..LST文件D..CRF文件 8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是( )。 A. (CS)×16+(IP) B. (DS)×16+(DI) C. (SS)×16+(SP) D.(ES)×16+(SI) 9.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 10.8086/8088系统执行传送指令MOV时() A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 11.执行下列程序后,(AL)=( )H。 DATA SEGMENT TAB DB ‘0123456789’ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX, DATA MOV DS, AX MOV BX, OFFSET TAB MOV AL, 04 XLAT TAB …

接口与程序设计作业(附答案)

习题1(教材P56) 1.8086/8088微处理器地址总线有多少位?寻址范围是多少? 答:20位 A019。寻址范围00000 2.8086/8088微处理器分哪两部分?各部分主要由什么组成? 答:执行单元和总线接口单元。 包括:、寄存器组、暂存器、标志寄存器、控制单元。 包括:指令队列缓冲器、段寄存器及指令指针、总线地址加法器、总线控制逻辑。 4.8086/8088微处理器中有几个通用寄存器?几个变址寄存器?有几个指针寄存器?几个段寄存器? 答:8个通用寄存器、、、、、、、。2个变址寄存器、。2个指针寄存器、。、、、段地址寄存器。 5.8086/8088微处理器中有哪些标志位?它们的含义和作用如何? 答:零标志位、进位标志、溢出标志位、辅助进位标志位、奇偶标志位、符号标志位、方向标志位、中断允许标志位、跟踪标志。 6.试求出下列运算后的各个状态标志,说明进位标志和溢出标志的区别? 12783469H 答:0001 0010 0111 1000 +0011 0100 0110 1001 0100 0110 1110 0001 0;0;0;0;1;1。 54E3H-27A0H 答:0101 0100 1110 0011 +1101 1000 0110 0000(-27A0的补码) 10010 1101 0100 0011 0;0;1;0;0;0。 H 答:0011 1000 1000 0001 +0011 0101 1001 0111 0110 1110 0001 1000 0;0;0;0;0;1。 01E301E3H 答:0000 0001 1110 0011 +1111 1110 0001 1101(-01E3H的补码) 10000 0000 0000 0000 1;0;1;0;1;1。 进位表示最高位产生进位。

计算机接口技术大作业

计算机中断技术大作业题目深入理解中断系统

目录 一:什么是中断 (2) 中断的定义 (2) 中断技术差生的原因 (3) 中断技术差生的优点 (5) 中断技术差生的缺点 (7) 二:基本概念 (8) 中断源 (8) 我们把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。在上面看书的例子中,打断你看书的时间就是中断源(电话响了)。 (8) 中断嵌套 (8) 中断级联 (9) 图 (10) 软中断,硬中断 (10) NMI(不可屏蔽中断)&可屏蔽中断 (11) 中断请求号&中断向量 (11) 中断响应INTA&中断周期 (11) 中断响应INTA:当8259A接收到第一个/INTA有效的负脉冲后,将被响应的中断源置入ISR(正在服务寄存器)的对应位,即ISR对应位置1,同时把IRR(中断请求寄存器)的对应位清0; (11) 单步中断&IF中断允许标志位 (12) IMR中断屏蔽字&中断优先级 (12) 中断控制器&APIC (12) 中断共享&中断冲突 (12) MSI-X中断(PCI E)、中断处理子程序 (13) 0号中断、1号中断 (13) 中断描述符、中断描述符表 (13) 异常 (13) 中断门、OS的事件、消息 (14) 三:中断资源相关 (14) 我的电脑中断相关资源占用情况 (14) ISA中断 (18) PCI中断 (22)

IRQ0-15中断请求外的 (22) 四:中断系统 (22) 中断系统怎样协调完成中断过程 (23) 五:多处理器系统的中断 (24) 怎么连接 (24) 如何处理 (25) 六:硬件、软件是怎么配合完成中断处理的 (25) 七:编写8251查询发送、中断接收的自检程序 (27) 摘要 学习计算机组成原理和计算机接口技术之中,“中断”是一个必须要学习的美容,计算机之所以能够“智能”的运行起来使得其更容易被人使用很重要的一点就是有了中断技术。因为中断计算机从一个只靠计算速度和存储量来来博得人们喜爱的机器变成了一个用户有好的聪明的机器。 本文将从几个问题入手来来逐一介绍计算机中断技术和中断系统。 一:什么是中断 中断的定义 在计算机科学中,中断是指由于接收到来自外围硬件(相对于中央处理器和内存)的异步信号或来自软件的同步信号,而进行相应的硬件/软件处理。发出这样的信号称为进行中断请求(interrupt request,IRQ)。硬件中断导致处理器通过一个上下文切换(context switch)来保存执行状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的一个指令,以可编程的方式直接指示这种上下文切换,并将处理导向一段中断处理代码。中断在计算机多任务处理,尤其是实时系统中尤为有用。这样的系统,包括运行于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。 上面是来自维基百科对中断定义。 个人认为中断就是计算机在执行程序的过程中,当出现异常情况或者是特殊请求时,计算机停止执行现行程序的运行,转向对这些异常情况或特殊请求的处理,处理后再返回到现行程序的间断处,继续执行原程序,这就是中断。

汇编程序习题

汇编程序习题 1.试分析以下程序段完成什么功能? MOV CL,4 SHL DX,CL SHL AX,CL SHR BL,CL INT 3 2.写出执行以下计算的指令序列: 1)Z←W+(Z-X)2)Z←W-(X+6)-(R+10) 3)Z←(W*X)/(R+6)4)Z←((W-X)/5*Y)*2 3.求两个数56H和67H进行ADD,并求出标志OF,CF,SF,ZF的值。4.阅读程序段,回答下述问题: 1)MOV AX,4000H 2)MOV AX,5678H 3)MOV AX,1234H OV DS,AX MOV BX,99AAH MOV CX,8912H MOV BX,1238H PUSH BX CMP AX,CX MOV〔BX〕,2244H PUSH AX INT 3 MOV AL,〔BX〕 POP DX SF=?OF=?JA成立否? INT 3 POP CX AL=?存储器的物理地址=?DX=?CX=? 5.下列程序能完成什么功能? DATY1 DB 300DUP(?) DATY2 DB 100DUP(?) …… MOV CX,100 MOV BX,200 MOV SI,0 MOV DI,0 NEXT:MOV AL,DATY1〔BX〕〔SI〕 MOV DATY2〔DI〕,AL

INC SI INC DI LOOP NEXT 6.下列指令哪些是错误的?并简述之。 1)MOV 15,BX 2)CMP OP1,OP2(假定OP1,OP2是用DB定义的变量) 3)CMP AX,OP1 4)CMP OP1,25H 5)MOV DS,CS 7.下列程序段执行后,BX的值是什么? MOV CL,3 MOV BX,0B8H ROL BX,1 ROR BX,CL 8.编写一个程序段,将内存200H单元开始的256个单元的内容,取绝对值后传送到400H开始的256个单元中。 9.求出下列各数与62A0H之和,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)4321H 3)CFA0H 4)9D60H 10.求出下列各数与4AE0H之差,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)5D80H 3)9090H 4)EA04H

汇编与接口实验参考文档

《汇编与接口第一次实验》

第一次实验 作业题目: 一、实验目的 1.进一步学习汇编语言基本指令使用方法; 2.学习DEBUG调试工具的基本使用方法;掌握debug调试命令a、u、r、d、t、g等 3.逐条观察程序指令的执行过程,理解指令的功能,理解程序自动、顺序地执行的概念,实践其过程(重点)。 二、实验题目 1.编写、输入一个32位二进制数相加程序,逐条执行指令,观察指令执行情况。 2.使用已经过汇编和连接的小程序(t3-2.exe),将其装入内存,逐条执行指令,观察执行过程和结果。在实验过程中,使用D命令修改XXX 和YYY单元中的数据,再重新计算其结果。4、如果在一个程序开始执行之前(CS)=0A7F0H(如果十六进制数的最高位为字母,则应该在其前加1个0),(IP)=2B40H,试问该程序的第1个字的物理地址是多少?

一.实验第一部分 1. 启动计算机的WINDOWS操作系统,在开始菜单中找到“运行”,输入“cmd”后回车,启动ms-dos command程序,再在该程序 内输入“DEBUG”并按回车,即启动DEBUG调试程序。 2. 开始编程 在启动的debug程序里输入a命令进入编程功能 在编程部分逐条输入32位二进制数相加程序的指令,完成无符号数10000100H和1200ffffH的加法操作,程序的代码见图1: 图1,程序编写,r指令(执行前),u指令 对32位数的低16位操作时,存放初始地址是0AE1:0100, 使用U命令对代码进行反汇编我们可以看到对应地址中所存放的指令和他们对应的长度,可以看到MOV和ADD指令的的长度都是3,但ADC的指令长度为4,因为ADC指令中需要考虑进位CF所以比MOV和ADD多了一位长度,如上图。 使用r命令后,可以看到指令执行前各寄存器的内容,CS:IP的内容为0100,下一条执行的指令为MOV AX,0100,操作数寻址为立即数寻址,内存单元的值为0100H。

汇编与接口 第六章作业

P327页 15.8255A有哪几种工作方式,对这些工作方式有什么规定? 答:8255A有三种工作方式。分别是方式0(基本的输入输出方式);方式1(选通的输入输出方式);方式2(双向传输方式)。 方式0:不需要应答联络信号。A、B、C口都可以工作在方式0。 方式1:选通的输入输出方式,只有A、B端口可以工作在方式1,C端口作为A、B端口的应答信号。而且是单向的,作为输入端口,就不能做输出端口,作为输出端口就不能做输入端口。 方式2:双向传输方式,只有A端口可以工作在方式2,C端口做为A端口输入输出时的应答信号,可以工作在输入,也可以工作在输出。 16.假设8255A端口地址为00C0~00C6H,要求: (1)对8255A设置工作方式,A端口工作在方式1,输入;B端口工作在方式0,输出;端口C的4为配合端口A工作,端口C的低4为方式0,输入。 (2)用置0∕置1,直接对PC6置1,对PC4置0 答:端口地址0000 0000 1100 0000 ~0000 0000 1100 0110。说明A口地址为00C0H,B 口地址为00C2H,C口地址为00C4H,控制字地址为00C6H。 (1)控制字为:1011X001B,即0B1H(X取0) MOV AL,0B1H MOV DX,00C6H OUT DX,AL (2)直接对PC6置1时的控制字为:0XXX1101B,即0DH MOV AL,0DH MOV DX,00C6H OUT DX,AL 直接对PC4置0时的控制字为:0XXX1000B,即08H MOV AL,08H MOV DX,00C6H OUT DX,AL 17.使用8255A作为开关和LED指示灯的接口。要求8255A的A口连接8个开关,B口连接8个LED(发光二极管),用作指示灯,将A口的开关状态读入,然后送至B口控制指示灯亮、灭。试画出接口电路设计图,并编写程序实现。 解:根据要求,设计电路如图所示。用PA7引脚上的开关控制PB7上的LED,PA0引脚上的开关控制PB0上的LED。开关闭合输入低电平,开关打开输入高电平。高电平指示灯亮。A端口地址为8000H,B端口地址为8001H ,C端口地址为8002H ,控制字寄存器地址为8003H(假设未使用的地址线都取0)。 控制字:10010000B(C口工作在输出),即90H 参考程序: MOV AL, 90H MOV DX, 8003H OUT DX, AL LOOP: MOV DX, 8000H IN AL, DX MOV DX, 8001H

MCS-51微机接口大作业

《微机接口技术》 大作业 作业要求: 设计一外部设备监控系统,采用CPU为51系列单片机,用C51或ASM51编写软件,给出SCH原理图和软件清单(要求有功能注释),系统要求如下: ①系统带有电子时钟,2路模拟量和8路数字量的检测; ②4个按键,分别为设置、+、-、->可以可以完成相应的设置过程(包括时间设置和外部监控值的上下限设置); ③采用I2C 8583时钟芯片(可以查相关资料); ④8个8段LED显示(可以采用SPI总线芯片7219)以辅助完成设置,显示内容:时-分-秒;

⑤8个按键分别可以模拟外部8个故障点; ⑥2路电位器可以模拟外部模拟信号; ⑦EEPROM(I2C总线芯片24c256)保存最近100个外部故障数据(包含故障点和故障时间); ⑧RS485上位机接口。 系统软件完成的功能: ①上电时电子钟方式显示当前时间; ②设置按键进入设置状态,可以重新设置新时间值和外部监控值的上下限,结果写入8583。设置完成后电子钟方式显示当前时间; ③实时监测外部8个数字故障点和模拟数字,一旦故障记录其故障数据、故障发生时间和恢复时间; ④上位机传来命令字0xaa向上位机发送所保存的外部故障数据,发送完成后清除保存数据。(自定义通讯协议)。

一、元器件选择 芯片名称型号接口类型线数其它AD转换芯片TLC1549 SPI 3 2块共阴极数码管显示驱动器MAX7219 SPI 3 时钟芯片PCF8583 I2C 2 EPROM 24WC256 I2C 2 串口RS485 MAX487E 3 二、MCS-51单片机引脚连接 单片机I/O 引脚 外部器件连接及功用 器件名称引脚代号功用 P0^0 SW1 按钮1,模拟外部故障点1 P0^1 SW2 按钮2,模拟外部故障点2 P0^2 SW3 按钮3,模拟外部故障点3 P0^3 SW4 按钮4,模拟外部故障点4 P0^4 SW5 按钮5,模拟外部故障点5 P0^5 SW6 按钮6,模拟外部故障点6 P0^6 SW7 按钮7,模拟外部故障点7 P0^7 SW8 按钮8,模拟外部故障点8 P1^0 MAX7219 DIN 数码管显示串行数据输入端 P1^1 MAX7219 LOAD 数码管显示数据锁存端 P1^2 MAX7219 CLK 数码管显示时钟输入端 P1^3 --- --- --- P1^4 SPI/TLC1549 CS 模拟SPI片选信号 P1^5 SP I/TLC1549 DA TA OUT 模拟SPI数据传送位 P1^6 SP I/TLC1549 CLK 模拟SPI时钟控制位 P1^7 --- --- --- P2^0 --- --- --- P2^1 SW9 按钮9,系统参数“设置”键 P2^2 SW10 按钮10,系统参数增加“+”键 P2^3 SW11 按钮11,系统参数减小“-”键 P2^4 SW12 按钮12,系统参数项目选择“->”键P2^5 --- --- --- P2^6 MAX487E DE 485串口通信 P2^7 MAX487E RE 485串口通信 P3^0/RXD MAX487E RXD 485串口通信 P3^1/TXD MAX487E TXD 485串口通信 P3^2/INT0 PCF8583 INT P3^3/INT1 --- --- --- P3^4/T0 --- --- --- P3^5/T1 --- --- --- P3^6/WR I2C总线SCL 模拟I2C时钟控制位 P3^7/RD I2C总线SDA 模拟I2C数据传送位

《汇编语言与接口技术》习题解答(第三章)

3.16 解: mov ah,1 ;只允许输入小写字母 int 21h sub al,20h ;转换为大写字母 mov dl,al mov ah,2 int 21h ;显示 3.18 解: mov ax, bufX cmp ax, bufY jge done mov ax, bufY done: mov bufZ, ax 3.19 解: .model small .stack .data bufX dw -7 signX db ? .code .startup cmp bufX,0 ;test bufX,80h

jl next ;jnz next mov signX,0 jmp done next: mov signX,-1 done: .exit 0 end 3.20 解: mov dl,’2’ mov ax,bufX cmp ax,bufY je next1 dec dl next1: cmp ax,bufZ je next2 dec dl next2: mov ah,2 int 21h 3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H 等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.30 解: lucase proc push bx mov bx,offset string cmp al,0 je case0

51汇编程序练习题1

单片机汇编程序设计练习 一、存储器之间的数据传送 1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。 2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。 3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。 4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。 5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。 6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。 7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。 8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。 二、查表程序设计 1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。 2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。 3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应 的ASCII码,并从P1口输出。 4、使用8051的P1口作为段控驱动共阳 LED数码管,硬件连接如图。 编程实现将8051 R7单元内容(在 00H-09H之间)显示在数码管上。00H-09H 的共阳字形代码如下表所示。 04H 05H 06H 07H 08H 09H

机电接口技术大作业

40T相位摩擦焊控制系统设计 一、绪论 1.1 相位摩擦焊简介 摩擦焊接作为一种金属固相热压焊,利用摩擦发热的原理,让两个焊件的结合面做高速的相对运动,同时对焊接的工件施加载荷。通过械摩擦运动在材料的焊接表面之间产生足够热量,使接合面的材料达到热塑性状态。然后在快速顶锻力的作用下,通过材料的塑性变形和扩散过程形成焊接接头。 摩擦焊接技术可应用于不同金属材料之间(如铜和铝、钛和铜、铝和钢等)的焊接,使其能够完成普通焊接方法无法达到的特殊工程任务要求。摩擦焊接具有焊缝小、高效、节能等优点(高质量的摩擦焊接强度大,甚至优于材料本身的强度,焊接的速度通常是普通焊接的数倍),同时不需要助焊剂和保护气体,不易产生对人体有害的烟尘和强光。摩擦焊的质量与焊接过程中工件相对转速、施加载荷大小、接合面摩擦时间、顶端压力及其形变量等工艺有密切联系。 1.2摩擦焊的突出特点及广泛应用前景 摩擦焊新技术具有一系列突出优点: (1) 焊接质量高、稳定可靠、焊件尺寸精度高。 (2) 耗能低,节能效果显著。 (3) 节约原材料。通常摩擦焊比靠电能转化为热能的普通焊接节省原材料1% 2以上。 (4) 摩擦焊新技术有4个不用的优点(不用焊条、不用焊丝、不用焊药、不用保护气体)。 (5) 生产效率高,便于实现自动化,可比普通的电弧焊生产率提高6一20倍;比电阻焊或闪光焊提高5倍。 (6) 具有广泛的可焊性。如能使金属与塑料、陶瓷等非金属材料完成焊接。 (7) 改善劳动条件。

由于摩擦焊是一种高质量、高效率、无毒无害的自动化的焊接方法,具有上述的突出优点,并且技术经济效果显著,因而在国内外得到了广泛应用。 1.3 相位摩擦焊工作原理 针对有相位配合要求的工件焊接,一般的摩擦焊不能保证焊接面角度的对准,所以需要采用相位摩擦焊接的方法。摩擦焊接按时间顺序可大致分为四个阶段:1.将移动端工件靠近旋转端工件;2.在相对较低的轴向压力下,使两个焊接组件接触并保持一定的时间。此阶段主要用于清理焊接端面,并使接合处材料达到所需的预热状态,在第三个阶段开始之前减小摩擦系数。3.加大轴向压力并维持一定时间,使得摩擦产热加剧,焊接处材料在高热条件下逐渐达到热塑性状态后,尽快停止主轴转动。4.加压顶锻,同样保持一定时间,完成摩擦焊接。

汇编期末复习题(完整含答案版)

一、问答题 1、 写出8086操作数的寻址方式。8086的存储器寻址方式有哪些? 答:操作数的寻址方式有:①立即(数)寻址。②寄存器寻址。③存储器寻址。存储器寻址方式有:①立即寻址。②寄存器寻址。③直接寻址。④寄存器间接。⑤寄存器相对。⑥基址变址。⑦相对基址变址。 2、 何谓中断向量,何谓中断号? 答:中断向量即中断服务程序的入口地址。中断类型号是系统分配给每个中断源的代号。 3、 试写出由逻辑地址计算物理地址的计算公式。写出8086在存储器寻址下,存储单元的逻辑地 址的表示形式。 答:PA=段基址*16+偏移量 LA=段基址:偏移量 4、 在内存物理地址为00002H 起的字单元内存放7856H ,请用图表示出它们在存储器里存放的情 况。 5、 在物理内存地址为00002H 起的字单元内存放3412H ,请用图表示出它们在存储器里存放的情 况。 6、 8088的寻址空间有多大?要寻址全部内存空间必须采用什么技术措施? 答:1MB ,分段寻址 7、 寄存器间接寻址方式可使用哪些寄存器? 答:在8086中:BX/BP/SI/DI 8、 在分断技术中,寄存器BX 和BP 默认对应的段寄存器是哪些? 答:BX 对应的是DS,BP 对应的是SS 。 9、 寄存器相对寻址方式中的位移量可以用什么形式表达? 答:位移量=EA —基址—(变址*比例因子) 10、 微机的内存的最小编址单位是什么?字型数据在内存的中的存放原则是什么? 答:最小编址单位是B ,存放原则是先低字节,后高字节。 11、 基址变址寻址方式的可用寄存器有哪些? 答:[BX][SI]/[BX][DI] 12、 写出相对基址变址寻址方式的偏移地址EA 的计算公式。 答:EA=位移量+基址+变址 13、 在内存物理地址为30476H 起的连续地址空间内存放了一个值为90634511H 的双字型数据,请用图表示出它们在存储器里存放的情况。

汇编语言与接口技术 习题解答

习题一解答: 1.3(1)[0.0000]原=0.0000 [0.0000]反=0.0000 [0.0000]补=0.0000 (2)[0.1001]原=0.1001 [0.1001]反=0.1001 [0.1001]补=0.1001 (3)[-1001]原=11001 [-1001]反=10110 [-1001]补=10111 1.4[N]反=1.0101 [N]原=1.1010 [N]补=1.0110 N=-0.1010 1.5(1)原码运算:比较可知,正数较大,用正数减负数,结果为正 反码运算:01010011-00110011=[01010011]反+[-00110011]反=001010011 +[100110011]反=001010011+111001100=000100000 补码运算:01010011-00110011=[01010011]补+[-00110011]补=001010011 +[100110011]补=001010011+111001101=000100000 (2)原码运算:比较可知,负数较大,用负数减正数,结果为负 反码运算:0.100100-0.110010=0.100100+[1.110010]反=0.100100+ 1.001101=1.110001 补码运算:0.100100-0.110010=0.100100+[1.110010]补=0.100100+ 1.001110=1.110010 1.6(1) (11011011)2=(219)10=(001000011001)BCD (2) (456)10=(010*********)BCD (3) (174)8=(124)10=(000100100100)BCD (4) (2DA)16=(730)10=(011100110000)BCD 1.7(1)9876H看成有符号数时,默认为负数的补码,转换为十进制数是:-26506 (2)9876H看成无符号数时,转换为十进制数是:39030 1.8(1)98的压缩BCD码为:10011000B (2)98的非压缩BCD码为:0000100100001000B

汇编语言与微机接口技术作业6章(含答案)

作业: 课本6.5 6.7 第6章补充题参考答案 补充题1:初始化8259A控制器,系统中有一片8259A,中断请求用电平触发,中断类型号为60H~67H,特殊全嵌套方式,不用缓冲方式,采用中断自动结束方式。8259A端口地址为93H/94H。编写其初始化程序。 答: MOV AL, 1BH ;设置ICW1(中断请求信号采用电平触发方式,单片,

OUT 94H, AL MOV AL, 60H ;设置ICW2(将中断类型码高5位指定为01100) OUT 93H, AL MOV AL, 13H ;设置ICW4(用特殊全嵌套方式;用中断自动结束方式;采用非缓冲方式,工作于8088/8086系统) OUT 93H, AL 补充题2:开关K4的信号输入到中断控制器8259A的IR2,当K4开关合上瞬间,产生中断,在中断服务程序中完成读取开关K0~K3的状态,并在7段数码管上显示数字或符号。设输出接口的地址为3F2H,输入接口地址为3F3H。当开关K0~K3的状态分别为0000~1111时,在7段数码管上对应显示’0’~’F’,8259A的端口为3F0H和3F1H.设其中断号为08H~0FH。1. 设计相关的接口电路,包括8259A的连接。 2. 编写主程序完成初始化8259A和相关中断向量的设置。 3. 编写中断服务程序。 答: 1. 接口电路图 2. 初始化程序: INPORT EQU 03F3H OUTPORT EQU 03F2H PORT8259 EQU 03F0H …… ;设置数码管显示数据 Seg7 DB 3FH,06H, 5BH,4FH,66H,6DH, 7DH,07H,7FH,67H,77H, 7CH,39H,5EH,79H,71H …… MOV AL, 13H ;设置ICW1(中断请求信号采用边沿触发方式,单片,

微机接口大作业

南京航空航天大学研究生实验报告 姓名 学号 学院 专业 课程名称微机接口技术指导教师张乐年 二〇一六年八月

原理图

元器件列表 C语言程序: #include #include #include #include struct time { unsigned char second; unsigned char minute; unsigned char hour; unsigned char day; unsigned char weekday; unsigned char month; unsignedint year; } time; sbittim_sda=P1^0;

sbittim_scl=P1^1; sbitsbDIN= P3^5; //MAX7219的数据引脚sbitsbLOAD = P3^6; //MAX7219的控制引脚sbitsbCLK = P3^7; //MAX7219的时钟引脚 sbit OE = P2^3; //OE引脚 sbit EOC = P2^2; //EOC引脚定义 sbit ST = P2^1; //启动引脚定义START sbit CLK = P2^0; //时钟引脚定义CLK sbit ADDRA = P2^5; sbit ADDRB = P2^6; sbit ADDRC = P2^7; sbit button1=P1^2; sbit button2=P1^3; sbit button3=P1^4; sbit button4=P1^5; sbit jian0=P0^0; sbit jian1=P0^1; sbit jian2=P0^2; sbit jian3=P0^3; sbit jian4=P0^4; sbit jian5=P0^5; sbit jian6=P0^6; sbit jian7=P0^7; unsigned char Disp_Buffer[8]; bit tim_ack; // i2c slave ack. bit tim_err; unsigned char tim_rd_buffer[16]; unsigned char tim_wr_buffer[16]; /*****************11us延时函数*************************/ void delay11us(unsigned char t) { for (;t>0;t--); } void delay(unsigned int x) { unsignedinta,b; for(a=x;a>5;a--); for(b=10;b>0;b--);

《汇编语言与接口技术》复习提纲.

<<汇编语言与接口技术>>(总结复习提纲 第一部分汇编语言及程序设计 一.基本知识 1.汇编语言常用的名词术语 指令代码指令机器指令程序汇编指令汇编语言汇编程序汇编语言源程序 汇编反汇编偏移地址 (有效地址物理地址过程循环标号变量名的属性 2.常用数制二进制八进制十进制十六进制补码的表示 BCD码的表示 3.寄存器:名称种类及应用(32位、16位 4.寻址方式寻址方式种类(32位、16位操作数类型存储器操作数的存放规则 5.源程序的书写格式及正常结束 6.指令系统:操作数搭配的7个规则 7.常用伪指令 一1.Mov Ax , Bx→经过汇编后变成机器代码指令机器代码指令经过反汇编后→Mov Ax, Bx .如何用16位的地址访问期间1M空间 DS*10H + EA→实际地址 段地址有效地址 Data Segment A DB…….

OFFSET A 是相对Data的偏移地址 B Proc ret B Endp .用MACRO/ENDM括起一段程序____宏定义 在用到的地方写上宏名____宏调用 如: A MACRO B Proc ENDM B Endp 汇编时,宏定义体占用内存空间多,运算快. 而CALL节省空间,占用时间多 因为CALL B之前把下一条指令的有效地址入栈,再转去执行B,执行完又把断点出栈,继续执行主程序.所以花时间,速度慢. 2.二进制八进制十进制十六进制的相互转换. 3.寄存器分为三大类:通用寄存器、段寄存器控制寄存器 Flag....... 4. 7种寻址方式:种类;立即数、寄存器寻址不需要访问内存, 变量名是访问内存;熟练掌握常用寻址方式。 一.1. 汇编指令(如下所示 标号: 操作码数据1,数据2;注释

相关文档
相关文档 最新文档