当前位置:文档之家› keilc温度控制直流电机转速课程设计报告

keilc温度控制直流电机转速课程设计报告

目录一、设计目的及要求 (3)1.1 设计目的 (3)1.2 设计要求 (4)二、设计方案及论证之硬件电路设计 (4)2.1芯片简介 (4)2.2 电路原理图 (5)2.21 电机测速即驱动部分: (5)2.22电路供电系部分 (6)2.23显示部分 (6)三、设计方案及论证之软件设计 (7)3.1 程序设计思路 (7)四、器件清单 (18)五、器件识别与检测 (19)六、仿真结果: (20)七、软件简述 (21)页脚内容17.1 keil 简介 (21)7.2 keil与proteus联调与仿真实现 (21)九、参考文献 (22)课程设计任务书页脚内容2一、设计目的及要求1.1 设计目的本设计主要是应用proteus软件和嵌入式C语言编程工具,结合单片机原理及应用。

危机原理与接口技术等专业课程,强化和巩固专业理论基础,掌握Proteus仿真的技巧和嵌入式C语言编程工具,提高单片机开发能力,并为嵌入式开发打下基础。

页脚内容31.2 设计要求(1) 使用AT89C51单片机为核心,使用4 位集成式数码管显示当前温度,温度传感器使用DS18B20,使用L298 驱动直流电动机。

(2)用4 位集成式数码管显示当前温度, , 当温度在≥45 C 时, 直流电动机在L298 0 0 驱动下加速正转,温度在≥75 C 全速正转;当温度≤10 C 时,直流电动机加速反转,温度≤0 C 时,直流电动机全速反转;温度10 C ~ 45 C 之间时,直流电动机停止转动。

(3)控制程序在Keil 软件中编写,编译,整个控制电路在Proteus 仿真软件中连接调示。

二、设计方案及论证之硬件电路设计2.1芯片简介本设计选择采用AT89C51单片机为核心。

AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。

同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。

页脚内容42.2 电路原理图2.21 电机测速即驱动部分:电机选用美国史普拉格公司生产的3000 系列霍尔开关传感器3013,它是一种硅单片集成电路,器件的内部有稳压电路,霍尔电视发生器,放大器,施密特触发器和集成开路输出电路,具有工作电压范围宽,页脚内容5可靠性高,外电路简单,输出电平可与各种数字电路兼容等特点。

电动机测试部分原理图如下:2.22电路供电系部分电路通过12V 电源供电,由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号送到单片机89C51 的P3.5 脚,作为T1 计数器计数使用,得到的计数值。

与设定的值进行比较形成偏差.根据比较结果通过Po 端口送给DAC0832 进行数/模转换, 从而使得输出电压增大或者减少,得到模拟电压输出给功率放大电路放大,再去控制电机的转速。

2.23显示部分采用LM016L作为显示屏下图为显示部分:页脚内容6三、设计方案及论证之软件设计3.1 程序设计思路程序框图开始页脚内容73.2源程序void dsreset(void) ;温度采集初始化{uint i;DS=1;i++;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;页脚内容9DS=1;}void tmpwritebyte(uchar dat);控制温度传感器{uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //write 1{DS=0;i++;i++;DS=1;页脚内容10i=8;while(i>0)i--;}else{DS=0;i=8;while(i>0)i--;//write 0DS=1;i++;i++;}}}bit tmpreadbit(void) ;读数据赋值给dat{uint i;bit dat;DS=1;页脚内容11DS=0;i++;i++;DS=1;i++;dat=DS;i=8;while(i>0)i--;return (dat);}uchar tmpread(void){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)|(dat>>1);}return(dat);}页脚内容12uint tmp() ;数据处理即判断温度正负{float tt;uchar a,b,b1;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;b1=b;temp<<=8;temp=temp|a;if(b1<8){页脚内容13flag+=1;tt=temp*0.0625;temp=tt*10+0.5;dis_buf[0]=0;}else{flag-=1;temp=~temp;temp=temp+1;tt=temp*0.0625;temp=tt*10+0.5;dis_buf[0]=0x40;}return temp;}void display(uint temp);将采集后转化的温度对数组赋值页脚内容14{uchar A1,A2,A3;A1=temp/100;A2=temp%100/10;A3=temp%10;t=A1*10+A2;dis_buf[3] = table[A3];dis_buf[2] = table1[A2];dis_buf[1] = table[A1];}void timer1() interrupt 3;用定时器T1调用温度采集函数进行温度采集{TH1=(65536-20000)/256;TL1=(65536-20000)%256;tmpchange();页脚内容15display(tmp());}void timer0() interrupt 1;用定时器T0将处理后的温度用数码管显示{TH0 = (65536-500)/256;TL0 = (65536-500)%256;P2=0xff;P0=dis_buf[dis_index];P2=dis_digit;dis_digit = _crol_(dis_digit,1);dis_index++;dis_index &= 0x07;}if(flag==1);判断电机旋转情况{页脚内容16flag=0;if(t>=75)Turn_z();elseif(t>=45)Turn_zj();elseif(t>10)Turn_t();elseTurn_fj();}elseif(flag==-1){flag=0;Turn_f();页脚内容17}四、器件清单温度控制直流电机转速所需元器件清单页脚内容18五、器件识别与检测根据单片机的C语言程序设计与应用,我们知道了C51单片机,所用的一般元器件有电阻、电容、开关、排阻,而对于晶振和数码管是我们所必须学习和掌握的,晶振是一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。

他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越页脚内容19页脚内容20高,那单片机的运行速度也就越快。

数码管根据公共端的连接情况有共阳极共阴极两种,对共阴极LED 显示器的发光二极管的公共端的com 接地,当某发二极管的阳极为高电平时,相应的发光二极管点亮。

六、仿真结果:d0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d 0d 1d 2d 3d 4d 5d 6d 7ER S RS R W ER W XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122PFC222PFC310uFX112MR110kD 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S1V D D 2V E E3LCD1LM016L234567891RP1470R24.7k60.6DQ 2VCC 3GND 1U2DS18B20PWM1IN15IN27ENA 6OUT12OUT23ENB11OUT313OUT414IN310IN412SENSA 1SENSB15GND 8VS4VCC9U4L298C4100nf+203D1D2D3D4C5100nf+12VA B PWM1A B七、软件简述7.1 keil 简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。

因而易学易用。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。

运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。

7.2 keil与proteus联调与仿真实现双击图标进入keil uVision2编程环境,输入程序。

返回桌面双击图标进入Proteus仿真环境。

点击左上角选项P后根据设计的电路图调出所需元件画好硬件原理图如图所示。

然后按照4.1节所写步骤设置keil和proteus的工作环境。

实现keil和proteus的联调。

八、总结在课程设计的过程中,用到了Keilc和Proteus两大软件,上课老师都有讲过这些专业知识,通过对这些专业知识的学习,提高了自己的知识水平,而在课程设计过程中,我加强了自己的动手能力,并且将专业知识用到实践上,让我对这两个软件更加熟悉。

相关主题