




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include#include#include#include#define Z 55sbit P27=P27;sbit temp=P20;sbit P21=P21;sbit P22=P22;uint nnn;uchar t_min,t_minf,t_sec,t_ge,shii,gee,shiff;uchar uk_qian,uk_bai,uk_shi,uk_ge;/uk显示位uint time;uint z_uk;uchar w_shi,w_ge,w_shif,w_baif; /实际温度数字显示;uchar q_ge,q_shif,q_baif; /占空比显示位uchar idata bai,shi,ge; /预设温度数字显示;bit w_fh;/实际值符号位;uint tvalue; /10倍实际温度。uint p=20000;uint f,g;/float idata bfb;/占空比设定。uchar set_temp=60;float idata temperature;uchar idata count=1;uchar idata cont=500;uchar idata xx;void rst18b20() temp=1; delay10us(1); temp=0; delay10us(70);/延时916us。 temp=1; delay10us(20);/延时266us。 void writedata(uchar dat)/向ds18b20写数据。 uchar i; for(i=0;i=1; /先写低位。 uchar readdata()/从ds18b20读数据。 uchar dat; uchar i; for(i=0;i=1;/ 先读低位。 temp=1; if(temp) dat=dat|0x80; delay10us(10);/延时136us; temp=1; return(dat); void readtemperature() uchar temperh,temperl; rst18b20(); writedata(0xcc);/跳过读rom命令直接给器件发命令。 writedata(0x44);/启动ds18b20读取温度。 rst18b20(); /必须二次复位。 writedata(0xcc); writedata(0xbe); temperl=readdata();/读取温度低字节。 temperh=readdata();/读取温度高字节。 tvalue=temperh; tvalue=8; tvalue=tvalue|temperl;/组成16位合成字。 if(tvalue111) xx=0; clrscreen(); xyset();/建立坐标系; void ruptinte0()interrupt 0/按键中断子函数 P2=0xff; if(P2!=0xff) delay(8); if(P2!=0xff) switch(P2) case(0xfd):set_temp+;if(set_temp100);temp=0;break;case(0xfb):set_temp-;if(set_temp100);temp=0;break;default:break; void settempdeal() shi=set_temp/10+0x30; ge=set_temp%10+0x30;void ukdeal()/显示控制电压子函数 z_uk=(uint)uk; uk_qian=z_uk/1000; uk_bai=z_uk%1000/100; uk_shi=z_uk%1000%100/10; uk_ge=z_uk%10;void qdeal()/显示占空比子函数 uint x; x=(uint)(bfb*100.0); q_ge=x/100; q_shif=x%100/10; q_baif=x%10;void main() init();rst();setbacklight();clrscreen();cs=0;zibigset(0x11);send(0x81);/设置ASCII字符类型;send(0x01);/6X10字体,字符为黑色; send(0x83);/设置绘图色;send(1);/黑色;xianhan(16,4,table1);/水xianhan(32,4,table2);/温xianhan(48,4,table3);/控xianhan(62,4,table4);/制xianhan(78,4,table5);/系xianhan(94,4,table6);/统xianhan(24,38,table7);xianhan(40,38,table8);asciiset(56,38,0x3a);/显示冒号;xianhan(64,38,table9);xianhan(80,38,table0);delay(500);clrscreen();xyset();/建立坐标系;EA=1; while(1) settempdeal(); /预设值处理 ukdeal();/控制电压值处理 if(temperature=set_temp) P27=0; TR1=0; else if(temperature=(set_temp-4) calcpid(set_temp,temperature); bfb=(uk/220.0); qdeal(); /占空比值处理if(bfb=1.0) TR1=0;P27=1; else if(bfb1.0) d_uk=kp*(ek-ek1)+kd*(ek-2*ek1+ek2); else d_uk=kp*(ek-ek1)+ki*ek+kd*(ek-2*ek1+ek2); uk=d_uk+uk1; ek2=ek1; ek1=ek; uk1=uk; */*void calcpiiid(float s_temp,float now_temp)/遇限削弱积分法; ukmax=5.0*(kp+kd); ek=s_temp-now_temp; d_uk=kp*(ek-ek1)+kd*(ek-2*ek1+ek2); if(uk1=ukmax) if(ek0); else d_uk+=ki*ek; else if(uk1=ukmax) if(ek0); else d_uk+=I*ek; uk=uk1+d_uk; ek2=ek1; ek1=ek; uk1=uk; */void calcpid(float s_temp,float now_temp)/增量式 /ukmax=5.0*(kp+ki+kd); ek=s_temp-now_temp; d_uk=kp*(ek-ek1)+ki*ek+kd*(ek-2*ek1+ek2); uk=d_uk+uk1; ek2=ek1; ek1=ek; uk1=uk;#include#define uint unsigned int#define uchar unsigned charuchar code table1=水;uchar code table2=温;uchar code table3=控;uchar code table4=制;uchar code table5=系;uchar code table6=统;uchar code table7=作;uchar code table8=者;uchar code table9=李;uchar code table0=奕;uchar code table00=度;uchar code table01=时;uchar code table02=间;sbit cs=P10;sbit sda=P11;sbit sck=P13;sbit crst=P14;void delay10us(uint n) do _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); while(-n);void delay(uint n) do delay10us(131); while(-n);void send(uchar da) uint i;for(i=0;i8;i+) sck=0; sda=da&0x80;sck=1;da=1; void rst() sck=1; cs=1; crst=0; delay(3); crst=1; delay(10);void clrscreen() cs=0; send(0x80); cs=1;void asciiset(uchar x,uchar y,uchar a) /写阿斯科码; cs=0;send(0x07);send(x);send(y);send(a); void setbacklight() cs=0;send(0x8a);send(110);cs=1; void bitflash()/绘制图像; uchar i,j;send(0x0e);send(0); send(0);send(104);send(46);for(i=0;i46;i+)for(j=0;j13;j+) send(table1i*13+j); void pointset(uchar x,uchar y) /描点; cs=0;send(0x01);send(x);send(y); void danwei() /描坐标点; uint i,j;for(j=20;j14;i-=10) pointset(9,i); void zibigset(uchar x) /设置字体大小 cs=0; send(0x82);/设置汉字库类型;send(x);/16X16字体,字符为黑色; void xianhan(uchar x,uchar y,uchar *p)/写汉字; uchar i; cs=0; send(0x08);send(x);send(y);for(i=0;i2;i+) send(pi); void xyset()/绘制坐标系 cs=0; send(0x02);/绘制x,y横纵坐标;send(10);/横坐标起点为10,终点为111;send(55);send(111);send(55);send(0x02);send(10);send(55);/纵坐标起点为55,终点8;send(10);send(3);pointset(9,4);/绘制箭头;pointset(8,5);pointset(11,4);pointset(12,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国聚氯乙烯人造革项目创业投资方案
- 宠物烘焙师考试题及答案
- 2025年节水型企业水平衡测试方案编制及创建省级节水型企业的招投标书范本
- 护管员考试试题及答案
- 中国环保油墨项目创业投资方案
- 2025年中国生物有机肥项目商业计划书
- 中国铝塑膜包装材料项目商业计划书
- 2025年中国铁氧体永磁材料项目商业计划书
- 中国酪蛋白胨项目创业投资方案
- 中国溶解型乳蜡项目商业计划书
- 造雪师培训课件
- 2025年广东省深圳市宝安外国语学校中考数学三模试卷
- 周转筐清洗管理制度
- 公司技术部奖罚管理制度
- DBJ50-T-047-2024 建筑地基基础设计标准
- T/CHSDA 0001-2024公路工程建设期碳排放计算标准
- 绿色甲醇产业发展现状及前景分析
- 资产评估学教程(第八版)习题及答案
- 2025家居生活方式消费趋势洞察报告
- 自投光伏安装合同协议
- 道路运输企业安全生产责任制度
评论
0/150
提交评论