ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:46.85KB ,
资源ID:7675034      下载积分:2 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7675034.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(51单片机串口通信及电子音响.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

51单片机串口通信及电子音响.docx

1、51单片机串口通信及电子音响项目一: 电子音响实训目的了解计算机发出不同音调声音的编程方法。实训内容编写单片机程序组成乐谱,用I/O接口 口输出,经过功率放大控制喇叭演奏一首完整的歌曲。(歌曲自选)编程提示 利用单片机内部的定时器可以产生不同周期(频率)的脉冲信号,输出的信号再经过功率放大电路可以驱动喇叭等电声设备发出声音。(1)要产生音频信号,只要知道某一音频的周期(1/频率),然后将此周期除以2即为半周期的时间,利用定时器定时产生半周期时间,计时到后反相输出,重复此过程即得到此频率的脉冲信号。(2)让定时器工作在定时方式,改变定时时间常数TH0及TL0,以产生不同的频率。(3)把整首歌曲的

2、乐谱信息存储在单片机数据存储区中一段连续的区域。每个音符使用一个字节,字节的高四位代表音符的高低,低四为代表音符的节拍。演奏时连续读取音符数据,在程序中分析处理后输出相应的脉冲信号。:实训电路图1-1实训步骤 实验连线:把用导线连至VIN插孔上,打开音频驱动单元的按钮开关。编写并运行程序,验证歌曲演奏效果。附件:音乐播放器软件设计相关知识音乐相关知识在设计之前,我们还需要了解一些音乐的相关知识。在人类还没有产生语言时,就知道利用声音的高低、强弱等来表达自己的思想和感情。声带、琴弦等物体振动时会发出声波,声波通过空气传播进入人耳,人们就听到了声音。声音有噪音和乐音之分,振动有规律的声音是乐音,如

3、人声带发出的歌声、由琴弦发出的琴音等。音乐中所用的声音主要是乐音。乐音听起来有的高,有的低,这就叫音高。音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低。比如,女人唱歌时声带振动频率高,男人唱歌时声带振动频率低,所以男声比女声低。音乐中所用乐音的范围从每秒钟振动16次的最低音到每秒钟振动4186次的最高音,大约97个。现在最大的钢琴可以奏出其中的88个音,是音乐范围最大的乐器。人唱歌时因受生理限制,所能唱出的乐音仅是乐音范围中的一小部分。不同音高的乐音是用C、D、E、F、G、A、B来表示的,这7个字母就是乐音的音名,它们一般依次唱成DO、RE、MI、FA、SO、LA、SI,

4、即唱成简谱的1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫唱名。把C、D、E、F、G、A、B这一组音的距离分成12个等份,每一个等份叫一个“半音”。两个音之间的距离有两个“半音”的,就叫“全音”。在钢琴等键盘乐器上,C-D、D-E、F-G、G-A、A-B两音之间隔着一个黑键,它们之间的距离就是全音;E-F、B-C两音之间没有黑键相隔,它们之间的距离就是半音。通俗地说,那些唱成1、2、3、4、5、6、7的音叫自然音,那些在它们的左上角加上#号(如#4、#1)或者b号(如b7、b3)的叫变化音。#叫升记号,表示把音在原来的基础上升高半音;b叫降记号,表

5、示把音在原来的基础上降低半音。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。!一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。在设计中我将音乐的简谱编成音符表和节拍表。所谓简谱,是指一种简易的记谱法。有字母简谱和数字简谱两种。一般所称的科谱,系指数字简谱。数字简谱以可动唱名法为基础,用1、2、3、4、5、6、7代表音阶中的7个基本音级,读音为do、re、mi、fa、sol、la、si,休止以O表示。每一个数字的时值名相当于五线谱的4分音符了解音乐的一些基本知识后可知,产生不同频率的音频脉冲,不同频率的脉

6、冲经滤波放大电路驱动喇叭,就会发出不同的音调。对于单片机而言,产生不同频率的脉冲非常方便,可以利用它的定时/计数器T0,工作模式1,设定计数值TH0和TL0,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。因为定时参数不同,所以产生不同频率的脉冲信号。在此情况下,C调的各音符频率与在12Mz的单片机下的计数值T的对照表所示。T的值决定了TH0和TL0的值,其关系如下。TH0=T/256,TL0=T%256。表 C调各音符频率与计数值T(12Mz单片机,T0工作模式1)对照表音符频率简谱码(T值)音符频率#简谱码(T值)低1DO26263628#4FA#740

7、64860#1DO#27763731*中5SO78464898低2RE29463835#5SO#83164934#2RE#:31163928中6LA88064968低3MI33064021#6LA#93264994低4FA34964103中7SI98865030#4FA#37064185¥高1DO104665058低5SO39264260#1DO#110965085#5SO#41564331高2RE117565110低6LA44064400#2RE#1245)65134#6LA#46664463高3MI131865157低7LA49464524。高4FA139765178中1DO5236458

8、0#4FA#148065198#1DO#55464633高5SO156865217中2RE58764684#5SO#1661#65235#2RE#62264732高6LA176065252中3MI65964777#6LA#186565268中4FA69864820高7SI197665283除了音符以外,节拍也是音乐的关键组成部分。;节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现。如果1/4拍的延时设为秒,则1拍的延时是秒。只要知道1/4拍的延时时间,其余的节拍延时时间就是它的倍数。表所示的为1/4节拍和1/8节拍的延时时间设定。表 1/4节拍和1/8节拍的延时时间曲调值(1/4

9、节拍)延时DELAY曲调值(1/8节拍)延时DELAY调4/4125ms调4/4.62ms调3/4187ms调3/4ms94ms调2/4250ms调2/4125ms 单片机产生不同频率脉冲信号的原理:1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期的时间再对I/O反相,就可以在I/O脚上得到此频率的脉冲。2)利用8051的内部定时器使其工作在计数器模式MODE1下,改变计数值TH0及TL0以产生不同频率的方法如下: 例如,频率为523Hz,其周期天/523 S

10、=1912uS,因此只要令计数器计时956uS/1us=956,在每计数956次时就将I/O反接,就可得到中音DO(532Hz)。计数脉冲值与频率的关系公式如下:N=Fi/2/Fr (N:计数值,Fi:内部计时一次为1uS,故其频率为1MHz,Fr:要产生的频率 )3) 其计数值的求法如下:T=65536-N=65536-Fi/2/Fr计算举例:设K=65536,F=1000000=Fi=1MHz,求低音DO(261Hz)、中音DO(523Hz)、高音DO(1046Hz)的计数值。T=65536-N=65536-Fi/2/Fr=6/2/Fr=65536-500000/Fr低音DO的T=6553

11、6-500000/262=63627中音DO的T=65536-500000/523=64580高音DO的T=65536-500000/1047=650594) 每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,下表为节拍码的对照。但如果1拍为秒,1/4拍是秒,只要设定延迟时间就可求得节拍的时间。假设1/4节拍为1DELAY,则1拍应为4DELAY,以此类推。所以只要求得1/4拍的DELAY时间,其余的节拍就是它的倍数, 5) 建立音乐的步骤: 1、先把吧乐谱的音符找出,然后由上表建立T值表的顺序。 2、把T值表建立在TABLE1,构成发音符的计数值放在“TABLE”。3、

12、简谱码(音符)为高位,节拍为(节拍数)为低4位,音符节拍码放在程序的“TABLE”处。-程序流程图】%程序设计源程序设计如下:org 0000h sjmp main org 000bh mov th0,r1 mov tl0,r0 cpl retimain: mov tmod,#01h mov ie,#82h mov dptr,#tabloop: clr a( movc a,a+dptr mov r1,a inc dptr clr a movc a,a+dptr mov r0,a orl a,r1 jz next0 mov a,r0 anl a,r1 cjne a,#0ffh,next sjmp

13、 mainnext: mov th0,r1 mov tl0,r0 setb tr0 sjmp next1next0: clr tr0next1: clr a inc dptr movc a,a+dptr: mov r2,aloop1: acall d200c djnz r2,loop1 inc dptr ajmp loopd200c: mov r3,#81hd200b: mov a,#0ffhd200a: dec a jnz d200a dec r3% cjne r3,#00h,d200b rettab: db 0feh,25h,04h,0feh,25h,02h db 0feh,25h,02h

14、,0fdh,80h,04h db 0feh,84h,02h,0feh,84h,02h db 0feh,84h,04h,0feh,25h,04h db 0feh,25h,02h,0feh,84h,02h db 0feh,0c0h,04h,0feh,84h,02h db 0feh,98h,02h,0feh,84h,02h db 0feh,57h,08h,00h,00h,04h/ db 0ffh,0ffh end 上面程序歌曲表为新年好的乐谱;!$项目二:MCS-51串行口应用实训双机通信实训目的掌握串行口工作方式的程序设计,掌握单片机通信程序编制方法。了解实现串行通信的硬环境,数据格式的协议,数据

15、交换的协议。掌握双机通信的原理和方法。实训内容!利用MCS-51单片机串行口,实现双机通信。本实验将1号实验机键盘上键入的数字显示到2号实验机的数码管上。实训电路(实训步骤实训连线用随机所配的串行通信电缆把两台实验仪RS232-9芯串行接口相连。环境1号机发送,2号机接收1号机:在与PC联机状态下,编辑、调试程序,然后编译、连接、下载程序,退出系统,联机状态,释放串口;在“P.”状态下按F2功能键,使系统进入串行口出借状态,显示“P.”,键入“EXEC”用连续方式运行程序。2号机:在与PC联机状态下,编辑、调试程序,然后编译、连接、下载程序,退出系统联机状态,释放串口;在“P.”状态下按F2功

16、能键,使系统进入串行口出借状态,显示“P.”,键入“EXEC”用连续方式运行程序。在1号机上输入数字键通过串行口发送到2号机的LED显示器上。同理亦可实现从2号机键盘输入数字串行发送到1号机的LED显示器上。观察运行结果以连续方式运行程序,观察LED显示器数据收发是否正常。编程提示由任务可知,对于一个单片机系统而言,要求程序要完成的功能一是将本机的按键通过串口用异步通信的方式发送出去,二是对接收到另一单片机传送到串口的数据,先保存下来,再送LED数码管依次显示出来。因此,程序将为分三个部分组成,其一是随时扫描键盘,如果有键按下,则调用串口发送程序;其二是串口接收程序,只要有数据到了,就执行数据

17、接收程序,并把数据送到显示数组里;其三是动态显示程序。为了完成这三个并行任务,最简单的方法采用中断进行任务分配,将串口接收程序使用串口中断对输入的数据进行检测和接收,将动态显示程序使用定时中断完成,而键盘扫描则采用主程序实时检测。.参考程序流程。程序代码OUTBIT EQU 08002 ;数码管位控制口OUTSEG EQU 0800 ;数码管段控制口IN EQU 0991 ;键盘读入口HASRCV EQU ;接受标志位LEDBUF EQU 40H ;显示缓冲RECBUF EQU 50H ;接受缓冲 ORG 0000HLJMP STARTORG 0023H; 串口中断入口LJMP SINLEDM

18、APDB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H)DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDELAY:MOV R7,#0DELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETDISPLAYLED:MOV R0,#LEDBUFMOV R1,#6MOV R2,#00100000BLOOP:MOV DPTR,#OUTBITMOV A,#0MOVX DPTR,AMOV A,R0MOV DPTR,#OUTBITMOV A,R2MOVX DPTR,AMOV R6,#1CALL DELAYMOV A,R2RR AMO

19、V R2,AINC R0DJNZ R1,LOOPRET?TESTKEY:MOV DPTR,#OUTBITMOV A,#0MOVX DPTR,AMOV DPTR,INMOVX A,DPTRCPL AANL A,#0FHRET!KEYTABLE:DB 16H,15H,14H,0FFHDB 13H,12H,11H,10HDB 0DH,0CH,0BH,0AHDB 0EH,03H,06H,09HDB 0FH,02H,05H,08HDB 00H,01H,04H,07H【GETKEY: MOV DPTR,#OUTBITMOV P2,DPHMOV R0,#LOWMOV R1,#00100000BMOV R2,

20、#6KLOOP:MOV A,R1CPL AMOVX DPTR,ACPL ARR A:MOV R1,AMOVX A,R0CPL AANL A,0FHJNZ GOON1DJNZ R2,KLOOPMOV R2,#0FFHSJMP WXITGOON1:MOV R1,AMOV A,R2DEC ARL ARL AMOV R2,AMOV A,R1MOV R1,LOOPCEXIT:MOV A,R2MOV DPTR,#KEYTABLEMOVC A,A+DPTRMOV R2,A(WAETRELEASE:MOV DPRT,#OUTBITCLR AMOVX DPTR,AMOV R6,#10CALL DELAYCALL

21、 TESTKEYJNZ WAITRELEASEMOV A,R2RETSTART:MOV SP,#60HMOV IE,#0MOV TMOD,#020H; 定时器1工作于方式2MOV TH1,#0F3HMOV TL1,#0F3H;波尔率为2400ANL PCON,#07FHORL PCON,#80HMOV SCON,#05OHMOV LEDBUF,#0FFHMOV LEDBUF+1,#0FFHMOV LEDBUF+2,#0SETB TR1SEEB ESSETB EAMLOOP:JB HASRCV,RCVDATA;接受到数据CALL DISPLAYLED ;显示CALL TESTKEYJZ MLOOPCALL GETKEYANL A,#0FHMOV SBUF,ALJMP MLOOPRCVDATA:CLR HASRCVMOV A,RCVBUFMOV B,AANL A,#0FHMOV DPTR,#LEDMAPMOVC A,A+DPTRMOV LEDBUF+5,AMOV A,BSWAP AANL A,#0FHMOV DPTR,#LEDMAPMOVC A,A+DPTRMOV LEDBUF+4,ALJMP MLOOPSIN:JNB TI,S0_RCLR TINOPSJMP S0_RETS0_R:CLR RIMOV RCVBUF,SBUFSETB HASRCVNOPS0_RET:RETIEND

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1