欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    中国计量学院检测技术课程设计DS18B20程序.docx

    • 资源ID:18360349       资源大小:20.19KB        全文页数:25页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    中国计量学院检测技术课程设计DS18B20程序.docx

    1、中国计量学院检测技术课程设计DS18B20程序/*copyright (c) 计量 2014* 文件名:li.c * 平台:ATMEGA16开发板* 实验名称:检测技术课程设计* 介绍: 组成:液晶1602驱动;lcd1602.h 键盘驱动;ds18b20.h 温度传感器DS18B20驱动;key.h 功能:第一页第一行显示当前温度状态,第一页第二行显示当前温度 第二页第一行显示温度报警上限,第二页第一行显示温度报警下限 按键2进行第一页和第二页的切换 按键3在设定上下限温度时的切换 按键4可根据按键3增加选定的温度上下限 按键5可根据按键3减小选定的温度上下限 * 作者:李超 QQ:6706

    2、56469*/*-#include-*/#include#include#includelcd1602.h#includeds18b20.h#includekey.h/*-#define-*/*-函数声明-*/void Atmeg16_PortInit(void);/* 名称:void main(void)* 功能:主程序* 输入:无* 输出:无* 备注: */void main(void) unsigned int Temp; unsigned char DisFlag=0,SetFlag=0; unsigned char i,Temp1,Temp2,dian; unsigned char

    3、TemperatureH = 30,TemperatureL = 25; /设定温度报警上下限初值 Atmeg16_PortInit(); /引脚初始化 CLI(); /关中断 LCD_Init(); /液晶初始化 while(1) /大循环 Temp = DS18B20_ReadTemperature(); /把读出的温度写入Temp Temp1 = Temp&0x0f; /把小数部分读出值写入Temp1 Temp2 = (Temp4); /把整数部分读出值写入Temp2 dian = Temp1*625/1000; /小数部分数据处理,保留一位小数 if(Key_Scan(KEY_2)=K

    4、EY_ON) /按键检测,KEY_2 DisFlag = DisFlag; /显示页面切换 LCD_Clean(); /液晶清屏 if(DisFlag=0) /显示标志位为0 Write_X_Y(1,0); Write_String(Temp is ); Write_XXnum(Temp2); Write_Date(.); Write_Date(dian+0); Write_Date( ); Write_Date(C); if(Temp2 = TemperatureH) /如果当前温度超过设定温度上限 Write_X_Y(0,0); Write_String(TempStatus HIGN!)

    5、; else if(Temp2 0;i-) /延时,设定采样频率 DelayUS(500); /* 名称:void Atmeg16_PortInit(void)* 功能:AVR单片机引脚初始化* 输入:无* 输出:无* 备注:DDxn用来选择引脚的方向。DDxn为1“时,Pxn配置为输出,否则配置为输入 引脚配置为输入时,若PORTxn为1“,上拉电阻将使能 引脚配置为输出时,若PORTxn为1“,引脚输出高电平(1“),否则输出低电平(“0“)。 */void Atmeg16_PortInit(void) PORTA=0xFF; /初始都为高电平 DDRA=0xFF; /端口使能,输出状态

    6、PORTB=0xFB; DDRB=0xFB; PORTC=0xFF; DDRC=0xFF; PORTD=0xFF; DDRD=0x02; /TXD为输出,其余均为输入/* (C) COPYRIGHT 2014 计量*END OF FILE*/*copyright (c) 计量 2014 * 文件名:lcd1602.h * 平台:ATMEGA16开发板* 实验名称:检测技术课程设计* 介绍:液晶引脚:DatePort:PC0-PC7 PA5:LCD_RS; PA6:LCD_RW; PA7:LCD_EN;* 作者:李超 QQ:670656469*/* 控制线操作 PORTA &= 0x20;/ L

    7、CD_RS = 0 PORTA |= 0x20;/ LCD_RS = 1 PORTA $= 0x40;/ LCD_RW = 0 PORTA |= 0x40;/ LCD_RW = 1 PORTA &= 0x80;/ LCD_EN = 0 PORTA |= 0x80;/ LCD_EN = 1*/#define DataPort PORTC #define BUSY 0x80/* 名称:void DelayUS(unsigned int nTime)* 功能:延时函数* 输入:nTime* 输出:无* 备注:*/void DelayUS(unsigned int nTime) while(nTime

    8、-);/* 名称:unsigned char Busy_Check(void)* 功能:判忙函数* 输入:无* 输出:* 备注: */unsigned char Busy_Check(void) unsigned char LCD_Status; DDRC = 0x00;/ PINC设置为输入模式 PORTA &= 0x20;/ LCD_RS = 0; PORTA |= 0x40;/ LCD_RW = 1; PORTA |= 0x80;/ LCD_EN = 1; DelayUS(50); LCD_Status = PINC & BUSY; PORTA &= 0x80;/ LCD_EN = 0;

    9、 return LCD_Status;/while(Busy_Check() = BUSY);/* 名称:void Write_CMD(unsigned char cmd)* 功能:写指令* 输入:* 输出:* 备注:*/void Write_CMD(unsigned char cmd) while(Busy_Check() = BUSY); DDRC = 0Xff;/ PINC设置为输出模式 PORTA &= 0x20;/ LCD_RS = 0 PORTA &= 0x40;/ LCD_RW = 0 PORTA &= 0x80;/ LCD_EN = 0 DataPort = cmd; PORT

    10、A |= 0x80;/ LCD_EN = 1 DelayUS(50); PORTA &= 0x80;/ LCD_EN = 0 /* 名称:void Write_Date(unsigned char date)* 功能:写数据* 输入:* 输出:* 备注:*/void Write_Date(unsigned char date) while(Busy_Check() = BUSY); DDRC = 0Xff;/ PINC设置为输出模式 PORTA |= 0x20;/ LCD_RS = 1 PORTA &= 0x40;/ LCD_RW = 0 PORTA &= 0x80;/ LCD_EN = 0

    11、DataPort = date; PORTA |= 0x80;/ LCD_EN = 1 DelayUS(50); PORTA &= 0x80;/ LCD_EN = 0 /* 名称:void LCD_Clean(void)* 功能:清屏函数* 输入:* 输出:* 备注:*/void LCD_Clean(void) Write_CMD(0x01);/* 名称:void Write_X_Y(unsigned char X,unsigned char Y)* 功能:设置LCD指针的坐标* 输入:X(0-1),Y(0-15)* 输出:无* 备注:*/void Write_X_Y(unsigned cha

    12、r X,unsigned char Y) if(X = 0) Write_CMD(0x80+Y); if(X = 1) Write_CMD(0x80+0x40+Y);/* 名称:void Write_String(char *pchar)* 功能:输出字符串* 输入:* 输出:* 备注:*/void Write_String(char *pchar) unsigned int i; for(i=0;pchari!=0;i+) Write_Date(pchari); /* 名称:void write_XXnum(unsigned char XXnum) * 功能:写入一个两位数 * 输入:一个两

    13、位数 * 输出: /*/void Write_XXnum(unsigned char XXnum) unsigned char ge,shi; ge = XXnum%10; shi = XXnum%100/10; Write_Date(shi+0); Write_Date(ge+0);/* 名称:void LCD_init(void)* 功能:液晶初始化* 输入:* 输出:* 备注:*/void LCD_Init(void) DelayUS(15); Write_CMD(0x38); /显示模式设置 :16*2显示,5*7点阵。8位数据口 DelayUS(1); Write_CMD(0x06)

    14、; /显示光标移动位置 :整屏不动,字符后移 DelayUS(1); Write_CMD(0x0c); /显示开及光标设置 :显示开,关光标 DelayUS(1); Write_CMD(0x01); /显示清屏/* (C) COPYRIGHT 2014 计量*END OF FILE*/*copyright (c) 计量 2014* 文件名:key.h * 平台:ATMEGA16开发板* 实验名称:检测技术课程设计* 介绍:* 作者:李超 QQ:670656469*/*-#define-*/#define KEY_ON 0#define KEY_OFF 1#define KEY_2 1#defi

    15、ne KEY_3 2#define KEY_4 3#define KEY_5 4/if(PIND&0x04) = 0) KEY_2/if(PIND&0x08) = 0) KEY_3/if(PINB&0x04) = 0) KEY_4/if(PIND&0x40) = 0) KEY_5/* 名称:void Delay_Key(unsigned int nTime)* 功能:延时函数* 输入:* 输出:* 备注:延时US*/void Delay_Key(unsigned int nTime) while(nTime-);/* 名称:unsigned char Key_Scan(unsigned cha

    16、r key)* 功能:按键检测* 输入:KEY_2-KEY_5* 输出:KEY_ON(0)/KEY_OFF(1)* 备注:有松手检测,松手后返回,不松手则循环等待*/unsigned char Key_Scan(unsigned char key) switch(key) /输入按键的编号 case 1: if(PIND&0x04) = 0) /按键2 Delay_Key(5000); /延时消抖 if(PIND&0x04) = 0) /确认按键按下 while(PIND&0x04) = 0); /等待松手 return KEY_ON; /返回KEY_ON else return KEY_OFF; break; case 2: /按键3 if(PIND&0x08) = 0) Delay_Key(5000); /延时消抖 if(PIND&0x08) = 0) /确认按键按下 while(PIND&0x08) = 0); /等待松手 return K


    注意事项

    本文(中国计量学院检测技术课程设计DS18B20程序.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开