Chat
Danh mục
Mạch Nhiệt độ LM35 - ADC0804 - Hiển thị LCD 16x2

Mạch Nhiệt độ LM35 - ADC0804 - Hiển thị LCD 16x2

Số lượng:
Thêm vào giỏ
Mạch Nhiệt độ LM35 - ADC0804 - Hiển thị LCD 16x2 đã được thêm vào giỏ hàng



Code C:
#include
#include
#include

#define RS P3_5
#define RW P3_6//RW=0 => ghi
#define EN P3_7//RW=1 => doc
//RS=0 => code
//RS=1 => data
#define LCD_PORT P1

#define INTR P3_0
#define RD P3_1
#define WR P3_2


//===========================
void delay_ms(int n)
{
int k,j;
for(k=0;k {
for(j=0;j<500 j="" p=""> }

}
//==========================
void delay_5ms(){
int i,j;
for(i=0;i<250 i="" p="">for(j=0;j<4 j="" p="">}
//===========================
void delay_15ms(){
int i,j;
for(i=0;i<250 i="" p="">for(j=0;j<100 j="" p="">}
//============================
void LCDWriteCmd(unsigned char c) //CT con ghi du lieu len LCD
{
 RS=0;
 RW=0;
 LCD_PORT=c;
 EN=1;
 EN=0;
 delay_5ms();
}
//==============================
void LCDWriteData(unsigned char c) //CT con doc du lieu tu LCD
{
 RS=1;
 RW=0;
 LCD_PORT=c;
 EN=1;
 EN=0;
 delay_5ms();
}
//=============================
void LCDcursorxy(int x, int y)
{
if((x<1 x="">2)&&(y<1 y="">16))
{
x=1;
y=1;
}
if(x == 1)
LCDWriteCmd(0x7F+y);
else
LCDWriteCmd(0xBF+y);
}
//===============================
void LCD_init()  // Khoi tao LCD
{
 delay_15ms();

 LCDWriteCmd(0x38);
 LCDWriteCmd(0x0C);
// LCDWriteCmd(0x06);
 LCDWriteCmd(0x01);  // Xoa man hinh LCD
}
//================================
void LCD_clear()
{
 LCDWriteCmd(0x01);
}
//===============================
void LCD_home()
{
 LCDWriteCmd(0x80);
}
//=============================
void LCD_putstr(unsigned char *s)
{
 while (*s)
 {
  LCDWriteData(*s);
  s++;
 }
}    
//============================
void HienThi_ADC(unsigned char t)
{
 unsigned char v;

 
if(t<10 p="">  { LCDWriteData(t+48);
  }else if(t<100 p="">     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;    //gt la bie^n' cho gia tri 8bit ADC
LCD_init();
LCDWriteCmd(0x83);
LCD_putstr("8051 & ADC");
while(1)  
{

WR=0; //    Bat dau chuyen doi gia tri tu ADC
delay_ms(5); // Tao tre de cap nhat du lieu tu ADC
WR=1; //
while(!INTR);
    RD=0; // Nhan du lieu da duoc chuyen doi
  gt=P2;
  LCDWriteCmd(0x01);
  LCDWriteCmd(0x83);
  LCD_putstr("8051 & ADC");
  LCDWriteCmd(0xC0);
  LCD_putstr("Nhiet do:");
      HienThi_ADC(gt);
  delay_ms(150);

}
}

( Nguyên lý + Code chuẩn) Link Mediafire
Khi nhấn nút "Tải Về Máy", bạn sẽ vào trang quảng cáo, vui lòng chờ 5 giây. Nút  hiện ra ở góc phải phía trên, nhấn vào để đến trang download