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

上传人:沈*** 文档编号:186768333 上传时间:2023-02-09 格式:PDF 页数:17 大小:395.38KB
收藏 版权申诉 举报 下载
51单片机串口通信及电子音响_第1页
第1页 / 共17页
51单片机串口通信及电子音响_第2页
第2页 / 共17页
51单片机串口通信及电子音响_第3页
第3页 / 共17页
资源描述:

《51单片机串口通信及电子音响》由会员分享,可在线阅读,更多相关《51单片机串口通信及电子音响(17页珍藏版)》请在装配图网上搜索。

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

2、,改变定时时间常数TH0 及 TL0,以产生不同的频率。(3)把整首歌曲的乐谱信息存储在单片机数据存储区中一段连续的区域.每个音符使用一个字节,字节的高四位代表音符的高低,低四为代表音符的节拍。演奏时连续读取音符数据,在程序中分析处理后输出相应的脉冲信号。1 1。4 4 实训电路实训电路P1.7VIN93803210386+24618J2SPEAKER图 111.51.5 实训步骤实训步骤实验连线:把 P1.7 用导线连至 VIN 插孔上,打开音频驱动单元的按钮开关.编写并运行程序,验证歌曲演奏效果。附件附件:音乐播放器软件设计相关知识音乐播放器软件设计相关知识音乐相关知识音乐相关知识在设计之

3、前,我们还需要了解一些音乐的相关知识.在人类还没有产生语言时,就知道利用声音的高低、强弱等来表达自己的思想和感情。声带、琴弦等物体振动时会发出声波,声波通过空气传播进入人耳,人们就听到了声音。声音有噪音和乐音之分,振动有规律的声音是乐音,如人声带发出的歌声、由琴弦发出的琴音等。音乐中所用的声音主要是乐音.乐音听起来有的高,有的低,这就叫音高.音高是由发音物体振动频率的高低决定的,频率高声音就高,频率低声音就低。比如,女人唱歌时声带振动频率高,男人唱歌时声带振动频率低,所以男声比女声低.音乐中所用乐音的范围从每秒钟振动16次的最低音到每秒钟振动4186次的最高音,大约 97 个.现在最大的钢琴可

4、以奏出其中的 88 个音,是音乐范围最大的乐器.人唱歌时因受生理限制,所能唱出的乐音仅是乐音范围中的一小部分。不同音高的乐音是用 C、D、E、F、G、A、B 来表示的,这 7 个字母就是乐音的音名,它们一般依次唱成 DO、RE、MI、FA、SO、LA、SI,即唱成简谱的 1、2、3、4、5、6、7,相当于汉字“多来米发梭拉西”的读音,这是唱曲时乐音的发音,所以叫唱名。把 C、D、E、F、G、A、B 这一组音的距离分成 12 个等份,每一个等份叫一个“半音。两个音之间的距离有两个“半音的,就叫“全音”.在钢琴等键盘乐器上,CD、D-E、F-G、GA、AB 两音之间隔着一个黑键,它们之间的距离就是

5、全音;EF、B-C 两音之间没有黑键相隔,它们之间的距离就是半音。通俗地说,那些唱成1、2、3、4、5、6、7 的音叫自然音,那些在它们的左上角加上号(如4、#1)或者 b 号(如 b7、b3)的叫变化音。#叫升记号,表示把音在原来的基础上升高半音;b 叫降记号,表示把音在原来的基础上降低半音。音持续时间的长短即时值,一般用拍数表示。休止符表示暂停发音。一首音乐是由许多不同的音符组成的,而每个音符对应着不同的频率,这样就可以利用不同的频率的组合,加以与拍数对应的延时,构成音乐。在设计中我将音乐的简谱编成音符表和节拍表。所谓简谱,是指一种简易的记谱法。有字母简谱和数字简谱两种。一般所称的科谱,系

6、指数字简谱。数字简谱以可动唱名法为基础,用 1、2、3、4、5、6、7 代表音阶中的 7 个基本音级,读音为 do、re、mi、fa、sol、la、si,休止以 O 表示。每一个数字的时值名相当于五线谱的 4 分音符了解音乐的一些基本知识后可知,产生不同频率的音频脉冲,不同频率的脉冲经滤波放大电路驱动喇叭,就会发出不同的音调。对于单片机而言,产生不同频率的脉冲非常方便,可以利用它的定时/计数器 T0,工作模式 1,设定计数值TH0 和 TL0,定时器按设置的定时参数产生中断,这一次中断发出脉冲低电平,下一次反转发出脉冲高电平。因为定时参数不同,所以产生不同频率的脉冲信号。在此情况下,C 调的各

7、音符频率与在 12Mz 的单片机下的计数值 T 的对照表 4。1 所示。T 的值决定了 TH0 和 TL0 的值,其关系如下.TH0=T/256,TL0=T256。表 4。1C 调各音符频率与计数值 T(12Mz 单片机,T0 工作模式 1)对照表音符低 1DO频率262简谱码(T 值)63628音符4FA#频率740简谱码(T 值)64860#1DO#低 2RE2772946373163835中 5SO5SO78483164898649342RE低 3MI31163928中 6LA88064968330640216LA#93264994低 4FA4FA#低 5SO34937064103641

8、85中 7SI高 1DO9881046650306505839264260#1DO1109650855SO#低 6LA41564331高 2RE11756511044064400#2RE1245651346LA低 7LA中 1DO1DO#46664463高 3MI131865157494523554645246458064633高 4FA#4FA#高 5SO139714801568651786519865217中 2RE58764684#5SO1661652352RE#中 3MI中 4FA62264732高 6LA1760652526596986477764820#6LA#高 7SI18651

9、9766526865283除了音符以外,节拍也是音乐的关键组成部分.节拍实际上就是音持续时间的长短,在单片机系统中可以用延时来实现。如4 秒。果 1/4 拍的延时设为 0.1 秒,则 1 拍的延时是 0。只要知道 1/4 拍的延时时间,其余的节拍延时时间就是它的倍数.表 4.2 所示的为 1/4 节拍和 1/8 节拍的延时时间设定.表 4.21/4 节拍和 1/8 节拍的延时时间曲调值(1/4 节拍)调 4/4调 3/4调 2/4延时 DELAY125ms187ms250ms曲调值(1/8 节拍)调 4/4调 3/4ms调 2/4延时 DELAY62ms94ms125ms 单片机产生不同频率脉

10、冲信号的原理:1)要产生音频脉冲,只要算出某一音频的脉冲(1/频率),然后将此周期除以2,即为半周期的时间,利用定时器计时这个半周期的时间,每当计时到后就将输出脉冲的 I/O 反相,然后重复计时此半周期的时间再对 I/O 反相,就可以在 I/O脚上得到此频率的脉冲。2)利用 8051 的内部定时器使其工作在计数器模式 MODE1 下,改变计数值 TH0 及TL0 以产生不同频率的方法如下:例如,频率为 523Hz,其周期天/523 S=1912uS,因此只要令计数器计时956uS/1us=956,在每计数 956 次时就将 I/O 反接,就可得到中音 DO(532Hz)。计数脉冲值与频率的关系

11、公式如下:N=Fi/2/Fr(N:计数值,Fi:内部计时一次为 1uS,故其频率为 1MHz,Fr:要产生的频率)3)其计数值的求法如下:T=65536-N=65536Fi/2/Fr计算举例:设 K=65536,F=1000000=Fi=1MHz,求低音 DO(261Hz)、中音 DO(523Hz)、高音DO(1046Hz)的计数值。T=65536N=65536Fi/2/Fr=65536-1000000/2/Fr=65536500000/Fr低音 DO 的 T=65536500000/262=63627中音 DO 的 T=65536-500000/523=64580高音 DO 的 T=6553

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

13、码放在程序的“TABLE”处。1 1。6 6 程序流程图程序流程图停止 T0 工作启动 T0 工作装入音符到 T 值到 T0T0 初始化并开中断允放 T0 中断开始重装 TH0,TL0 初值T0 中断入口1.7程序设计源程序设计如下:org 0000hsjmp mainorg 000bhmov th0,r1mov tl0,r0cpl p1.7retimain:mov tmod,#01hmov ie,82hmov dptr,tabloop:clr amovc a,a+dptrmov r1,ainc dptrP1.7 取反中断返回clr amovc a,a+dptrmov r0,aorl a,r1

14、jz next0mov a,r0anl a,r1cjne a,#0ffh,nextsjmp mainnext:mov th0,r1mov tl0,r0setb tr0sjmp next1next0:clr tr0next1:clr ainc dptrmovc a,a+dptrmov r2,aloop1:acall d200cdjnz r2,loop1inc dptrajmp loopd200c:mov r3,#81hd200b:mov a,#0ffhd200a:dec ajnz d200adec r3cjne r3,#00h,d200brettab:db 0feh,25h,04h,0feh,2

15、5h,02hdb 0feh,25h,02h,0fdh,80h,04hdb 0feh,84h,02h,0feh,84h,02hdb 0feh,84h,04h,0feh,25h,04hdb 0feh,25h,02h,0feh,84h,02hdb 0feh,0c0h,04h,0feh,84h,02hdb 0feh,98h,02h,0feh,84h,02hdb 0feh,57h,08h,00h,00h,04h db 0ffh,0ffh end上面程序歌曲表为新年好的乐谱项目二项目二:MCS-51:MCS-51 串行口应用实训双机通信串行口应用实训双机通信1.11.1 实训目的实训目的掌握串行口工作方式

16、的程序设计,掌握单片机通信程序编制方法。了解实现串行通信的硬环境,数据格式的协议,数据交换的协议。掌握双机通信的原理和方法。1.21.2 实训内容实训内容利用 MCS-51 单片机串行口,实现双机通信。本实验将 1 号实验机键盘上键入的数字显示到2 号实验机的数码管上。1 1。3 3 实训电路实训电路1.41.4 实训步骤实训步骤1 1。4.14.1 实训连线实训连线用随机所配的串行通信电缆把两台实验仪RS2329 芯串行接口相连。1.4.2PC1.4.2PC 环境环境1 号机发送,2 号机接收1 号机:在与 PC 联机状态下,编辑、调试程序,然后编译、连接、下载程序,退出系统,联机状态,释放

17、串口;在“P.状态下按 F2 功能键,使系统进入串行口出借状态,显示“P。”,键入“EXEC用连续方式运行程序。2 号机:在与 PC 联机状态下,编辑、调试程序,然后编译、连接、下载程序,退出系统联机状态,释放串口;在“P.”状态下按 F2 功能键,使系统进入串行口出借状态,显示“P。.”,键入“EXEC”用连续方式运行程序.在 1 号机上输入数字键通过串行口发送到2 号机的 LED 显示器上。同理亦可实现从 2 号机键盘输入数字串行发送到1 号机的 LED 显示器上。1.41.4。3 3 观察运行结果观察运行结果以连续方式运行程序,观察LED 显示器数据收发是否正常。1.51.5 编程提示编

18、程提示由任务可知,由任务可知,对于一个单片机系统而言,对于一个单片机系统而言,要求程序要完成的功能一是要求程序要完成的功能一是将本机的按键通过串口用异步通信的方式发送出去,将本机的按键通过串口用异步通信的方式发送出去,二是对接收到另二是对接收到另一单片机传送到串口的数据,先保存下来,再送一单片机传送到串口的数据,先保存下来,再送 LEDLED 数码管依次显数码管依次显示出来。因此,程序将为分三个部分组成,其一是随时扫描键盘,如示出来。因此,程序将为分三个部分组成,其一是随时扫描键盘,如果有键按下果有键按下,则调用串口发送程序;其二是串口接收程序则调用串口发送程序;其二是串口接收程序,只要有数据

19、只要有数据到了,到了,就执行数据接收程序,就执行数据接收程序,并把数据送到显示数组里;并把数据送到显示数组里;其三是动态其三是动态显示程序显示程序.为了完成这三个并行任务,最简单的方法采用中断进行任为了完成这三个并行任务,最简单的方法采用中断进行任务分配,将串口接收程序使用串口中断对输入的数据进行检测和接务分配,将串口接收程序使用串口中断对输入的数据进行检测和接收,收,将动态显示程序使用定时中断完成,将动态显示程序使用定时中断完成,而键盘扫描则采用主程序实而键盘扫描则采用主程序实时检测时检测.1 1。6 6 参参序序流流1.71.7 程序代码程序代码OUTBITOUTBITEQUEQU0800

20、208002;数码管位控制口数码管位控制口OUTSEGOUTSEGEQU 0800EQU 0800;数码管段控制口数码管段控制口ININEQU 0991EQU 0991;键盘读入口;键盘读入口HASRCV EQU 20H.0HASRCV EQU 20H.0;接受标志位;接受标志位LEDBUF EQU 40HLEDBUF EQU 40H;显示缓冲;显示缓冲RECBUF EQU 50H;RECBUF EQU 50H;接受缓冲接受缓冲考考程程程程ORG 0000HORG 0000HLJMP STARTLJMP STARTORG 0023HORG 0023H;串口中断入口串口中断入口LJMP SINL

21、JMP SINLEDMAPLEDMAPDBDB3FH,06H3FH,06H,5BH,4FH5BH,4FH,66H66H,6DH,7DH6DH,7DH,07H07HDB 7FHDB 7FH,6FH,77H,7CH,39H,5EH,79H6FH,77H,7CH,39H,5EH,79H,71H71HDELAYDELAY:MOV R7,#0MOV R7,#0DELAYLOOP:DELAYLOOP:DJNZ R7DJNZ R7,DELAYLOOPDELAYLOOPDJNZ R6DJNZ R6,DELAYLOOPDELAYLOOPRETRETDISPLAYLED:DISPLAYLED:MOV R0,#LE

22、DBUFMOV R0,#LEDBUFMOV R1MOV R1,6 6MOV R2MOV R2,#00100000B#00100000BLOOPLOOP:MOV DPTR,MOV DPTR,OUTBITOUTBITMOV AMOV A,#0#0MOVX DPTR,AMOVX DPTR,AMOV AMOV A,R0R0MOV DPTRMOV DPTR,OUTBITOUTBITMOV AMOV A,R2R2MOVX DPTRMOVX DPTR,A AMOV R6MOV R6,#1#1CALL DELAYCALL DELAYMOV AMOV A,R2R2RR ARR AMOV R2MOV R2,A A

23、INC R0INC R0DJNZ R1,LOOPDJNZ R1,LOOPRETRETTESTKEY:TESTKEY:MOV DPTRMOV DPTR,OUTBITOUTBITMOV A,#0MOV A,#0MOVXMOVX DPTR,ADPTR,AMOV DPTR,INMOV DPTR,INMOVX A,MOVX A,DPTRDPTRCPL ACPL AANL AANL A,0FH0FHRETRETKEYTABLE:KEYTABLE:DBDB16H16H,15H15H,14H14H,0FFH0FFHDBDB13H,12H13H,12H,11H,10H11H,10HDBDB0DH0DH,0CH0

24、CH,0BH0BH,0AH0AHDBDB0EH,03H0EH,03H,06H06H,09H09HDBDB0FH,02H,05H,08H0FH,02H,05H,08HDBDB00H00H,01H01H,04H04H,07H07HGETKEY:MOV DPTR,GETKEY:MOV DPTR,OUTBITOUTBITMOV P2MOV P2,DPHDPHMOV R0,MOV R0,LOWLOWMOV R1MOV R1,#00100000B#00100000BMOV R2MOV R2,#6#6KLOOPKLOOP:MOV AMOV A,R1R1CPL ACPL AMOVXMOVX DPTRDPTR,

25、A ACPL ACPL ARR ARR AMOV R1,AMOV R1,AMOVX A,MOVX A,R0R0CPL ACPL AANL AANL A,0FH0FHJNZ GOON1JNZ GOON1DJNZ R2DJNZ R2,KLOOPKLOOPMOV R2MOV R2,#0FFH#0FFHSJMP WXITSJMP WXITGOON1GOON1:MOV R1,AMOV R1,AMOV A,R2MOV A,R2DEC ADEC ARL ARL ARL ARL AMOV R2MOV R2,A AMOV AMOV A,R1R1MOV R1MOV R1,LOOPCLOOPCEXIT:MOV AE

26、XIT:MOV A,R2R2MOV DPTR,MOV DPTR,KEYTABLEKEYTABLEMOVC AMOVC A,A+DPTRA+DPTRMOV R2MOV R2,A AWAETRELEASEWAETRELEASE:MOV DPRTMOV DPRT,#OUTBIT#OUTBITCLR ACLR AMOVX DPTR,AMOVX DPTR,AMOV R6,#10MOV R6,#10CALL DELAYCALL DELAYCALL TESTKEYCALL TESTKEYJNZ WAITRELEASEJNZ WAITRELEASEMOV AMOV A,R2R2RETRETSTART:MOV

27、SP,START:MOV SP,60H60HMOV IE,MOV IE,0 0MOV TMOD,MOV TMOD,020H020H;定时器定时器 1 1 工作于方式工作于方式 2 2MOV TH1MOV TH1,#0F3H#0F3HMOV TL1MOV TL1,#0F3H;#0F3H;波尔率为波尔率为 24002400ANL PCON,#07FHANL PCON,#07FHORL PCONORL PCON,80H80HMOV SCONMOV SCON,#05OH#05OHMOV LEDBUFMOV LEDBUF,#0FFH#0FFHMOV LEDBUF+1MOV LEDBUF+1,0FFH0F

28、FHMOV LEDBUF+2,MOV LEDBUF+2,0 0SETB TR1SETB TR1SEEB ESSEEB ESSETB EASETB EAMLOOP:JB HASRCVMLOOP:JB HASRCV,RCVDATA;RCVDATA;接受到数据?接受到数据?CALL DISPLAYLEDCALL DISPLAYLED;显示;显示CALL TESTKEYCALL TESTKEYJZ MLOOPJZ MLOOPCALL GETKEYCALL GETKEYANL A,#0FHANL A,#0FHMOV SBUFMOV SBUF,A ALJMP MLOOPLJMP MLOOPRCVDATA:

29、CLR HASRCVRCVDATA:CLR HASRCVMOV AMOV A,RCVBUFRCVBUFMOV B,AMOV B,AANL AANL A,#0FH#0FHMOV DPTR,#LEDMAPMOV DPTR,#LEDMAPMOVC A,MOVC A,A+DPTRA+DPTRMOV LEDBUF+5,AMOV LEDBUF+5,AMOV AMOV A,B BSWAP ASWAP AANL AANL A,0FH0FHMOV DPTRMOV DPTR,LEDMAPLEDMAPMOVC AMOVC A,A+DPTRA+DPTRMOV LEDBUF+4,AMOV LEDBUF+4,ALJMP MLOOPLJMP MLOOPSINSIN:JNB TIJNB TI,S0_RS0_RCLR TICLR TINOPNOPSJMP S0_RETSJMP S0_RETS0_RS0_R:CLR RICLR RIMOV RCVBUFMOV RCVBUF,SBUFSBUFSETB HASRCVSETB HASRCVNOPNOPS0_RET:RETIS0_RET:RETIENDEND

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!