单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc

上传人:文库蛋蛋多 文档编号:4142966 上传时间:2023-04-07 格式:DOC 页数:24 大小:5.37MB
返回 下载 相关 举报
单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc_第1页
第1页 / 共24页
单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc_第2页
第2页 / 共24页
单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc_第3页
第3页 / 共24页
单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc_第4页
第4页 / 共24页
单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc》由会员分享,可在线阅读,更多相关《单片机系统课程设计基于蓝牙无线传输的摇摇棒设计报告.doc(24页珍藏版)》请在三一办公上搜索。

1、通信工程专业 单片机系统课程设计基于蓝牙无线传输的摇摇棒设计学 院(系): 信息与通信工程学院 专 业: 通信工程 学 生 姓 名: 梅宇华 黄馨莹 学 号: 2013136219 2013136209指 导 教 师: 丁纪峰 完 成 日 期: 2015年5月24日 大连民族大学摘要本文介绍了一种以STC89C52RC单片机为主控制器,利用人眼的视觉暂留设计的摇摇棒。摇摇棒在摇动过程中形成一个扇形平面,平面内可清晰显示文字、字母、图案。蓝牙作为一种新型的信息传送工具,具有无限传输、方便、快捷的优点。将蓝牙的这种特性运用到摇摇棒上,再结合摇摇棒本身可以在手挥式摆动下动态显示文字及图案的特性,使得

2、摇摇棒具有更好的利用价值在设计中,通过蓝牙无线传输,可以实现摇摇棒显示内容的实时修改。本系统由STC89C52单片机控制模块、32个高亮度LED发光二极管、供电模块及蓝牙串口模块组成。关键词: STC89C52RC单片机;视觉暂留;动态扫描; LED目录摘要1目录11 设计背景及要求11.1 设计背景11.2 设计要求11.2.1 基本要求11.2.2 拓展要求12 系统设计原理22.1 系统总体设计方案22.2 摇摇棒显示原理22.3 图片显示原理23 系统硬件电路设计43.1 单片机最小系统设计43.1.1 时钟电路43.1.2 复位电路43.2 LED显示电路的设计53.3 串口电路设计

3、63.4 电源电路设计73.5蓝牙/串口线选择电路设计74 系统软件设计94.1 主程序设计思路94.2 主程序流程图94.3 串口接收程序94.4 LED显示程序105 系统调试125.1 硬件调试125.2 软件调试125.3 整体调试126 总结137 参考文献14附录一 系统硬件电路图15附录二 实物照片16附录三 系统完整程序代码19致谢211 设计背景及要求1.1 设计背景摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,利用人眼的视觉暂留特性,通过STC89C52RC单片机对32只高亮度LED发光二极管进行控制, 配合手的左右摇晃就可呈现

4、一幅完整的画面。根据对摇摇棒已有的设计和研究,大都采用一种方式进行摇摇棒动态显示内容的更改, 即用有线的方式从电脑向单片机的下载,如串口下载。 但是这种利用有线方式进行传输的方法会限制摇摇棒的使用范围,并且更改显示内容会比较麻烦,因为字形码是烧写在ROM中的。如今,随着智能手机的普及,人们都习惯用蓝牙这种方式发送或者接受文件,既方便又快捷,而且不受设备限制(即不用在有电脑的情况下进行操作)。在越来越追求精神生活的当代社会,摇摇棒能够丰富人们的精神世界。 这款摇摇棒具有蓝牙无线传输功能,同时也兼备普通的摇摇棒有线下载数据的功能,它可以用在大型演唱会或者娱乐场所,可以用在情侣间表达爱意,还可以用作

5、加油助阵等场所表达心情,用处很多。 对显示内容也可以直接用手机随时随地修改,并且易于携带,方便快捷。1.2 设计要求要求摇摇棒可以稳定显示字符、英文、汉字或者一幅64*32像素的画面,并且可以实现通过蓝牙或者USB转串口线进行无线或者有线的对显示内容(文字或者单色位图)进行实时更改的功能。1.2.1 基本要求(1)利用单排32盏高亮LED实现摇摇棒;(2)摆动摇摇棒时,可以显示英文、汉字;(3)摆动摇摇棒时,可以显示简单图形;1.2.2 拓展要求(1)可以利用蓝牙模块HC-06,下载手机里的文字或图片。(2)可以利用USB转串口线,下载电脑里的文字或图片。2 系统设计原理2.1 系统总体设计方

6、案基于蓝牙传输的摇摇棒系统分为三个模块:蓝牙传输模块,单片机控制模块和 LED 显示模块。 工作过程如下,首先手机先通过蓝牙串口软件向单片机上的蓝牙模块发送数据,单片机收到数据后再对数据进行处理,处理的数据经过字模软件的编译之后再传送到 LED 显示条带上,摇摇棒来回摆动就会使得被处理后的数据通过 单列LED 条带动态显示出来。 设计中也兼容了有线传输的功能,即串口线的传输。2.2 摇摇棒显示原理“摇摇棒”是基于人的视觉暂留原理,通过分时刷新32个发光二极管来显示输出文字或图案等信息的显示装置。输出信号频率的控制通过单片机来实现。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一

7、个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。2.3 图片显示原理摇摇棒通过在片上的外部RAM中定义一块256字节的存储空间作为图片区域,只要往这块区域(D:0x0000D:0x0200)内发送字形码或者图形码,则可以显示出对应的图像。以图片北京奥运会会徽为例,首先将彩色图片(图2.1)经过裁剪和灰度处理,变成单色位图 *.bmp(图2.2),然后将单色位图经过压缩,用PCtoLCD软件进行编码(图2.3),最后将图形码发送到摇摇棒上,摇动摇摇棒即可显示对应的图形。(图2.4)图2.1图2.2图2.3图2.43 系统硬件电路设

8、计3.1 单片机最小系统设计3.1.1 时钟电路51单片机内部集成有一个高增益反相放大器,该放大器的输入端为引脚XTAL1(19脚),输出端则是引脚XTAL2(18脚),单片机的时钟产生有两种方式,即内部时钟方式和外部时钟方式,本次设计采用内部时钟方式。内部时钟方式时,引脚XTAL1和XTAL2两端接石英晶体和微调电容,构成自激振荡器,本次设计中所使用的晶振为11.0592MHz,微调电容为33pF。振荡器发出的脉冲直接送入内部时钟电路,电路如图3.1所示图3.13.1.2 复位电路单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位

9、有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。本设计中使用10K电阻配合10uF电容。电路如图3.2所示图3.23.2 LED显示电路的设计本次设计中采用32盏高亮蓝色LED作为显示条带,将其分别编为4组同时接入P1口,如图3.3所示,另外通过四个三极管接到P2.4P2.7作为位选控制信号,实现分时亮,如图3.4所示,但因为间隔时间较短,所以人眼看起来似乎是32盏LED同时显示。图3.3图3.43.3 串口电路设计本设计中使用串口通信,需要使用MAX232芯片进行电平的转换,电路如图3.5所示图3.53.4 电源电路设计本设计中供电采用USB供电方

10、式,连接电源指示灯和100uF的电容进行电源滤波。电路如图3.6所示。图3.63.5蓝牙/串口线选择电路设计由于单片机的TXD和RXD只有一个,所以通过一个四位拨码开关来选择。电路如图3.7所示。图3.74 系统软件设计4.1 主程序设计思路主程序很简单,先对系统进行初始化(清屏,串口波特率设置,中断允许等),然后进入接收程序,判断是否接收够256个十六进制数,如果接受完了就关闭总中断不再接收,以防止乱码的出现,然后进入显示程序,按列进行扫描即可。4.2 主程序流程图START初始化接收接收完毕?否显示END是4.3 串口接收程序 ORG 00HAJMP MAIN;跳到主程序ORG 23HAJ

11、MP URT ;串口中断入口 ORG 50HMAIN: ;主程序开始MOV SP,#60H;设置堆栈MOV R0,#0000H;设置存储数据地址(D:0x0000)片外RAMMOV TMOD,#20H ;设置定时器模式作为波特率发生器SETB EA ;开启总中断MOV SCON,#50H ;设置串口模式 MOV TH1,#0FDH ;设置波特率9600MOV TL1,TH1SETB TR1 SETB ES AJMP $ ;等待中断/2、将接收到的数据存储到外部RAM中,判断接收是否完毕,接收完毕后就不再接收URT: ;中断服务子程序PUSH ACC ;断点保护JNB RI,URT1 ;判断中断

12、类型是收中断还是发中断,如果是RI低电平跳转到URT1,如果RI高电平跳转到URT0URT0: ;接收程序CLR ES;关中断CLR RI;清除标志位MOV A,SBUF;将缓冲区SBUFF的内容读入寄存器A中MOV SBUF,A ;再将A中的值原样输出(用于校验接收个数)MOVX R0,A ;将A中的数存储起来(在从D:0x0000开始的单元中)INC R0CJNER0,#0200H,URT1;接收超过256个数就不再接收了CLR EAACALL DISPLAYURT1: SETB ESPOP ACCRTI: RETI4.4 LED显示程序DISPLAY: MOV R1,#0000HM0:M

13、OV R1,#0000H;复位R1指针到数据入口(D:0x0000)M3:CLR P2.4;选择第一组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.4;关第一组灯INC R1CLR P2.5;选择第二组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.5;关第二组灯INC R1CLR P2.6;选择第三组灯MOVX A

14、,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.6;关第三组灯INC R1CLR P2.7;选择第四组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.7;关第四组灯INC R1M4:MOVX A,R1CJNE R1,#0200H,M5;如果加到0x0200就返回ACALL DELAY5MSLJMP M0M5:LJMP M3; RET

15、DELAY5MS: MOV R5,#255LO1: ACALL DELAY DJNZ R0,LO1 RETDELAY:MOV R7,#120 DJNZ R7,$RET5 系统调试本系统的调试分为硬件调试,软件调试和软硬件整体综合调试三部分。5.1 硬件调试硬件调试第一步是测试板子,在没焊器件的空板子上进行导通测试,确保板子没有问题。硬件调试的第二步是焊接调试,边焊接边进行调试,先焊接电源部分,调试电源确保板子能正常供电,然后焊接单片机最小系统,检查单片机是否正常工作,最后把32个LED焊接上,通过编写简单的全亮程序,检测所有的灯是否都正常,硬件调试部分结束。5.2 软件调试软件调试是利用Kei

16、l软件和Protues软件进行软件联调仿真,在Protues中观察现象是否和预期一致,检查所写的程序是否有错误。5.3 整体调试将调试好的程序通过STC-ISP软件下载到单片机中,实际观察现象是否和预期的一致。6 总结在整个设计的过程中,包括画原理图,画PCB,软硬件的调试,学到了很多东西。正如丁老师所说的,把不通的板子调通了才真正能够学到东西。我焊接的第一块板子,由于画PCB的时候没有检查,导致位选的P2.4到P2.7都没有和8550连接上,只好走了飞线,之后发现串口无论如何都下载不进去程序,测了一下MAX232芯片的电压,发现不正常,才发现MAX232没有供电和地,于是又走了两根飞线到15

17、脚和16脚,还有,由于画封装的时候把串口的封装画成了公头的封装,导致引脚的顺序都反过来了,只好把串口吸下来从背面焊上去。最后终于把一块板子调通了,能下载程序进去了,由于第一块板子飞线太多,影响美观,于是我重新画了一块板子,在第二块板子的时候,我吸取了第一块板子不成功的教训,认认真真检查每一根线是否都连上了,封装是否都画对了,于是在焊接第二块板子并且调试的时候非常顺利,这也正是我想要的结果。通过整个设计到制作的过程,我更加深刻的了解了51单片机的工作方法和MAX232芯片的工作方法,以后再遇到MAX232的电路就不会再犯错了,这对于以后的工作是非常有帮助的,本次设计的过程中,磨练了自己的意志,让

18、我很有耐心的调程序,并且在程序调通,板子现象跑出来时候,那种成就感油然而生,之前的各种障碍和困难在此面前都不值一提了。整个过程下来受益匪浅。7 参考文献1 刘岩川.单片机原理及系统设计.北京:电子工业出版社,2014.2 张心心,唐玉蓬.基于单片机的摇摇棒硬件控制系统设计与实现J.电子技术与软件工程,2013,(08).3 臧海波.简单易制的LED摇摇棒J.电子制作,2012,(07).4 刘玉,张秀林,安然.LED摇摇棒的单片机实现J.电子测试,2013,(02).5 王媛.基于蓝牙传输的信息服务技术研究D.杭州:浙江大学,2006.附录一 系统硬件电路图系统原理图系统PCB图附录二 实物照

19、片摇摇棒外观显示“大连民族”显示一只可爱的小猪显示一只熊猫显示世博会会徽显示“大白”附录三 系统完整程序代码12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485/1、初始化(初始化屏幕、初始化串口,允许接收)ORG 00HAJMP MAIN;跳到主程序ORG 23HAJMP URT ;串口中断入口 ORG 50HMAIN: ;主

20、程序开始MOV SP,#60H;设置堆栈MOV P1,#00HMOV P2,#0FFH;初始化屏幕,清屏MOV R0,#0000H;设置存储数据地址(D:0x0000)片外RAMMOV TMOD,#20H ;设置定时器模式作为波特率发生器SETB EA ;开启总中断MOV SCON,#50H ;设置串口模式 MOV TH1,#0FDH ;设置波特率9600MOV TL1,TH1SETB TR1 SETB ES AJMP $ ;等待中断/2、将接收到的数据存储到外部RAM中,判断接收是否完毕,接收完毕后就不再接收URT: ;中断服务子程序PUSH ACC ;断点保护JNB RI,URT1 ;判断

21、中断类型是收中断还是发中断,如果是RI低电平跳转到URT1,如果RI高电平跳转到URT0URT0: ;接收程序CLR ES;关中断CLR RI;清除标志位MOV A,SBUF;将缓冲区SBUFF的内容读入寄存器A中MOV SBUF,AMOVX R0,A ;将A中的数存储起来(在从D:0x0000开始的单元中)INC R0CJNER0,#0200H,URT1;接收超过256个数就不再接收了CLR EAACALL DISPLAYURT1: SETB ESPOP ACCRTI: RETI/3、扫描RAM中的数据并且显示出来,扫描显示256次以后重新允许接收DISPLAY: MOV R1,#0000H

22、M0:MOV R1,#0000H;复位R1指针到数据入口(D:0x0000)M3:CLR P2.4;选择第一组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.4;关第一组灯INC R1CLR P2.5;选择第二组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.5;关第二组灯INC R1CLR P2.6;选择第三组灯MO

23、VX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.6;关第三组灯INC R1CLR P2.7;选择第四组灯MOVX A,R1;将R1内容读取到A中MOV P1,A;显示A中的数值LCALL DELAY;延时,停留一会,让人眼感触到它的亮度MOV P1,#00H;关显示防止残影SETB P2.7;关第四组灯INC R1M4:MOVX A,R1CJNE R1,#0200H,M5;如果加到0x0200就返回ACALL DELAY5MSLJMP M0M5:LJMP M3;

24、 RETDELAY5MS: MOV R5,#255LO1: ACALL DELAY DJNZ R0,LO1 RETDELAY:MOV R7,#120 DJNZ R7,$RETEND致谢历时将近两个月的时间终于将这个作品完成,在这个过程中我们遇到了无数的困难和障碍,都在同学和老师的帮助下度过了。尤其要感谢我的论文指导老师丁纪峰老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行作品的修改和改进。另外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此向帮助和指导过我的各位老师表示最中心的感谢!感谢本文所涉及到的各位学者。本文引用了数位学者的研究文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇论文的写作。感谢我的同学和朋友,在过程中给予我们很多素材。感谢学校和学院对我们设计的大力支持。由于我们的学术水平有限,所写报告难免有不足之处,恳请各位老师和学友批评和指正!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号