第一范文网 - 专业文章范例文档资料分享平台

51系列单片机闭环温度控制实验报告

来源:用户分享 时间:2025/7/10 4:57:19 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

AD_value<<=1; if(SDO) AD_value |= 0x01; delay_us(2); CLK = 1; } CLK = 0; CS = 1; if(PORT == port) break; else { Temp = port; Temp<<=4; delay_us(2); CS = 0; //PORT = port; } k++; if(k>2) { PORT = port; } }

return AD_value; }

u8 AD_deal(void) {

u16 AD_value; u16 temp; float temp1;

AD_value = read_tlc2543(0x00); temp1 =(AD_value*0.04069);

temp =(u16)(temp1*10);

if((temp)>4) temp = temp/10+1; else temp = temp/10; temp = (u8)temp; return temp; }

#include #include\#include\

u8 S_Temp=100; //设置温度 u8 P_Temp=25; //实际温度 u8 pulse = 0;

u8 Kp=30,Ki=0;Kd=10; int uk=0;

int num=0;

struct FLAG {

u8 turn; }

myflag;

/************* 函数功能:延时

****************/ void delay_ms(u16 z) {

u16 i; u8 j;

for(i=z;i>0;i--)

for(j=120;j>0;j--); }

/*************

函数功能:LCD写数据 ****************/

void LCD_WriteData(u8 Dat) {

RS = 1;

// delay_ms(5); P1 = Dat; EN = 1;

delay_ms(5); EN = 0; }

/*************

函数功能:LCD命令

****************/

void LCD_WriteCOM(u8 com) {

RS = 0;

// delay_ms(5); P1 = com; EN = 1;

delay_ms(5); EN = 0; }

/*************

函数功能:Show_Num初始化 ****************/

void Show_Num(u8 x,u8 y,u8 n,u16 num) {

u16 Temp=num; u8 a[5],i;

for(i=0;i

if(y%2 == 1) LCD_WriteCOM(0x80+x); else LCD_WriteCOM(0x80+0x40+x); for(i=n;i>0;i--)

LCD_WriteData(a[i-1]+0x30); }

//n为数字长度num小于等于65535 /*************

函数功能:Show_fNum初始化 ****************/

void Show_fNum(u8 x,u8 y,u16 num) {

u8 a,b;

a = num/10; b = num; if(y%2 == 1) LCD_WriteCOM(0x80+x); else LCD_WriteCOM(0x80+0x40+x);

LCD_WriteData(a+0x30); LCD_WriteData(b+0x30); }

/*************

函数功能:Show_Num初始化 ****************/

void Show_char(u8 x,u8 y,u8 ch) {

if(y%2 == 1) LCD_WriteCOM(0x80+x); else LCD_WriteCOM(0x80+0x40+x);

LCD_WriteData(ch); }

/*************

函数功能:LCD初始化 ****************/ void LCD_Init(void) {

RW = 0; EN = 0;

//delay_ms(20);

LCD_WriteCOM(0x38); LCD_WriteCOM(0x0c); LCD_WriteCOM(0x06); LCD_WriteCOM(0x01);

}

/*************

函数功能:LCD初始化 ****************/ void LCD_display(void) {

Show_char(0,1,'P'); Show_char(1,1,'T'); Show_char(2,1,':');

Show_char(9,1,'S'); Show_char(10,1,'T'); Show_char(11,1,':');

Show_Num(12,1,3,S_Temp);

Show_char(0,2,'P'); Show_char(1,2,':'); Show_Num(2,2,2,Kp);

Show_char(5,2,'I'); Show_char(6,2,':'); Show_Num(7,2,2,Ki);

Show_char(10,2,'D'); Show_char(11,2,':'); Show_Num(12,2,2,Kd); }

/*************

函数功能:定时器2初始化

****************/ void timer2_init() {

RCAP2H =(65536-100)/256; RCAP2L =(65536-100)%6; TH2 = RCAP2H; TL2 = RCAP2L;

ET2 = 1; TR2 = 1; EA = 1;

//100us

搜索更多关于: 51系列单片机闭环温度控制实验报告 的文档
51系列单片机闭环温度控制实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6nkof1b61783hrt8bf1m52amw9lhr30088c_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top