资源描述
大连理工大学本科实验报告基于51单片机的直流电机调速及音乐控制系统课程名称:电子工程训练学院(系):电信学部专业:自动化班级:学号:学生姓名:实验教室:成绩:2014年11月17日精选资料,欢迎下载成绩评定项目各项总分得分焊接30最小系统与电源10功能实现45实验报告10出勤5总分电子安装实验室安全守则(请在下一页手抄一份安全守则)1、每次实验前,认真预习准备,仔细阅读实验安全守则,严格按照 安全规范进行实验,确保实验安全;2、桌面要保持整洁, 不允许有杂物,禁止将水杯、 瓶装水放在桌面;3、电烙铁在使用前, 必须检查电源线有无烫损漏线情况, 一经发现, 立即找老师进行安全处理;4、电烙铁长时间不使用,应将电源线拔掉;电烙铁使用后,应放回 烙铁架中,以免烫伤物品;5、实验结束后,必须拔掉电烙铁的电源线;已经加热的电烙铁,必 须冷却后再放入抽屉中;6、焊锡中含铅,不要含在口中,实验结束后要洗手;7、稳压电源在使用前,应先调好要使用的电压,再进行线路连接, 并确保连接的极性正确;8、抢救触电人员时,应首先切断电源或用绝缘物体挑开电源线,使 触电者脱离电源,千万不要用手拖拉触电人员,以免连环触电;9、实验结束后,必须关闭桌面电源开关,将桌面收拾干净,工具物 品整理好。题目:基于51单片机的直流电机调速及音乐控制系统1. 设计要求以51单片机为核心,设计、焊接并调试一个实际单片机控制系统, 实现四位 一体数码管显示直流电机转向、转速,并利用按键控制音乐播放。系统设计 具体要求:1)电源电路(9V AC - 5V DC )。2)51单片机最小系统。3)按键控制音乐播放。4)四位一体数码管显示(三极管8550驱动)。5)直流电机驱动电路。6)按键控制电机转动并在四位一体数码管显示。2. 设计原理及系统方案设计1)直流电机:直流电机只要能提供一定的直流就可以转动,改变电压极性可以改变转动方向,可以通过给直流电机提供脉冲信号来驱动它,脉冲信号的占空比可以影响到直流电机的平均速度,因此可以通过调整占空比从而能实现调速的目的(PWM调速)。电机的驱动电流是比较大的,所以需要 用三极管来放大电流。程序的关键就是如何实现占空比的调整, 这个可以 通过对51单片机定时器重装初值进行改变,从而改变时间。2)音乐播放:乐曲是由音调和节奏组成的,这两种特征都可以用单片机的定时器来实现,所以音乐文件在程序中是一个很大的数组,数组中包含着音乐的两种控制特征。音乐的输出以及播放、停止控制分别用两个按键来控 制。3)总体设计:显示数码管用 P2.0P2.3进行位选,P0 口控制显示数字;直流电机用P2.5和P2.6输出PWM波形,通过三极管进行驱动,P1.1P1.5 分别是正反转控制,加速,减速,启动,停止按键;音乐播放通过P1.0输出,由P1.6控制。3各功能模块硬件电路设计1)电源电路:电源电路采用7805芯片产生+5V供电电压。2)最小系统:包括电源,接地,晶振,复位,上拉电阻p2.F2piF2p?KK.巴3)数码管显示:四位数码管是一种半导体发光器件,其基本单元是发光二 极管。能显示4个数码管叫四位数码管。数码管按段数分为七段数码管 和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一 个小数点显示);按发光二极管单元连接方式分为共阳极数码管和共阴极 数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(CO M的数码管。共阳数码管在应用时应将公共极COMS到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管 的阴极接到一起形成公共阴极(COM的数码管。共阴数码管在应用时应将 公共极COM接到地线GNDt,当某一字段发光二极管的阳极为高电平时, 相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。P1-0F1.1P1JPJL3FL4FIJP1.6P1JRSTP51(DQ n_Z(TXTCD PJJCDJTn pj 4) P5 5(T1) PISFITXTAL2 XTALIGNOro.aPQ.lPt)2NJFD4P0.5-PD.6PO? TPIA .UEFROG -F2ENP2SPi.sMJ保P2.LP2J|r6lJ1一;1KI5Ck4)直流电机驱动:基于三极管的使用机理和特性,在驱动电机中采用功率驱动电路,H桥功率驱动电路可应用于步进电机、 交流电机及直流电 机等的驱动永磁步进电机或混合式步进电机的励磁绕组都必须用双极 性电源供电,也就是说绕组有时需正向电流,有时需反向电流,这样绕 组电源需用H桥驱动。直流电机控制使用 H桥驱动电路,当PWM为低电 平,通过对PWM输出占空比不同的矩形波使三极管 Q1 Q6同时导通Q5 截止,从而实现电机正向转动以及转速的控制; 同理,当PWM为高电平, 通过对PWM输出占空比不同的矩形波使三极管 Q1 Q6同时导通,Q6截 止,从而实现电机反向转动以及转速的控制。4系统软件设计1)源代码#defi ne _ctf_C_#i nclude reg51.h#i nclude ctf.h#i nclude#in clude#include vintrins.h#i nclude 自定义变量#defi ne uint un sig ned int/自定义变量 #defi ne uchar un sig ned char/*控制位定义*/un sig ned char n=0; n为节拍常数变量un sig ned char code music_tab = 0x18, 0x30, 0x1C , 0x10,/格式为:频率常数,节拍常数,频率常数,节拍常数,0x20, 0x40, 0x1C , 0x10,0x18, 0x10, 0x20 , 0x10, 0x1C, 0x10, 0x18 , 0x40, 0x1C, 0x20, 0x20 , 0x20, 0x1C, 0x20, 0x18 , 0x20, 0x20, 0x80, 0xFF , 0x20, 0x30, 0x1C, 0x10 , 0x18, 0x20, 0x15, 0x20 , 0x1C, 0x20, 0x20, 0x20 , 0x26, 0x40, 0x20, 0x20 , 0x2B, 0x20, 0x26, 0x20 , 0x20, 0x20, 0x30, 0x80 , 0xFF, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x20, 0x1C , 0x10, 0x18, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x80, 0x20, 0x30, 0x1C , 0x10, 0x20, 0x10, 0x1C , 0x10, 0x20, 0x20, 0x26 , 0x20, 0x2B, 0x20, 0x30 , 0x20, 0x2B, 0x40, 0x20 , 0x15, 0x1F, 0x05, 0x20 , 0x10, 0x1C, 0x10, 0x20 , 0x20, 0x26, 0x20, 0x2B , 0x20, 0x30, 0x20, 0x2B , 0x40, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x20, 0x15 , 0x20, 0x1C, 0x20, 0x20 , 0x20, 0x26, 0x40, 0x20 , 0x20, 0x2B, 0x20, 0x26 , 0x20, 0x20, 0x20, 0x30 , 0x30, 0x20, 0x30, 0x1C , 0x10, 0x18, 0x40, 0x1C , 0x20, 0x20, 0x20, 0x26 , 0x40, 0x13, 0x60, 0x18 , 0x20, 0x15, 0x40, 0x13 , 0x40,0x18, 0x80, 0x00 ;sbitBeep = P1A0 ;sbitP10=P2A5; /输出波形 1sbitP11=P2A6; /输出波形 2sbitP12=P1A1;/正反转sbitP13=P1A2;/加速sbitP14=P1A3;/减速sbitP15=P1A4;/停止sbitP16=P1A5;/启动sbitP17=P1A6;void int0() interrupt 1 / 采用中断 0 控制节拍 TH0=0xd8;TL0=0xef;n-; void delay (unsigned char m) / 控制频率延时 unsigned i=3*m;while(-i); void delayms(unsigned char a) /毫秒延时子程序 while(-a);uchar code smg12= 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xB8,0x8E; / 程序存储区定义字型码表 char data led4=0x07,0x0B,0x0D,0x0E; / 位码uint x; / 数码管显示的数值char gw,sw,bw,qw;uchar j; / 定时次数,每次 20msuchar f=9; / 计数的次数uchar k;uchar t; / 脉冲加减/*延时函数*/delays() uchar i;for(i=4608;i0;i-); display()/*数码管显示 */ uchar i,m;gw=x%10; / 求速度个位值,送到个位显示缓冲区 sw=(x/10)%10; / 求速度十位值,送到十位显示缓冲区 bw=(x/100)%10; / 求速度百位值,送到百位显示缓冲区 for(m=0;m20;m+)for(i=0;i4;i+)switch(i)case 0: P0=smggw;P2=led0; delays();break;case 1: P0=smgsw; P2=led1; delays();break;case 2: P0=smgbw; P2=led2; delays();break;case 3:P2=led2; P0=0xff; delays();break;P2=led3;if(k=0)/ 正转时显示 反 FP0=0xB8;delays();elseP0=0x8E;delays();/ 反转时显示 F /*t0 定时*中断函数 */ void t0() interrupt 1 using 3 TH0=-(18433/256); / 重装 t0 TL0=-(18433%256);display(); / 数码管显示 f-;if(k=0)if(ft)P10=1; elseP10=0;P11=0; else if(f=9) t=9;if(P14=0) / 减速 while(P14=0); t-; if(t1) t=1;if(P15=0) / 停止 while(P15=0);EA=0;P10=0;P11=0;x=0;/*主函数 */为频率常数变量main (void) unsigned char p,m; /m unsigned char i=0;aa: TMOD&=0x0f;TMOD|=0x01;TH0=0xd8;TL0=0xef;IE=0x82;play: while(1) a:if (P17=1)goto bb; else p=music_tabi;if(p=0x00) i=0; delayms(1000); goto play; / 如果碰到结束符 , 延时 1 秒 , 回到开始再来一遍else if(p=0xff) i=i+1;delayms(100);TR0=0; goto a;/若碰到休止符,延时100ms,继续取下一音符elsem=music_tabi+; n=music_tabi+;/ 取频率常数 和 节拍常数TR0=1;/开定时器 1while(n!=0) Beep=Beep;delay(m);n-;/ 等待节拍完成 , 通过 P1 口输出音频TR0=0; / 关定时器 1bb:TMOD=0x11; /T0 方式 1 定时计数 T1 方式 1 计数 TR0=1;TH0=-(18433/256);/ 装入初值 20MSTL0=-(18433%256);gw=sw=bw=qw=0; / 数码管初始化P0=0xc0;P2=1;while(1) / 无限循环 if(P17=0)goto aa; else display。; key(); 2)软件流程图主程序:发声中断程序:5系统调试运行结果说明计分析1)系统运行的硬件环境:PC机,windows XP系统2)系统运行的软件环境:MedWin(集成开发环境),SuperPro/Z (编程器),软件仿真Keil C51( C51编译器)。3)系统运行结果:a) . 四位一体数码管,显示直流电机状态,高位表示电源,次高位表示 正转,次低位表示反转,低位表示转速档。b) 直流电机控制部分, 四个按键分别控制电机的转速、 正转、反转和停 止。转速调整从低速到高速循环调整。c) 按键控制音乐播放。按键按下并保持,音乐响起;松开按键,音乐停 止播放。d) . 综合以上模块功能后,系统成功实现按键控制直流电机的转速转向 的控制,同时数码管显示直流电机的工作状态, 并可用按键控制音乐 的播放与停止,电机控制部分与音乐播放部分并不冲突。6 结论 实验最后的结果不是很完美,但是本次实验课是迄今为止最综合性的实验了,既包括了硬件电路的焊接,又包括了软件程序的编写,软硬结合,可以说大 多数是在课堂上根本学不到的东西。 不仅提高了动手操作能力, 还加深了理论学 习的学习与应用。 总之,这次实验让我感受到了软硬结合的魅力, 自己收获颇多。 参考文献1陈育斌等.MCS-51单片机应用实验教程M大连理工大学出版社。Welcome !欢迎您的下载,资料仅供参考!
展开阅读全文