Sie sind auf Seite 1von 3

#include <AT89X51.

H>
#include <stdio.h>
#include<string.h>
/*FOR LCD CONTROL*/
#define RS P0_4
#define RW P0_5
#define EN P0_6
#define LCD_PORT P1
/*FOR ADC CONTROL*/
#define INTR P3_4
#define RD P3_2
#define WR P3_3

//===========================
void delay_ms(int n)
{
int k,j;
for(k=0;k<n;k++)
{
for(j=0;j<500;j++);
}
}
//==========================
void delay_5ms()
{
int i,j;
for(i=0;i<250;i++)
{
for(j=0;j<4;j++);
}
}
//===========================
void delay_15ms(){
int i,j;
for(i=0;i<250;i++)
for(j=0;j<100;j++){}
}
//============================
void LCDWriteCmd(unsigned char c)
{
RS=0;
RW=0;
LCD_PORT=c;
EN=1;
EN=0;
delay_5ms();
}
//==============================
void LCDWriteData(unsigned char c)
{
RS=1;
RW=0;
LCD_PORT=c;
EN=1;
EN=0;
delay_5ms();
}
void LCD_init()
{
delay_15ms();
LCDWriteCmd(0x38);
LCDWriteCmd(0x0C);
LCDWriteCmd(0x06);
LCDWriteCmd(0x01);
}
//================================
void LCD_clear()
{
LCDWriteCmd(0x01);
}
//===============================
void LCD_home()
{
LCDWriteCmd(0x80);
}
//=============================
void LCD_putstr(unsigned char *s)
{
while (*s)
{
LCDWriteData(*s);
s++;
}
}
//============================
void adcconv(unsigned char t)
{
unsigned char v;

if(t<10)
{
LCDWriteData(t+48);
}
else if(t<100)
{
LCDWriteData(t/10+48);
LCDWriteData(t%10+48);
}else{
v=t/10;
LCDWriteData(v/10+48);
LCDWriteData(v%10+48);
LCDWriteData(t%10+48);
}
}
//==========================================

void main (void)


{
unsigned char gt=0;
P3_0=0;
P3_1=0;
P3_5=0;
P3_6=0;
P3_7=0;
while(1)
{
LCD_init();
WR=0;
delay_ms(5);
WR=1;
while(!INTR);
RD=0;
gt=P2;
LCDWriteCmd(0x01);
LCDWriteCmd(0x80);
LCD_putstr("8051 ADC LM35");
LCDWriteCmd(0xC0);
LCD_putstr("TEMPERATURE:");
adcconv(gt);
delay_ms(150);
}
}

Das könnte Ihnen auch gefallen