教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

基于单片机的温度控制直流电动机转速系统设计 - 图文(10)

来源:网络收集 时间:2025-09-22
导读: 基于单片机的温度控制直流电动机转速系统设计 uchar i; for (i=0;i DQ=0;DQ=dat Delay(5);DQ=1;dat>>=1; } } //--------------------------------------------------------------------- //读取温度值 //----------

基于单片机的温度控制直流电动机转速系统设计

uchar i;

for (i=0;i<8;i++) {

DQ=0;DQ=dat&0x01; Delay(5);DQ=1;dat>>=1; } }

//--------------------------------------------------------------------- //读取温度值

//--------------------------------------------------------------------- void Read_Temperature() {

if(Init_DS18B20() == 1) //DS18B20故障 DS18B20_IS_OK = 0; else {

writeoneByte(0xCC); //跳过序列号 writeoneByte(0x44); //启动温度转换 Init_DS18B20(); writeoneByte(0xCC);

writeoneByte(0xBE); //读取温度寄存器 Temp_Value[0] = ReadOneByte(); //温度低8位 Temp_Value[1] = ReadOneByte(); //温度高8位 DS18B20_IS_OK = 1; } }

//--------------------------------------------------------------------- //在LCD上显示当前温度

//--------------------------------------------------------------------- void Display_Temperature() {

第XLVI页 共51页

!!!学院毕业设计

uchar i;

uchar t=150;//延时值 uchar ng = 0;//负数标识

//如果为负数则取反加1,并设置负数标识 if((Temp_Value[1] & 0xF8) ==0xF8) {

Temp_Value[1] = ~Temp_Value[1]; Temp_Value[0] = ~Temp_Value[0] + 1; if(Temp_Value[0] ==0x00) Temp_Value[1]++; ng= 1; }

//查表得到温度小数部分

Display_Digit[0] = df_Table[ Temp_Value[0] & 0x0F ]; //获取温度整数部分(无符号)

Current = ((Temp_Value[0]) & 0xF0)>>4) | ((Temp_Value[1] & 0x07)<<4); //获取有符号温度值(忽略小数位) Signed_Temp = !ng ? CurrenT : - CurrenT; //将整数部分分解为三位待显示数字 Display_Digit[3] = CurrenT / 100; Display_Digit[2] = CurrenT % 100/10; Display_Digit[1] = CurrenT % 10; //刷新LCD显示缓冲

Current_Temp_Display_Buffer[11] = Display_Digit[0] + '0'; Current_Temp_Display_Buffer[10] = '.';

Current_Temp_Display_Buffer[ 9] = Display_Digit[1] + '0'; Current_Temp_Display_Buffer[ 8] = Display_Digit[2] + '0'; Current_Temp_Display_Buffer[ 7] = Display_Digit[3] + '0'; //高位为0时不显示

if (Diplay_Digit[3] == 0) Current_Temp_Display_Buffer[7] = ' '; //高位为0且次高位为0时,次高位不显示

第XLVII页 51页

基于单片机的温度控制直流电动机转速系统设计

if (Display_Digit[2] == 0 && Display_Digit[3] == 0) //负数符号显示在恰当位置 if (ng) {

if (Current_Temp_Display_Buffer[8] == ' ') Current_Temp_Display_Buffer[8] == '-'; else

if (Current_Temp_Display_Buffer[7] == ' ') Current_Temp_Display_Buffer[7] == '-';) else

(Current_Temp_Display_Buffer[6] == '-'; }

//在第一行显示标题 Set_LCD_POS(0x00);

for(i = 0; i<16; i++) Write_LCD_Data( Temp_Disp_Title[i] ); //在第二行显示当前温度 Set_LCD_POS(0x40);

for(i = 0; i<16; i++) Write_LCD_Data(Current_Temp_Display_Buffer[i] ); //显示温度符号℃

Set_LCD_POS(0x4D); Write_LCD_Data(0x00); Set_LCD_POS(0x4E); Write_LCD_Data('C'); }

//--------------------------------------------------------------------- //T0定时器控制电动机正/反转,并输出PWM信号控制转速

//--------------------------------------------------------------------- Void T0_INT() interrup 1 {

TH0 = -50000/256;

第XLVIII页 共51页

!!!学院毕业设计

TL0 = -50000%6;

Read_Temperature(); //读取温度 if ( !DS18B20_IS_OK )return; //读错时退出 //读取正常且温度发生变化则刷新显示 if (Temp_Value[0] != Back_Value[0] || Temp_Value[1] != Back_Value[1] ) {

Back_Temp_Value[0] =Temp_Value[0]; Back_Temp_Value[1] =Temp_Value[1]; Disply_Temperature(); }

//≥75℃或≤0℃时,电动机全速转动,占空比为100%. if (Signed_Temp≥75 ) Signed_Temp = 75; if (Signed_Temp≤ 0 ) Signed_Temp = 0; //>=45℃时加速正转,75℃时全速运行 if ( Signed_Temp ≥ 45) {

MA = 1; MB = 0; //正转

if (Signed_Temp == 45) //PWM输出(占空比:0%) {

PWM1 = 0; DelayXus(30); return; } else

if (Signed_Temp == 75) //PWM输出(占空比:100%) {

PWM = 1; DelayXus(30); return; }

PWM1 = 1; //PWM输出(占空比:0%~100%) DelayXus(Signed_Temp - 45); PWM1 = 0;

第XLIX页 51页

基于单片机的温度控制直流电动机转速系统设计

DelayXus(75 - Signed_Temp ); } else

//≤10℃时加速反转,0℃时全速运行 if ( Signed_Temp≤ 10 ) {

MA = 0; MB = 1; //反转

if (Signed_Temp == 10) //PWM输出(占空比:0%) {

PWM1 = 0; DlayXus(10); return; } else

if (Signed_Temp == 0 ) //PWM输出(占空比:100%) {

PWM = 1; DelayXus(10); return; }

PWM = 1; //PWM输出(占空比:0%~100%) DelayXus(10 - Signed_Temp); PWM = 0;

DelayXus(Signed_Temp); }

//否则由惯性运动过渡到停止 else {

MA = 0; MB = 0; } }

//--------------------------------------------------------------------- //主函数

//---------------------------------------------------------------------

第L页 共51页

…… 此处隐藏:1434字,全部文档内容请下载后查看。喜欢就下载吧 ……
基于单片机的温度控制直流电动机转速系统设计 - 图文(10).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/434473.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)