收藏 分销(赏)

微机原理与接口技术电子发声器课程设计样本.doc

上传人:二*** 文档编号:4510280 上传时间:2024-09-26 格式:DOC 页数:10 大小:145.04KB 下载积分:5 金币
下载 相关 举报
微机原理与接口技术电子发声器课程设计样本.doc_第1页
第1页 / 共10页
本文档共10页,全文阅读请下载到手机保存,查看更方便
资源描述
一. 实验名称:发声器 二. 功能及用法: 设计一种电子琴发声程序,并在运营时通过实验箱上扬声器发声,并且当按下数字1~14时,依次发出1,2,3,4,5,6,7低音和1,2,3,4,5,6,7中音。并在实验箱上发声器上发声,这必定需要有发声程序,驱动发声程序,尚有键盘扫描程序,及为了可以听见清脆字符音还得对程序进行必要延时。运用8254芯片所提供转化后频率送到发声单元进行发声及8255芯片送提供输入输出功能,来完毕从键盘输入到发声装置发声控制。 电子发声原理: 一种音符相应一种频率,将相应一种音符频率方波通到扬声器上,就可以发出这个音符声音。将一段乐曲音符相应频率方波一次送到扬声器,就可以演奏出这段乐曲。运用8254“方波发生器”,将相应一种频率计数初值写入计数器,就可以产生相应频率方波。计数初值计算如下: 计数初值 = 输入时钟\输出频率 例如输入时钟采用1MHZ,要得到800HZ频率,计数初值即为1000000/800。音符与表对照关系如上表所示。对于每一种音符演奏时间,可以通过软件延时来解决。一方面拟定单位延时子程序(依照CPU频率不同而有所变化)。然后拟定每个音符演奏需要几种单位延时,将此值送入寄存器,再调用延时子程序即可。 三.实验器件: 通过实验箱上扬声器发声,并且当按下数字1~14时,依次发出1,2,3,4,5,6,7低音和1,2,3,4,5,6,7中音。并在实验箱上发声器上发声。 选用器件: 8254和8255芯片各一片,微机一台,TPC-H通用微机接口实验系统一台,扬声器和导线若干 四.电路连接图: 8254某些接线图 8255某些接线图 五.各子程序功能 1.为8255和8254所定义端口地址: I0Y0 EQU 06C0H MY8254_COUNT0 EQU I0Y0+00H MY8254_COUNT1 EQU I0Y0+02H MY8254_COUNT2 EQU I0Y0+04H MY8254_MODE EQU I0Y0+06H MY8255_A EQU 0640H MY8255_B EQU 0642H MY8255_C EQU 0644H MY8255_MODE EQU 0646H 2..频率表及所相应时间表: FREQ_LIST DW 262H,294H,330H,349H,392H,440H,496H DW 523H,587H,659H,698H,784H,880H,988H DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H 3.定义8255和8254控制字 MOV DX,MY8255_MODE MOV AL,81H OUT DX,AL MOV DX,MY8254_MODE MOV AL,36H OUT DX,AL 4.CCSCAN子程序实现取出按键值并输入A口(清屏子程序) CCSCAN:MOV AL,00H MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX NOT AL AND AL,0FH RET 5.Play输出发音子程序 PLAY PROC MOV AH,0 MOV SI,AX SHL SI,1 MOV DX,0FH MOV AX,4240H DIV WORD PTR [SI] MOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL RET PLAY ENDP 6.延时子程序 DALLY PROC D0:MOV CX,0010H D1:MOV AX,02H D2:DEC AX JNZ D2 LOOP D1 DEC DL JNZ D0 RET DALLY ENDP 7.按键扫描功能 COLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX L1:TEST AL,01H JNZ L2 MOV AL,00H JMP KCODE L2:TEST AL,02H JNZ L3 MOV AL,04H JMP KCODE L3:TEST AL,04H JNZ L4 MOV AL,08H JMP KCODE L4:TEST AL,08H JNZ NEXT MOV AL,0CH KCODE:ADD AL,CL CALL PLAY PUSH AX KON:CALL DALLY CALL CCSCAN JNZ KON POP AX JMP BEGIN1 六.源程序清单 I0Y0 EQU 06C0H MY8254_COUNT0 EQU I0Y0+00H MY8254_COUNT1 EQU I0Y0+02H MY8254_COUNT2 EQU I0Y0+04H MY8254_MODE EQU I0Y0+06H MY8255_A EQU 0640H MY8255_B EQU 0642H MY8255_C EQU 0644H MY8255_MODE EQU 0646H STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT FREQ_LIST DW 262H,294H,330H,349H,392H,440H,496H DW 523H,587H,659H,698H,784H,880H,988H DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE MOV AL,81H OUT DX,AL MOV DX,MY8254_MODE MOV AL,36H OUT DX,AL BEGIN1: CALL CCSCAN JNZ INK1 JMP BEGIN1 INK1: CALL CCSCAN JNZ INK2 JMP BEGIN1 INK2:MOV CH,0FEH MOV CL,00H COLUM: MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX L1:TEST AL,01H JNZ L2 MOV AL,00H JMP KCODE L2:TEST AL,02H JNZ L3 MOV AL,04H JMP KCODE L3:TEST AL,04H JNZ L4 MOV AL,08H JMP KCODE L4:TEST AL,08H JNZ NEXT MOV AL,0CH KCODE:ADD AL,CL CALL PLAY PUSH AX KON:CALL DALLY CALL CCSCAN JNZ KON POP AX JMP BEGIN1 NEXT:INC CL MOV AL,CH TEST AL,08H JZ KERR ROL AL,1 MOV CH,AL JMP COLUM KERR:JMP BEGIN1 CCSCAN:MOV AL,00H MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX NOT AL AND AL,0FH RET PLAY PROC MOV AH,0 MOV SI,AX SHL SI,1 MOV DX,0FH MOV AX,4240H DIV WORD PTR [SI] MOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL RET PLAY ENDP DALLY PROC D0:MOV CX,0010H D1:MOV AX,02H D2:DEC AX JNZ D2 LOOP D1 DEC DL JNZ D0 RET DALLY ENDP CODE ENDS END START
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服