我在用lcd读取ds18b20的序列号 改变了lcd的管脚 我的序列号就读不出来了 求大神帮忙解答/****************************************Copyright (c)**************************************************
********************************************************************************************************/
#include "LPC21xx.H"
#define uint unsigned int //数据类型定义
#define uchar unsigned char
#define LCM_RS (1<<24)
#define LCM_RW (1<<25)
#define LCM_E (1<<26)
#define DQ (1<<31) //定义DS18B20
通信端口
unsigned char ***flag=0; //温度正负标志
unsigned char err; //DS18B20检测标志
unsigned char Terr[]={"T-Err"};
unsigned char temp_value,temp_value2; //温度值
unsigned char save_number[8];
#define nop() {__asm("nop");}
/****************************************************************************
* 名称:ChkBusy()
* 功能:检查总线是否忙
****************************************************************************/
void ChkBusy()
{
int status;
IO1DIR=0x7000000; //0111 0000 0000 0X00等于输人
do
{
IO1CLR|=LCM_RS;
IO1SET|=LCM_RW;
IO1SET|=LCM_E;
nop();nop();nop();nop();
status = IO1PIN;
IO1CLR |= LCM_E;
} while (status & 0x800000);
IO1DIR=0x7ff0000; //0X00等于输出
}
/****************************************************************************
* 名称:WC_Lcd()
* 功能:写函数
****************************************************************************/
void WC_Lcd(unsigned char dat)
{
ChkBusy();
IO1CLR|=LCM_RS; //全部清零
IO1CLR|=LCM_RW;
IO1CLR=0xff0000; //先清零
IO1SET|=(dat<<16); //再送数
nop();nop();nop();nop();
IO1SET|=LCM_E;
IO1CLR|=LCM_E;
}
/****************************************************************************
* 名称:WD_Lcd()
* 功能:写数据函数
****************************************************************************/
void WD_Lcd(unsigned char dat)
{
ChkBusy();
IO1SET|=LCM_RS;
IO1CLR|=LCM_RW;
IO1CLR=0xff0000; //先清零
IO1SET|=(dat<<16); //再送数
nop();nop();nop();nop();
IO1SET|=LCM_E;
IO1CLR|=LCM_E;
}
/*****************************************************
函 数 名:LCD_Mychar()
功 能:自定义字符--CGRAM
说 明:LCD1602字符库中没有温度符号,自定义温度符号
******************************************************/
void LCD_Mychar(void)
{
//---------自定义字符代码--01H-------温度符号------------
WC_Lcd(0x48); //第1行
WD_Lcd(0x02); //
WC_Lcd(0x49); //第2行
WD_Lcd(0x05); //
WC_Lcd(0x4A); //第3行 1------**--
WD_Lcd(0x05); // 2----**--**
WC_Lcd(0x4B); //第4行 3----**--**
WD_Lcd(0x02); // 4------**--
WC_Lcd(0x4C); //第5行 5----------
WD_Lcd(0x00); // 6----------
WC_Lcd(0x4D); //第6行 7----------
WD_Lcd(0x00); // 8----------
WC_Lcd(0x4E); //第7行
WD_Lcd(0x00); //
WC_Lcd(0x4F); //第8行
WD_Lcd(0x00); //
}
/****************************************************************************
* 名称:lcd_init()
* 功能:lcd初始化函数
****************************************************************************/
void lcd_init(void)
{
WC_Lcd(0x38);
WC_Lcd(0x06);
WC_Lcd(0x0c);
LCD_Mychar(); // 写入自定义字符,代码01
}
/****************************************************************************
* 函数名称:DisText()
* 函数功能:显示文本
* 入口参数:addr 1602 DDRAM地址,*p 显示文本数据指针
****************************************************************************/
void DisText(unsigned char addr,unsigned char *p){
WC_Lcd(addr);
while(*p !='