单片机电子琴实验报告修订版

合集下载

电子琴的实验报告

电子琴的实验报告

电子琴的实验报告 WTD standardization office【WTD 5AB- WTDK 08- WTD 2C】单片机课程设计设计题目电子琴指导老师:苏参与实验者: moxiaoxiao专业:统本电信0801地点:3#楼北楼605电子琴一.设计目的:(1).培养综合运用知识的能力(2).朋友查阅资料,使用工程设计标准及编写设计文档的能力.(3).掌握单片机应用系统的设计方法.(4).提高计算机绘图能力二.设计任务:利用DP51PROC实验系统上的定时器/计数器,按键和蜂鸣器单元。

用单片机I/O口线控制蜂鸣器发出不同的音调,程序检测按键状态,7个按键中某一键按下时,蜂鸣器对应标称音阶.三.设计与调试环境KEIL uVision2 是众多单片机应用开发软件中优秀的软件之一,它支持众多不同公司的 MCS51 架构的芯片,它集编辑,编译,仿真等于一体,同时还支持,PLM ,汇编和 C 语言的程序设计,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。

1:按下面的步骤建立一个项目:图 1-4 选取芯片图 1-5 新建程序文件(1)点击图1-5 中的 3 保存新建的程序,也可以用菜单 File-Save 或快捷键 Ctrl+S 进行保存。

因是新文件所以保存时会弹出类似图1-3 的文件操作窗口,我们把第一个程序命名为,保存在项目所在的目录中,这时程序单词有了不同的颜色,说明 KEIL 的 C 语法检查生效了。

如图1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹出菜单,在这里可以做项目中增加减少文件等操作。

我们选“Add File to Group‘SourceGroup 1’”弹出文件窗口,选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程序文件已加到项目中了。

这时在 Source Group1 文件夹图标左边出现了一个小+号说明,文件组中有了文件,点击它可以展开查看。

北邮,单片机,实验报告,电子琴

北邮,单片机,实验报告,电子琴

北邮,单片机,实验报告,电子琴北邮单片机实验报告简易电子琴2014年小学期单片机设计实验报告题目:基于单片机的电子音乐发生器班级:班内序号:实验组号:学生姓名:指导教师:基于单片机的电子音乐发生器实验摘要此次本组制作的基于PIC单片机的电子音乐发生器是具有LCD显示屏提示的音乐简单演奏、播放、存储等功能的演示作品,拥有以下4种功能:1.按键演奏:即“电子琴”功能,可以用键盘上的“1”到“A”键演奏从低音sol到高音do等11个音;2.点歌功能:即按动“B”“C”键分别演奏两首乐曲(可以表现准确的音高和音长)。

3.存储音乐功能:即按右下角“F存储”键,然后按键演奏并存储,随后按“E”键结束,之后按“D键”就可以播放存储的乐曲了;4.液晶显示功能:即在开始时显示“hello!”,在点播时分别显示“song b”、“song c”,在存储时显示“saving”。

电子音乐发生器采用以Microchip公司的PIC16F877芯片为核心的简单控制系统,外部电路连接有喇叭、键盘、LCD液晶显示屏以及其他必要系统调节元件。

软件设计中涉及PORTB\PORTC\PORTD\PORTE用作普通数字I/O脚功能。

本实验用单片机PORTB\D接收来自键盘输入的指令信息,由此确定LCD液晶屏幕显示以及喇叭播放内容,再通过PORTC\D\E输出声音或字幕信息。

关键字单片机——microcontroller芯片——CMOS chip音乐发生器——music generator 分频——fractional frequency 一、实验论证与比较本设计的核心器件是单片机芯片和音频功放芯片。

单片机采用以Microchip公司的PIC16F87X系列中的PIC16F877芯片为核心构建简单控制系统,它完全可以满足本设计功能的需要。

此音乐发生器设计利用单片机的输入输出功能,当按下播放功能键时,单片机的输出功能使外部电路连接的喇叭和LCD液晶显示屏同时播放声音及显示文字,从而实现各种复杂音乐播放器的功能。

单片机电子琴的实验报告

单片机电子琴的实验报告

姓名:班级:学号:小班学号:同组姓名:电子邮件:实验课题:基于AVR单片机电子琴的制作实验日期:2013.09.02—2013.09.15目录:一、实验简介1.1实验目的 (4)1.2实验关键词 (4)1.3基础知识 (4)二、实验器材2.1核心部件:ATmega16单片机 (5)2.2电路元件 (6)2.3管脚说明 (6)三、实验原理3.1实验原理图 (7)3.2实验流程图 (8)3.3实物效果图 (8)四、操作过程与运行结果4.1操作过程示意图 (9)4.2电子琴系统主要部分 (11)4.3具体操作过程 (11)4.4运行结果 (12)五、实验中的排错、体会与建议5.1调试与排错过程 (12)5.2体会与建议 (14)5.3小组分工 (15)5.4参考文献 (15)六、附录6.1流水灯实验 (16)6.2蜂鸣器实验 (17)6.3秒表实验 (18)6.4简易交通灯实验 (25)6.5电子琴源代码 (30)一、实验简介1.1实验目的通过设计一个模拟电子琴系统熟悉ATmega16单片机的使用及其基本功能。

使其能够通过键盘控制实现播放预存音乐,弹奏、储存弹奏音乐,变速播放,暂停及继续播放,停止播放功能。

1.2实验关键词按键检测预存播放弹奏储存变速暂停停止1.3基础知识声波是振动产生的。

频率即表示每秒钟振动的次数,采用CTC方式时avr 单片机通过特定的端口(PD4及PD5)输出一定频率的方波,TCCR1A设为比较匹配时OC1A/OC1B电平取反,TCCR1B的计数上限为OC1A,根据公式OCnA=f/2N(1+OCRnA)计算出7个频率音阶所需的OCR1A,则只需将喇叭接在PD4或PD5,通过程序控制端口输出特定频率的方波波形(发声使用正弦波最好,方波效果稍次但影响不大),喇叭就会发出七种不同的声音,依照人听觉分辨7个音阶分为三组,分别为高,中,低音阶频率,经计算可得,当OCR1A=(8000000/musicmem[i]-1)时,{131,147,165,175,196,220,247}存放低音阶频率,{262,294,330,349,392,440,494}存放中音阶频率,{524,588,660,698,784,880,988}则存放高音阶频率,所以需要定义三个数组存放各音阶的频率值。

单片机小制作报告电子琴-5页精选文档

单片机小制作报告电子琴-5页精选文档

单片机电子琴制作报告这是一款采用89S52单片机控制的8键简易电子琴,用到了单片机定时器和键盘的知识。

一、功能说明:由单片机的P1.0口输出音频信号,在P1.0口接三极管以驱动扬声器喇叭。

P2口连接8个一端接地的按键做为输入,可以连接8只10K的电阻至电源做为上拉电阻(也可以不加)。

P2.0至P2.7依次为Do、Re、Mi、Fa、So、La、Si、Do(高音)。

二、软件仿真:1、先用proteus软件做出仿真电路原理图。

(带上拉电阻时原理图)(无上拉电阻,总线结构原理图)(运行中的原理图)2、再用keil软件编辑汇编代码,联机进行仿真功能的检验。

(keil与proteus联机仿真中)三、汇编代码:BUZZ EQU P1.0ORG 0000HLJMP MAINORG 000BHLJMP INT_T0ORG 0100HMOV 30H,#00MOV 31H,#00MOV P1,#0FFHMOV TMOD,#01HSETB ET0SETB EACLR TR0START: MOV R0,P2CJNE R0,#0FFH,KEY1CLR TR0SJMP STARTKEY1: CJNE R0,#0FEH,KEY2MOV 30H,#0FBHMOV 31H,#0E9HLJMP SET_TIMERKEY2: CJNE R0,#0FDH,KEY3MOV 30H,#0FCHMOV 31H,#5CHLJMP SET_TIMERKEY3: CJNE R0,#0FBH,KEY4MOV 30H,#0FCHLJMP SET_TIMERKEY4: CJNE R0,#0F7H,KEY5MOV 30H,#0FCHMOV 31H,#0EFHLJMP SET_TIMERKEY5: CJNE R0,#0EFH,KEY6MOV 30H,#0FDHMOV 31H,#045HLJMP SET_TIMERKEY6: CJNE R0,#0DFH,KEY7MOV 30H,#0FDHMOV 31H,#92HLJMP SET_TIMERKEY7: CJNE R0,#0BFH,KEY8MOV 30H,#0FDHMOV 31H,#0D6HLJMP SET_TIMERKEY8: CJNE R0,#7FH,NOKEY MOV 30H,#0FDHMOV 31H,#0FBHSET_TIMER:SETB TR0SJMP STARTNOKEY: CLR TR0SJMP STARTINT_T0: MOV TH0,30HMOV TL0,31HCPL BUZZRETIEND四、实物图希望以上资料对你有所帮助,附励志名言3条:1、生气,就是拿别人的过错来惩罚自己。

电子琴实训报告

电子琴实训报告

单片机应用技术实训报告一、实训目的:通过单片机的硬件和软件设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

二、实训时间:15周~16周三、实训内容:单片机设计电子琴1.原理图(Protel)2.PCB3.软件调试四、-实训步骤:1.分析、绘制原理图;2.生成、设计PCB板3.用Proteus绘制原理图;4.编写C程序;5.用Proteus仿真调式。

五、结果分析:设计思路:单片机电子琴设计时,最小系统是必不可少的,按键比较多,为了节约I/O口,按键采用了4*4矩阵式按键,输出是通过P1口的音频放大电路输出;在编程序时,先要确定按下一个按键就会有一个对应的音输出,就想到要用到按键识别程序,因为有12个按键,就用到了按键扫描程序,随后又加上了消抖的函数,延时函数,又通过数组,设定了按键的频率和数码管的值,使得按键按下会有对应的音和对应的数值输出。

(1)原理图电路结构:电路由芯片at89c51,最小系统复位电路和时钟脉冲电路,4*4距阵试按键,音频放大电路构成。

电路原理:由按键电路按键按下,通过芯片8051经过脉冲电路输入声音,通过三极管放大电路放大声音输出。

(2)PCB板设计PCB板,区分好电源线和普通导线的粗细,要注意要将电源线和地线设置的粗一点,大概是普通导线的3倍,在放置时注意复位电路和晶振和芯片近一点,元件位置排布好,避免出现绿色重叠的线,在最后要DRC规则检查。

(3)Proteus原理图电路分析:将原理图绘制好,将编好的程序放进at89c51单片机里,Proteus就可以对电路进行仿真,按键扫描程序开始进行扫描按键,当系统扫描到键盘上有键被按下,则快速检测出是哪一个键,然后单片机的定时器被启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调,并数码显示管显示相应的数值。

控制键盘的SW-0~SW-11十二个键能发出十二个不同的音调,按下按键发声,松开延时一段时间停止。

生产实习报告记录单片机电子琴

生产实习报告记录单片机电子琴

生产实习报告记录单片机电子琴作者: 日期:1基础部分1.1设计任务按照给定电路原理图,进行单片机最小系统的焊接:包括单片机、开关、插排、复位电路和晶振电路,正确焊接后,电路可以进行程序的下载。

设计并焊接简单外围电路,包括:LED与独立按键、蜂鸣器、双位数码管。

使用汇编或C语言编写程序,使本电路完成以下功能:LED跑马灯、双位数码管对应计数,方式一(始终一个方向)、方式(左右循环),可准确确定周期T。

每次第一个LED亮起的时候蜂鸣器响一声(t秒)提示。

按键控制:一共三个按键分别实现以下功能暂停:检测该按键有效按下后,LED和数码管暂停,再次检测按键按下后,继续执行当前循环;复位:检测该按键有效按下后,LED和数码管归零重新开始以当前模式循环;模式转换:正常运行状态,检测该按键有效按下后,数码管显示不变,LED 显示从当前方式转换成另一方式继续执行。

1.2设计思路先设计好外围电路模块的原理图。

根据自己的板子的实际情况安排布线并依据原理图进行焊接。

再设计程序流程图,分别编写简单程序调试各个外围电路是否可以正常工作。

学习使用单片机程序开发环境,编译下载程序等。

比如:单独的跑马灯;双位数码管按秒计数;蜂鸣器1s 一响;按键控制LED 点亮(8个按键对应8个LED )。

设计程序运行的状态图以及程序流程图,编写程序代码并调试。

1.3原理图1.4PCB 图1.5器件清单表1-1器件清单(1)器件名称 实物图片 数量 器件名称 实物图片 数量单排插针(4 针) 30pF 瓷片电 11.0592M 10uf 电解电 编程接口板 40脚IC 座 双位数码管 1K Q 电阻 STCS90C52RC ; 1 单片机四角按键开2振 14六角自锁开10K Q 电阻导线 万能版杜邦线LED (红色)三极管8050 排阻41若干14831.6程序流程图开宦吋器切始化、-*■ f!tt码管显示图主程序流程图:'、延时 C.4-ms )!• ------------------------- M----------图数码管子程序1.7程序代码#in clude<reg52.h>#defi ne uint un sig ned int#defi ne uchar un sig nedcharJF始Keyl 1I1F联IFTRO=iTR0RoE虹■ev3=-0Ccunt=DFra-(]«柜结嵐{uchar code table[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uchar code Ieds1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};〃P0 口控制 8 位 LEDuchar code Ieds2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd};sbit le 1= P3A 5; sbit Ie2=P3A4; sbit fen g=P3A7; sbit key 仁P2A 。

单片机电子琴实训报告

单片机电子琴实训报告

一、实训目的1. 熟悉单片机的基本原理和编程方法。

2. 学习电子琴的原理和结构。

3. 掌握基于单片机的电子琴设计方法。

4. 培养动手实践能力和创新意识。

二、实训内容1. 单片机原理与编程2. 电子琴原理与结构3. 单片机电子琴设计4. 单片机电子琴制作与调试三、实训过程1. 单片机原理与编程在实训初期,我们学习了单片机的基本原理和编程方法。

单片机是一种集成了CPU、存储器、输入/输出接口等功能的微型计算机,具有体积小、功耗低、成本低等特点。

我们学习了51系列单片机的结构、指令系统、程序设计方法等。

2. 电子琴原理与结构电子琴是一种通过电子电路发出不同音阶声音的乐器。

我们学习了电子琴的原理和结构,包括音源模块、键盘模块、音量控制模块等。

3. 单片机电子琴设计在设计阶段,我们根据所学知识,设计了基于单片机的电子琴。

具体如下:(1)硬件设计电子琴的硬件主要由单片机、键盘、蜂鸣器、音量控制模块等组成。

我们选择了STC89C51单片机作为核心控制单元,键盘采用矩阵键盘,蜂鸣器用于发出声音,音量控制模块用于调节音量。

(2)软件设计软件设计主要包括以下几个部分:1)初始化:设置单片机的工作模式、初始化定时器、初始化键盘扫描等。

2)键盘扫描:检测键盘是否被按下,并读取按键值。

3)音阶生成:根据按键值计算对应的频率,通过定时器产生PWM信号,驱动蜂鸣器发出声音。

4)音量控制:根据音量控制模块的输入,调节PWM信号的占空比,实现音量控制。

5)音乐播放:存储一首或多首歌曲,通过键盘控制播放、暂停、停止等操作。

4. 单片机电子琴制作与调试在制作阶段,我们根据设计方案,搭建了电子琴的硬件电路,并编写了相应的程序。

在调试过程中,我们遇到了以下问题:(1)键盘扫描不稳定:经过分析,发现是由于按键抖动引起的。

我们通过软件去抖动的方法解决了这个问题。

(2)音阶不准确:经过分析,发现是由于定时器设置不当引起的。

我们调整了定时器的计数值,使音阶更加准确。

电子琴实习报告

电子琴实习报告

电子琴实习报告篇一:电子琴设计实习报告单片机原理与应用技术课程设计报告基于单片机的电子琴控制系统专业班级:* 姓名:*时间:~指导教师:*XX年 1月 10日基于单片机的电子琴控制系统课程设计任务书1.设计目的与要求设计出一个基于单片机的电子琴控制系统。

准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下功能:(1)实现基本的音符1-7的弹奏和数码显示。

(2)自动弹奏播放一首简单的歌曲。

(3)随机弹奏曲子时,可以实时记忆,并可复读(重复播放)。

(扩展功能,可选择设计)2.设计内容(1)画出电路原理图,正确使用逻辑关系;(2)确定元器件及元件参数;(3)进行电路模拟仿真;(4)SCH 文件生成与打印输出。

3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。

4.答辩在规定时间内,完成叙述并回答问题。

基于单片机的电子琴控制系统班级:* 姓名:*摘要:电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器,采用半导体集成电路,对乐音信号进行放大,通过扬声器产生音响。

用户可以自己弹奏乐曲,也可以自动伴奏。

单片机具有强大的控制功能和灵活的编程实现特性,便于设计各种以单片机为核心的控制系统。

本课程设计是用AT89S51单片机为核心控制元件,用其他外围电路配合单片机组成一个简单的电子琴控制系统,能实现音乐弹奏,自动播放音乐等功能。

本系统功能由单片机控制实现,具有运行稳定,电路简单,软件功能完善,控制系统可靠等特点。

关键词:电子琴,单片机,外围电路,系统分析,汇编程序,仿真,PCB,调试1 引言本次设计的电子琴控制系统由单片机最小系统加上按键电路,数码显示电路,声音播放电路组成,通过单片机内烧写的汇编程序来输出控制信号控制外围电路的工作。

电子琴设计不同于其他设计,需要输出1到7七个不同音阶的声音,因此信号的输出有其特殊性,可以利用单片机定时计数器产生不同频率的方波信号来形成七个不同的音阶,不同音阶的组合就能输出我们想要的音乐了。

单片机实验报告_电子琴

单片机实验报告_电子琴

随着科技的飞速发展,单片机技术已成为现代电子技术的重要分支。

为了更好地学习和掌握单片机编程及应用,我们设计并实现了一款基于单片机的简易电子琴。

本实验旨在通过设计一个简易电子琴,让学生深入了解单片机的原理和应用,提高动手实践能力。

二、实验目的1. 掌握单片机的基本原理和编程方法。

2. 学会使用定时器、中断、键盘扫描等技术。

3. 了解电子琴的工作原理和制作方法。

4. 培养学生的创新意识和团队协作能力。

三、实验原理本实验采用STC12C5A32S2单片机作为核心控制单元,通过定时器产生方波信号,驱动蜂鸣器发出不同频率的声音,实现电子琴的演奏功能。

具体原理如下:1. 单片机原理:STC12C5A32S2单片机是一款高性能、低功耗的单片机,具有丰富的片上资源,如定时器、中断、串口等。

2. 定时器:定时器用于产生固定频率的方波信号,驱动蜂鸣器发出不同频率的声音。

通过调整定时器的计数值,可以改变方波信号的频率,从而改变音调。

3. 中断:中断技术用于实现按键扫描功能。

当按键被按下时,单片机响应中断,读取按键状态,并产生相应的音调。

4. 键盘扫描:键盘扫描技术用于检测按键状态。

通过扫描键盘矩阵,可以判断哪个按键被按下,并产生相应的音调。

四、实验内容1. 硬件设计:主要包括单片机、蜂鸣器、键盘、电阻、电容等元器件。

将元器件按照电路图连接,形成电子琴的硬件电路。

2. 软件设计:主要包括主程序、定时器中断服务程序、按键扫描程序等。

通过Keil C编程,实现电子琴的演奏功能。

3. 调试与测试:对电子琴进行调试和测试,确保其能够正常工作。

1. 搭建电路:按照电路图连接元器件,形成电子琴的硬件电路。

2. 编写程序:使用Keil C编写主程序、定时器中断服务程序、按键扫描程序等。

3. 编译程序:将编写好的程序编译成HEX文件。

4. 烧录程序:将编译好的HEX文件烧录到单片机中。

5. 调试与测试:使用万用表测试电路是否正常工作,并对程序进行调试,确保电子琴能够正常演奏。

电子琴报告

电子琴报告

单片机原理及应用实验报告实验名称:电子琴设计组员:实验成绩:实验日期: 2013年6月17日实验地点: 3#北604实验报告一、实验目的以51单片机最小系统为核心,通过键盘获取按键信息,运用单片机定时器等部件实现蜂鸣器发声同时用数码管同步显示,同时该系统具有播放歌曲及选取按键输入高、中、低音的功能。

二、实验原理1、利用蜂鸣器作为发声部件。

2、两个数码管作为显示部件。

3、设置10个按键,实现高音、中音、低音的1、2、3、4、5、6、7的发音。

4、大部分功能通过软件实现。

软件的结构图如下单片机键盘电路显示电路蜂鸣器电路复位电路程序流程图如下:三、系统仿真图整体仿真图:开始初始化检测中断按键音乐播放程序按键扫描程序结束Y 发声程序是否有按键按下键值判断Y动态显示放声部分按键四、心得体会看似简单的题目,实际操作中,仍旧存在很多问题,尤其是在程序中的数码管显示的模块中,和键值的计算容易出问题。

五、源码附录//*******初始化数据*****//void init(void){speaker=0;//关蜂鸣器LED1=1;//LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;//开定时器0中断ET1=1;//开定时器1中断TMOD=0x11;//定时器0,1工作在定时状态,均为方式1 }#include<reg52.h>#define uint unsigned int#define uchar unsigned charsbit P1_0=P1^0;sbit P1_1=P1^1;sbit P1_2=P1^2;sbit P1_3=P1^3;sbit P1_4=P1^4;sbit P1_5=P1^5;sbit P1_6=P1^6;sbit P1_7=P1^7;sbit LED1=P2^6;sbit LED2=P2^7;sbit change=P3^2;sbit high=P3^5;sbit normal=P3^4;sbit low=P3^3;sbit P2_0=P2^0;sbit P2_1=P2^1;sbit speaker=P2^2;unsigned char i;unsigned char key,yin=0;uchar m,n;bit a=0;//a为change键的键值uchar seg[]={ 0x3F,/*0*/0x06,/*1*/0x5B,/*2*/0x4F,/*3*/0x66,/*4*/0x6D,/*5*/0x7D,/*6*/0x07,/*7*/0x7F,/*8*/0x6F,/*9*/0x37,/*N*///中音0x38,/*L*///低音0x76,/*H*///高音0x79 /*E*/};//共阴极数码管code unsigned char FH[]={ 0xFC,0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,//中音0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,//低音的高8位0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,};// 音阶频率表低八位code unsigned char FL[]={ 0x8E,0xED,0x44,0x6B,0xB4,0xF4,0x2D,//中音0x21,0xDB,0x87,0xD7,0x68,0xE8,0x5B,//低音的低8位0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,};code uchar star[]={1,2,3,1, 1,2,3,1, 3,4,5, 3,4,5, 5,6,5,4,3,1, 5,6,5,4,3,1, 1,12/*低音5*/,1, 1,12,1};code uchar shijian[]={4,4,4,4, 4,4,4, 4, 4,4,8, 4,4,8, 2,1,2,1,4,4, 2,1,2,1,4,4, 4,4,6, 4,4,6};void init(void);void music();void play();void seg1();void yinjie();/*********主程序*****////void main(){init();while(1){if(a==0)music();elseplay();}}//*******1ms延迟********//void delay(uint x){uint i,j;for(i=x;i>0;i--)for(j=340;j>0;j--);}//*******初始化数据*****//void init(void){speaker=0;LED1=1;LED2=0;EA=1;//开总中断TCON=0x01;//外部中断0设置为边沿触发EX0=1;//开外部中断0ET0=1;ET1=1;TMOD=0x11;//定时器0,1工作在定时状态,均为方式1}///******数码管动态显示*******/////void seg1(){P2_0=1;//关数码管1P2_1=0;//开数码管2P0=seg[n+1];//送数码管2的数据delay(15);//延时15msP2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];//yin为high,normal,low的判断结果送数码管1的数据delay(15);//延时15ms}//********高低音的选择*******//////void yinjie(){if(normal==0){delay(5);if(normal==0){ yin=10;m=0;//返回10为seg[10]显示C}}if(low==0){delay(5);if(low==0){ yin=11;m=1;//返回11为seg[11]显示L}}if(high==0){delay(5);if(high==0){ yin=12;m=2;//返回12为seg[12]显示H}}if(yin==0){yin=13;}}//********外部中断0********//void inter0() interrupt 0{if(change==0){delay(5);while(change==0);a=~a;LED1=~LED1;LED2=~LED2;}}/////*******播放音乐程序*****//// void music(){TH0=FH[star[i]-1];TL0=FL[star[i]-1];while(a==0){if(i<32){TR0=1;delay(57*shijian[i]);i++;}if(i==32){i=0;}}}////*******演奏模式*****//////void play(){TR0=0;TR1=0;yinjie();P2_1=1;//关数码管2P2_0=0;//开数码管1P0=seg[yin];if(yin!=13&&a==1){if(P1_0==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_0==0){ n=0;seg1();}}if(P1_1==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_1==0){ n=1;seg1();}}if(P1_2==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_2==0){ n=2;seg1();}}if(P1_3==0){TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_3==0){ n=3;seg1();}}if(P1_4==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_4==0){ n=4;seg1();}}if(P1_5==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_5==0){ n=5;seg1();}}if(P1_6==0){ TH1=FH[7*m+n];TL1=FL[7*m+n];TR1=1;while(P1_6==0){ n=6;seg1();}}}}//******定时器0中断******//////void timer0() interrupt 1{ TR0=0;TH0=FH[star[i]-1];TL0=FL[star[i]-1];speaker=~speaker;TR0=1;}//******定时器1中断******//////void timer1() interrupt 3{ TR1=0;TH1=FH[7*m+n];TL1=FL[7*m+n];speaker=~speaker;TR1=1;}。

基于51单片机的简易电子琴汇编程序实验报告

基于51单片机的简易电子琴汇编程序实验报告

单片机应用课程设计报告——简易电子琴电子信息科学与技术2013-2xxx单片机应用课程设计报告——简易电子琴xxx摘要本设计是一个基于AT89C52系列单片机的简易电子琴,通过硬件电路制作以及软件编译,设计制作出一个由按键电路、复位电路、数码管显示电路,定时器及蜂鸣器组成简易的电子琴。

通过键盘按键确定键号送去显示以及产生对应的频率的方波。

本次实验的难点是键盘的扫描程序设计,因为本次实验实用的键盘是通过P3.4-P3.7端口输入测试信号,从P3.0-P3.3端口进行检测的,涉及到端口的读入写出原理等问题,后来通过先送出F0数值使低四位处于读入状态,高四位处于输出状态等方法实现。

还有一个问题是如何使单片机产生确定频率的波形,后来利用定时器计时结束后的溢出信号,控制信号反转实现。

关键词:电子琴扫描式键盘数码管1、设计任务和要求1.1设计任务利用AT89C52单片机以及各种元器件自行设计编程制作一个简易电子琴。

1.2任务要求基本要求:利用查询式键盘,数字键1、2、3、4、5、6、7作为电子琴的按键,按键按下时发出Do、Re、Mi、Fa、So、La、Xi的声音。

在弹奏音乐的同时将音符显示在数码管上。

扩展要求:具备存储播放所弹奏的音乐的功能,用三个功能键进行切换状态:按一下按键控制是否进入存储状态。

;按键二控制是否进入演奏状态;按键三为复位键。

1.3方案论证(1)如何产生一定频率的方波信号首先我们知道,每一个音符都有一个固定的频率,当蜂鸣器根据不同频率的方波信号便会震动产生对应的音符。

其次要产生音频脉冲,只要算出某一音频的周期(1/f),然后将此周期除以2,即为半周期的时间,由于使用的是12MHz的晶振,所以每一个计数的脉冲长度为1us,脉冲的个数用半周期时间除以1us,用65536减去脉冲的个数便可以得到计数初值。

利用定时器计时这半个周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲。

单片机实验报告 电子琴

单片机实验报告 电子琴

单片机实验报告电子琴单片机实验报告电子琴引言:电子琴是一种流行的乐器,它通过电子元件产生声音,具有丰富的音色和音效。

在本次实验中,我们使用单片机来设计和制作一个简单的电子琴,通过按键触发不同的音调,实现基本的音乐演奏功能。

本文将介绍电子琴的原理、设计过程和实验结果。

一、原理电子琴的原理是基于音频合成技术,通过控制不同频率的声音波形来产生不同的音调。

而单片机作为电子琴的控制核心,负责接收按键信号,并通过输出引脚控制声音的发声。

具体来说,单片机通过读取按键的状态,判断按键是否按下,并根据按键的不同触发相应的音调发声。

二、设计过程1. 硬件设计在硬件设计方面,我们需要准备以下元件:单片机、按键、蜂鸣器、电阻、电容等。

首先,将按键连接到单片机的输入引脚上,以便检测按键的状态。

然后,将蜂鸣器连接到单片机的输出引脚上,以便通过控制引脚输出高低电平来实现声音的发声。

最后,根据需要添加电阻和电容等元件,以保证电路的稳定性和正确性。

2. 软件设计在软件设计方面,我们需要使用单片机的编程语言来实现电子琴的功能。

首先,我们需要设置单片机的输入引脚和输出引脚,并定义按键的状态和蜂鸣器的控制信号。

然后,我们需要编写程序来实现按键的检测和音调的控制。

具体来说,当按键按下时,单片机会读取按键的状态,并根据不同的按键触发不同的音调,同时控制蜂鸣器的输出信号,以实现声音的发声。

三、实验结果在实验过程中,我们成功地设计和制作了一个简单的电子琴。

通过按下不同的按键,我们可以听到不同的音调发声,从而演奏出简单的音乐。

实验结果表明,我们设计的电子琴具有良好的音效和音色,能够满足基本的音乐演奏需求。

结论:通过本次实验,我们深入了解了电子琴的原理和设计过程,并成功地制作了一个简单的电子琴。

通过单片机的控制,我们可以实现按键触发不同音调的发声,从而演奏出简单的音乐。

电子琴作为一种流行的乐器,具有广泛的应用和发展前景。

通过不断的学习和实践,我们相信可以设计出更加复杂和高级的电子琴,为音乐爱好者提供更多的乐器选择和音乐表达方式。

单片机实验- 电子琴模拟实验

单片机实验-  电子琴模拟实验

实验二十一电子琴模拟实验一、实验目的1、了解单片机系统发声原理2、进一步熟悉定时器编程方法3、进一步熟悉键盘扫描电路工作原理及编程方法二、实验说明1.利用定时器,可以发出不同频率的脉冲,不同频率的脉冲经喇叭驱动电路放大滤波后,就会发出不同的音调。

2.定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平.由于定时参数不同,就发出了不同频率的脉冲. 本实验中当有键按下,会发出连续脉冲,直到按键松开,才停止发音。

发完后继续检测键盘,如果键还按下,继续发音。

三、实验步骤利用实验仪上提供的键盘,使数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相应的音调。

用P3.2 口发出音频脉冲,驱动喇叭。

1、用8P数据线连接单片机最小应用系统1模块的 P1口到查询式键盘模块KEY1-KEY8口,用二号导线连接单片机最小应用系统1模块INT0(P3.2)口到扬声器模块的输入口。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到单片机最小应用系统1模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

3、打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH21_电子琴.ASM”源程序,进行编译,直到编译无误。

4、打开模块电源和总电源开关,点击开始调试按钮,点击RUN按钮运行程序。

5、实验现象:按查询式键盘的1~7键,扬声器发出高低不同的声音。

四、实验流程图及源程序1、源程序:PULSE EQU 10H ;脉冲PULSECNT EQU 50H ;脉冲计数TONEHIGH EQU 40H ;高音调TONELOW EQU 41H ;低音调TONE EQU 42H ;音调KEYBUF EQU 54HSPEAKER BIT P3.2ORG 0000HLJMP STARTORG 000BHLJMP TIMER0INTORG 0030HTIMER0INT: PUSH PSW ;定时中断CLR TR0MOV TH0, TONEHIGHMOV TL0, TONELOWSETB TR0MOV C, PULSEMOV SPEAKER,CCPL PULSEPOP PSWRETITONETABLE: DW 64578,64686,64778,64821DW 64898,64968,65029TESTKEY: MOV P1, #0FFHMOV A, P1CPL A ; 读入键状态RETKEYTABLE:DB 0FEH,0FDH,0FBH,0F7HDB 0EFH,0DFH,0BFH,07FH ; 键码定义GETKEY: MOV R6, #10ACALL DELAYMOV A,P1CJNE A, #0FFH, K01 ;确有键按下LJMP MLOOPK01: MOV R3, #8 ;8个键MOV R2, #0 ;键码MOV B, A ;暂存键值MOV DPTR, #KEYTABLEK02: MOV A, R2MOVC A, @A+DPTR ;从键值表中取键值CJNE A, B, K04 ;键值比较MOV A, R2 ;得键码INC ARETK04: INC R2 ;不相等,到继续访问键值表DJNZ R3, K02MOV A, #0FFH ;键值不在键值中,即多键同时按下 LJMP MLOOPDELAY: MOV R7, #0DELAYLOOP: DJNZ R7, DELAYLOOPDJNZ R6, DELAYRETSTART: MOV SP, #70HMOV TMOD, #01 ; TIMERMOV IE, #82H ; EA=1, IT0 = 1 MOV TONE, #0MLOOP: CALL TESTKEYJZ MLOOPCALL GETKEYMOV B, AJZ MLOOP ; = 0, < 1ANL A, #8JNZ MLOOP ; > 8DEC BMOV A, BRL A ; A = A*2MOV B, AMOV DPTR, #TONETABLEMOVC A, @A+DPTRMOV TONEHIGH, AMOV TH0, AMOV A, BINC AMOVC A, @A+DPTRMOV TONELOW, AMOV TL0, ASETB TR0MOV P1,#0FFHWAIT: MOV A, P1CJNE A, #0FFH, WAITMOV R6, #10ACALL DELAYCLR TR0LJMP MLOOPEND2.流程图五、实验思考题1、请思考实验是怎样在硬件与软件上实现发声的?2、本程序中断子程序的调用是怎样进行的?六、实验电路图本实验用到单片机最小应用系统1模块,查询式键盘模块, 扬声器模块。

单片机实训报告(电子琴的设计和实现)

单片机实训报告(电子琴的设计和实现)

《单片机原理及应用》综合课程设计电子琴的设计与实现学生姓名:张三、李四、王五、陈曦指导教师:张辉所在系:电子信息系所学专业:网络工程年级:2013级201 5年12 月目录序论 (2)1、课程设计总体说明 (3)1.1设计要求 (3)1.2设计方案 (3)1.2.1播放模块 (3)1.2.2 按键控制模块 (3)1.2.3录音模块 (3)1.3设计分析 (3)1.3.1概述 (3)1.3.2硬件框图 (4)1.4设计目的 (4)2、系统概要 (4)2.1扬声器 (4)2.2 AT89C51单片机 (5)2.2.1简介 (5)2.2.3管脚说明: (5)2.3 ISD1820录放音芯片 (6)2.3.1主要特性 (6)2.3.2封装图 (6)2.3.3引脚介绍: (6)3、系统实现 (7)3.1、电子琴实现功能流程图 (7)3.2、软件各模块内容 (7)3.2.1键盘扫描程序: (7)3.2.2功能转移程序: (8)3.2.3琴键处理程序: (9)3.2.4录音程序: (9)4、仿真调试 (12)5、硬件调试 (13)5.1总实物图 (13)5.2电子琴的设计与实现 (13)6、心得体会 (14)参考文献 (15)序论课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

单片微型计算机是大规模集成电路技术发展的产物,属第四代电子计算机,它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。

它的应用必定导致传统的控制技术从根本上发生变革。

因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。

电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。

它在现代音乐扮演着重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。

单片机电子琴实验报告

单片机电子琴实验报告

单片机及DSP课程设计报告专业:通信工程班级:姓名:学号:指导教师:李贺时间:2015-06-22~2015-07-03通信与电子工程学院基于单片机的电子琴设计一、课设的目的及内容本设计主要是用单片机为核心控制元件,设计一台电子琴。

以单片机作为主控核心,与键盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。

本系统主要是完成的功能:电子琴弹奏并显示所按的按键对应音的唱名。

关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

总之,本设计的电子琴有以下要求:(1)用键盘作出电子琴的按键,共7个,每键代表1个音符。

各音符按照符合电子琴的按键顺序排列;(2)达到电子琴的基本功能,可以用弹奏出简单的乐曲;(3)在按下按键发出音符的同时显示出音符所对应的唱名即1(dao)、2(ruai)、3(mi)、4(fa)、5(sao)、6(la)、7(xi)。

二、问题分析、解决思路及原理图本系统采用STC89C52RC为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小。

其中,输入电路有7个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在蜂鸣器中发出有效的声音。

由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用数码管显示电路负责显示按下的琴键所对应音符的唱名,这样既节省了成本,又降低了编程难度。

图1如图1所示基于单片机STC89C52RC的电子琴电路,它主要由琴键控制电路、数码管显示电路、音频功放电路和时钟-复位电路四部分所构成。

三、硬件设计(一)琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。

本设计采用独立式键盘的思路。

独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机电子琴实验报告修订版IBMT standardization office【IBMT5AB-IBMT08-IBMT2C-ZZT18】单片机及DSP课程设计报告专业:通信工程班级:姓名:学号:指导教师:李贺时间:2015-06-22~2015-07-03通信与电子工程学院基于单片机的电子琴设计一、课设的目的及内容本设计主要是用单片机为核心控制元件,设计一台电子琴。

以单片机作为主控核心,与键盘、蜂鸣器、数码管等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。

本系统主要是完成的功能:电子琴弹奏并显示所按的按键对应音的唱名。

关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

总之,本设计的电子琴有以下要求:(1)用键盘作出电子琴的按键,共7个,每键代表1个音符。

各音符按照符合电子琴的按键顺序排列;(2)达到电子琴的基本功能,可以用弹奏出简单的乐曲;(3)在按下按键发出音符的同时显示出音符所对应的唱名即1(dao)、2(ruai)、3(mi)、4(fa)、5(sao)、6(la)、7(xi)。

二、问题分析、解决思路及原理图本系统采用STC89C52RC为主控芯片,因其精度较高,操作比较灵活,输入电路和输出电路由芯片来进行处理,电路的系统的稳定性高,功耗小。

其中,输入电路有7个独立按键,通过按键随意按下所要表达的音符,作为电平送给主体电路,中央处理器通过识别,解码输出音符,在蜂鸣器中发出有效的声音。

由于需要显示的信息不多,显示电路未采用液晶屏显示,而是使用数码管显示电路负责显示按下的琴键所对应音符的唱名,这样既节省了成本,又降低了编程难度。

图1如图1所示基于单片机STC89C52RC的电子琴电路,它主要由琴键控制电路、数码管显示电路、音频功放电路和时钟-复位电路四部分所构成。

三、硬件设计(一)琴键控制电路琴键控制电路作为人机联系的输入部分,也是间接控制数码显示和音频功放的重要组成部分。

本设计采用独立式键盘的思路。

独立式键盘的特点是一键一线,各键相互独立,每个键各接一条I/O口线,通过检测I/O输入线的电平状态,可判断出被按下的按键。

?显而易见,这样电路简单,各条检测线独立,识别按下按键的软件编写简单。

适用于键盘按键数目较少的场合,不适用于键盘按键数目较多的场合,因为将占用较多的I/O口线。

?独立式键盘的7个独立按键分别对应一个I/O口线,当某一按键按下时,对应的检测线就变成了低电平,与其它按键相连的检测线仍为高电平,只需读入I/O输入线的状态,判别哪一条I/O输入线为低电平,很容易识别哪个键被按下。

(二)数码管显示电路LED(Light Emitting Diode)发光二极管缩写。

LED数码管是由发光二极管构成的。

常见的LED数码管为“8”字型的,共计8段。

它由七个条形发光二极管和一个小圆点发光二极管组成,每一段对应一个发光二极管。

一般来说分共阳极和共阴极两种接法,如图二所示为八段LED数码管结构及外形。

图二共阳极LED数码管的发光二极管的阳极连接在一起,公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示,如图二a 所示。

反之,共阴极发光二极管的阴极连在一起,通常公共阴极接地。

当阳极为高电平时,发光二极管点亮,如图二b所示。

LED数码管的a至g七个发光二极管因接得电压不同而导致不同亮暗的组合就能形成不同的字形,这种组合称之为字形码,如表一所示为八段LED数码管的字形码表。

表一本设计所采用的是共阴二极管。

(三)音频功放电路本设计采用蜂鸣器作为音频发生的设备,而若将蜂鸣器的正极直接与单片机端口相连,由于单片机端口的电流值太小而无法驱动蜂鸣器发声,所以本设计采用三极管放大电流的方法来完成目的的,如图三所示,图三(四)时钟、复位电路1、时钟电路时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。

常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式。

?STC89C52内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。

这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,图四是STC89C52内部时钟方式的电路,C1和C2的典型值通常选择为30pF,石英晶体常选6MHz或12MHz的。

本设计采用内部时钟方式做时钟电路图四2、复位电路单片机的初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使STC89C52复位。

这些操作都是由复位电路来实现。

在单片机的实用系统中,一般有两种复位操作形式:上电复位和手动复位。

上电复位在单片机系统每次通电时执行。

上电时,电容C充电加给RST引脚一个短的高电平信号,此信号随着VCC对电容C的充电过程而逐渐回落,即RST引脚上的高电平持续时间取决于电容C充电时间。

为保证系统可靠复位,RST引脚上的高电平必须维持足够长的时间。

手动复位在系统出现操作错误或程序运行出错时使用。

在单片机系统运行过程中,按下复位键,高电平输入RST引脚,单片机被强制执行复位操作,系统可以退出错误运行状态,恢复正常工作。

四、软件设计1、硬件接口定义2.发声原理若要产生音频脉冲,只要算出某一音频的周期(1/频率),再将此周期除以2,即为半周期的时间。

利用定时器计时半周期时间,每当计时终止后就将P3.3反相,然后重复计时再反相。

就可在P1.0引脚上得到此频率的脉冲。

利用STC89c52的内部定时器使其工作计数器模式(MODE1)下,改变计数值TH0及TL0以产生不同频率的方法产生不同音阶。

例如,频率为523Hz,其周期T=1/523=1912μs,因此只要令计数器计时956μs/1μs=956,每计数956次时将I/O反相,就可得到中音DO(523Hz)。

计数脉冲值与频率的关系式是:N=fi÷2÷fr,式中,N是计数值;fi是机器频率(晶体振荡器为12MHz时,其频率为1MHz);fr是想要产生的频率。

其计数初值T的求法如下:T=65536-N=65536-fi÷2÷fr 例如:设K=65536,fi=1MHz,求中音DO(261Hz)。

T=65536-N=65536-fi ÷2÷fr=65536-1000000÷2÷fr=65536-500000/fr,中音DO的T=65536-500000/523=64580。

3.程序流程3.1主函数运用模块化的思想,流程如图所示。

3.2初始化函数流程图如下图所示,该函数对所需的I/O口、定时器0以及数码管蜂鸣器进行初始化配置。

3.3音频处理及数码管显示本设计中数码管显示编码较容易,所以将其与发声程序一同处理,使编码更加简洁。

流程图如下所示五、源程序#define keyport P1#define uchar unsigned char#define uint unsigned intsbit SPK=P3^3; //蜂鸣器接口定义uchar high,low; //定时器预装值的高八位和低八位uchar code fre[][2]= { //频率值0x44,0xfc, //中音10xac,0xfc, //中音20x09,0xfd, //中音30x34,0xfd, //中音40x82,0xfd, //中音50xc2,0xfd, //中音60x06,0xfe, //中音7};uchar code table[]={0x06,0x5b,0x4f,0x66,0x6d, //数码管显示1,2,3,4,5,6,7所对应的P0口电平0x7d,0x07,0x7f,0x6f,0x77,};void delay(uint x); //延时函数void Init(void); //初始化函数void main (void) //主函数开始{Init(); //先进行初始化while(1){uchar num;switch(keyport){ //扫描按键及判断键值case 0xfe:delay(1);if(keyport==0xfe) //消抖{P0=table[0]; //数码管显示音的唱名num=1;}break;case 0xfd:delay(1);if(keyport==0xfd){P0=table[1];num=2;}break;case 0xfb:delay(1);if(keyport==0xfb){P0=table[2];num=3;}break;case 0xf7:delay(1);if(keyport==0xf7) {P0=table[3]; num=4;}break;case 0xef:delay(1);if(keyport==0xef) {P0=table[4]; num=5;}break;case 0xdf:delay(1);if(keyport==0xdf) {P0=table[5];num=6;}break;case 0xbf:delay(1);if(keyport==0xbf){P0=table[6];num=7;}break;case 0x7f:delay(1);if(keyport==0x7f){P0=table[7];num=8;}break;default:num=0;break;}if(num==0) //没按按键{TR0=0;}else{high=fre[num-1][1]; //将按键所对应的频率值装入定时器的高八位与低八位low=fre[num-1][0];TR0=1; //定时器打开delay(500); //将其延时SPK=0; //延时后关闭P0=0x00;}}}void Init(void) //初始化函数{SPK=0;TMOD = 0x01;EA=1;ET0=1;TR0=0;}void Timer0_isr(void) interrupt 1 //中断函数{SPK=!SPK;TH0=high;TL0=low;}void delay(uint x) //延时函数{int a,b;for(a=x;a>0;a--)for(b=110;b>0;b--)}六、Proteus仿真Proteus软件是英国Labcenter?Electronics公司研发的EDA工具软件。

它是一个集模拟电路、数字电路、模/数混合电路以及多种微控制器系统为一体的系统设计和仿真平台。

是目前同类软件中最先进、最完整的电子类仿真平台之一。

它真正实现了在计算机上完成从原理图、电路分析与仿真、单片机代码调试与仿真、系统测试与功能验证到PCB板生成的完整的电子产品研发过程。

相关文档
最新文档