带显示报警的单片机温度C语言控制程序.doc

带显示报警的单片机温度C语言控制程序.doc

1.1602液晶显示程序 #include lcd1602.h uchar digit[] = 0123456789; //使用数据的数组; /***************************** 以下是对液晶的操作,分为测忙,写状态, 写地址和写数据这几步 ******************************/ bit LCD_BusyTest(void) { bit result; RS=0; RW=1; EN=1; _nop_(); _nop_(); result=BF; EN=0; return result; } void LCD_WriteInstruction(uchar dat) { while(LCD_BusyTest()) ; RS=0; RW=0; EN=0; _nop_(); _nop_(); DATA_PORT=dat; _nop_(); _nop_(); EN=1; _nop_(); _nop_(); EN=0; } void LCD_WriteAddress(uchar x) { LCD_WriteInstruction(x|0x80); } void LCD_WriteDatas(uchar dat) { while(LCD_BusyTest()) ; RS=1; RW=0; EN=0; _nop_(); _nop_(); DATA_PORT=dat; _nop_(); _nop_(); EN=1; _nop_(); _nop_(); EN=0; _nop_(); } void LCD_Init(void) { Delay_ms(15); LCD_WriteInstruction(0x38); Delay_ms(5); LCD_WriteInstruction(0x38); Delay_ms(5); LCD_WriteInstruction(0x38); Delay_ms(5); LCD_WriteInstruction(0x0c); Delay_ms(5); LCD_WriteInstruction(0x06); Delay_ms(5); LCD_WriteInstruction(0x01); Delay_ms(5); } void Display_NowTemp(uchar addr,uint dat ) //在指定位置显示出温度数据,需要占领14位空间大小; { uchar n[4] = {0,0,0,0}; //温度数据的缓冲变量; n[0] = dat/1000; n[1] = dat%1000/100; n[2] = dat%100/10; n[3] = dat%10; LCD_WriteAddress(addr); //写入地址数据; LCD_WriteDatas(W); //显示WEN DU: LCD_WriteDatas(E); LCD_WriteDatas(N); LCD_WriteDatas( ); LCD_WriteDatas(D); LCD_WriteDatas(U); LCD_WriteDatas(:); LCD_WriteDatas(digit[n[0]]); //显示十位; LCD_WriteDatas(digit[n[1]]); //显示个位; LCD_WriteDatas(.); //显示小数点; LCD_WriteDatas(digit[n[2]]); //显示小数点第一位; LCD_WriteDatas(digit[n[3]]); //显示小数点第二位; LCD_WriteDatas(0XDF); //显示°; LCD_WriteDatas(C); //显示C; Delay_ms(1); } 2.DS18B20驱动程序 #include ds18b20.h /**************************************************************** 函数名称:bit DS18B20_Reset(void) 函数功能:复位DS18B20,为DS1820产生一个复位信号,为对其操作做好准备; 输入参数:无 输出参数:复位状态,返回0成功;返回1失败; ****************************************************

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档