实物用的单片机是c52rc,程序头文件用51应该没有影响?调节对比度也没有什么变化,有些没有显示但是第一行是黑块,我这里连黑块都没有啊!附上部分程序,请各位大神帮帮我看看是什么问题!#include<reg51.h> #include<intrins.h> #define DATA P1#define u8 unsigned char#define u16 unsigned intsbit RS=P2^0; sbit RW=P2^1; sbit EN=P2^2; sbit DQ=P2^7;sbit k1=P2^4;sbit k2=P2^5;u8 time;u16 x=15;u8 y;int wendu[]={0,1,2,3,4,5,6,7,8,9};void delay1ms();void Delaynms(u8 n);void LCD_Write_Command(u8 cmd);void LCD_Wdat(u8 dat);void Init_LCD();void display(u16 sg);void Init_DS18B20(void);u8 ReadOneChar(void);void WriteOneChar(u8 dat);u16 ReadyReadTemp(void); float tt; u16 Temp; u8 H,L ; Temp1=0x0000;void delay(u16 t){for(;t>0;t--);}void delay1ms(void) { unsigned char a,b; for(b=199;b>0;b--) for(a=1;a>0;a--);}void Delaynms(u8 n) { u8 i; for(i=0;i<n;i++) delay1ms(); }void LCD_Write_Command(u8 cmd){ RS=0; RW=0; EN=0; _nop_(); _nop_(); DATA=cmd; Delaynms(1); EN=1; Delaynms(1); EN=0; }void LCD_Wdat(u8 dat){ RS=1; RW=0; EN=0; DATA=dat; Delaynms(1); EN=1; Delaynms(1); EN=0;}void Init_LCD(){ LCD_Write_Command(0x02);Delaynms(1); LCD_Write_Command(0x06);Delaynms(1); LCD_Write_Command(0x0c);Delaynms(1); LCD_Write_Command(0x38);Delaynms(1); LCD_Write_Command(0x01);Delaynms(1);}
延æ¶åºè¯¥æä¹è®¾ç½®å¢ï¼
追ççè§æ ¼ä¹¦,åå§åçæææ¥éª¤é½è¦æç §è§æ ¼ä¹¦æ¥å,延æ¶å¯ä»¥æç §ä½ çdelayæ¥å
DS18B20+1602温度显示系统的显示问题
就是在用按键设置上下限温度的时候,1602显示不正常。具体是这样的,... 我正在做一个两路DS18B20检测温度,并实时显示在1602上的实验,并设置上下限报警。。温度的显示检测报警都没问题。就是在用按键设置上下限温度的时候,1602显示不正常。具体是这样的,在1602第一行我显示,warming temp,这个没问题,第二行显示:“ ...
51单片机温度传感器ds18b20、lcd1602液晶C程序
int get_temp_1(void);\/\/声明18B20读入温度函数 void delay(unsigned int x);\/\/声明延时函数 void read_ROM(void);\/\/声明18B20读ROM函数 int get_temp_d(void);\/\/声明获取温度函数 void ds_init(void);\/\/声明18B20初始化函数 void ds_getT(void);\/\/声明18B20获得温度显示值函数 \/*定义数码...
51单片机ds18b20小数显示1602
发出存在脉冲。51单片机ds18b20小数显示1602是因为出现了发出存在脉冲导致的。1602液晶模块高精度4位小数显示,温度分辨率0.0625℃,液晶模块第一行显示的是DS18B20的64位激光序列号,液晶模块第二行显示的是实际温度。
单片机ts18b20测温程序 请大神注释程序 最好每一句都注释明白(小白一只...
bit ds18b20_ret();\/\/温度传感器18b20复位子函数声明 void ds18b20_wr_com(uchar com);\/\/向温度传感器18b20写入命令子函数声明 void rd_ram_command();\/\/发送命令子函数(读取18b20的RAM)uint ds18b20_rd_data();\/\/读出温度传感器18b20寄存器的相关数据(主要是温度值)子函数声明 void temperature_conver...
用51单片机和18b20做一个温度计,求一个完整程序,要求用12864显示。
这个是用数码显示的 你自己改改显示就ok了 12864 有带字库的那种,只要输入ASCII码就行了 程序有点乱,你注意换行就行 1.DS18B20基本知识 DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多...
DS18b20测温度用1602显示为什么出现85度
这是DS18B20的问题,DS18B20的温度初始值就是85度,所以在不进行数据更新时会显示85度。仔细阅读数据手册,你能学到很多东西。希望你能成功。
用1602LCD与DS18B20设计的温度报警器的源程序
uchar Display_Digit[]={0,0,0,0};\/\/待显示的各温度数位 bit DS18B20_IS_OK=1;\/\/传感器正常标志 \/ 程序名称:延时子程序 \/ void Delay(uint t){ for(;t>0;t--);} \/ 程序名称:初始化DS18B20;可参考DS18B20的初始化时序图读懂程序 \/ uchar Init_DS18B20(){ uchar status;DQ=1;_nop_(...
数码管 ds18b20温度显示
ds18b20=1;} date>>=1; \/\/右移一位 } } 应该是if((dat&0x01)==0x01)这里多了一个&号,导致结果错误。3。我增加了用1602显示的模块,删除了用液晶显示的模块。\/ 以下是程序,并附上仿真图一张 \/ include <reg52.h> include <intrins.h> define uchar unsigned char define uint ...
...单片机和DS18B20温度传感器、LCD1602液晶显示的数字温度程序_百度...
\/\/以下三个是定义LCD的引脚 sbit lcden=P2^2;sbit lcdwrite=P2^1;sbit lcdrs=P2^0;char wendu;\/\/延时程序 void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);} \/\/lcd的写指令 void write_com(uchar com){ lcdrs=0;lcden=0;P0=com;delay(5);lcden=...
为什么单片机控制18B20测温初始总是显示85度然后显示测量值
*The power-on reset value of the temperature register is +85°C,这个是DS18B20数据手册里的表述,也就是说,DS18B20在上电复位时,其温度寄存器里的初始值是85°C。所以你的问题就出来了。如果你不想显示这个85°C,你可以延迟一段时间,比如0.5S后再提取这个DS18B20转换的温度显示即可。 本回答由网友推荐 举报...