《水温控制系统》1997电子设计大赛(第三届)C组.docxVIP

  • 6
  • 0
  • 约3.86千字
  • 约 10页
  • 2019-09-20 发布于江苏
  • 举报

《水温控制系统》1997电子设计大赛(第三届)C组.docx

《水温控制系统》1997电子设计大赛(第三届)C组 一、任务 设计并制作一个水温自动控制系统,控制对象为1升净水,容器为搪瓷器皿。水温可以在一定范围内由人工设定,并能在环境温度降低时实现自动控制,以保持设定的温度基本不变。 二、要求 1.基本要求 (1)温度设定范围为40~90℃,最小区分度为1℃,标定温度≤1℃。 (2)在全量程内任意设定一个温度值(起始温度+-20),控制系统可以实现该给定温度的恒值自动控制。 (3)显示水的实际温度,精确到0.1(误差0.5)。 2.发挥部分 (1)采用适当的控制方法,当设定温度突变(由40℃提高到60℃)时,减小系统的调节时间和超调量。 (2)温度控制的静态误差≤0.2℃。 (3)在设定温度发生突变(由40℃提高到60℃)时,用液晶屏幕显示水温随时间变化的曲线。 答案 单片机与DS18B20并用LCD1602显示 c程序 sbit DQ=P1^4;//ds18b20与单片机连接口 sbit RS=P1^3; sbit RW=P1^2; sbit EN=P1^1; 还有我的LCD的16引脚接到了单片机上的P1.0上,就是要用软件使LCD亮, 硬件已经做出来了,所以改不了.(最好附上详细的解释,谢谢了) 提问者: weilynare - 三级最佳答案#includereg51.h #define uchar unsigned char #define uint unsigned int sbit BLK=P1^0; sbit DQ=P1^4; sbit RS=P1^3; sbit RW=P1^2; sbit EN=P1^1; unsigned char code str1[]={temperature: }; unsigned char code str2[]={ }; uchar data disdata[5]; uint tvalue;//温度值 uchar tflag;//温度正负标志 /*************************lcd1602程序**************************/ void delay1ms(unsigned int ms)//延时1毫秒(不够精确的) { unsigned int i,j; for(i=0;ims;i++) for(j=0;j100;j++); } void wr_com(unsigned char com)//写指令// { delay1ms(1); RS=0; RW=0; EN=0; P0=com; delay1ms(1); EN=1; delay1ms(1); EN=0; } void wr_dat(unsigned char dat)//写数据// { delay1ms(1);; RS=1; RW=0; EN=0; P0=dat; delay1ms(1); EN=1; delay1ms(1); EN=0; } void lcd_init()//初始化设置// { BLK=0; delay1ms(15); wr_com(0x38); delay1ms(5); wr_com(0x08);delay1ms(5); wr_com(0x01);delay1ms(5); wr_com(0x06);delay1ms(5); wr_com(0x0c);delay1ms(5); } void display(unsigned char *p)//显示// { while(*p!=\0) { wr_dat(*p); p++; delay1ms(1); } } init_play()//初始化显示 { lcd_init(); wr_com(0x80); display(str1); wr_com(0xc0); display(str2); } /******************************ds1820程序***************************************/ void delay_18B20(unsigned int i)//延时1微秒 { while(i--); } void ds1820rst()/*ds1820复位*/ { unsigned char x=0; DQ = 1; //DQ复位 delay_18B20(4); //延时 DQ = 0; //DQ拉低 delay_18B20(100);

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档