⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 程序备忘.txt

📁 s12温度控制程序,包括模糊控制和LCD程序
💻 TXT
字号:
2008.05.23

lcd 控制信号用到PROTA的0-2位;
通道选择用到PROTA的3-5位(在pwm.c文件中需要修改);
在main.c中需要修改,在中断服务程序中,freqcontrol()后(即模糊控制温度后),应该立刻加入通道
选择函数(噢,我错了,自已写的程序都忘了,呵呵,在这个函数体里,后面有加呀),同时通道函数也要修改,因为I/O口换了啊,

/*      该函数实现将所输入数据限幅功能*/
 int ReduceBound(int data) {
   int temp;
   int quotient;
   int surplus;
   temp = data/5;
   quotient = temp/10;
   surplus = temp%10;
   if(surplus>=5)  quotient += 1;
   return quotient;
   
 }
可以改为下面函数

int ReduceBound(int data){          //缩小data的50倍,这个倍数可以根据需要更改,
                                    //主要因为采样时间太长
   int quotient;
   int surplus;
   quotient = data/50;              //将data缩小50倍
   surplus  = data%50;              //求data除50后的余数
   if(surplus>=25)  quotient +=1;   //判断余数大小,相似于四舍五入
   return quotient;

}

/**********实时显示表格************/ 
 void Display3Tab(char ch) {
 
  char ch1,ch2;
  ch1 = ch+1;
  ch2 = ch+2;
  if(ch1>7) ch1 = ch1-7;
  if(ch2>7) ch2 = ch2-7;
  TabHead();
  DisplayCh(ch,DisplayValue[ch]+1);     //显示当前通道的反馈值,+1是为了消除编译警告
  DisplayCh(ch1,DisplayValue[ch1]+1);   //显示下一通道的反馈值,+1是为了消除编译警告
  DisplayCh(ch2,DisplayValue[ch2]+1);   //显示下下一通道的反馈值,+1是为了消除编译警告

 }
改为
void Display3Tab(char ch) {     //ch=0-7
 
  char ch1,ch2;            
  ch1 = ch+1;
  ch2 = ch+2;
  if(ch1>7) ch1 = ch1-7;
  if(ch2>7) ch2 = ch2-8;
  TabHead();
  DisplayCh(ch,DisplayValue[ch]+1);     //显示当前通道的反馈值,+1是为了消除编译警告
  DisplayCh(ch1,DisplayValue[ch1]+1);   //显示下一通道的反馈值,+1是为了消除编译警告
  DisplayCh(ch2,DisplayValue[ch2]+1);   //显示下下一通道的反馈值,+1是为了消除编译警告

 }

在fuzzy.c文件中,  将Display3Tab(nowchannel);先改为isplay3Tab(0);
因为每隔0.5s采样一次,这样会使LCD闪的很频繁,以后会改为按键的,所以这样做不值得















 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -