📄 lcd.c
字号:
#include "AT89X52.H"
#include "LCD.h"
#define LCD_DELAY 30 //CHU Y KHONG DC DE LCD_delay re nham voi han LCD_delay
#define LCD_en P0_3
#define LCD_rs P0_2
void delayms2(unsigned char time)
{
unsigned int j;
unsigned char i;
for (i=0;i<time;i++)
for (j=0;j<1200;j++);
}
//Ham tre cho LCD
void LCD_delay()
{
unsigned char n;
for(n=0;n<LCD_DELAY;n++);
}
//Ham cho phep hien thi len LCD
void LCD_enable()
{
LCD_en = 0;
LCD_delay();
LCD_en = 1;
LCD_delay();
LCD_en = 0;
}
//ham xoa man hinh
void LCD_clr()
{
LCD_command(0x01);
delayms2(5);
}
//ham dua lenh len lcd
void LCD_command(unsigned char command)
{
LCD_rs = 0;
P0 = (P0 & 0x0F)|((command) & 0xF0);// P0 = (P0 & 0xF0)|((command>>4) & 0x0F);
LCD_enable();
P0 = (P0 & 0x0F)|(command<<4 & 0xF0);//P0 = (P0 & 0xF0)|(command & 0x0F);
LCD_enable();
LCD_delay();
}
//Ham viet ky tu len lcd
void LCD_putc(unsigned char ascii)
{
LCD_rs = 1;
P0 = (P0 & 0x0F)|((ascii) & 0xF0);//P0 = (P0 & 0xF0)|((ascii>>4) & 0x0F);
LCD_enable();
P0 = (P0 & 0x0F)|(ascii<<4 & 0xF0);//P0 = (P0 & 0xF0)|(ascii & 0x0F);
LCD_enable();
LCD_delay();
}
//Ham viet xau ky tu len lcd
void LCD_puts(unsigned char *lcd_string)
{
while (*lcd_string)
{
LCD_putc(*lcd_string++);
}
}
//Ham khoi tao LCD
void LCD_init()
{
LCD_command(0x28); //dung 4 duong du lieu,hien thi 2 dong do phan giai 5x7
delayms2(1);
LCD_command(0x0C); //che do hien thi ko gach chan,con tro ko nhap nhay
delayms2(1);
LCD_command(0x06);
delayms2(1);
LCD_command(0x01); //Lenh xoa man hinh
delayms2(1);
}
//Ham dat con tro LCD vao vi tri mong muon
void LCD_row(unsigned char hang,unsigned char cot)
{
char hangcot=0;
if(hang==1)
{
hangcot=0x80|cot;
LCD_command(hangcot);
}
if(hang==2)
{
hangcot=0xc0|cot;
LCD_command(hangcot);
}
}
//ham hien thi mot so integer len lcd
/*void display_int(int number)
{
int n1,n2,n3,n4,n22,n11;
n1=number/1000; //chia lay phan nguyen
n11=number%1000; //chhia lay phan du
n2=n11/100;
n22=n11%100;
n3=n22/10;
n4=n22%10;
if((n1==0)&&(n2==0)&&(n3==0))
LCD_putc(n4+48);
else if((n1==0)&&(n2==0))
{
LCD_putc(n3+48); //n3+48 la chuyen tu so n2 thanh ky tu so n2
LCD_putc(n4+48);
}
else if(n1==0)
{
LCD_putc(n2+48);
LCD_putc(n3+48);
LCD_putc(n4+48);
}
else
{
LCD_putc(n1+48);
LCD_putc(n2+48);
LCD_putc(n3+48);
LCD_putc(n4+48);
}
}*/
//ham hien thi mot so integer len lcd
void display_int(int number)
{
int n1,n2;
n1=number/10; //chia lay phan nguyen
n2=number%10; //chhia lay phan du
LCD_putc(n1+48);
LCD_putc(n2+48);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -