微机原理——简易电子琴
微机简易电子琴课程设计
微机简易电子琴课程设计一、课程目标知识目标:1. 学生能理解电子琴的基本原理,掌握其结构与功能;2. 学生能掌握微机与电子琴连接的简易方法;3. 学生能了解并运用基本的音乐理论知识,如音符、音阶、和弦等。
技能目标:1. 学生能通过编程软件控制电子琴演奏简单曲目;2. 学生能运用所学的电子琴知识,创作出自己的音乐作品;3. 学生能提高动手实践能力,通过组装、调试电子琴,培养解决问题的能力。
情感态度价值观目标:1. 学生培养对音乐和电子制作的兴趣,提高创新意识和动手能力;2. 学生通过团队协作,培养沟通、分享、合作的良好品质;3. 学生在学习过程中,体会科技与艺术的结合,提升对美的鉴赏能力。
课程性质:本课程为实践性较强的综合课程,结合信息技术和音乐艺术,让学生在动手实践中学习电子琴知识。
学生特点:六年级学生具有一定的信息技术基础,好奇心强,喜欢动手操作,同时具备一定的音乐素养。
教学要求:教师应关注学生的个体差异,以学生为主体,引导他们主动探究、合作学习,注重培养学生的动手能力、创新意识和审美情趣。
通过课程目标的实现,使学生达到预期的学习成果,为后续学习打下坚实基础。
二、教学内容1. 电子琴基础知识:介绍电子琴的原理、结构与功能,包括键盘、音源、音色、音量控制等组成部分。
- 教材章节:第二章“电子琴的原理与结构”- 内容列举:电子琴的原理、键盘布局、音色种类、音量控制方法等。
2. 微机与电子琴连接:讲解如何使用编程软件(如Scratch)与电子琴进行连接,实现简易控制。
- 教材章节:第三章“微机与电子琴的连接方法”- 内容列举:编程软件的安装与使用、电子琴与计算机的连接方式、基本指令编写。
3. 音乐理论知识:学习基本的音乐理论知识,如音符、音阶、和弦等,为创作和演奏打下基础。
- 教材章节:第四章“音乐理论基础”- 内容列举:音符、音名、音阶、和弦的识别与运用。
4. 电子琴演奏与创作:通过实践,学会演奏简单曲目,并尝试创作自己的音乐作品。
微机原理课设 电子琴8253 8255
一、内容摘要设计一个电子琴。
利用数字键1、2、3、4、5、6、7作为电子琴键,按下数字键发出相应的音调。
二、课程设计的目的和意义1、进一步掌握定时器编程和应用。
2、了解微机利用定时器产生音乐的基本方法。
三、课程设计的要点和内容1、根据音阶频率表,利用定时器可以产生相应频率的脉冲信号,不同频率的脉冲信号经驱动电路放大后,就会发生不同的音调。
2、对于每个按键的音调发音时间由软件延时控制,如键一直按下,就会连续发音各音阶标称频率值:本次课设要求设计一个电子琴,作为一个乐器,其最基本的功能就是能够发出一个音阶的所有声音,即:do,re,mi,fa,so,la,xi,dou,8个音符,不同的声音的本质就是不同频率的波,每个音符都对应着固定的频率;而声音的长短即是波的个数。
所以得出的一条思路是:用汇编语言来产生一系列频率不同的方波信号,找到各个音符的频率,然后用汇编语言产生同频信号,并将该信号输入到扬声器,如果驱动功率不够则可以加放大电路。
四、硬件电路设计1、单元电路设计:硬件结构应结合软件方案一并考虑,做到软件、硬件功能相匹配。
在DJ-598K 三合一单片机微机试验仪平台上,硬件设计参考方案如下:2、电路工作原理:2.1可编程8253计数器(1)在计算机的引用中,常常要对外设的某些信号进行计数,希望计算机既能控制技术的过程,还有能读取计数的结果,进而作为控制或管理的决策依据。
如果被计数的信号有了准确的固定的周期,就形成了定时器。
(2)图为8253的内部组成和引脚。
如图所示,与外部的连接线主要分布在右侧的三个部分,即:三个计数器。
其中CLK为计数通道的输入脉冲信号,对于8253来说的频率范围是0—2MHz。
GATE为门控信号,用来启动或禁止计数工作,高电平有效,不同的工作方式,作用也不同。
Out为输出信号,用来输出波形,不同的工作方式,不同的工作方式,输出的波形也不同;而与CPU的的内部接线主要分布在左侧的三个部分。
微机原理课程设计——简易电子琴实验
微机原理与接口技术课程设计——简易电子琴的设计作者:王雨轩指导老师:张金花摘要:本设计主要是利用可编程并行I/O接口芯片8255,通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。
利用定时器可发出不同频率的方波的原理,使不同频率的方波进入蜂鸣器发出不同音调。
Abstract: This design mainly is to use programmable parallel I/O interface chip 8255 to design the main body part of the electronic keyboard’s circuit,to achieve the basic function of the inherent.So called simple electronic keyboard.The principle of using the timer can make different frequency square wave,let the different frequency square wave into the buzzer to make different tones.关键字:微机原理接口技术 8255 电子琴目录说明书总页数:14页简易电子琴的设计 (3)一、课题要求与内容 (3)(一)课题要求 (3)(二)课题内容 (3)(三)使用设备 (3)二、系统总体方案设计 (4)(一)系统流程图 (4)三、系统硬件设计 (5)(一)设计原理图 (5)(二)主机连线说明 (5)(三)硬件调试 (5)四、系统软件设计 (6)(一)程序清单 (6)(二)软件调试 (12)五、结束语 (13)六、参考文献 (14)简易电子琴的设计随着电子科技的飞速发展,电子技术正在逐渐改善着人们的学习、生活、工作。
计算机是一种严格按照时序进行工作的数字化、智能化机器,实现电子琴的微型化,可以用作玩具琴、音乐转盘以及音乐童车等等。
微机原理课程设计电子琴
一、教学内容ቤተ መጻሕፍቲ ባይዱ
本节课为微机原理课程的实践环节,选取《微机原理与应用》教材第七章“微机接口技术”及第十章“微机在仪器仪表中的应用”为理论依据,设计了一堂以“电子琴”制作为主体的课程。教学内容主要包括:1.微机与电子琴硬件接口原理,特别是I/O接口地址译码及编程;2.利用基本微机接口实现电子琴音调的控制,包括键盘扫描、音调发生器的使用;3.电子琴软件编程,通过编写简单的BIOS调用或DOS中断实现音色的播放与控制;4.熟悉并掌握电子琴的制作流程,包括电路设计、程序编写、调试与优化等。通过本节课的学习,学生将能理论与实践相结合,深入理解微机接口技术,增强动手能力与创新能力。
5、教学内容
本节课将是对电子琴项目的一个总结和应用拓展,教学内容如下:1.电子琴功能的创新设计,鼓励学生思考如何添加新的功能,如录音、播放、节奏伴奏等;2.介绍微机与其他外设的通信接口,如USB、蓝牙等,为电子琴的远程控制或数据传输打下基础;3.电子琴的电源管理设计,讲解如何为电子琴设计稳定的电源供应系统;4.实践电子琴的组装和外壳设计,提升学生的工业设计和实际动手能力;5.组织学生进行课堂展示和答辩,培养他们的表达能力和公众演讲技巧。通过本节内容的实践,学生将能够综合运用所学知识,发挥创造力,完成一个具有实用性和创新性的电子琴项目,并在此过程中提升自身的工程实践能力和团队合作精神。
2、教学内容
本节课进一步深化微机原理的应用,以“电子琴”项目为载体,教学内容具体包括:1.电子琴键盘布局设计与实现,让学生了解如何通过微机接口读取键盘输入;2.音阶生成算法介绍,探讨如何通过编程产生不同音调;3.利用微机定时器/计数器产生稳定的时钟信号,保证音色的准确性与连贯性;4.简单的乐曲编程与演奏,指导学生如何将音符组合成乐曲并进行演奏;5.电子琴功能的扩展,如增加音量控制、音色选择等,提高电子琴的交互性和趣味性。
微机原理课程设计--电子琴设计
课程设计说明书题目姓名专业班级系(部)指导老师目录摘要 (1)1 设计任务及要求 (2)2 工作原理 (2)2.1 8253简介 (3)2.28255简介 (4)3设计思路 (4)3.1程序功能描述 (4)3.2程序流程图 (5)3.3DOS/BIOS功能调用 (6)3.3.1INT 16H(键盘I/O中断) (6)3.3.2INT 10H(屏幕及显示器中断) (7)3.3.3 INT 21H(DOS系统功能调用) (8)4 方案比较及论证 (8)5 程序源代码及注释 (8)6 运行结果分析 (11)7 调试过程记录 (12)8 课程设计小结 (13)参考文献 (14)附录 (15)摘要本文通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。
输入部分主要是由8255和8个常开型开关来完成。
发音部分由CUP通过对定时器8253的通道2进行编程,使其I/O寄存器接收一个控制声音频率的16位计数值,端口61H的最低位控制通道2门控的开断,以产生特殊的音响。
本文用到的是8253的方式3——方波发生器。
在程序设计中,为了避免过于频繁的调用中断显示字符串,应用了宏定义;还通过子程序调用,有效的解决了跳转和转移过多的问题;再加上合理的DOS和BIOS功能调用,以及各种指令的综合,最终作出了漂亮的电子琴界面,并实现了电子琴演奏高、中、低音,以及播放预存乐曲的功能。
关键词:电子琴 8253定时器 8255 DOS调用宏定义1 设计任务及要求初始条件:用汇编语言设计一个电子琴,在屏幕上显示出来,界面要美观,功能上模拟现实电子琴功能。
要求完成的主要任务:1.实现弹奏功或演奏。
其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调2.界面要美观。
2 工作原理PC机扬声器电路以及相关接口电路如图2-1。
图2-1 PC机扬声器电路及相关接口电路通过8255和8253来实现电子琴模拟,主要可以分成两部分,分别为输入部分和发音部分。
简易电子琴实验
哈尔滨理工大学单片机原理及接口技术课程设计报告设计题目:简易电子琴实验专业:电机与电器班级:电机10-1姓名:刘国生学号:1030350111《单片机原理及接口技术》课程设计任务书课题描述随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。
本设计编写的一个用开关模拟电子琴的程序,以8086作为处理器,用8255接八个开关K1~K8,做电子琴按键输入,以8253控制扬声器,拨动不同的开关,发出相应的音阶。
其中K1代表静音,K2发si的音,K3发la 的音,K4发sol的音,K5发fa的音,K6发mi的音,K7发re的音,K8发do的音。
开发工具:汇编语言;DICE-8086K实验系统。
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
一、课程设计目的1、通过本次课程设计加深对单片机课程的认识和掌握,对单片机的应用做进一步了解。
2、通过本次课程设计提高学生的编程能力、调试能力、文献资料查阅能力,为毕业设计和以后工作打基础。
3、学生的创新意识,巩固了解汇编语言知识并要掌握8255芯片的使用并熟悉实验系统。
4、掌握蜂鸣器的使用方法;掌握蜂鸣器的不同发音的方法。
二、实验内容1、简易电子琴原理:(1)蜂鸣器输入不同频率的方波,会发出不同的声音(2)通过按键,由单边机控制产生不同频率的方波,从而发出不同的声音。
2、实验过程(1)通过单边机,使G6区的1到7号键由低到高发出1到7的音阶。
三、功能简介本简易电子琴的设计可实现的功能如下:通过一个独立键盘可以实现对该音乐的播放和停止操作的控制。
连续按下不同的按键,可以实现乐曲的演奏。
当按下某一按键,会发出相应的音调。
微机原理与汇编语言课设——电子琴
微机原理与汇编语言课设——电子琴一、引言电子琴是一种常见的电子乐器,其原理主要是利用微控制器和音频芯片来实现音乐的产生和演奏。
本文将介绍微机原理与汇编语言课设中关于电子琴的设计和实现。
二、设计目标本次课设的设计目标是实现一个简单的电子琴,具备以下功能:1. 发出不同音高的音符;2. 支持多种音效,如音量调节、音色切换等;3. 支持多音同时演奏。
三、硬件设计1. 微控制器选择本次设计选用了ATmega328P微控制器作为主控芯片。
它具有丰富的外设资源,适合用于音频处理和控制。
2. 音频芯片选择为了实现音乐的产生,我们选择了一个音频芯片,例如YM2612。
它能够根据输入的音符和音效参数产生相应的音频信号。
3. 键盘电路设计电子琴的键盘通常采用矩阵键盘的设计,通过扫描键盘的状态来检测按键的触发。
我们可以使用行列扫描法来实现键盘的检测。
4. 音频输出电路设计为了将产生的音频信号输出到扬声器上,我们需要设计一个音频输出电路。
一般来说,可以使用功放电路来放大音频信号,然后通过扬声器播放出来。
四、软件设计1. 系统初始化在系统初始化阶段,我们需要对微控制器进行初始化设置,包括时钟配置、引脚配置等。
2. 键盘扫描通过行列扫描法,我们可以检测到按下的键盘按键。
一旦检测到按键按下,我们需要进行相应的处理,例如发出对应的音符。
3. 音符发声根据键盘扫描的结果,我们可以确定需要发出的音符。
通过音频芯片,我们可以将相应的音符转换为音频信号,并输出到音频输出电路。
4. 音效处理除了发出不同音高的音符外,我们还可以通过调节音量、切换音色等方式实现多种音效。
这些音效参数可以通过按键或旋钮来控制。
5. 多音演奏电子琴通常支持多音同时演奏的功能。
为了实现这一功能,我们可以通过多线程或中断的方式来处理多个音符的发声。
五、实验结果经过设计和实现,我们成功地完成了一个简单的电子琴。
它能够发出不同音高的音符,并支持多种音效。
通过按键和旋钮的操作,我们可以控制音量、音色等参数。
汇编语言电子琴设计(微机原理课程设计)
微机原理课程设计(汇编语言)——电子琴设计一、设计内容编写一实现电子琴的程序,并实现若干扩展功能。
基本功能:用键盘输入对应的七个音阶,通过实验箱的喇叭发出声音,并通过七段数码管显示输入音阶;扩展功能:1、在程序中可预设多首曲目,按一键可以进入预设子菜单,对要播放的曲目进行选择,并实现播放该曲目。
2、程序运行时有友好的用户介面。
3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案二、元件与仪器1.计时器82532.并行控制器8255A3.实验台三、设计原理、思路及流程图1、设计原理(1)对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。
给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。
对于音乐,每个音阶都有确定的频率。
各音阶标称频率值:(2)产生一个正弦波的数据可取32个(小于亦可),不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为261。
1HZ,周期为1/261.1=3.83ms,输出数据的时间间隔为3.83ms/32=0.12ms. 定时时间可以由8253配合8255来实现。
按下某键后发音时间的长短可以由发出的正弦波的个数多少来控制。
本程序中设置默认长度为60个正弦波。
(3)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
(4) 点阵LED显示器是将许多LED类似矩阵一样排列在一起组成的显示器件,双色点阵LED是在每一个点阵的位置上有红绿或红黄或红白两种不同颜色的发光二极管。
当微机输出的控制信号使得点阵中有些LED发光,有些不发光,即可显示出特定的信息,包括汉字、图形等。
车站广场由微机控制的点阵LED大屏幕广告宣传牌随处可见。
(5)实验仪上设有一个共阳极8×8点阵的红黄两色LED显示器,其点阵结构如图所示。
微机原理——简易电子琴
课程名称:微型计算机原理与接口技术设计题目:模拟简易电子琴一、题目分析题目:模拟简易电子琴1.由于题目要求该程序有多个功能,而且是分工合作,所以采用菜单选择形式实现多功能实现在一个程序里,再用不同的子函数实现不同的功能,用主函数在不同的输入指令下调用不同的子程序来实现不同的功能。
2.为了使计算机无需音响输出设备就可以发声,我们利用ROM BIOS中的BEEP子程序,它能根据BL中给出的时间计数值控制8254定时器,产生持续声音。
通过对BEEP的修改可以使其产生任一频率的声音。
用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。
组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音,本程序通过调用GENSOUND程序演奏乐曲。
二、总体设计1.把所有变量写进data中,完成data和stack的定义;2.利用宏的定义设计功能菜单,在程序中为了能够循环起来,运用比较(cmp)和跳转(jz)使菜单循环起来;3.写一个在模拟钢琴中,已经有的音乐,我们以粉刷匠这首儿歌为例,把它插在其中实现原有音乐的播放;4.根据PC机的键盘数字八度音程的钢琴程序,整理,能发出6,7,1,2,3,4,5,6,7,i,十个音调三、实验环境,在其中运用,子程序的调用和宏定义;5.运用录音的功能把在上一个用键盘实现按键功能的音乐录下来,在写一个播放音乐的子程序,调用录音子程序,实现回放功能;三、实验环境1.用editplus去编写汇编语言;2.用masm去编译,再用link去连接,然后在dos运行exe文件。
四、制作步骤1.编写步骤,我们采用不同子程序整合为一个总程序的办法逐步实现2. 运行步骤,按1键演奏乐曲,按2键可以演奏歌曲,在输入音键的同时输出相应音符并在屏幕上显示出来,按3键演奏刚刚在步骤2中用户演奏的乐曲,按0键自行推出程序,。
微机原理实验报告-电子琴
微机接口技术课程实验设计报告题目:按键电子琴姓名:学号:************、************班级:2013级电子二班一.设计内容设计一个由80x86系统控制的集成电路,可以实现由键盘控制出不同频率的声音,并且在按动键盘的同时控制八位LED灯的亮灭。
二.设计思路利用80X86系统中,8259,8255,8254三块芯片控制整个电路。
利用8255芯片控制LED灯的亮灭,利用8259的中断组成开关部分,利用8254定时/计数器控制音乐播放。
2.1芯片8259控制部分芯片控制字,采用边沿触发,单片,要写入ICW4控制字,中断类型码控制字:设置IR0~IR7的中断类型码依次为08H、…、0FH方式控制字:非特殊全嵌套方式,主片在非缓冲方式下,中断结束采用非自动结束方式。
2.2芯片8254控制部分通道0:只读写低字节,工作在方式3即方波发生器,计数格式为2进制。
通道1:方式0,计数器,BCD计数,初值01H.2.3芯片8255控制部分A口工作在方式0,作为输入端口用于开关采样;B口工作在方式0,作为输出,连接控制LED灯;C口未定义,默认为输出。
三.硬件电路四.流程图五.按键开始装入频率时间表起始地址计算计数初值并装入计数器调用序并调用延时程序否两个指针递增检测拨键开关并控制LED灯是检测是否结束返回主程序MY8255_A EQU 0600HMY8255_B EQU 0602HMY8255_C EQU 0604HMY8255_MODE EQU 0606HMY8254_MODE EQU 06C6HMY8254_A EQU 06C0HDATA SEGMENTFREQ_LIST DW 221,248,278,294,330,371,416,441DW 495,556,589,661,742,833,882,-1DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATA ;初始化MOV DS,AXMOV DX,MY8255_MODEMOV AL,81H ;8255控制字OUT DX,ALMOV DX,MY8254_MODE ;8254控制字MOV AL,36HOUT DX,ALBEGIN:CALL CCSCAN ;扫描JNZ INK1JMP BEGININK1:MOV CH,0FEHMOV CL,00HCOLUM:MOV AL,CHMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXL1:TEST AL,01HJNZ L2MOV AL,00HJMP KCODEL2:TEST AL,02HJNZ L3MOV AL,04HJMP KCODEL3:TEST AL,04HJNZ L4MOV AL,08HJMP KCODEL4:TEST AL,08HJNZ NEXTMOV AL,0CH KCODE:ADD AL,CLMOV DL,2DMUL DLPLAY:MOV SI,OFFSET FREQ_LISTADD SI,AXMOV DX,0FHMOV AX,4240HDIV WORD PTR[SI]MOV DX,MY8254_AOUT DX,ALMOV AL,AHOUT DX,ALMOV CX,8DNEXT3:CALL DALLYLOOP NEXT3MOV DX,0FHMOV AX,4240HMOV SI,30DDIV WORD PTR[SI]MOV DX,MY8254_AOUT DX,ALMOV AL,AHOUT DX,ALJMP BEGIN NEXT:INC CLMOV AL,CHTEST AL,08HJZ KERRROL AL,1MOV CH,ALJMP COLUM KERR:JMP BEGIN CCSCAN:MOV AL,00HMOV DX,MY8255_AOUT DX,ALMOV DX,MY8255_CIN AL,DXNOT ALAND AL,0FHRETDALLY:PUSH CXMOV CX,000FHT1:MOV AX,009FH T2:DEC AXJNZ T2LOOP T1POP CXRETCODE ENDSEND START。
微机原理课程设计-简易电子琴设计
简易电子琴设计一、设计目的通过课程设计使学生更进一步掌握微机原理及应用课程的有关知识,提高应用微机解决问题的能力,加深对微机应用的理解。
通过查阅资料,结合所学知识进行软、硬件的设计,使学生初步掌握应用微机解决问题的步骤及方法。
为以后学生结合专业从事微机应用设计奠定基础。
二、设计的原始资料及依据(1)查阅定时器8254,可编程8255及音节的频率范围等资料。
(2)通过改变键盘输入来改变8254输出频率,实现扬声器发音。
三、设计的主要内容及要求内容:利用微机原理试验箱,设计简易电子琴。
要求:(1)可以弹出7个音阶。
(2)弹奏简短音乐。
四、对设计说明书撰写内容、格式、字数的要求1.课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。
2.学生应撰写的内容为:目录、正文、参考文献等。
课程设计说明书(论文)的结构及各部分内容要求可参照《沈阳工程学院毕业设计(论文)撰写规范》执行。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.说明书(论文)手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时按《沈阳工程学院毕业设计(论文)撰写规范》的要求进行打印。
4. 课程设计说明书(论文)装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
五、设计完成后应提交成果的种类、数量、质量等方面的要求;提交课程设计说明书一份。
在说明书中要有设计原理、硬件电路接线图、设计的程序及必要注释等。
六、时间进度安排;七、主要参考资料(文献)。
1、《微机原理与应用》大连理工大学出版社2、《微机原理与接口技术》北京航空航天大学出版社3、《微型计算机原理与汇编语言》电子工业出版社4、《8088/8086汇编语言程序设计》中央广播电视大学出版社沈阳工程学院微机原理及应用课程设计成绩评定表系(部):自动控制系班级:自本051 学生姓名:陈阳摘要微机原理课程设计——设计简易电子琴本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。
微机原理课程设计-电子琴设计
微机原理课程设计-电子琴设计前言本实验是利用微机原理试验箱、8255芯片、8254芯片、键盘、扬声器等硬件设备,设计简易电子琴。
首先利用了编程程序,编辑了8255芯片控制字,对其进行初始化,使其工作在方式0,即基本输入输出状态,将8255的A端口设置为输出,C 端口进行,经CPU运算后,输出到8254芯片的A端口中,由此实现对其的初始化。
将8254芯片设置为工作在方式3,即输出对称方波状态。
A端口为输入,“OUT”指令可将输出对应一定频率的方波送到扬声器中,由此实现发声。
本实验通过频率大小控制发出声音的高低,通过对延时程序的调用控制发出声音的长短。
并通过所编程序实现对键盘的重复扫描,重而可以弹奏多个音符的试验目的。
关键字:编程、工作方式、运算一、设计题目:二、设计内容:实验电路如图16-1,8253的CLK0接1MHZ时钟,GATE0接8255的PA1,OUT0和8255的PA0接到与门的两个输入端,K8跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音阶。
三、设计目的:1、通过8253产生不同的频率信号,使PC机成为简易电子琴。
2、了解利用8255和8253产生音乐的基本方法。
四、设计要求:1.可以弹出7个音阶。
2.弹奏简短音乐。
3.通过改变键盘输入来改变8254输出频率,实现扬声器发音五、编程提示:1、利用8255的PA0口来施加控制信号给与门,用来控制扬声器的开关状态。
再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。
对于音乐,每个音阶都有确定的频率。
各音阶标称频率值:音阶12345671某低频率(单位:Hz)262294330347392440494524高频率(单位:Hz)52458866069878488098810482六、设计原程序及注解;某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某;;某电子琴实验某;;某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某某;dataegmentio8255aequ288hio8255bequ28bhio8253aequ280hio8253bequ283htabledw524,588,660,698,784,880,988,1048;高音的;tabledw262,294,330,347,392,440,494,524;低音的mgdb'Pre1,2,3,4,5,6,7,8,ESC:',0dh,0ah,'$'dataendcodeegmentaumec:code,d:datatart:mova某,datamovd,a某movd某,offetmgmovah,9int21h;显示提示信息ing:movah,7int21h;从键盘接收字符,不回显cmpal,1bhjefinih;若为ESC键,则转finihcmpal,'1'jlingcmpal,'8'jging;若不在'1'-'8'之间转ingubal,31hhlal,1;转为查表偏移量movbl,al;保存偏移到b某movbh,0mova某,4240H;计数初值=1000000/频率,movd某,0FHdivwordptr[table+b某]movb某,a某保存到A某3movd某,io8253b;设置8253计时器0方式3,先读写低字节,再读写高字节moval,00110110Boutd某,almovd某,io8253amova某,b某outd某,al;写计数初值低字节moval,ahoutd某,al;movd某,io8255b;moval,10000000Boutd某,almovd某,io8255amoval,03houtd某,al;calldelay;moval,0houtd某,al;jmpingfinih:mova某,4c00hint21hdelayprocnear;puhc某puha某mova某,15某1:movc某,0ffffh某2:decc某jnz某2deca某jnz某1popa某popc某retdelayendpcodeendendtart写计数初值高字节设置8255A口输出置PA1PA0=11(开扬声器)延时置PA1PA0=00(关扬声器)延时子程序4七、程序流程图:八、硬件连线图5九、实验结果连接完线路后启动电路开关,然后运行程序,就会出现提示界面,然后键盘输入数字即可有相应音阶音乐从喇叭处播放。
微机原理与汇编语言课设——电子琴
微机原理与汇编语言课程设计电子琴学院:计算机科学技术专业:计算机科学与技术(工)班级:计13-1 班姓名:肖林英学号:2013170101 25指导教师:微2016年6 月10 日微机原理与汇编语言课程设计任务书一、题目:电子琴二、设计的目的1. 掌握利用PC机扬声器发出不同频率声音的方法;2. 学习利用系统功能调用从键盘上读取字符的方法;3. 掌握定时器/计数器8253的工作原理;三、设计要求编写程序,程序运行时使PC 机成为一架可演奏的“钢琴”。
当按下数字键1-8时,依次发出1,2,3,4,5,6,7,七个高音和低音,Esc 则退出演奏状态。
独立完成课程设计。
四、设计容及步骤1.PC 机扬声器电路电路图如图1所示:图1 PC 机扬声器控制电路通过给8253定时器装入不同的计数值,可以使其输出不同频率的波形。
当与门打开后,经过放大器的放大作用,便可驱动扬声器发出不同频率的音调。
为使该音调的声音持续一段时间,要插入一段延时程序,之后再将扬声器关闭(关闭与门)。
2.建立音频表要使计算机成为可弹奏的简易电子琴,需要使用系统调用的01H 功能以接收键入字符,并且要建立一音频表。
五、课程设计工作量每人的程序量应在100行有效程序行以上,不得抄袭,否则给不及格成绩。
六、课程设计工作计划2016年6月6日指导教师讲课,学生准备文献资料;2016年6月6日~2016年6月10日每人完成自己程序并能独立演示;2016年6月10日下午验收,学生撰写课程设计报告。
指导教师签字:专业主任签章:微机原理与汇编语言课程设计指导教师评语与成绩目录一、概述 (1)1.课题描述 (1)2.程序设计目的 (1)二、需求分析 (1)三、总体设计 (2)1.电子琴程序 (2)2.单音调子程序SOUND (3)四、详细设计 (3)1.扬声器 (3)2.界面设计 (4)五、调试与运行结果说明 (5)1.主界面 (5)2.退出界面 (6)六、课程设计总结 (6)七、结束语 (7)八、程序清单 (7)参考文献 (14)一、概述1.课题描述随着社会发展,计算机硬件技术越来越多的应用到生活中的各个领域,人们对软硬件技术结合开发出来的产品的要求越来越迫切,需求日益增加,如今用软硬件结合设计电子产品已经成为了一大时尚。
《微机原理与接口技术》课程设计--简易电子琴设计
微机原理与接口技术课程设计简易电子琴的设计摘要本次设计主要是通过对电子琴主体部分的电路进行模仿设计,达到电子琴固有的基本功能,故叫简易电子琴。
利用定时器可发出不同频率的方波,不同频率的方波经喇叭就会发出不同音调。
其次,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平,由于定时参数不同,就发出不同频率的方波,本设计中按键一次,会发出方波,松开后随之延时,但在延时的期间继续检测按键,若此时又有键被按下,若被按下的仍为原键则声音不变,否则键盘会译出被按下的另一个键的音调。
单片机控制通用MIDI音源模块制作出的电子琴,结构简单,可靠性高,并且价格低廉,具有实用的价值。
这种电子琴能够支持单音和复音弹奏,如果与高品质的音源芯片连接,音质更可与高档电子琴相媲美。
手机中通用的音乐芯片构成音源模块,效果不错,价格更低廉,如韩国产的QS6400 等,这些芯片的驱动要复杂一些,需要对芯片进行初始化设置。
此外还有音乐盒、附有生日歌的生日卡片等等。
所以利用微机制作的简易电子琴在我们的日常生活中随处可见。
第一章简易电子琴的硬件设计方案1.1简易电子琴的设计构想⑴采用8个拨码开关为输入(其中SB1~SB7为简易电子琴的弹奏按键,另外一个SB0作为控制自动弹奏预存琴谱的开关);⑵扬声器为输出;⑶由输入控制输出,即拨码开关控制扬声器;1.2 简易电子琴的功能与要求⑴功能一弹奏:用户每按一个键盘琴键就弹奏相应的音符;⑵功能二演奏:按下键盘上某一个指定的建后自动弹奏预存琴谱功能;1.3 简易电子琴硬件设计方案的确定⑴根据扬声器发声原理可知:不同频率的方波通过扬声器可发出不同的声音。
⑵由此构想运用8253工作在方式3的状态下控制其2#计数器对应寄存器中的数值,然后将输出端口OUT2产生的方波通过扬声器转换成为声音。
⑶为了实现弹奏按键(即拨码开关)来控制扬声器,可以通过用拨码开关改变8253(工作在方式3的状态下)2#计数器对应寄存器中的数值,8253输出端口OUT2通过反相器后与扬声器相连接。
微机原理课程设计—电子琴的设计
课程设计任务书学生姓名:刘沛专业班级: 电气0901指导教师:张锐工作单位:自动化学院题目:计算机电子琴软件软件设计初始条件:1.用于调试程序的IBM兼容PC机一台;2。
安装DOS/WIN98操作系统或运行于DOS/ WIN98兼容方式;3。
EDIT 等文本编辑器输入80x86汇编程序,MASM 5。
0编译及链接程序。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.使用汇编语言设计一个运行于计算机的电子琴软件,软件应实现弹奏功或演奏。
其中弹奏:用户每按一琴键弹奏相应音符;演奏:按下某键后自动弹奏预存琴谱功能;还可以附加变调、变速和记录创作等其它功能。
2.说明书撰写格式应符合《课程设计说明书统一书写格式》。
时间安排:1。
程序框图设计,3天2。
编程,4天3。
调试,3天4.编写设计报告,4天指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)1 设计任务和思路 (1)1.1设计任务 (1)1.2设计思路 (1)2更件部分工作原理 (2)2。
1 8255工作原理 (2)2.2 8253工作原理 (2)3程序流程图 (4)3.1主程序流程图 (4)3。
2演奏子程序流程 (5)3.3音乐播放子程序流程 (6)3.4弹奏子程序流程图 (6)3.5发音子程序流程图 (7)4各部分功能实现说明 (7)4。
1 发音部分功能实现 (7)4。
2 变调功能的实现 (8)4.3 弹奏功能的实现 (8)4.4演奏功能的实现 (9)4.4。
1歌曲选择功能实现 (9)4.4。
2 音乐播放功能实现 (9)5 程序运行结果 (10)结束语 (12)参考文献 (13)附录程序清单 (14)成绩评定表 (19)摘要汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。
利用汇编语言能够直接访问与硬件相关的存储器或I/O端口,从而最大限度地发挥硬件的功能.本文主要介绍了利用汇编语言设计一个运行于计算机的电子琴软件,软件能够实现弹奏,演奏的功能,当按下弹奏键时,实现弹奏功能,发出音符对应频率的声音,按下演奏键时,实现演奏功能,播放预存的音乐,按下指定的音调选择按键后,选择低音,中音或高音,则分别用低音,中音或高音进行弹奏或演奏。
单片机课程设计——简易电子琴
汇报人:
单击输入目录标题 单片机基础知识 简易电子琴系统设计 单片机与简易电子琴的结合 简易电子琴的功能扩展 简易电子琴的优化与改进
添加章节标题
单片机基础知识
单片机简介
单片机是一种集成电路芯片,将微处理器、存储器、输入/输出接口等集成在一起 单片机具有体积小、功耗低、可靠性高、编程灵活等特点 单片机广泛应用于工业控制、家电、汽车电子等领域 单片机课程设计是学习单片机应用的重要环节,可以提高学生的实践能力和创新能力
音乐播放与控制
单片机控制:通过单片机控制电子琴的音色、音高和节奏 音乐播放:单片机通过控制电子琴的音色、音高和节奏,实现音乐的播放 控制方式:可以通过按键、触摸屏等方式控制音乐的播放 功能扩展:可以增加录音、播放、暂停、快进、快退等功能,提高用户体验
显示模块的应用
显示模块的作用:显示电子琴 的音色、音高、节奏等信息
单片机在简易电子琴中的应用
控制音量:通过单片机控制 音量的大小,实现电子琴的 音量调节功能。
控制音色:通过单片机控制 不同频率的音色,实现电子 琴的多种音色效果。
控制节奏:通过单片机控制 节奏的快慢,实现电子琴的
节奏调节功能。
控制和弦:通过单片机控制 和弦的演奏,实现电子琴的
和弦演奏功能。
单片机开发环境搭建
测试内容:音色、音调、 音量、节奏等性能指标
测试结果分析:对测试数 据进行分析,找出问题并 解决
测试报告:记录测试过程、 结果和分析,为后续改进 提供依据
单片机与简易电子琴的结合
单片机控制简易电子琴的原理
单片机作为核心控制单元,负责接收和处理来自键盘的输入信号
单片机根据接收到的输入信号,控制电子琴的音源产生相应的音调
微机原理与接口技术课程设计报告——电子琴
一、设计内容编写一实现电子琴的程序,并实现若干扩展功能。
功能:1.在程序中可预设多首曲目,按不同的敏感键可播放不同的曲目2.弹奏:用户每按一个键盘琴键就弹奏相应的音符;3. 当弹奏不同音阶时,双色点阵LED显示器显示不同的图案二、元件与仪器1.计时器82532.并行控制器8255A3.实验台TDN-MD三、设计原理、思路及流程图1.电子琴的设计原理及思路1.用试验箱上的晶振输出一个高频的信号,接入8253,用软件给8253和敏感键区进行初始化,敏感键控制不同的频率,并送此分频数给8253,从8253输出相应的音频后,接一个非门,再接入硬件扬声器,扬声器接受到不同频率的波后发出不同的声音。
2.用敏感键触发中断服务子程序来判断是给出了哪一个频率。
3.用ESC按键来控制是自动演奏曲目1并亮红灯,其他7个键分别控制da,ri,mi,fa,sa,la,si并亮绿灯。
4.其中用一个延时程序,使得发一个音有一定的延时时间。
5.有个停止程序,使得晶振不能使得扬声器发声。
对于一个特定的D/A转换接口电路,CPU执行一条输出指令将数据送入D/A,即可在其输出端得到一定的电压输出。
给D/A转换器输入按正弦规律变化的数据,在其输出端即可产生正弦波。
对于音乐,每个音阶都有确定的频率。
各音阶标称频率值和8253的计数初值:不同频率的区别,可通过调节向D/A转换器输出数据的时间间隔,例如:发"1"频率为647HZ,周期为1/647=1.55ms,由于实验箱中的晶振可产生一个为1.8432MHZ的频率。
1.625MHZ/647HZ=2511,即分频数。
转化为十六进制的数为:9CFH,再经过频率处理,除以25H得到8253的计数初值:43H。
其他的初值的计算同理。
2.电子琴的硬件框图和硬件连接图图 1 硬件框图图 2 电路连接图3.电子琴的流程图设计四、源程序1.主程序:A 2000MOV AL,86HOUT 63H,ALMOV AX,3000MOV [00A8],AXMOV AX,0000MOV[00AA],AX//表示ESC键的中断向量地址,自动播放音乐MOV AX,3100MOV [00AC],AXMOV AX,0000MOV [00AE],AX//表示`键的中断向量地址,发音1MOV AX,3200MOV [00B0],AXMOV AX,0000MOV [00B2],AX//表示-键的中断向量地址,发音2MOV AX,3300MOV [00B4],AXMOV AX,0000MOV [00B6],AX//表示\键的中断向量地址,发音3MOV AX,3400MOV [00B8],AXMOV AX,0000MOV [00BA],AX//表示;键的中断向量地址,发音4MOV AX,3500MOV [00BC],AXMOV AX,0000MOV [00BE],AX//表示,键的中断向量地址,发音5MOV AX,3600MOV [00C0],AXMOV AX,0000MOV [00C2],AX//表示。
微机原理课程设计(电子琴)
目录一、前言 (1)1.1汇编语言简介 (1)1.1.1概述 (1)1.1.2汇编语言的特点 (1)二、课程设计的目的和意义 (2)2.1设计目的 (2)2.2设计意义 (2)2.3设计所需设备 (2)三、课程设计的容和要求 (3)3.1设计容 (3)3.2设计要求 (3)四、课程设计的相关技术 (4)4.1.可编程定时器/计数器8253 (4)4.1.1 8253的主要特性 (4)4.1.2 8253的部结构 (4)4.1.3.8253的控制字和初始化编程 (5)4.2.可编程并行输入/输出接口芯片8255A (6)4.2.1 8255的主要特性 (6)4.2.2.8255SA的部结构 (7)4.2.3.8255A的引脚信号 (8)4.2.4. 8255A的控制字 (10)4.3.电路连接 (11)4.4.工作原理 (12)五、课程设计过程 (13)5.1 电子琴设计思路 (13)5.2程序流程图设计 (14)5.3软件各模块容 (14)5.3.1.开启扬声器 (14)5.3.2.关闭扬声器 (15)5.3.3.演奏单音符 (15)5.3.4.控制演奏时间 (16)5.4程序清单及详细注释 (16)六、课程设计结果 (19)七、课程设计小结 (20)八、参考文献 (21)一、前言1.1汇编语言简介1.1.1概述汇编语言是面向机器的程序设计语言。
在汇编语合中,用助记符代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。
这样用符号代替机器语言的二进制码,就把机器语音变成了汇编语言。
于是汇编语言亦称为符号语言。
使用汇编语言编写的程序,机器个能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。
汇编语言把汇编程序翻译成机器语言的过程称为汇编。
1.1.2汇编语言的特点1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。
《微机原理与接口技术》实验报告简易电子琴
《微机原理与接⼝技术》实验报告简易电⼦琴海南⼤学信息学院信息安全系专业课程《微机原理与接⼝技术》简易电⼦琴实验报告⽬录⼀、设计要求 (3)⼆、设计思路 (3)三、实验材料、⼯具、或软件 (4)四、实验内容 (4)1、实验电路连接 (4)2、程序流程图 (5)3、实验电路图 (6)4、8253与8255A相关结构及原理说明 (7)⑴8253 (7)⑵8255A (9)5、⽅案确定 (12)6、设计原程序及注释 (13)7、简易电⼦琴的安装与调试 (16)五、实验总结 (17)六、参考⽂献 (17)⼀、设计要求利⽤⽤实验箱上的扬声器与8个开关设计⼀个电⼦琴。
⽤开关模拟琴键,当开关拨为“1”时,相当于有键按下,喇叭发出声⾳。
拨动不同的开关则对应不同的⾳符,每次只能拨⼀个开关(相当于按下⼀个键)。
连续拨动开关,喇叭发出⾳乐。
⼆、设计思路简易电⼦琴设计选⽤8253计数器,8255A并⾏接⼝两个芯⽚:1. (输⼊部分)以8255A接⼋个开关K1~K8,做电⼦琴按键输⼊,由输⼊控制输出,即拨码开关控制扬声器;2. (发⾳部分)以8253控制扬声器(扬声器为输出),拨动不同的开关,发出相应的⾳阶。
将8255A芯⽚的B端⼝作为输出端⼝,PB0-PB7与输出端的K1-K8(分别对应⾳符1、2、3、4、5、6、7、i)相连接,⽽8253的时钟输⼊引脚CLK0与相应的时钟发⽣器相连接,8253的GATA0接开关K9(静⾳),8253的0通道的OUT0信号与LB区的SIN⼝相连接,从⽽驱动并控制喇叭的发⾳:当INPUT上的开关对应为“1”时喇叭连通,能够发出声⾳;当INPUT上的开关对应为“0”时喇叭被中断,不能发出声⾳。
这样,我们在硬件上实现了通过8255A芯⽚输⼊设备的输⼊信号并通过它传送给8253,让8253进⾏相应的处理后输出给喇叭的功能。
我们要通过对8255A的初始化和编程控制它的相关⼯作,使其能够实现上⾯提到的相应功能。
微机原理——简易电子琴
课程名称:微型计算机原理与接口技术设计题目:模拟简易电子琴一、题目分析题目:模拟简易电子琴1.由于题目要求该程序有多个功能,而且是分工合作,所以采用菜单选择形式实现多功能实现在一个程序里,再用不同的子函数实现不同的功能,用主函数在不同的输入指令下调用不同的子程序来实现不同的功能。
2.为了使计算机无需音响输出设备就可以发声,我们利用ROM BIOS中的BEEP子程序,它能根据BL中给出的时间计数值控制8254定时器,产生持续声音。
通过对BEEP的修改可以使其产生任一频率的声音。
用汇编语言编写的程序GENSOUND,能使PC机发出指定频率和指定延迟时间的声音,它是一个很好的通用发声程序。
组成乐曲的每个音符的频率值和持续时间是乐曲发声程序所必须的两组数据,知道了音调及频率的关系后,就可以按照乐曲的乐谱将每个音符的频率和持续时间定义成两个数据表,然后编程依次取出表中的频率值和时间值,调用GENSOUND程序发出各种声音,本程序通过调用GENSOUND程序演奏乐曲。
二、总体设计1.把所有变量写进data中,完成data和stack的定义;2.利用宏的定义设计功能菜单,在程序中为了能够循环起来,运用比较(cmp)和跳转(jz)使菜单循环起来;3.写一个在模拟钢琴中,已经有的音乐,我们以粉刷匠这首儿歌为例,把它插在其中实现原有音乐的播放;4.根据PC机的键盘数字八度音程的钢琴程序,整理,能发出6,7,1,2,3,4,5,6,7,i,十个音调三、实验环境,在其中运用,子程序的调用和宏定义;5.运用录音的功能把在上一个用键盘实现按键功能的音乐录下来,在写一个播放音乐的子程序,调用录音子程序,实现回放功能;三、实验环境1.用editplus去编写汇编语言;2.用masm去编译,再用link去连接,然后在dos运行exe文件。
四、制作步骤1.编写步骤,我们采用不同子程序整合为一个总程序的办法逐步实现2. 运行步骤,按1键演奏乐曲,按2键可以演奏歌曲,在输入音键的同时输出相应音符并在屏幕上显示出来,按3键演奏刚刚在步骤2中用户演奏的乐曲,按0键自行推出程序,。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OUT DX,AL
MOV DX,MY8255_CON ;8255控制字
MOV AL,81H
OUT DX,AL
BEGIN: CALL CCSCAN ;扫描
JNZ INK1
JMP CLEAR ;若无键盘按下,则跳清除通道0
CON8254 EQU 0646H
SSTACK SEGMENT STACK
DW 16 DUP(?)
SSTACK ENDS
DATA SEGMENT
YINFU DW 09F7H,08E0H,07E8H,0778H,06A7H,05EDH,0598H,04FBH
DW 0470H,03F4H,03BBH,0353H,02F6H,02CBH,027DH,0238H
MY8255_A EQU 0600H
MY8255_B EQU 0602H
MY8255_C EQU 0604H
MY8255_CON EQU 0606H
A8254 EQU 0640H
B8254 EQU 0642H
C8254 EQU 0644H
JMP BEGIN
CLEAR: MOV DX,CON8254 ;通道0清除
MOV AL,36H
OUT DX,AL
INK1: CALL DALLY
CALL DALLY
CALL CCSCAN
JNZ INK2 ;有键按下,转到INK2
JNZ L4
MOV AL,08H ;L3
JMP KCODE
L4: TEST AL,08H ;is L4?
JNZ NEXT
MOV AL,0CH ;L4
KCODE: ADD AL,CL
BUFF DW 100 DUP(?)
BUFF_TIME DW 100 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,CON8254 ;8254控制字
RET
;====== 发声程序 ======
PUTBUF: ADD AL,AL
MOV SI,OFFSET YINFU
AND AX,0FFH
ADD SI,AX
MOV AX,[SI]
MOV DX,A8254 ;通道0置位
MOV DX,MY8255_A
OUT DX,AL
MOV DX,MY8255_C
IN AL,DX
L1: TEST AL,01H ;is L1?
JNZ L2
MOV AL,00H ;L1
OUT DX,AL
MOV AL,AH
OUT DX,AL
GOBACK: RET
CODE ENDS
END START
JMP KCODE
L2: TEST AL,02H ;is L2?
JNZ L3
MOV AL,04H ;L2
JMP KCODE
L3: TEST AL,04H ;is L3?
;键盘扫描子程序
;========================================
CCSCAN: MOV AL,00H
MOV DX,MY8255_A
OUT Dห้องสมุดไป่ตู้,AL
MOV DX,MY8255_C
IN AL,DX
NOT AL
AND AL,0FH
RET
;====== 延时子程序 ======
DALLY: PUSH CX
MOV CX,0006H
T1: MOV AX,009FH
T2: DEC AX
JNZ T2
LOOP T1
POP CX
CALL PUTBUF
NEXT: INC CL
MOV AL,CH
TEST AL,08H
JZ KERR
ROL AL,1
MOV CH,AL
JMP COLUM
KERR: JMP BEGIN
;========================================
JMP BEGIN
;========================================
;确定按下键的位置
;========================================
INK2: MOV CH,0FEH
MOV CL,00H
COLUM: MOV AL,CH