汇编语言程序上机实验报告(实验一下)
微机接口课程设计
实验报告
计算机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的比值越大,则电机的转速越高。
微机原理与接口技术实验报告学院计算机与通信工程学院专业计算机科学与技术班级学号姓名实验一8259中断控制器应用实验一实验目的1掌握…
微机原理与接口技术实验报告微机原理与接口技术系别专业班级姓名学号指导教师学年第学期微机原理与接口原理实验报告微机原理与接口技术实验…
实验题目8253定时计数器实验一实验目的与要求1学会8253芯片和微机接口原理和方法2掌握8253定时器计数器的工作方式和编程原理…
微机原理与接口实验实验报告第一部分软件实验实验一实验二1实验目的熟悉软件环境能够在Dos系统下编写汇编语言程序和汇编的全过程2实验…
微机原理与应用课程实验报告实验分工报告人同组人实验时间20xx1210课程设计一题目要求1在数据段首址为0100H开始的内存区1按…
21显示程序实验1实验目的1掌握在PC机上以十六进制形式显示数据的方法2掌握部分DOS功能调用使用方法3熟悉Windows集成操作…
实验题目8253定时计数器实验一实验目的与要求1学会8253芯片和微机接口原理和方法2掌握8253定时器计数器的工作方式和编程原理…
姓名:XXX学号:XXXXXX指导教师:XXX实验一Debug命令及汇编指令和寻址的应用一、实验内容1、设堆栈段指针SP=1000…
计算机学院微机接口实验报告专业计算机科学与技术班级姓名学号实验一汇编语言程序设计实验一实验目的熟悉汇编语言程序设计及TDPITE8…
不知不觉,微机原理与接口技术实验课程已经结束了。回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编…