⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1602.c.bak

📁 电源性能测试,使用AT89S52+AT24C02+LCD1602,编译通过,有掉电保护功能
💻 BAK
字号:
#include <at89x51.h>
#include <wendu.h>
#include <daojishi.h>
sbit LcdRs		= P2^0;
sbit LcdRw		= P2^1;
sbit LcdEn  	= P2^2;
 #define  DBPort   P0
	unsigned char code tab[]={'0','1','2','3','4','5','6','7','8','9'}; //1602液晶显示代码表
//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
	LcdRs=0;
	LcdRw=1;	//_nop_();
	LcdEn=1;	//_nop_();

	LcdEn=0;
	return DBPort;		
}

//向LCD写入命令或数据************************************************************
#define LCD_COMMAND			0      // Command
#define LCD_DATA			1      // Data
void LCD_Write(bit style, unsigned char input)
{
	LcdEn=0;
	LcdRs=style;
	LcdRw=0;		//_nop_();
	DBPort=input;	//_nop_();//注意顺序
	LcdEn=1;		//_nop_();//注意顺序
	LcdEn=0;		//_nop_();
	LCD_Wait();	
}

void LCD_Initial()            //初始化LCD************************
{
	LcdEn=0;
	LCD_Write(LCD_COMMAND,0x38);           //8位数据端口,2行显示,5*7点阵
	LCD_Write(LCD_COMMAND,0x38);
	LCD_Write(LCD_COMMAND,0x0c);    //开启显示, 无光标
	LCD_Write(LCD_COMMAND,0x01);   //清屏
	LCD_Write(LCD_COMMAND,0x06);       //AC递增, 画面不动
}
void GotoXY(unsigned char x, unsigned char y)
{
	if(y==0)
		LCD_Write(LCD_COMMAND,0x80|x);
	if(y==1)
		LCD_Write(LCD_COMMAND,0x80|(x-0x40));
}
void Print(unsigned char *str)
{
	while(*str!='\0')
	{
		LCD_Write(LCD_DATA,*str);
		str++;
	}
}
unsigned char TempBuffer[10];
void IntToStr( unsigned char *str, unsigned char n) 
{
	unsigned char a[5]; char i, j; 
    daojishi();                            	
	a[0]=buffer[0] ;        //取得整数值到数组         	
	a[1]=buffer[1]  ;                                    	
	a[2]=':' ;                                      	
	a[3]=buffer[2] ;                                       	
	a[4]=buffer[3] ;                                        	
                                                      
	for(i=0; i<5; i++)         //转成ASCII码              	
	{if (i!=2)	a[i]=a[i]+'0'; }                                   	
	for(i=0; a[i]=='0' && i<=3; i++);                     	
	for(j=5-n; j<i; j++)       //填充空格                 	
		{ *str=' ';  str++; }                             	
	for(; i<5; i++)                                       	
		{ *str=a[i]; str++; }  //加入有效的数字           	
	*str='\0'; 
} 

void Delay1ms(unsigned int count)
{
	unsigned int i,j;
	for(i=0;i<count;i++)
	for(j=0;j<120;j++);
}
unsigned char  tep[10];
void charToStr( unsigned char *str, unsigned char n) 
{
	unsigned char a[5]; char i, j,t; 
       
       t= ReadTemperature() ;
      // if(sflag==1)            	
	a[0]=' ';        //取得整数值到数组         	
	a[1]=(t%100)/10;                                    	
	a[2]=(t%100)%10;                                      	
	a[3]=0xdf;                                       	
	a[4]='c';                                        	
                                                      
	for(i=1; i<3; i++)         //转成ASCII码              	
		a[i]=a[i]+'0';                                    	
	for(i=0; a[i]=='0' && i<=3; i++);                     	
	for(j=5-n; j<i; j++)       //填充空格                 	
		{ *str=' ';  str++; }                             	
	for(; i<5; i++)                                       	
		{ *str=a[i]; str++; }  //加入有效的数字           	
	*str='\0'; 
}

main()
{



		unsigned int Count = 0;
		LCD_Initial();
		GotoXY(0,0);
		Print("temp:           ");
		GotoXY(0,1);
		Print("time:           ");
			while(1)
	
		{	IntToStr(&TempBuffer[0],5);
			GotoXY(8,1);
			Print(&TempBuffer[0]);
			Delay1ms(100);

           charToStr(&tep[0],5);
			GotoXY(8,0);
			Print(&tep[0]);
			Delay1ms(100);


		
       	}

	
}






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -