当前位置:文档之家› 计算机组成原理与接口技术实验报告

计算机组成原理与接口技术实验报告

计算机组成原理与接口技术实验报告
计算机组成原理与接口技术实验报告

计算机组成原理与接口技术

课程设计实验报告

学院:计算机科学与工程

专业:计算机科学与技术

班级:计科二班

学号:

姓名:

指导老师:

评分:

2016年12月28日

实验一验证74LS181运算和逻辑功能

1、实验目的

(1)掌握算术逻辑单元(ALU)的工作原理;

(2)熟悉简单运算器的数据传送通路;

(3)画出逻辑电路图及布出美观整齐的接线图;

(4)验证4位运算功能发生器(74LS181)组合功能。

2、实验原理

ALU能进行多种算术运算和逻辑运算。4位ALU-74LS181能进行16种算术运算和逻辑运算。

74ls181芯片介绍:

该芯片总共由22个引脚,其中包括8个数据

输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、

~B3,其中八个输入端中A3和B3是高位),这八

个都是低电平有效。还包括S0、S1、S2、S3这四

个控制端,这四个控制端主要控制两个四位输入

数据的运算,例如加、减、与、或。CN端处理进

入芯片前进位值,M控制芯片的运算方式,包括

算术运算和逻辑运算。F0、F1、F2、F3是四个二

进制输出端,以一个四位二进制形式输出运算的

结果。CN4记录运算后的进位。

3、实验内容

实验电路图:

4、总结及心得体会

本实验通过一个设计一个简单的运算器,使我熟悉了Multisim软件的一些基本操作方法,并掌握了一些简单的电路设计与分析的能力,并对我做下一个运算器的实验有一定的帮助。因为是之前实验课做过的实验,再次做起来过程比较流畅,没有遇到什么大的问题,实验的测试结果与预期的一致。

该芯片总共由22个引脚,其中包括8个数据输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、~B3,其中八个输入端中A3和B3是高位),这八个都是低电平有效。还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算,例如加、减、与、或。CN端处理进入芯片前进位值,M控制芯片的运算方式,包括算术运算和逻辑运算。F0、F1、F2、F3是四个二进制输出端,以一个四位二进制形式输出运算的结果。CN4记录运算后的进位。其中AEQB、~P和~G这三个端口与本实验无关,所以这里不做额外介绍。

实验二运算器(2)

1、实验目的

(1)熟练掌握算术逻辑单元(ALU)的应用方法;

(2)进一步熟悉简单运算器的数据传送原理;

(3)画出逻辑电路图及布出美观整齐的接线图;

(4)熟练掌握有关数字元件的功能和使用方法。

(5)熟练掌握子电路的创建及使用。

2、实验原理

本实验仿真单总线结构的运算器,原理如图2-2所示。相应的电路如图2-3所示。

电路图中,上右下三方的8条线模拟8位数据总线;K8产生所需数据;74244层次块为三态门电路,将部件与总线连接或断开,切记总线上只能有一个输入;两个74273层次块作为暂存工作寄存器DR1和DR2;两个74374层次块作为通用寄存器组(鉴于电路排列情况,只画出两个通用寄存器GR1和GR2,如果可能的话可设计4个或8个通用寄存器);众多的开关作为控制电平或打入脉冲;众多的8段代码管显示相应位置的数据信息;核心为8位ALU层次块。

单总线结构的运算器示意图

3、实验内容

在Multisim画出电路图并仿真

8BIT_ALU_BLOCK

74244_BLOCK

74ls273_BLOCK

74374_BLOCK

K8_BLOCK

运算器示意图

完成下列操作:

(1)说明整个电路工作原理。

答:同上文实验原理。

(2)说明74LS244N的功能及其在电路中作用,及输入信号G有何作用;

答:74LS244为3态8位缓冲器,一般用作总线驱动器,没有锁存的功能,是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。在电路中在部件与总线之间起开关作用,信号G为低电平有效。

(3)说明74LS273N的功能及其在电路中作用,及输入信号CLK有何作用;

答:74LS273是一种带清除功能的8D触发器, 1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。在电路中作为数据锁存器,输入信号CLK上跳沿触发工作。

(4)说明74LS374N的功能及其在电路中作用,及输入信号CLK和OC有何作用;

答:74LS374为具有三态输出的八D边缘触发器。在电路中寄存数据,CLK上跳沿触发工作,OC为低电平时连接,OC为高电平时断开。

(5) K8产生任意数据存入通用寄存器GR1。

答:在运算器电路图中将左边的开关全置为1,右边X7的G信号也置为1,使所有模块断开。在K8层次块中通过调节开关在总线上产生数据,将与K8相连的X2的信号G置为0,使数据输出。将寄存器GR1的OC端和CLK端置为0,再将CLK置为

1,使总线上的数据存入通用寄存器GR1。

(6) K8产生任意数据存入通用寄存器GR2。

答:与(5)操作相同,将GR1的OC端和CLK端改为GR2的OC端和CLK端即可。

(7)完成GR1+GR2→GR1。

答:将X2的G信号置为1,将X10和X6的G信号置为0,使GR1的数据存入暂存器X6,将X3的CLK端置0再置1,使数据存入锁存器X3存起来,并将X10和X6的G信号置1。用类似操作将GR2的数据存入锁存器X11存起来。再将X7的G端口置0,将S0~S3置为1、0、0、1,M端置为0,CN端置为1,使X3和X11里面的数据相加存入X7。将X7的G信号置为0,使数据传入主线。将GR1的OC端置0,CLK端置0在置1,将总线上的数据传入GR1。

(8)完成GR1-GR2→GR2。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,0,M端和CN端也置为0。

(9)完成GR1∧GR2→GR1。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为1,1,0,1,M端置为1。

(10)完成GR1∨GR2→GR2。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,1,M端置为1。

(11)完成GR1⊕GR2→GR1。

答:与(7)操作基本相同,将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,1,1,0,M端置为1。

(12)~GR1→GR2。(“~”表示逻辑非运算)

答:基本操作与上面相同,但只传GR1的数据。将S0~S3置为1、0、0、1,M端置为0,CN端置为1改为将S0~S3置为0,0,0,0,M端置为1。使~GR1传入X7,将X7的G信号置为0,使数据传入主线。将GR2的OC端置0,CLK端置0在置1,将总线上的数据传入GR2。

(13)~GR2→GR1。

答:与(12)操作基本相同,将GR1改为GR2即可。

4、总结及心得体会

通过本实验我学会了自定义各种层次模块,弄清楚了74LS244、74LS273、74LS374等数字元件的基本功能和使用方法。对于各种复杂的线路,能布出相对整齐地线路图,并基本弄清楚了整个电路的工作原理。本实验也锻炼了我的动手能力,让我学会了查资料,复习了计算机组成原理的知识,提高了我的知识能力。

本实验的实验过程中也出现了一些问题。刚开始对各个模块的功能不熟悉,G信号,

OC端口和CLK端口也不会用,后面通过查资料和测试终于弄清楚了其工作原理。开始测试时各个数码管数据都乱七八糟,没有逻辑,后面发现是因为端口未关闭,总线上有多组数据导致。当S0~S3为1、0、0、0时,进行算术运算结果不全为A+B,当S0~S3为1、0、0、1时,进行算术运算结果为A+B,对于这个问题仍有疑问。

实验四查询式输出实验

1、实验目的

要求掌握查询式输出的工作原理。

2、实验原理

通过查询外设的状态信息决定是否输出数据。

3、实验内容

(1)运行“查询式输出装置”,如图2-5所示。

(2)读懂示例程序checkout.asm,以备测试老师询问。

(3)编辑、调试、运行输出程序,将自己学号输出到实验台右侧数据缓冲区框中。4、实验结果

(1)实验代码

Data segment

Buffer db 1,5,0,5,0,1,0,2,0,8

port_data equ 43aH ;数据端口

port_status equ 43bH ;状态端口

s db " Output 10 data with demand manner. Press any key to exit...",0dh,0ah,"$" ;程序功能提示

Data ends

Code segment

Assume cs:code,ds:data ;建立段寄存器和段名之间关系,不具有赋值功能Go: mov ax,data

Mov ds,ax ;这两句的作用就是使DS的值为DATA.其中DATA为

你定义的数据段,它的作用就是把数据段寄存器

DS的值赋为DATA,就是让数据段指向正确的位置.

;因为无法直接数据从内存移到DS,所以需要先把数

据移到AX寄存器,然后再移到Ds寄存器。

mov dx,offset s ;显示提示,offset是取偏移地址

mov ah,9 ;调用DOS功能,显示ds:dx处地址

int 21h

LEA si,buffer ;si寄存器

MOV CX,10 ;将循环次数(数据块长度)送到CX

L1: mov ah,0bh

int 21h ;检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0FFh ;比较指令,得出各个标志位的数据

jz Exit

MOV DX,port_status

IN AL,DX ;读状态端口

TEST AL,00000001B ;TEST逻辑与运算。如果AL右数第1位为1,jnz将

会跳转(B表示二进制数)

JNZ L1

Mov al,[si] ;将si所指向地址存储单元中的数据送给al

MOV DX,port_data

OUT DX,AL ;数据输出

INC si ;si地址加1

LOOP L1

LA: mov ah,0bh

int 21h ;检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0

jz LA

exit: Mov ah,4ch ;结束当前正在执行的程序,返回DOS系统

Int 21h

Code ends

End go

(2)实验运行结果

5、总结及心得体会

通过本次实验是我第一次接触汇编语言,第一次运用DOS操作台。刚开始的时候看汇

编代码是完全看不懂的,然后对汇编代码一行一行的去百度查询并和同学讨论,对其中的各种指令、寄存器等都一个个去查资料和讨论,慢慢对于汇编代码有了一定的了解,能看懂这个程序基本的汇编代码,也能对其进行一些满足自己要求的小修改。如out为数据输出函数。CX为计数寄存器,和LOOP语句一起可以实现代码的循环,10个数的输出就是这样实现的。如JZ和JNZ的不同的判定跳转。又如ax寄存器为累加器,所有的I/O指令都要使用ax与外设接口传递数据,例bx、cx、dx。还有一些其它的等等。另外对于DOS操作台的编译、连接操作也能熟练的运用。本次实验虽然相对后续实验比较简单,但却为我后面的实验打下了很好的基础,在后面的实验中我也会努力去学习更多的关于汇编语言的知识。

实验五 LED显示实验

1、实验目的

要求掌握8255芯片的工作原理、初始化、编程应用。

2、实验原理

通过三个端口共24位二进制数据控制LED灯亮灭形成走马灯。

3、实验内容

(1)运行“LED显示实验台”。

(2)读懂示例程序led1.asm及led2.asm,以备测试老师询问。

(3)编辑、调试、运行程序,让相邻两个LED顺时针(学号末位奇数者)或逆时针(学号末位偶数者)方向旋转亮起来形成走马灯。

4、实验结果

(1)实验代码

code segment

assume cs:code,ds:data

go: mov ax,data

mov ds,ax

mov dx,offset s ;显示提示

mov ah,9

int 21h

mov dx,porta+3

mov al,80h

Out dx,al ;三端口均初始化为方式0输出

L0: mov si,24

mov bx,3H ;低16位初始值设为11(两个灯亮) mov cl,0 ;高8位初始值设为0

L1: mov ah,0bH

Int 21h ;有无按键

Cmp al,0ffH

Jz exit

mov dx,porta ;输出24位数

mov al,bl

Out dx,al

Inc dx

mov al,bh

Out dx,al

Inc dx

mov al,cl

Out dx,al

Call delay05 ;延时

SHL bx,1 ;低16位左移一位

Rcl cl,1 ;高8位左移一位

dec si

jnz L1

Jmp L0 ;重新开始

Exit: mov ah,4ch

Int 21h

delay05 proc near ;循环延时子程序

push cx

push bx

mov cx,0000H

d1: mov bx,1200h

d2: dec bx

jnz d2

loop d1

pop bx

pop cx

ret

delay05 endp

Code ends

End go

因源代码中本来就是逆时钟,循环控制处可不用改,只需将低16位置1改为11是开始有两个灯亮即可达到基本效果。

(2)实验运行结果

5、总结及心得体会

通过本实验我对汇编语言有了更进一步的了解,对8255芯片的输入输出也有了一定的了解。如ax、bx、cx、dx四个寄存器都是16位的,分为高8位ah、bh、ch、dh和低8位的al、bl、cl、dl,本实验就是用bx寄存器的16位和cx寄存器的低8位来表示24个灯,用高低电位(即1和0)表示亮和灭。本实验实现走马灯效果用的指令是SHL和RCL,这两个指令都用到了CF这样便将bx和cx两个不同寄存器的之间的移位连接了起来,实现了24个灯的走马灯效果。本次实验中第一次见到延时子程序,经过查资料和讨论也有了一定的了解,通过dec指令和jnz指令循环来控制代码的执行次数来控制时间的多少达到延时的目的。在做这个实验时我们尝试了许多不同地输出方式,如间隔,高8位和低16位单独输出,一个逆时钟,一个逆时钟,循环次数控制只亮部分灯等等。这些虽然不是实验的要求,但对我理解led灯的代码有很大的帮助,多动手实践才能更好地理解和编写代码。

实验七数码管显示实验

1、实验目的

要求掌握8255芯片的工作原理、初始化、编程应用。

2、实验原理

通过端口A和端口B的输出实现数字在数码管的显示。

3、实验内容

修改或自己编写程序将自己学号分三次、间隔1秒显示出来。

4、实验结果

(1)实验代码

Data segment

PortA equ 404H ;8255的PA口地址

xz db 0f9h,92h,0c0h,92h,0c0h,0f9h,0c0h,0a4h,0c0h,80h

s db "Display a b c d at the same time. Press any key to exit...",0dh,0ah,"$" ;程序功能提示

Data ends

Code segment

assume cs:code,ds:data

Start:mov ax,data

mov ds,ax

mov dx,offset s ;显示提示

mov ah,9

int 21h

mov dx, PortA+3

mov al,80H

out dx,al ;PA、PB口初始化为基本输出方式

L0:lea si,xz

L2:mov ah,08h ;置位选初值,从左边开始显示

L1:push ax

mov al,[si] ;显示数字

mov dx,PortA

out dx,al

mov al,ah

mov dx,PortA+1

out dx,al

call de ;延时

mov ah,0bh

int 21h ;检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0FFh

jz Exit

inc si ;准备显示下一数字

pop ax

shr ah,1 ;选择下一数码管

cmp si,0ah ;判断是否显示完10个学号

jnz l3

jmp l0

L3: cmp ah,0 ;判断是否显示完4位,数码管走完一轮

jnz l1

jmp l2

Exit:mov ah,4ch ;结束程序

int 21h

de proc near ;循环延时子程序

push cx

push

mov cx,0000H

d1: mov bx,9000h

d2: dec bx

jnz d2

loop d1

pop bx

pop cx

ret

de endp

Code ends

end Start

上面那个技巧性高些,但全部显示不好弄下面这个应该是无技术白痴版本,但显示好弄

Data segment

PortA equ 404H ; 8255的PA口地址

xz db 0f9h,92h,0c0h,92h,0ffh,0ffh,0ffh,0ffh,0c0h,0f9h,0c0h,0a4h,0ffh,0ffh,0ffh,0ffh ,0c0h,80h,0ffh,0ffh,0ffh,0ffh,0ffh,0ffh ;定义0~9的显示代码

s db "Display 0~9 . Press any key to exit ...",0dh,0ah,"$" ;程序功能提示

Data ends

Code segment

assume cs:code,ds:data

Start:mov ax,data

mov ds,ax

mov dx,offset s ;显示提示

mov ah,9

int 21h

mov dx, PortA+3

mov al,80H

out dx,al ;PA、PB口初始化为基本输出方式

L0:lea si,xz

mov ah,08h

L1:push ax

mov al,[si] ;显示数字

;mov ah,8h ;置位选初值,四个数码管同时显示

mov dx,PortA

out dx,al

mov al,ah

mov dx,PortA+1

out dx,al

call de ;延时

mov ah,0bh

int 21h ; 检测有无按键,返回AL=0FFh(有按键)或0(无按键) cmp al,0FFh

jz Exit

inc si ;准备显示下一数字

pop ax

ror ah,1

cmp si,18h ;判断是否显示完

jnz l1

jmp l0

Exit:mov ah,4ch ; 结束程序

int 21h

de proc near ; 循环延时子程序

push cx

push bx

mov cx,3000H

d1: mov bx,0

d2: dec bx

jnz d2

loop d1

pop bx

pop cx

ret

de endp

Code ends

end Start (2)实验运行结果

5、总结及心得体会

通过本次实验我对汇编语言的理解更加深入,基于前几次实验的基础,本次实验看懂不是非常困难,但自己单独修改代码做到数码管单独显示仍不简单。自己探索学会了一些基本的循环、跳转和判断指令的运用,与同学积极讨论,再借助smg3文件里的一些代码做参考将程序修改成功。本次实验在两个跳转处经常会发生矛盾,将其中一个判断跳转写为L3: cmp ah,0 ;判断是否显示完4位,数码管走完一轮 jnz l1 jmp l2作为另一个的跳转条件才终于将其解决,使程序无错误。只有去尝试并犯错再改正错误才能使自己取得最大的进步和最牢固的记忆。

实验六小键盘实验

1、实验目的

要求掌握8255芯片的工作原理、初始化、编程应用。

2、实验原理

通过端口A的输出和端口B的输入实现按键的判断。

3、实验内容

(1)运行“LED显示实验台”。

(2)读懂示例程序key.asm,以备测试老师询问。

(3)借助实验原理图,说明判断某键被按下的方法。

(4)解释程序怎样将按键操作转换为DOS命令窗口显示字符的?

(5)为什么会将一个字符显示数百次?

(6)能否每次按键只显示一次?(说出设想,不一定编程实现)

答:(3)当键被按下时,某个A端口和B端口就连接起来,用cx和bx两个循环来一行一行在电路上找到这个按键。

(4)通过disp子程序用xlat指令在table里找按键所代表的到偏移的地址,输出地址里的值,显示在DOS操作台上。

(5)因为按键按下去会有一定的持续时间,而cpu读代码的速度非常快,在这段持续时间内cpu对这段代码运行许多次,所以一个字符显示数百次。

微机原理与接口技术实验报告

微机原理与接口技术实验报告 班级:自动化(铁道信号) 姓名: ***** 学号: 1121**** 授课教师:福恩

目录 1.实验一 (3) 2. 实验二 (8) 3.实验三 (13) 4.实验四 (22) 5.实验五 (26) 6.实验六 (33) 7.参考文献 (38)

实验一交通灯控制实验 一.实验目的 通过应用接口技术设计十字路口、复杂路口交通灯控制系统,学会应用“微机原理与接口技术”课程所学的X86汇编语言和接口技术掌握可编程并行接口芯片的硬件设计、软件编程,实现十字路口交通灯的模拟控制并思考计算机如何应用在各种控制系统中。 (1)掌握利用X86汇编语言技巧 (2)掌握X86微处理器与可编程并行接口芯片8255A硬件电路设计 (3)熟悉模拟交通灯控制的实现方法并思考如何应用在实际中。 二.实验容 设计一个交通控制系统,该控制系统工作后,交通灯按照如下规律变化: (1)南北路口的绿灯、东西路口的红灯同时亮3秒左右。 (2)南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。 (3)南北路口的红、东西路口的绿灯同时亮3秒。 (4)南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。 (5)返回(1)依次循环。 三.实验电路 如下图,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律燃灭。 8255动态分配地址: 控制寄存器:0EC0BH A口地址: 0EC08H C口地址: 0EC0AH

红黄绿红黄绿 图1-1 交通灯实验电路图四.程序流程图 五.源程序 CODE SEGMENT ASSUME CS:CODE ;********************************** 工作状态控制字设置 START: MOV DX,0EC0BH ;写控制端口,地址0EC0BH MOV AL,10010000B ;C口方式0输出 OUT DX,AL

Windows命令接口实验报告

Windows命令接口实验 一.实验题目: 第29题——操作系统接口:Windows命令接口。(3人) 4分 二.实验任务: 1.设计要求: ●为Windows操作系统建立兼容的DOS命令接口,文件与目录命令; ●具体命令:DIR, RD,CD,MD, DEL,MOVE,REN, COPY, XCOPY, TIME, DATE,SORT,重定向命令>,<.,|,MORE,TYPE ,CLS,EXIT命令格式可参照Windows的CMD.EXE或MS-DOS提供的命令; ●设计命令的名称、参数等格式; ●可以字符形式接收命令,执行命令,然后显示命令执行结果. 2.设计目的: (1)DIR命令:能够正确显示一个目录里面的子目录和文件 (2)RD命令:能够删除一个空目录 (3)CD命令:能够打开一个存在的目录 (4)MD命令:能够建立一个空目录 (5)DEL命令:能够删除一个文件 (6)MOVE命令:能够移动一个目录或文件 (7)REN命令:能够重命名一个目录或文件 (8)XCOPY命令:能够拷贝整个目录 (8)TIME命令:显示系统的时间 (8)DATE命令:显示系统的日期 (8)SORT命令:对文本内容进行分类 (8)MORE命令:逐步分屏显示 (8)TYPE命令:显示文本内容 (8)CLS命令:清楚屏幕显示 (8)EXIT命令:退出 三:实验环境: 1.PC机一台386以上 2.Microsoft Visual Studio2010 软件 3.实现语言:C语言

四:原理及算法描述: 1.基本原理: 用户利用联机命令接口实现与机器的交互时,先在终端的键盘上打入所需的命令,由终端处理程序接受该命令,并将它显示在终端屏幕上。当一条命令输入完后,由命令解释程序对命令进行分析,然后执行相应命令的处理程序。 2.算法描述: (1)存贮输入的各命令参数 void store_parameter(char *buffer,char *parameter[10],int *para_num) 说明:将输入的命令一条一条存储parameter[10]中,最大允许的参数个数为10个。 算法描述:为buffer设置一个指针buffer_point,如果该指针向下移动,碰到空格,继续向下移动,直到遇到字符,读进各存储变量中parameter[10],最后如果遇到’\0’,则结束。 (2)浏览一个路径下的目录和文件 void my_dir(char *a[],int *num) 说明:该命令只能显示当前目录中的文件和子目录和当前目录中子目录中的文件和子目录。并无如Windows中命令参数如此丰富。主要是考虑其复杂性,予以简化了。 算法描述:如果只接受到mydir命令,后面并无其他参数时,显示当前目录下文件和子目录。如果接受到两个参数,如果第二个参数(表示当前目录中子目录)存在,则显示该目录下文件和子目录,如果不存在,则报错。 (3)删除一个存在的目录,如果不存在,删除失败! void my_rd(char *a[],int *num) 算法描述:如果该目录存在且为空目录,则删除,否则失败。 (4)打开一个存在的目录,如果不存在,打开失败! void my_cd(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要打开的目录。如果该目录存在,则成功,否则失败。 (5)创建一个目录 void my_md(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要建立的目录。如果存在该目录,失败,否则成功。 (6)删除一个存在的文件,如果不存在,删除文件失败! void my_del(char *a[],int *num) 算法描述:如果接受到两个参数,第二个参数表示要删除的文件。如果该文件存在,则删除成功,否则失败。 (7)移动一个存在的文件,否则,移动失败 void my_move(char *a[],int *num)

串行接口实验报告

课程实验报告实验名称:串行接口 专业班级: 学号: 姓名: 同组人员: 指导教师: 报告日期:

实验二 1. 实验目的 (3) 2. 实验内容 (3) 3. 实验原理 (3) 4. 程序代码 (6) 5. 实验体会 (13)

实验二 1.实验目的 1.熟悉串行接口芯片8251的工作原理 2.掌握串行通讯接收/发送程序的设计方法 2.实验内容 通过对8251芯片的编程,使得实验台上的串行通讯接口(RS232)以查询方式实现信息在双机上的。具体过程如下: 1. 从A电脑键盘上输入一个字符,将其通过A试验箱的8251数据口发送出去,然后通过B试验箱的8251接收该字符,最后在B电脑的屏幕上显示出来。 2.从A试验箱上输入步进电机控制信息(开关信息),通过A试验箱的8251数据口发送到B试验箱的8251数据口,在B试验箱上接收到该信息之后,再用这个信息控制B试验箱上的步进电机的启动停止、转速和旋转方向。 3.实验原理 1.8251控制字说明 在准备发送数据和接收数据之前必须由CPU把一组控制字装入8251。控制字分两种:方式指令和工作指令,先装入方式指令,后装入工作指令。 另外,在发送和接收数据时,要检查8251状态字,当状态字报告“发送准备好”/“接收准备好”时,才能进行数据的发送或接收。 2.8251方式指令(端口地址2B9H)

3.8251工作指令(端口地址2B9H) 4.8251状态字(端口地址2B9H) 5.8253控制字(283H) 6.8253计数初值(283H) 计数初值=时钟频率/(波特率×波特率因子)本实验:脉冲源=1MHz 波特率=1200 波特率因=16 计数初值= 1000000/1200*16=52

单片机并行口实验报告

单片机并行口实验报告

实验二并行口实验报告 班级: 学号: 姓名: 教师:

一、实验目的 通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。 二、实验内容 1、输出实验 如图4-1所示。以8031的P2口为输出口。通过程序控制发光二极管的亮灭。 2、输入实验 如图4-1所示。以8031的P1口为输入口。用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。 3、查询输入输出实验 如图1-1所示。以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。

图1-1 三、编程提示 1、输出实验程序 (1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。 (2)为了便于观察,每一状态加入延时程序。 2、输入实验程序 开关打开,则输入为1;开关闭合,则输入为0。读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。 3、查询输入输出程序 (1)编程计数P1.0按键次数,按键不去抖动。 (2)编程计数P1.6按键次数,按键不去抖动。 (3)编程计数P1.0按键次数,按键软件延时去抖动。 观察(1)、(2)、(3)、的结果。 四、实验器材 计算机,目标系统实验板 五、实验步骤 1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。 2、断开电源,按图1-1所示,连好开关及发光二极管电路。

3、下载程序。 4、调试运行程序,观察发光二极管状态。 六、C源程序清单 1、#include #define uchar unsigned char #define ON 0 #define OFF 1 sbit led1=P2^0; sbit led2=P2^1; sbit led3=P2^2; sbit led4=P2^3; sbit led5=P2^4; sbit led6=P2^5; sbit led7=P2^6; sbit led8=P2^7; void delay1(void); void main(void) { led1=led2=led3=led4=led5=led6=led7=led8=O FF; while(1) { led1=led8=ON; delay1(); led2=led7=ON;

单片机原理及其接口技术实验报告

单片机原理及其接口技术实验指导书 实验1 Keil C51的使用(汇编语言) 一.实验目的: 初步掌握Keil C51(汇编语言)和ZY15MCU12BD型综合单片机实验箱的操作和使用,能够输入和运行简单的程序。 二.实验设备: ZY15MCU12BD型综合单片机实验箱一台、具有一个RS232串行口并安装Keil C51的计算机一台。 三.实验原理及环境: 在计算机上已安装Keil C51软件。这个软件既可以与硬件(ZY15MCU12BD型综合单片机实验箱)连接,在硬件(单片机)上运行程序;也可以不与硬件连接,仅在计算机上以虚拟仿真的方法运行程序。如果程序有对硬件的驱动,就需要与硬件连接;如果没有硬件动作,仅有软件操作,就可以使用虚拟仿真。 四:实验内容: 1.掌握软件的开发过程: 1)建立一个工程项目选择芯片确定选项。 2)加入C 源文件或汇编源文件。 3)用项目管理器生成各种应用文件。 4)检查并修改源文件中的错误。 5)编译连接通过后进行软件模拟仿真。 6)编译连接通过后进行硬件仿真。 2.按以上步骤实现在P1.0输出一个频率为1Hz的方波。 3.在2的基础上,实现同时在P1.0和P1.1上各输出一个频率同为1Hz但电平状态相反的方波。 五:程序清单: ORG 0000H AGAIN:CPL P1.0 MOV R0,#10 ;延时0.5秒 LOOP1:MOV R1,#100 LOOP2:MOV R2,#250 DJNZ R2,$ DJNZ R1,LOOP2 DJNZ R0,LOOP1 SJMP AGAIN END 六:实验步骤: 1.建立一个工程项目选择芯片确定选项 如图1-1所示:①Project→②New Project→③输入工程名test→④保存工程文件(鼠标点击保存按钮)

实验报告七-键盘扫描及显示实验

信息工程学院实验报告 课程名称:微机原理与接口技术 实验项目名称:键盘扫描及显示实验 实验时间: 班级: 姓名: 学号: 一、实 验 目 的 1. 掌握 8254 的工作方式及应用编程。 2. 掌握 8254 典型应用电路的接法。 二、实 验 设 备 了解键盘扫描及数码显示的基本原理,熟悉 8255 的编程。 三、实 验 原 理 将 8255 单元与键盘及数码管显示单元连接,编写实验程序,扫描键盘输入,并将扫描结果送数码管显示。键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。实验具体内容如下:将键盘进行编号,记作 0~F ,当按下其中一个按键时,将该按键对应的编号在一个数码管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数码管上可以显示最近 6 次按下的按键编号。 键盘及数码管显示单元电路图如图 7-1 和 7-2 所示。8255 键盘及显示实验参考接线图如图 7-3 所示。 图 7-1 键盘及数码管显示单元 4×4 键盘矩阵电路图 成 绩: 指导老师(签名):

图 7-2 键盘及数码管显示单元 6 组数码管电路图 图 7-3 8255 键盘扫描及数码管显示实验线路图 四、实验内容与步骤 1. 实验接线图如图 7-3 所示,按图连接实验线路图。

图 7-4 8255 键盘扫描及数码管显示实验实物连接图 2.运行 Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。 图 7-5 8255 键盘扫描及数码管显示实验程序编辑界面 3. 运行程序,按下按键,观察数码管的显示,验证程序功能。 五、实验结果及分析: 1. 运行程序,按下按键,观察数码管的显示。

串口通信实验报告全版.doc

实验三双机通信实验 一、实验目的 UART 串行通信接口技术应用 二、实验实现的功能 用两片核心板之间实现串行通信,将按键信息互发到对方数码管显示。 三、系统硬件设计 (1)单片机的最小系统部分 (2)电源部分 (3)人机界面部分

数码管部分按键部分 (4)串口通信部分 四、系统软件设计 #include #define uchar unsigned char #define uint unsigned int void send(); uchar code0[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//0-9的数码管显示 sbit H1=P3^6; sbit H2=P3^7;

sbit L1=P0^5; sbit L2=P0^6; sbit L3=P0^7; uint m=0,i=0,j; uchar temp,prt; /***y延时函数***/ void delay(uint k) { uint i,j; //定义局部变量ij for(i=0;i

{ m=1; //KEY1键按下 return(m); } if(H2==0) { m=4; //KEY4键按下 return(m); } } } if(L2==0) { delay(5); if (L2==0) { L2=0;H1=1;H2=1; if(H1==0) { m=2; //KEY2键按下 return(m); } if(H2==0) { m=5; //KEY5键按下 return(m); } } } if(L3==0) { delay(5); if (L3==0) { L3=0;H1=1;H2=1; if(H1==0) { m=3; //KEY3键按下

接口实验报告

实验一 8255A 与开关电路的实验 一、实验目的 (1)掌握8255A 并行接口芯片的原理及编程方法; (2)掌握读取开关状态的方法。 二、实验内容 编写程序,通过8255A 接口芯片,读取开关状态,并在计算机屏幕上显示出来。 三、线路连接 实验中共有8个逻辑开关,与8255A 端口C 的 PC 7~PC 0连接。线路连接如图4.1所示。开关向上拨时,8255A 相应的端口输出高电平“1”,开关向下拨时,相应端口输出低电平“0”。 四、编程提示 设置控制字,使8255A 工作在方式0,端口C 为输入 CPU 通过端口C 将K 7~K 0的状态读入,然后转换成ASCII 码,并在主机显示显示。 五、流程图 程序流程如图4.2所示。 1)连接试验台线路(在试验台和主机没有通电之前,按照实验连接图, 将图中虚线用导线连接好。) 2)打开主机进入DOS 环境 3)编辑、汇编、链接汇编语言程序 4)打开扩展卡I/O 端口地址(a )进入DOS 全屏模式;b )run 文件) 5)运行和调试汇编程序(试验箱通电,直接运行汇编、链接所产生的可 执行文件。 七、实验结果 1)

八、思考题 如果将8255A端口B设为输入方式,与开关K7~K0连接,控制字应如何设置? 程序又应该如何修改? 答:工作方式控制字设置为82H。程序修改如下: 首先将IO8255C EQU IOPORT+282H 修改为 IO8255B EQU IOPORT+281H 将8255A工作方式控制字端口程序改为如下: MOV DX , IO8255T MOV AL , 82H OUT DX , AL 将输入设置为B口 MOV DX , IO8255B IN AL , DX

键盘实验报告

基于单片机4×4键盘的实现 成员:刘耀鹏、高攀、谢富田 2014年7月20日

理论分析 本实验是基于AT89C52单片机来实现4×4阵列键盘的输入,用七段数码管输出相应的键值,从而提供良好的人机接口。AT89C52单片机是一个8位的单片,与51系列单片机相比较,其最大的区别是多了一个计数定是中断。 采用12MHz的晶振,采用内接法,对电路提供一个时间基准,P1端口作为键盘的输入端口,P0端口为数据输出端口,P1端口输入的键值,在P0端口产生相应的输出。4×4键盘被抽象为16个开关按钮(每行4个共四行),那么久有4位行控制线,和列四位控制线,当开关接通时,则按键按下,数码管显示相应的键值,具体硬件电路如下: 电路中排阻限流作用,以达到对数码管保护作用,P2口作为位选端口,数码管8接P2.0端口,数码管7接P0.1端口。以达到位选

的作用,对于电路可编写一下程序: 2、程序如下: #include #include #define uint unsigned int #define uchar unsigned char //uchar code table[10] = {0x03, 0x9f, 0x25, 0x0d, 0x99, 0x49, 0x41, 0x1f, 0x01, 0x09}; uchar code table[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; /********************************************************** **** * 名称: Delay_1ms() * 功能: 延时子程序,延时时间为1ms * x * 输入: x (延时一毫秒的个数) * 输出: 无 *********************************************************** ****/ void Delay_1ms(uint x) { uint i; uchar j;

单片机串口通讯实验报告

实验十单片机串行口与PC机通讯实验报告 ㈠实验目的 1.掌握串行口工作方式的程序设计,掌握单片机通讯的编制; 2.了解实现串行通讯的硬环境,数据格式的协议,数据交换的协议; 3.了解PC机通讯的基本要求。 ㈡实验器材 1.G6W仿真器一台 2.MCS—51实验板一台 3.PC机一台 ㈢实验内容及要求 利用8051单片机串行口,实现与PC机通讯。 本实验实现以下功能,将从实验板键盘上键入的字符或数字显示到PC 机显示器上,再将PC机所接收的字符发送回单片机,并在实验板的LED上显示出来。 ㈣实验步骤 1.编写单片机发送和接收程序,并进行汇编调试。 2.运行PC机通讯软件“commtest.exe”,将单片机和PC机的波特率均设定 为1200。 3.运行单片机发送程序,按下不同按键(每个按键都定义成不同的字符), 检查PC机所接收的字符是否与发送的字符相同。 4.将PC机所接收的字符发送给单片机,与此同时运行单片机接受程序,检 查实验板LED数码管所显示的字符是否与PC机发送的字符相同。

㈤ 实验框图

源程序代码: ORG 0000H AJMP START ORG 0023H AJMP SERVE ORG 0050H START: MOV 41H,#0H ;对几个存放地址进行初始化 MOV 42H,#0H MOV 43H,#0H MOV 44H,#0H MOV SCON,#00H ;初始化串行口控制寄存器,设置其为方式0 LCALL DISPLAY ;初始化显示 MOV TMOD,#20H ;设置为定时器0,模式选用2 MOV TL1, #0E6H ;设置1200的波特率 MOV TH1, #0E6H SETB TR1 ;开定时器 MOV SCON,#50H ;选用方式1,允许接收控制 SETB ES SETB EA ;开中断 LOOP: ACALL SOUT ;键盘扫描并发送,等待中断 SJMP LOOP SERVE JNB RI,SEND ;判断是发送中断还是接收中断,若为发送中 断则调用 ACALL S IN ;发送子程序,否则调用接收子程序 RETI SEND: CLR TI ;发送子程序 RETI SIN: CLR RI ;接受子程序 MOV SCON, #00H MOV A, SBUF ;接收数据 LCALL XS ;调用显示子程序 RETI 子程序: SOUT: CLR TI ;清发送中断标志位 LCALL KEY ;调用判断按键是否按下子程序 MOV A,R0 ;将按键对应的数字存入A MOV SBUF,A ;输出按键数字给锁存 RET KEY: MOV P1,#0FFH ;将P1设置为输入口 MOV A, P1 CPL A ;将A内值取反

计算机输入输出系统_接口实验报告

计算机输入输出系统接口实验报告 姓名: 学号: 东南大学计算机科学与工程学院、软件学院 School of Computer Science & Engineering College of Software Engineering Southeast University 二0 16 年 6 月

实验一环境熟悉与I/O地址译码 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验内容 将接口实验包中所带的EX-138.DSN文件用ISIS 7打开。改变A9~A3的接线方法,从而得到Y0;388H~38FH;Y1:398H~39FH; ……;Y7:3F8H~3FFH。并修改上一问的程序,以同样使得Y4#有效。 1)源程序 .8086 .MODEL SMALL .stack .data address word 3c8h .code start: mov ax,@data mov ds,ax mov dx,address mov al,0 out dx,al jmp $ END start 2)电路原理图(138译码部分)

3)运行结果贴图(138译码及上面两个273的输出)

实验二可编程中断控制器8259 一、实验目的 1.掌握8259的基本工作原理和编程方法。 2.深入了解中断的概念和实地址模式下中断处理程序的编写方法。 二、实验内容 将接口实验包中所带的EX-8259.DSN文件用ISIS 7打开。按手册接线并执行。运行结果贴图(执行三次中断,每次中断后的8086寄存器的截图) ……

实验三可编程定时器计数器8253 一、实验目的 掌握8253的基本工作原理、编程方法及其应用。 二、实验内容 一)研究定时计数器(选) 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX MOV DX,226H MOV AL,00010000B ;T/C0,least significant byte only,mode0,Binary OUT DX,AL MOV AL,5 ;Initial count=5 MOV DX,220H OUT DX,AL MOV AH,4CH INT 21H END START 2)讨论题 如果把方式0改成方式1,电路不动,则按下BUTTON后,计数器值会否减1?为什么? 不会,因为方式1下GATE=1或0没有影响,只有GATE的上升沿才会触发计数器开始计数,而该电路中GATE时钟为1,所以计数器不会减1. 二)信号发生器 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX ;Initailize T/C0 MOV DX,226H MOV AL,00110110B ;T/C0,least significant byte first,mode3,binary OUT DX,AL MOV DX,220H MOV AX,1000 ;Initial count=1000 OUT DX,AL MOV AL,AH

计算机组成原理与接口技术实验报告

计算机组成原理与接口技术 课程设计实验报告 学院:计算机科学与工程 专业:计算机科学与技术 班级:计科二班 学号: 姓名: 指导老师: 评分: 2016年12月28日

实验一验证74LS181运算和逻辑功能 1、实验目的 (1)掌握算术逻辑单元(ALU)的工作原理; (2)熟悉简单运算器的数据传送通路; (3)画出逻辑电路图及布出美观整齐的接线图; (4)验证4位运算功能发生器(74LS181)组合功能。 2、实验原理 ALU能进行多种算术运算和逻辑运算。4位ALU-74LS181能进行16种算术运算和逻辑运算。 74ls181芯片介绍: 该芯片总共由22个引脚,其中包括8个数据 输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、 ~B3,其中八个输入端中A3和B3是高位),这八 个都是低电平有效。还包括S0、S1、S2、S3这四 个控制端,这四个控制端主要控制两个四位输入 数据的运算,例如加、减、与、或。CN端处理进 入芯片前进位值,M控制芯片的运算方式,包括 算术运算和逻辑运算。F0、F1、F2、F3是四个二 进制输出端,以一个四位二进制形式输出运算的 结果。CN4记录运算后的进位。

3、实验内容 实验电路图:

4、总结及心得体会 本实验通过一个设计一个简单的运算器,使我熟悉了Multisim软件的一些基本操作方法,并掌握了一些简单的电路设计与分析的能力,并对我做下一个运算器的实验有一定的帮助。因为是之前实验课做过的实验,再次做起来过程比较流畅,没有遇到什么大的问题,实验的测试结果与预期的一致。 该芯片总共由22个引脚,其中包括8个数据输入端(~A0、~A1、~A2、~A3,~B0、~B1、~B2、~B3,其中八个输入端中A3和B3是高位),这八个都是低电平有效。还包括S0、S1、S2、S3这四个控制端,这四个控制端主要控制两个四位输入数据的运算,例如加、减、与、或。CN端处理进入芯片前进位值,M控制芯片的运算方式,包括算术运算和逻辑运算。F0、F1、F2、F3是四个二进制输出端,以一个四位二进制形式输出运算的结果。CN4记录运算后的进位。其中AEQB、~P和~G这三个端口与本实验无关,所以这里不做额外介绍。

运用8255设计的键盘及显示接口-实验报告(含接线图+源程序)

运用8255设计的键盘及显示接口 图中用并行接口8255A作为微机与键盘间的接口,采用逐行扫描法识别键。将键盘中的列与PA0—PA3相连,A口为输出;将行与C口的PC0—PC1相连,C 口为输入口; PB0—PB7与七段代码显示器连接B口为输出。 程序执行过程如下:识别是否有键按下,方法是使PA0一PA3输出全0,读C 口(行值) 中只要有一位为0,就说明有键按下,在检测到有键按下后,延迟一段时间,根据找到的键号,转去执行显示七段代码显示器的程序,这时七段代码显示器就显示与该键相同的数值。 实验步骤 8255接口的应用键盘及显示接线图 注:圆圈处是要求接的连线。 (1)按图4接线。 (2)输入源程序,汇编、连接后装入系统。 (3)执行程序后,按一下键盘,7段代码就会显示相应的数字。

程序 STACK SEGMENT STACK DW 64 DUP(?) STACK ENDS DATA SEGMENT TABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV SI,3000H MOV AL,00H MOV [SI],AL ;清空存放数据的缓冲区 MOV [SI+1],AL MOV [SI+2],AL MOV [SI+3],AL MOV DI,3003H MOV AL,81H ;8255方式字定义选择0方式,A口为输出; OUT 63H,AL;B口为输出;C口为输入 BEGIN: CALL DIS ;显示七段代码管数据的子程序 CALL CLEAR ;七段代码管清0子程序 CALL CCSCAN ;检测是否有键按下子程序 JNZ INK1 ;

8255并行口实验实验报告

8255并行口实验实验报告 作者: 一、实验目的 掌握8255A的编程原理。 二、实验设备 CPU挂箱、8086CPU模块。 三、实验内容 8255A的A口作为输入口,与逻辑电平开关相连。8255A的B口作为输出口,与发光二极管相连。编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。 四、实验原理介绍 本实验用到两部分电路:开关量输入输出电路和8255可编程并口电路。 五、实验步骤 1、实验接线 CS0?CS8255; PA0~PA7?平推开关的输出K1~K8; PB0~PB7?发光二极管的输入LED1~LED8。 2、编程并全速或单步运行。 3、全速运行时拨动开关,观察发光二极管的变化。当开关某位置于L 时,对应的发光二极管点亮,置于H时熄灭。 六、实验提示 实验也是如此。实验中,8255A工作于基本8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本输入输出方式(方式0)。 七、实验结果 程序全速运行后,逻辑电平开关的状态改变应能在LED上显示出来。例如:K2置于L位置,则对应的LED2应该点亮。 八、程序框图(实验程序名:t8255.asm)

开始 设置8255工作方式 读A口 输出至B口 结束 九、程序源代码清单: assume cs:code code segment public org 100h start: mov dx,04a6h ;控制寄存器地址 mov ax,90h ;设 置为A口输入,B口输出 out dx,ax mov al,0feh start1:mov dx,04a2h 芯片的 入口地址 out dx,al mov bl,al mov dx ,04a0h in al,dx test ax,01h jz strat2 mov al ,bl rol al,1 流水灯循环左移 mov bl,al mov cx,3000h 设置cx为灯闪烁时间对应的循环次数 add: loop add jmp start1 无条件跳转至start1 strat2:mov al,bl mov dx,04a2h out dx,al ror al,1 流水灯循环左移 mov bl, al mov cx,3000h add1: loop add jmp start 无条件跳转至start code ends end start 十、实验总结 通过该实验,掌握了8255A的编程原理,学会了用汇编语言来编写程序控制8255A进行流水灯的操作实验。

微机原理与接口技术实验报告

新疆农业大学机械交通学院 实习(实验)报告纸 班级:机制072 学号: 073731234 姓名:唐伟 课程名称:微机原理及接口技术实习(实验)名称: DEBUG软件的使用 实验时间: 6.22 指导教师签字:成绩: —、实验目的 1.学习DEBUG软件的基本使用方法。 2.掌握8088/8086的寻址方式。 3.掌握数据传送、算术运算逻辑运算等类指令的基本操作。 二、实验内容与步骤 实验内容: 修改并调试以下程序,使之完成30000H开始的内存单元中存入31个先自然递增然后有自然递减的数据(00H~0F~00H)的功能。程序从CS:0100H开始存放。调试完成后程序命名为PCS.EXE并存盘。 实验步骤: (1)用A命令输入程序; (2)用反汇编U命令显示程序及目标码; 存盘程序命令为PCS1.EXE;

三、思考题 1.EXE文件程序的第一条可执行指令的IP等于多少? 答:EXE文件程序的第一条可执行指令的IP等于0010 。 2.在DEBUG环境下显示的程序和数字是什么形式?标号又是什么形式? 答: DEBUG把所有数据都作为字节序列处理。因此它可以读任何类型的文件。DEB UG可以识别两种数据: 十六进制数据和ASCⅡ码字符。它的显示格式是各个字节的十六进制值以及值在32与126之间的字节的相应ASCⅡ码字符。DEBUG总是用四位十六进制数表示地址。用两位数表示十六进制数据。不支持标号。 3.试述本次实验中你学会的DEBUG命令? 答:本次试验我学会了汇编命令(A命令)、.反汇编命令(U命令)、显示当前环境和寄存器内容(R命令、以十六进制和ASCII码形式显示内存单元内容(D命令)

串行通信实验报告材料

串行通信实验报告 班级姓名学号日期 一、实验目的: 1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。 2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。 3、学习串口通讯的程序编写方法。 二、实验要求 1.单机自发自收实验:实现自发自收。编写相应程序,通过发光二极管观察收发状态。 2.利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。 三、实验说明 通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上。 连线方法:在第一个实验中将一台实验箱的RXD和TXD相连,用P1.0连接发光二极管。波特率定为600,SMOD=0。 在第二个实验中,将两台实验箱的RXD和TXD交叉相连。编写收发程序,一台实验箱作为发送方,另一台作为接收方,编写程序,从内部数据存储器20H~3FH单元中共32个数据,采用方式1串行发送出去,波特率设为600。通过运行程序观察存储单元内数值的变化。 四、程序 甲方发送程序如下: ORG 0000H LJMP MAIN ORG 0023H LJMP COM_INT ORG 1000H MAIN: MOV SP,#53H MOV 78H,#20H

MOV 77H,00H MOV 76H,20H MOV 75H,40H ACALL TRANS HERE: SJMP HERE TRANS: MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H MOV PCON,#80H SETB TR1 MOV SCON,#40H MOV IE,#00H CLR F0 MOV SBUF,78H WAIT1: JNB TI,WAIT1 CLR TI MOV SBUF,77H WAIT2: JNB TI,WAIT2 CLR TI MOV SBUF,76H WAIT3: JNB TI,WAIT3 CLR TI

微机原理与接口技术综合实验电子钟实验报告

微机原理综合实验:电子钟 实验要求 8253每1s产生中断请求给8259,中断服务程序利用8255控制数码管,构建一个电子钟。 一、实验原理(相关芯片大致介绍) 1.8254 8254 是Intel 公司生产的可编程间隔定时器,是8253 的改进型,比8253 具有更优良的性能。8254 具有以下基本功能: (1)有3 个独立的16 位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于6 种不同工作方式。 (4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。 (5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi是输入时钟脉冲的频率,fOUTi是输出波形的频率。 2.8259 Intel公司专为控制优先级中断而设计开发的芯片,包括中断源优先级排队、辨别中断源以及提供中断矢量的电路,无需附加任何电路,用户只需对8259 进行编程,就可以管理8 级中断,并选择优先模式和中断请求方式。同时,在不需增加其他电路的情况下,通过多片8259 的级连,能构成多达64 级的矢量中断系统。管理功能包括:1)记录各级中断源请求,2)判别优先级,确定是否响应和响应哪一级中断,3)响应中断时,向CPU 传送中断类型号。 3.8255 并行接口是以数据的字节为单位与I/O 设备或被控制对象之间传递信息。CPU 和接口之间的数据传送总是并行的,即可以同时传递8 位、16 位或32 位等。8255 可编程外围接口芯片是Intel 公司生产的通用并行I/O 接口芯片,它具有A、B、C 三个并行接口,用+5V 单电源供电,能在以下三种方式下工作: 方式0--基本输入/输出方式、 方式1--选通输入/输出方式、 方式2--双向选通工作方式。 二、设计方案 ①:初始化各芯片,选定工作方式。 ②:使用功能调用获取当前时间,作为初值装入。 ③:8254芯片开始计数,每隔1s产生一个中断信号。 ④:8259芯片接受到中断信号,并传给cpu,cpu响应中断。 ⑤:返回到③循环执行。

汇编程序及接口技术实验报告

微机汇编程序及接口技术实验报告 汇编程序实验: 一、实验目的 1、熟悉汇编程序调试过程 2、掌握算术运算指令运用 3、掌握分支程序的编程和调试方法 二、实验设备 80X86微型计算机 三、实验内容 1、编程并调试显示“Hello Word!”字符串的汇编程序 TITLE HELLO DA TA SEGMENT STR DB'Hello World!$' DA TA ENDS CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV DX,OFFSET STR MOV AH,9H INT 21H MOV AH,4CH INT 21H CODE ENDS END START

2、A、B、C、D、W是互不相等的在数据段中定义的16位有符号数,并假设加减运算不产生溢出。编写一个完整段定义的汇编语言程序,计算W=(A+B)×(C—D)。 title asmprogram1_1 DA TA SEGMENT A DW 1H B DW 3H C DW 4H D DW 2H W DW 2 DUP(?) DA TA ENDS ; CODE SEGMENT ASSUME DS:DATA,CS:CODE START:MOV AX,DATA MOV DS,AX MOV AX,A ADD AX,B MOV BX,C SUB BX,D IMUL BX MOV W,AX MOV W+2,DX MOV AH,4CH INT 21H CODE ENDS END START

3、设X、Y为在数据段中定义的有符号字变量。编写一个完整段定义的汇编语言程序(包含必要的伪指令,给出必要的注释)完成以下操作:若0

实验四 键盘扫描及显示设计实验报告

实验四键盘扫描及显示设计实验报告 一、实验要求 1. 复习行列矩阵式键盘的工作原理及编程方法。 2. 复习七段数码管的显示原理。 3. 复习单片机控制数码管显示的方法。 二、实验设备 1.PC 机一台 2.TD-NMC+教学实验系统 三、实验目的 1. 进一步熟悉单片机仿真实验软件 Keil C51 调试硬件的方法。 2. 了解行列矩阵式键盘扫描与数码管显示的基本原理。 3. 熟悉获取行列矩阵式键盘按键值的算法。 4. 掌握数码管显示的编码方法。 5. 掌握数码管动态显示的编程方法。 四、实验内容 根据TD-NMC+实验平台的单元电路,构建一个硬件系统,并编写实验程序实现如下功能: 1.扫描键盘输入,并将扫描结果送数码管显示。 2.键盘采用 4×4 键盘,每个数码管显示值可为 0~F 共 16 个数。 实验具体内容如下: 将键盘进行编号,记作 0~F,当按下其中一个按键时,将该按键对应的编号在一个数码 管上显示出来,当再按下一个按键时,便将这个按键的编号在下一个数码管上显示出来,数 码管上可以显示最近 4 次按下的按键编号。 五、实验单元电路及连线 矩阵键盘及数码管显示单元

图1 键盘及数码管单元电路 实验连线 图2实验连线图 六、实验说明 1. 由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动。抖动时间的长短由按键的机械特性决定,一般为 5~10ms。这是一个很重要的时间参数,在很多场合都要用到。 键抖动会引起一次按键被误读多次。为了确保 CPU 对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按

相关主题
文本预览
相关文档 最新文档