温湿度测试系统_传感器课程设计(编辑修改稿)内容摘要:

++) { _nop_()。 _nop_()。 _nop_()。 _nop_()。 } } } /********/ /*检 查 LCD 忙状态 */ /*lcd_busy 为 1 时,忙,等待。 lcd_busy 为 0 时,闲,可写指令与数据 */ /********/ bit lcd_busy() { bit result。 LCD_RS=0。 LCD_RW=1。 LCD_EN=1。 delayNOP()。 result=(bit)(P0amp。 0X80)。 LCD_EN=0。 return(result)。 } /***************************/ /*写指令数据到 LCD*/ /*RS=L,RW=L,E=高脉冲, D0D7=指令码 */ /************/ void lcd_wcmd(uchar cmd) { while(led_busy())。 LCD_RS=0。 LCD_RW=0。 LCD_EN=0。 _nop_()。 _nop_()。 P0=cmd。 delayNOP()。 LCD_EN=0。 } /*********************/ /*写数据到 LCD /*RS=H,RS=L,E=高脉冲, D0D7=数 据。 */ /*********************/ void lcd_wdat(uchar dat) { LCD_RS=1。 LCD_RW=0。 LCD_EN=0。 delayNOP()。 LCD_EN=0。 } /*LCD 初始化 */ /*********************************/ void lcd_init() { delay1(15)。 lcd_wcmd(0x01)。 //清除 LCD 的显示内容 lcd_wcmd(0x38)。 //16*2 显示, 5*7 点阵, 8位数据 delay1(5)。 lcd_wcmd(0x38)。 delay1(5)。 lcd_wcmd(0x38)。 delay1(5)。 lcd_wcmd(0x0c)。 //显示开,关光标 delay1(5)。 lcd_wcmd(0x06)。 //移动光标 delay1(5)。 lcd_wcmd(0x01)。 //清除 LCD 显示内容 delay1(5)。 } /*设定显示位置 */ /*******************************************/ void lcd_pos(uchar pos) { lcd_wcmd(pos|0x80)。 //数据指针 =80+地址变量 } /*自定义字符写入 CGRAM */ /*************************************/ void writeab() { unsigned char i。 lcd_wcmd(0x40)。 for(i=0。 i8。 i++) lcd_wdat(mttab[i])。 } /*us 级延时函数 */ /***************************/ void Delay(unsigned int num) { while(num)。 } /**********************************/ /***********8 温度测量 ****************/ /*******************************/ /*初始化 ds1820 /****************************************/ Init_DDS18B20(void) { DQ=1。 //DQ 复位 Delay(8)。 //稍作延时 DQ=0。 //单片机将 DQ 拉低 Delay(90)。 //精确延时大于 480us DQ=1。 //拉高总线 Delay(100)。 DQ=1。 return(presence)。 //返回信号,0=presence,1=no presence } /*读一个字节 */ /*******************。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。