#include<at89x51.h> #include<stdio.h> //------------- #define RW P1_0 #define RS P1_1 #define EN P1_2 #define BUS_LCD P2 #define BF P2_7 //---------------------------- void init(void); void init_lcd(void); void write_ins_lcd(unsigned char); void write_data_lcd(unsigned char,unsigned char); void ack_lcd(void); //-------------------------------- /*void main() { int i; char *str="this is the text of cheh"; init(); for(i=0;i<24;i++) { write_data_lcd(str[i],i); } } */ //---------------- void init(void) { P1=0xff; P2=0xff; P3=0xff; P0=0xff; init_lcd(); } //------------------------- void init_lcd(void) { write_ins_lcd(0x01); write_ins_lcd(0x38); write_ins_lcd(0x0f); write_ins_lcd(0x06); write_ins_lcd(0x01); write_ins_lcd(0x38); write_ins_lcd(0x80); } //------------------------------------ void write_ins_lcd(unsigned char i) { ack_lcd(); RS=0; RW=0; EN=1; BUS_LCD=i; EN=0; } //----------------- void write_data_lcd(unsigned char i,unsigned char j) { if(j<16) { write_ins_lcd(0x80+j); } else { write_ins_lcd(0x80+j+0x30); } ack_lcd(); RS=1; RW=0; EN=1; BUS_LCD=i; EN=0; } //------------------ void ack_lcd(void) { BUS_LCD=0xff; while(BF) { RS=0; RW=1; EN=0; BUS_LCD=0xff; EN=1; } EN=0; } //------------------------------------END;