




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #include #include unsigned int pp1;unsigned int j=0;unsigned int ReceiveData; /计算机向单片机发送的数据unsigned int ADdat2;unsigned char cH;unsigned char cL;unsigned char INPUT_ZH;unsigned char INPUT_X;unsigned int GivenTemper,measure,Error; float pp;sbit DS=P24;sbit ss1=P20;sbit ss2=P21;#define uchar unsigned char #define uint unsigned int uchar Temp_Value=0x00,0x00; void delay(unsigned int i);uchar a,b,c; float tt;unsigned int temp; /*此部分为18B20的驱动程序*/bit ds18b20isok=1;/=void Delay(uint x) /延时程序unsigned i;x=x*5/4; for(i=0;ix;i+);/=uchar InitDS18B20() /初始化 uchar status; DS=1;Delay(8);DS=0;Delay(500);DS=1;Delay(100); status=DS;Delay(100); DS=1; return status;/=void WriteByte (uint dat) /单字节写入uchar i;for (i=0;i= 1;/=uchar ReadByte (void) /读取单字节uchar dat=0,i;DS=1;_nop_();for(i=0;i= 1;DS = 1; _nop_(); _nop_();if(DS) dat |= 0x80;Delay (45);DS=1;return dat;uchar readtemperature()if (InitDS18B20()=1) ds18b20isok=0; else WriteByte(0xCC); WriteByte(0x44); InitDS18B20(); WriteByte(0xCC); WriteByte(0xBE);Temp_Value0=ReadByte();Temp_Value1=ReadByte();a =Temp_Value0 ; /读取到的第一个字节为温度LSBb = Temp_Value1; ds18b20isok=1; /*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned int i,j; for(i=0;i10;i+) for(j=0;j33;j+); /*函数功能:延时若干毫秒入口参数:n*/void delaynms(unsigned int n) unsigned int i; for(i=0;in;i+) delay1ms();/*函数功能:单片机向计算机发送数据*/void send(unsigned int send_data) SBUF=send_data; while(TI=0); TI=0; /*函数功能:串口中断函数 单片机通过中断接收计算机发送数据 */void UART_SER (void) interrupt 4 /串行中断服务程序 if(RI) /判断是接收中断产生 RI=0; /标志位清零 ReceiveData=SBUF; /读入缓冲区的值 void main(void) IE = 0x90; /Enable ADC interrupt and Open master interrupt switch,允许T1,T0中断 TMOD=0x22; /定时器T1工作于方式2,带自动重装功能的8位计数器,最大计数值为256 SCON=0x50; /SCON=0101 0000B,串口工作方式1,允许接收(REN=1) PCON=0x00; /PCON=0000 0000B,波特率9600 TH1=0xfa; /根据规定给定时器T1赋初值 TL1=0xfa; /根据规定给定时器T1赋初值 TR1=1; /启动定时器T1 TH0=0xF5; /根据规定给定时器T1赋初值 TL0=0x78; /根据规定给定时器T1赋初值 TR0=1; /启动定时器T0 readtemperature();/Delay (9000); while(1) /unsigned char i; readtemperature(); /得到AD的输入温度值 /ADget_Z=ADget/10;十位 /ADget_X=ADget%10;个位 /ADget_Z=ADget_Z*1000;/if ( ds18b20isok )/pp=100;/else/pp=200;/;temp = b; /先把高八位有效数据赋于temptemp measure) /给定值高 ccap0加热 Error=GivenTemper-measure; / CCAP1L=0; /CCAP1H=0; /if (Error 0) if(Error 300) ss1=1; ss2=0; else if (Error100&Error50&Error10&Error5&Error=10) ss1=1; ss2=0; Delay (100); ss1=0; ss2=0; Delay (100); else ss1=0; ss2=0; else if(GivenTemper0) if(Error 300) ss1=0; ss2=1; else if (Error100&Error50&Error10&Error5&Errormeasure) /给定值高 ccap0加热 Error=GivenTemper-measure; / 给定值小于测量值时 else if(GivenTempermeasure) /给定值低 ccap1制冷 Error=measure-GivenTemper; delaynms(10000); /增量式PID算法(需要控制的不是控制量的绝对值,而是控制量的增量)/*函数功能:AD采样 /*/unsigned int ADCRESULT()/ADC_RES=500;/ ADdat2=(ADC_RES2)+ADC_RESL;/10位转换结果/ pp=(ADdat2/1024)*5; / pp1=(long)ADdat2*1500)/358; /得到温度/ ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START;/ return pp;/*函数功能:完成函数的初始化功能(A/D采样会用到) */void InitADC()/ P1ASF = 0xf7;/Set all P1 as analog input port将所有的P1口定义为模拟输入端口/ ADC_RES = 0;/Clear previous result清除上一个结果. ADC_RES 为A/D转换结果寄存器 / ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START;/PWM初始化 /void InitPWM()/CMOD=0x84 ;/CPS1 CPS0=00,FOSC/12是 PCA/PWM CLOCK 94/CCON=0x00;/CL=0x00; /PCA计数器 /CH=0x00; /PCA计数器 /CCAP0L=0x80; /Set the initial value same as CCAPOH 预置初值 加热/CCAP0H=0x80; /50%的占空比 /CCAPM0=0x42; /01000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生产制造行业标准操作流程指南
- 企业团队协作项目管理框架
- 技术文档撰写与审核流程模板
- 工程项目质量控制标准化检测模板
- 智能化装备安全防护责任书9篇
- 美丽的天池300字9篇
- 农村信息技术服务支持协议文本
- 企业文档分类管理与搜索工具
- 供应链稳定持续承诺函8篇
- 企业风险管理标准化工具与应急预案制定
- 新闻编辑(修改版)马工程课件 第六章
- GB/T 2930.8-2017草种子检验规程水分测定
- 勘察设计工作大纲
- GB/T 17188-1997农业灌溉设备滴灌管技术规范和试验方法
- 关于国有集团公司采购管理办法【五篇】
- 2022年资阳市雁江区社区工作者招聘考试笔试试题及答案解析
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 帮助卧床老年人使用便器排便课件
- 【高考英语精品专题】必修1 Unit 1 Life Choices-高考英语-一轮总复习备考方略课件PPT(新教材北师大版)
- 中国传媒大学-新媒体概论(刘行芳)-课件
- 医学放射卫生相关法律法规ppt培训课件
评论
0/150
提交评论