微机接口实验报告一下

汇编语言程序上机实验报告(实验一下)

微机接口实验报告一下

微机接口实验报告一下

微机接口实验报告一下

微机接口实验报告一下

 

第二篇:微机接口课程设计实验报告

微机接口课程设计

实验报告

计算机31班

秦鹏程

03055014

实验一 电子琴

一、实验目的

1. 通过D/A转换器产生模拟信号,使PC机作为简易电子琴

2. 了解利用数模转换器产生音乐的基本方法

二、实验内容

实验电路如图所示,8253的CLK0接1MHz时钟,GATE0接+5V,OUT0接8255的PA0,J1接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。

三、编程提示

1.对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出,给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波,对于音乐,每个音阶都有确定的频率。 各个音阶标称频率值:

音阶 频率:(单位Hz)

1 261.1

2 293.7

3 329.6

4 349.2

5 392.0

6 440.0

7 493.9

2.产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向A/D转换器输出数据的时间间隔,例如:发“1”频率为261.1Hz周期为1/261.1=3.83.ms,输出数据的时间间隔为3.83/32=0.12ms,定时时间可以由8253配合8255实现,按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。

3.程序流程

4.源程序

data segment

data1 db 80h,96h,0aeh,0c5h,0d8h,0e9h,0f5h,0fdh;正弦波数据数据区 db 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h

db 80h,66h,4eh,38h,25h,15h,09h,04h

db 00h,04h,09h,15h,25h,38h,4eh,66h

time db 120,106,94,89,79,70,63,59;发不同音时的计数器初值

msg db 'Press 1,2,3,4,5,6,7,8,Esc:',0dh,0ah,'$'

num db ? ;8253计数器初值的序号 data ends

code segment

assume cs:code,ds:data

start:

mov ax,data

mov dx,offset msg

mov ah,9

int 21h ;显示提示信息

sss:

mov ah,7

int 21h ;从键盘接收字符不回显 cmp al,1bh

je exit ;若为Esc键,则转Exit cmp al,31h

jl sss

cmp al,38h

jg sss ;若不在'1'~'8'之间转sss sub al,31

mov num,al ;求出相应的时间常数的序号 mov cx,60 ;取次个正弦波数据

ddd:

mov si,0

lll:

mov al,data[si] ;取正弦波数据

mov dx,290h

out dx,al ;放音

call delay ;调延时子程序

inc si

cmp si,32 ;是否取完个数据

jl lll

loop ddd ;总循环次数是否完,若没有,则继续 jmp sss

exit:

mov ah,4ch

int 21h

delay proc near ;延时子程序

ccc: mov bx,offset time

mov dx,283h

mov al,10h

out dx,al

mov dx,28bh ;设A口输入

mov al,9bh

out dx,al

mov al,num ;取相应的时间常数

xlat

mov dx,280h

out dx,al ;向计数器输出

kkk:

mov dx,288h

in al,dx ;从A口读一个字节

test al,01 ;判PA0口是否为

jz kkk

ret ;子程序返回

delay endp

code ends

end start

四、实验现象

在DOS环境下,用汇编程序进行汇编,生成DZQ.EXE可执行程序,并运行可执行程序。分别按下1、2、3、4、5、6、7分别发出哆、唻、咪、发、唆、喇、嘁等键音。

五、实验体会

本次实验的主要难处在于汇编程序的编写,但编译通过后看到运行的结果便感到由衷的高兴。

在接好电路,运行程序后,注意按下键后,声音延长作用的长短的变化。同时增

大取正弦波,可以看到延长变大,减小次数,则声音变短,这正是由于取了正弦波数变了的原因。说明正弦波的个数使声音延长时间的关键。

同时我深入了解了8253等芯片的工作方式、作用,锻炼了自己的动手能力和分工协作能力,使我对微机接口课程产生了更大的兴趣。

实验二 步进电机控制

一、实验目的

1. 了解步进电机控制的基本原理

2. 掌握控制步进电机转动的编程方法

二、实验内容

1.按实验图接线路,利用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向,实验盒上步进电机插头接实验台上J4,8255CS接288H~28FH,PA0~PA3接BA~BD;PC0~PC7接K0~K7.

2.编程:当K0~K6中某一开关为“1”(向上拨)时步进电机启动。K7向上打电机正转,向下打电机反转.

三、实验说明

步进电机驱动原理是通过对每相线圈中的电流的顺序切换来使电机做步进电机式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。(具体技术资料在此从略)

实验可通过不同长度的延时来得到不同的频率的步进电机输入脉冲,从而得到多种步进速度。

流程图如下:

实验源程序

P55A equ 288h ;8255A口输出

P55C equ 28ah ;8255C口输入

P55CTRL equ 28bh ;8255控制口

DATA SEGMENT

BUF db 0

MES DB 'K0-K6 ARE SPEED CONTROL',0AH,0DH

DB 'K6 IS THE LOWEST SPEED',0AH,0DH

DB 'K0 IS THE LOWEST SPEED',0AH,0DH

DB 'K7 IS THE DIRECTION CONTROL',0AH,0DH

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:

MOV AX,CS

MOV DS,AX

MOV AX,DATA

MOV DS,AX

MOV DX,OFFSET MES MOV AH,09H

INT 21H

MOV DX,P55CTRL

MOV AL,8BH

OUT DX,AL ;8255C输入,A输出 MOV BUF,33H

OUT1:

MOV AL,BUF

MOV DX,P55A

OUT DX,AL

MOV AH,1

INT 16H

JE IN1 ;有无键按下

MOV AH,4CH

INT 21H

IN1:

MOV DX,P55C

IN AL,DX ;读开关状态 TEST AL,01H JNZ K0

TEST AL,02H JNZ K1

TEST AL,04H JNZ K2

TEST AL,08H JNZ K3

TEST AL,10H JNZ K4

TEST AL,20H JNZ K5

TEST AL,40H JNZ K6

STOP:

MOV DX,P55A MOV AL,0FFH JMP OUT1

K0:

MOV BL,10H

SAM:

TEST AL,80H ;K7是否为 JZ ZX0

JMP NX0

K1:

MOV BL,18H

JMP SAM

K2:

MOV BL,20H

JMP SAM

K3:

MOV BL,40H

JMP SAM

K4:

MOV BL,80H

JMP SAM

K5:

MOV BL,0C0H JMP SAM

K6:

MOV BL,0FFH JMP SAM ZX0:

CALL DELAY MOV AL,BUF

ROR AL,1 ;循环右移 MOV BUF,AL JMP OUT1 NX0:

CALL DELAY MOV AL,BUF

ROL AL,1 ;循环左移 MOV BUF,AL JMP OUT1

DELAY PROC NEAR DELAY1:

MOV CX,05A4H DELAY2:

LOOP DELAY2 DEC BL

JNZ DELAY1

RET

DELAY ENDP

CODE ENDS

END START

四、实验体会

在源程序中,通过改变buf1,buf2的赋值,可以改变电机的转速,通过这样可以调节电机的转速。Buf2与buf1的比值越大,则电机的转速越高。

相关推荐