




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计题目:基于AT89S52单片机的简单电子琴 专业班级:11级电子信息科学与技术(2)班 姓名学号: 指导老师:设计时间:2013年6月12日 物理电气工程学院2013年6月12日 目录第一节 摘要.2第二节 系统硬件电路部分2.1课程设计的目的和意义.32.2 设计任务与要求.3 2.3 蜂鸣器介绍.42.4发声原理.42.5 电子琴简单组成框图.42.6 元件简介2.6.1AT89S52.72.6.2引脚说明. .82.7 硬件仿真电路及连线2.7.1电子琴电路.102.7.2 电子琴电路连线.102.7.3晶振电路.102.7.4数码管显示模块.112.7.5声音输出电路.122.7.6上电复位电路.132.7.7按键模块.142.7.8 44矩阵键盘识别及显示.15第三节:系统的软件设计3.1程序流程图3.1.1主流程图.163.1.2扫描流程图.173.2主程序.18第四节:心得体会.23第五节:参考文献.23第一节:摘要单片机是大规模集成电路技术发展的产物,属于第四代电子计算机,具有高性能,高速度,体积小,价格低廉,稳定可靠,应用广泛的特点。单片机的应用必定会导致传统控制技术从根本上发生变革。因此单片机的开发应用已成为高科技和工程领域的一项重大课题。电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演着重要的角色。单片机具有强大的控制功能和灵活的编程实现特性,它已经融入到现代人 的生活中,成为不可替代的一部分。本系统运行稳定,其优点是硬件电路简单,软件功能完善,控制系统可靠,性价比较高等,具有一定的实用和参考价值。本课程设计主要是利用到AT89S52单片机,44矩阵键盘,数码管,蜂鸣器,通过对单片机编程,按下键盘矩阵中的按键会使数码管显示当前按键,蜂鸣器按对应的音符发声。从而了解单片机的基本功能。关键词:单片机;44矩阵键盘;数码管;蜂鸣器;电子琴第二节:系统的硬件电路部分2.1课程设计的目的和意义基于单片机的定时和控制装置在许多行业有着广泛的应用,而电子琴是其中最基本,也是最具有代表性的一个例子。通过本次课程设计可以灵活运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到软件编程及系统调试,仿真实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。本次课程设计还可以通过上网查询器件资料,培养对新知识新技术的独立的学习能力和应用能力。在这次课程设计中,我们运用到了很多一切所学的知识和一些很有用的软件和工具,如word制图、利用keil编写程序,并生产hex文件,利用protues对生成的hex文件,进行电路仿真。通过独立完成一个简单的电子琴系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为日后的毕业设计及科研工作奠定良好的基础。2.2 设计任务与要求利用所给44键盘的1-7,8-14十四个键,可以发出 do,ri,mi,fa,sou,la,si,十四个音节(7个中音,7个低音),并通过数码管显示出所按下的键盘的键号。硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。该设计要实现一种由单片机控制的电子琴,单片机工作于12MHZ时钟频率,使用其定时/计数器T0,按方式1工作,改变计数值TH0和TL0可以产生不同频率的脉冲信号。该设计具有14个音节的键盘,用户可以根据乐谱上的音节在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。2.3 蜂鸣器蜂鸣器是一种一体化结构的电子讯响器,采用直流电源供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件从图a、b外观上看,两种蜂鸣器好像一样,但仔细看,两者的高度略有区别,有源蜂鸣器a,高度为9mm,而无源蜂鸣器b的高度为8mm。如将两种蜂鸣器的引脚都朝上放置时,可以看出有绿色电路板的一种是无源蜂鸣器,没有电路板而用黑胶封闭的一种是有源蜂鸣器。2.4 发声原理 电子琴要发出不同的声音,可以通过查表,查到各个音节对应的频率,可以计算出单片机定时的初值,便可以让单片机发出相应的频率的振荡信号,从而产生相应的音符声音。常采用的方法是通过单片机的定时器进行定时中断,在中断服务子程序中将单片机上外界扬声器的I/O口来回置高电平或置低电平,从而让扬声器发出声音。为了让单片机发出不同频率音符的声音,只需将定时器预置不同的定时值来实现。单片机定时初值计算方法操作如下:以标准音高B为例:标准音高B的频率 f=330Hz,其对应的周期为:T=1/f=3030us因此需要在单片机I/O口输出周期为T=3030us的方波脉冲,如图所示单片机控制音调示意图由上图可知: 单片机输出高电平和低电平信号均为:t=T/2=1515us 也就是说,单片机上定时器的中断触发时间为1515us。如果单片机采用定时器工作方式1,它以振荡器的十二分频信号为计数脉冲。单片机为12MHZ,机器周期Tcy=1us. 计数值N=t/Tcy=1515 单片机定时初值X=65536-1515=64021 TH0=X/256=0FA TL0=X%256=15 在单片机晶振频率,定时器在工作方式1下定时器计数初值见下:表2.3:晶振频率定时器在工作方式1下定时器计数初值表音符频率/Hz计数初值音符频率/Hz计数初值低1 DO26263628# 4 FA #74064860#1 DO#27763731中 5 SO78464898低2 RE29463835# 5 SO#83164934#1 RE#31163928中 6 LA88064968低 3 MI33064021# 6 LA#93264994低 4 FA34964103中 7 SI98895030#4 FA#37064185高 1 DO104665058低5 SO39264260# 1 DO110965085#5 SO41564331高117565110低 6 LA44064400#2 RE#124565134#6 LA#46664463高 3 MI131865157低7 SI49464524高 4 FA139765178中 1 DO52364580# 4 FA#148065198# 1 DO#55464633高 5 SO 156865217中 2 RE58764684# 5 SO#166165235#2 RE#62264732高 6 LA176065252中 3 MI65964777# 6 LA#186565268中 4 FA69864820高 7 SI1967652832.5 电子琴简单组成框图2.6 元件简介2.6.1AT89S52功能特性:AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程FlashAT89S52。主要性能:与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符。其管脚图如下:2.6.2引脚说明:P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0不具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5 MOSI(在系统编程用)P1.6 MISO(在系统编程用)P1.7 SCK(在系统编程用)P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。 在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑电平。 P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。 在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 INTO(外中断0)P3.3 INT1(外中断1)P3.4 TO(定时/计数器0)P3.5 T1(定时/计数器1)P3.6 WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.7 硬件仿真电路及连线2.7.1电子琴电路Protues仿真电路电子琴电路2.7.2 电子琴电路连线:P1.4口接蜂鸣器(我们使用的为有源蜂鸣器,使用时需要接电源);4x4矩阵键盘接P3口,其中P3.0-P3.3接1-4行,P3.4-P3.7接1-4列;数码管接P0口,利用P2口来对数码管进行位选(其中数码管为共阳极的,及接低电平时有效)。2.7.3晶振电路AT89C52单片机的定时控制功能是用时钟电路和振荡器完成的,而根据硬件电路的不同,连接方式分为内部时钟方式和外部时钟方式。本设计中采用内部时钟方式。单片机内部有一个反相放大器XTAL1、XTAL2分别为反相放大器的输入端和输出端,外接定时反馈元件组成振荡器(内部时钟方式),产生时钟送至单片机内部各元件。时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快。一般来说单片机内部有一个带反馈的线性反相放大器,外界晶振(或接陶瓷振荡器)和电容就可组成振荡器,如下图所示。加电以后延时一段时间(约10ms)振荡器产生时钟,不受软件控制,图中X1为晶振,震荡产生的时钟频率主要由Y1确定。电容C1,C2的作用有两个:一是帮助振荡器起振,二是对振荡器的频率起微调作用,典型值为30pF。 晶振电路2.7.4数码管显示模块利用AT89S52单片机的P0端口的P0.0-P2.6连接到一个七段数码管的a-g的端,数码管的公共端接电源。其中该数码管为共阳极的,及低电平时亮。 数码管显示2.7.5声音输出电路:声音输出电路由蜂鸣器构成,蜂鸣器接P1.4口,播放模块是蜂鸣器构成。它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以被广泛应用。其中该蜂鸣器为低电平发声发声电路2.7.6上电复位电路电子琴的供电电路和复位电路复位电路2.7.7按键模块行列式键盘,P3.0-P3.3接行,P3.4-P3.7接列,通过编写程序对44进行扫描 44 行列式键盘在按键过程中常产生“毛刺” 现象,如下图所示,要消除“毛刺”现象,这里采用最常用的方法,即延时重复扫描法,延时法的原理为:因为“毛刺”脉冲一般持续时间短,约为几ms,而我们按键的时间一般远远大于这个时间,所以当单片机检测到有按键动静后,再延时一段时间(10ms20ms)后再判断此电平是否保持原状态,如果是则为有效按键,否则无效。此种方法又叫去抖动。 “毛刺”现象2.7.8 44矩阵键盘识别及显示组成键盘的按键有机械式、电容式、导电橡胶式、薄膜式多种,但不管什么形式,其作用都是一个使电路接通与断开的开关。目前微机系统中使用的键盘按其功能不同,通常可分为编码键盘和非编码键盘两种基本类型。 编码键盘:键盘本身带有实现接口主要功能所需的硬件电路。不仅能自动检测被按下的键,并完成去抖动、防串键等功能,而且能提供与被按键功能对应的键码(如ASCII码)送往CPU。所以,编码键盘接口简单、使用方便。但由于硬件电路较复杂,因而价格较贵。 非编码键盘:键盘只简单地提供按键开关的行列矩阵。有关按键的识别、键码的确定与输入、去抖动等功能均由软件完成。目前微机系统中,一般为了降低成本大多数采用非编码键盘。键盘接口必须具有去抖动、防串键、按键识别和键码产生4个基本功能。1.去抖动:每个按键在按下或松开时,都会产生短时间的抖动。抖动的持续时间与键的质量相关,一般为520ms。所谓抖动是指在识别被按键是必须避开抖动状态,只有处在稳定接通或稳定断开状态才能保证识别正确无误。去抖问题可通过软件延时或硬件电路解决。2.防串键:防串键是为了解决多个键同时按下或者前一按键没有释放又有新的按键按下时产生的问题。常用的方法有双键锁定和N 键轮回两种方法。双键锁定,是当有两个或两个以上的按键按下时,只把最后释放的键当作有效键并产生相应的键码。N 键轮回,是当检测到有多个键被按下时,能根据发现它们的顺序依次产生相应键的键码。3.按键识别:如何识别被按键是接口解决的主要问题,一般可通过软硬结合的方法完成。常用的方法有行扫描法和线反转法两种。行扫描法的基本思想是,由程序对键盘逐行扫描,通过检测到的列输出状态来确定闭合键,为此,需要设置入口、输出口一个,该方法在微机系统中被广泛使用。线反转法的基本思想是通过行列颠倒两次扫描来识别闭合键,为此需要提供两个可编程的双向输入/输出端口。4.键码产生:为了从键的行列坐标编码得到反映键功能的键码,一般在内存区中建立一个键盘编码表,通过查表获得被按键的键码。用AT89S52 的并行口P3 接44 矩阵键盘,以P3.4-P3.7作输入线,以P3.0-P3.3 作输出线,独立按键接外部中断T0。第三节:系统的软件设计3.1程序流程图:3.1.1主流程图END开始确定按下键号,查表发对应的音,并显示相应键号T0初始化并允许cpu中断 P2口数码管位选对P3口行扫描3.1.2扫描流程图P3口初始化P3.0置0,其他口置1,逐列扫描,延时去抖,查表,数码管显示相应数字P3.1置0,其他口置1,逐列扫描查到相应键号对应初值,播放相应音节,去抖并等待释放,关闭定时器。P1.4置1,防止误响P3.2置0,其他口置1,逐列扫描P3.3置0,其他口置1,逐列扫描3.2主程序:LUNM EQU 30HSTH0 EQU 31HSTL0 EQU 32HTEMP EQU 33HORG 0000HLJMP STARTORG 0000BHLJMP INTT0ORG 0100HSTART:MOV P2,#0FEH ;利用p2口来对数码管位选MOV TMOD,#01H;使用定时/计数器T0,方式1工作SETB EA;打开总中断SETB ET0;打开定时器0中断MAIN:MOV P3,#0FFH;设置p3口为输入 CLR P3.0 SETB P3.1 SETB P3.2 SETB P3.3;对第1行进行扫描 JNB P3.4,L1 JNB P3.5,L2 JNB P3.6,L3 JNB P3.7,L4 JMP LOOP1;第一行无键按下,跳转到下一行扫描L1:LCALL DELAY;延时,去抖动MOV A,#0;确定键号MOV LUNM,A;保存键号LCALL DISPJMP LOOPL2:LCALL DELAY MOV A,#1MOV LUNM,ALCALL DISPJMP LOOPL3:LCALL DELAYMOV A,#2MOV LUNM,ALCALL DISPJMP LOOPL4:LCALL DELAYMOV A,#3MOV LUNM,ALCALL DISPJMP LOOPLOOP1:CLR P3.1 SETB P3.0SETB P3.2SETB P3.3;扫描第2行JNB P3.4,LP1JNB P3.5,LP2JNB P3.6,LP3JNB P3.7,LP4JMP LOOP2LP1:LCALL DELAY;延时,去抖动MOV A,#4确定键号MOV LUNM,A保存键号LCALL DISPJMP LOOPLP2:LCALL DELAYMOV A,#5MOV LUNM,ALCALL DISPJMP LOOPLP3:LCALL DELAYMOV A,#6MOV LUNM,ALCALL DISPJMP LOOPLP4:LCALL DELAYMOV A,#7MOV LUNM,ALCALL DISPJMP LOOPLOOP2:CLR P3.2 SETB P3.0SETB P3.1SETB P3.3;扫描第3行JNB P3.4,LO1JNB P3.5,LO2JNB P3.6,LO3JNB P3.7,LO4JMP LOOP3LO1:LCALL DELAY;延时,去抖动MOV A,#8;确定键号MOV LUNM,A;保存键号LCALL DISPJMP LOOPLO2:LCALL DELAYMOV A,#9MOV LUNM,ALCALL DISPJMP LOOPLO3:LCALL DELAYMOV A,#10MOV LUNM,ALCALL DISPJMP LOOPLO4:LCALL DELAYMOV A,#11MOV LUNM,ALCALL DISPJMP LOOPLOOP3:CLR P3.3SETB P3.0SETB P3.1SETB P3.2;扫描第4行JNB P3.4,LU1JNB P3.5,LU2JNB P3.6,LU3JNB P3.7,LU4JMP MAINLU1:LCALL DELAY;延时,去抖动MOV A,#12;确定键号MOV LUNM,A;保存键号LCALL DISPJMP LOOPLU2:LCALL DELAYMOV A,#13MOV LUNM,ALCALL DISPJMP LOOPLU3:LCALL DELAYMOV A,#14MOV LUNM,ALCALL DISPJMP LOOPLU4:LCALL DELAYMOV A,#15MOV LUNM,ALCALL DISPJMP LOOP DISP:MOV DPTR,#TABLE MOVC A,A+DPTR MOV P0,A;将所按下键号送到接有数码管的P0口显示 RET KEYHN:MOV P3,#0FH MOV A,P3 CPL A ANL A,#0FH RETLOOP: MOV DPTR,#TABLE1;置分支入口地址表首地址MOV A,LUNMMOV B,#2MUL AB;乘2,调整偏移量MOV TEMP,AMOVC A,A+DPTRMOV STH0,A;送入高字节MOV TH0,AINC TEMPMOV A,TEMPMOVC A,A+DPTRMOV STL0,A;送入低字节MOV TL0,ASETB TR0LCALL UPKEYJMP MAINUPKEY:LCALL DELAYLCALL KEYHNJNZ UPKEY;判断按键有没有释放CLR TR0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年环保行业绿色能源市场前景研究报告
- 2025年电子产品行业物联网技术应用前景报告
- 常德市2025湖南常德市西洞庭管理区事业单位招聘现场笔试历年参考题库附带答案详解
- 2025年汽车行业智能驾驶汽车市场前景研究报告
- 压力容器制造与安全培训课件
- 国家事业单位招聘2025中国水权交易所招聘第二轮考试笔试历年参考题库附带答案详解
- 云南省2025云南保山市生态环境工程评估中心招聘(6人)笔试历年参考题库附带答案详解
- 2025贵州六枝特区国源(集团)有限责任公司招聘20人笔试参考题库附带答案详解
- 2025福建五建集团第一批招聘52人笔试参考题库附带答案详解
- 2025江苏港辉建筑工程有限公司招聘13人笔试参考题库附带答案详解
- 《大模型原理与技术》全套教学课件
- 糖尿病足的影像学鉴别诊断
- 象棋入门课件教学
- 第47届世界技能大赛江苏省选拔赛精细木工项目技术文件(初稿)
- VR医学模拟手术训练系统
- 街道办消防安全知识培训课件
- 垃圾分类志愿服务
- 初中九年级数学中考复习讲义(20讲全)
- 可解释性AI在故障诊断中的应用
- 锚杆施工合同范本
- 2024-2034年中国电力运维行业市场现状分析及竞争格局与投资发展研究报告
评论
0/150
提交评论