资源描述
微机原理与接口技术课程设计实验报告 - 教育文库 微机原理与接口技术课程设计实验报告 2023年12月23日 星期六 上午 01:26 微机接口课程设计 实验报告 计算机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.13.83.ms,输出数据的时间间隔为3.83/320.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 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 ;假设不在18之间转sss sub al,31 mov num,al ;求出相应的时间常数的序号 mov cx,60 ;取次个正弦波数据 ddd: mov si,0 lll: mov al,datasi ;取正弦波数据 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 在DOS环境下,用汇编程序进展汇编,生成DZQ.EXE可执行程序,并运行可执行程序。分别按下1、2、3、4、5、6、7分别发出哆、唻、咪、发、唆、喇、嘁等键音。 五、实验体会 本次实验的主要难处在于汇编程序的编写,但编译通过后看到运行的结果便感到由衷的快乐。 在接好电路,运行程序后,注意按下键后,声音延长作用的长短的变化。同时增大取正弦波,可以看到延长变大,减小次数,那么声音变短,这正是由于取了正弦波数变了的原因。说明正弦波的个数使声音延长时间的关键。 同时我深化理解了8253等芯片的工作方式、作用,锻炼了自己的动手才能和分工协作才能,使我对微机接口课程产生了更大的兴趣。 实验二 步进电机控制 一、实验目的 1 理解步进电机控制的根本原理 2 掌握控制步进电机转动的编程方法 二、实验内容 1按实验图接线路,利用8255输出脉冲序列,开关K0K6控制步进电机转速,K7控制步进电机转向,实验盒上步进电机插头接实验台上J4,8255CS接288H28FH,PA0PA3接BABD;PC0PC7接K0K7. 2编程:当K0K6中某一开关为“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 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 在程序中,通过改变buf1,buf2的赋值,可以改变电机的转速,通过这样可以调节电机的转速。Buf2与buf1的比值越大,那么电机的转速越高。 第 7 页 共 7 页
展开阅读全文