好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

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系列单片机闭环温度控制实验报告

AD_value<<=1;if(SDO)AD_value|=0x01;delay_us(2);CLK=1;}CLK=0;CS=1;if(PORT==port)break;else{Temp=por
推荐度:
点击下载文档文档为doc格式
6nkof1b61783hrt8bf1m52amw9lhr30088c
领取福利

微信扫码领取福利

微信扫码分享