第1页共21页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页共21页1设计任务描述1.1设计题目:简易电子琴设计1.2设计内容利用微机原理试验箱,设计简易电子琴,要求至少可以弹出7个音阶。1.2.1设计目的通过本学期对微机原理的学习,掌握的知识还停留在理论的上。但是这是一门实践性较强的课程,让学生在学完该课程之后,进行一次课程设计,使学生将课堂所学的知识和实践有机结合起来,初步掌握计算机应用系统设计的步骤和接口设计的方法,提高分析和解决实际问题的能力。通过设计实践,培养学生查阅专业资料,工具书或参考书,了解有关工业标准,掌握现代设计手段和软件工具,并能以图纸和说明书表达设计思想和结果的能力。通过设计,不但要培养和提高学生解决工程具体问题,动脑动手的技术工作能力,而且还要逐步建立科学正确的设计和科研思想,培养良好的设计习惯,牢固树立实事求是和严肃认真的工作态度。1.2.2基本要求1.可以弹出7个音阶。2.弹奏简短音乐。3.通过改变键盘输入来改变8254输出频率,实现扬声器发音第2页共21页第1页共21页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第2页共21页2设计思路通过8255和8254来实现电子琴模拟,主要由两部分组成:第一部分为键盘扫描,用来确定按键位置,并给计数器赋初值。第二部分为发声部分,由计数器1#的输出端产生一定频率的方波驱动扬声器发声。其中8254和课本中学的8253在原理上是一样的,它为可编程定时器/计数器。利用计数器0,并使它工作在方式3---输出对称方波,通过改变频率来实现不同的发声高低,再调用延时子程序来实现发音的长短,把输出方波送到扬声器,至此实现不同的音符发声。过程中主要用到了8255芯片的PB0—PB4,PA0—PA4它们分别与键盘单元的X1—X4,Y1—Y4相连,其中B口低4位为输出端,B口低4位1为输入端。由它们对键盘单元进行扫描,并确定键值工作过程为:先给所有列线输入低电平,然后读取行线,检测行线是否为低电平,如果有某条行线输出低电平,则说明该键盘有按键被按下,否则,说明无按键被按下.采用这种方法可以快速判断键盘是否有键按下。在检查到有键按下后,再通过行扫描法判断按下的位置,从而确定按下的是什么键,经过计算得出计数器1#的初值。第3页共21页第2页共21页开始程序定义8255,8254控制字键盘扫描有无键按下确定按键位置键值送CPU处理取对应频率时钟频率除对应频率得初始值初始值送8254发出方波调用延迟控制发音长短编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第3页共21页3设计原理流程图停止发声无条件转移第4页共21页第3页共21页系XD0统∣XD7XA1XA2CLKIOY3IOW#IOR#D08254∣D7A0A1CLK0OUTOCSGATA0WRRD电子发声单元SPK+5V系XD0统∣XD7XA1XA2IOW#IOR#IOYOD08255PA0∣∣D7PA3A0PC0A1∣WRPC3RDPB0CS∣PB7X1键∣X4盘Y1∣Y4A∣D0编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第4页共21页4实际硬件接线图程序结束第5页共21页第4页共21页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第5页共21页5源程序清单及注释MY8255_AEQU0600HMY8255_BEQU0602HMY8255_CEQU0604HMY8255_MODEEQU0606HMY8254_MODEEQU06C6HMY8254_AEQU06C0H;进行宏定义DATASEGMENTFREQ_LISTDW441D,495D,556D,589D,661D,742D,833D,882DDW262D,294D,330D,373D,402D,450D,494D,-1DDATAENDS;建立数据段CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;实现段寄存器DS的初始化MOVDX,MY8255_MODEMOVAL,81HOUTDX,AL;写8255芯片的控制字实现工作在方式0,A端口和B端口输出,C端口输入第6页共21页第5页共21页编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第6页共21页MOVDX,MY8254_MODEMOVAL,36HOUTDX,AL;使8254工作在方式3,A口输入,运用计数器0,二进制方式BEGIN:CALLCCSCAN;扫描JNZINK1;有键按下时跳到INK1JMPBEGIN;没键按下时循环执行BEGIN确定按下键的位置INK1:CALLCCSCANJNZINK2;有键按下时跳到INK2JMPBEGIN;没键按下时循环执行BEGININK2:MOVCH,0FEH;确定按下键在第一列MOVCL,00H;将CL清零COLUM:MOVAL,CHMO...