欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
LCD1602顯示問(wèn)題 求指導(dǎo)
[打印本頁(yè)]
作者:
HQYC51
時(shí)間:
2020-12-15 22:15
標(biāo)題:
LCD1602顯示問(wèn)題 求指導(dǎo)
我真的是要哭了,為啥這個(gè)會(huì)出現(xiàn)這種情況呢,代碼如下
C1%9T1CH79JXBGROY5VSX@G.png
(12.2 KB, 下載次數(shù): 19)
下載附件
2020-12-15 22:14 上傳
#include "stc12c5a60s2.h"
#include <intrins.h>
#include <string.h>
#include <stdio.h>
#define uchar unsigned char
#define uint unsigned int
sbit RS= P2^7 ; //液晶顯示引腳定義
sbit RW= P2^6 ;
sbit EN= P2^5 ;
uint t=0,dian=0;
uchar LCD_LINE_ONE[16]={"TP1: "}; //定義顯示屏幕
uchar LCD_LINE_TWO[16]={"TP2: "};
int Tm;
int fushu=0 ;
sbit DQ= P1^4;
static unsigned char get_serial[]={ //獲取的八個(gè)DS18B20內(nèi)部RAM64位序列號(hào)
1, 0,0,12, 135, 85, 127, 40,
149, 0,0,12, 134, 218, 150, 40
};
void delay( ms ) //用于液晶顯示的延時(shí)函數(shù)
{
int i ;
while(ms--)
{
for(i=0 ;i<5 ;i++ ) ;
}
}
uchar Read_LCD_State() //讀取液晶顯示的狀態(tài)
{
uchar state;
RS=0;RW=1;EN=1;delay(1);
state=P0;
EN = 0;delay(1);
return state;
}
void LCD_Busy_Wait() //如果忙則等待函數(shù)
{
while((Read_LCD_State()&0x80)==0x80);
delay(5);
}
void Write_LCD_Zhilin(uchar zl) //液晶顯示寫(xiě)指令函數(shù)
{
LCD_Busy_Wait();
RS=0;RW=0;
EN=0;
P0=zl;
EN=1;
delay(1);
EN=0;
}
void Write_LCD_shuju(uchar date) //液晶顯示寫(xiě)數(shù)據(jù)函數(shù)
{
LCD_Busy_Wait();
RS=1;RW=0;
EN=0;
P0=date;
EN=1;
delay(1);
EN=0;
}
void LCD_INIT() //液晶顯示初始化
{
Write_LCD_Zhilin(0x38); // 顯示模式設(shè)置
delay(1);
Write_LCD_Zhilin(0x01); // 顯示清屏
delay(1);
Write_LCD_Zhilin(0x06); // 光標(biāo)移動(dòng)設(shè)置
delay(1);
Write_LCD_Zhilin(0x0c); // 開(kāi)及光標(biāo)設(shè)置
delay(1);
}
void Display_LCD_String(uchar p,uchar *s) //液晶顯示寫(xiě)入函數(shù)
{
uchar i;
Write_LCD_Zhilin(p|0x80) ; //寫(xiě)地址高位為一
//Write_LCD_Zhilin(0x40|0x80) ;
for(i=0;i<16;i++)
{
Write_LCD_shuju(s[i]);
delay(1);
}
}
/***************************************************************************************/
void delays(int us) //用于DS18B20的延時(shí)函數(shù)
{ int s;
for ( s=0; s<us; s++);
}
void rst(void) //DS18B20初始化
{
DQ = 1;
delays(20);
DQ = 0;
delays(300); //精確延時(shí) 480~960us
DQ = 1;
delays(80);
}
void write(unsigned char ku) //DS18B20寫(xiě)函數(shù)
{
int i=0;
for (i=0;i<8;i++)
{
DQ=0;
DQ =ku&0x01;
delays(30);
DQ=1;
ku>>=1;
}
}
void match_rom(unsigned char *rom) //DS18B20匹配ROM函數(shù)
{
unsigned char i;
rst(); //初始化
write(0x55); //匹配ROM
for(i=8;i>0;i--)
{
write(*(rom+i-1));
}
}
unsigned int read(void) //DS18B20讀函數(shù),每次讀16位
{
int i=0;
unsigned int u=0;
for (i=0;i<16;i++)
{
DQ=0;
u>>=1;
DQ=1;
if(DQ) u|=0x8000;
delays(40);
}
return (u);
}
int read0(unsigned char *seria) //讀取對(duì)應(yīng)溫度值并轉(zhuǎn)換函數(shù)
{
int temperature ;
unsigned int tp;
unsigned int lsb;
rst(); //初始化
write(0xCC); //跳過(guò)RAM
write(0x44); //溫度轉(zhuǎn)換
rst(); //再次初始化
write(0xCC);
match_rom(seria); //匹配ROM函數(shù)調(diào)用
write(0xBE); //讀取存儲(chǔ)器指令
tp=read(); //讀取溫度值
if((tp&0xf800)==0xf800) //判斷正負(fù)數(shù)
{
fushu=1 ;
tp=~tp+1 ;
lsb=(unsigned int)(tp*6.25);
dian=lsb%100; //取小數(shù)部分
temperature=lsb/100;
}
else
{
fushu=0;
lsb=(unsigned int)(tp*6.25);
dian=lsb%100;
temperature=lsb/100;
}
return(temperature);
}
/*****************************************************************************************/
void main()
{
uint i ;
LCD_INIT();
EA=0 ; //使用DS18B20禁止任何中斷
while(1)
{
for(i=0;i<2;i++)
{
Tm=read0(get_serial+i*8);
if(i==0) //判斷是第幾個(gè)的數(shù)據(jù)
{
if(fushu==0) //判斷是否加負(fù)號(hào)
sprintf(LCD_LINE_ONE+5," %d", Tm);
if(fushu==1)
sprintf(LCD_LINE_ONE+5,"-%d", Tm);
sprintf(LCD_LINE_ONE+10,".%d",dian); //加入小數(shù)部分
Display_LCD_String(0x00,LCD_LINE_ONE);
}
if(i==1)
{
if(fushu==0)
sprintf(LCD_LINE_TWO+5," %d", Tm);
if(fushu==1)
sprintf(LCD_LINE_TWO+5,"-%d", Tm);
sprintf(LCD_LINE_TWO+10,".%d",dian);
Display_LCD_String(0x40,LCD_LINE_TWO);
}
}
}
}
復(fù)制代碼
作者:
wwh2382
時(shí)間:
2020-12-16 10:58
能顯示說(shuō)明lcd部分沒(méi)有大問(wèn)題。顯示不全應(yīng)該是讀取溫度數(shù)據(jù)有問(wèn)題。
作者:
小牢頭
時(shí)間:
2020-12-16 13:41
這程序根本就沒(méi)有將溫度值送去顯示,當(dāng)然就不斷顯示那固定的內(nèi)容
作者:
抬頭紋的傳奇
時(shí)間:
2020-12-16 13:54
要讀取的溫度值沒(méi)送到1602里
作者:
HQYC51
時(shí)間:
2020-12-16 21:21
已經(jīng)解決了,是時(shí)序和延時(shí)的問(wèn)題
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1