標(biāo)題: LCD顯示字符串 [打印本頁]

作者: 柳千刀    時間: 2017-6-28 18:04
標(biāo)題: LCD顯示字符串
#include "reg51.h"
#include"absacc.h"  
typedef unsigned char BYTE;
typedef unsigned int  WORD;

#define  wr_com  XBYTE[0xC000]   
#define  wr_data  XBYTE[0xC100]   
#define  rd_com  XBYTE[0xC200]     
#define  rd_data  XBYTE[0xC300]   

void lcd_init(void);                                    // lcd???
void write_cmd(BYTE cmd);
void write_data(BYTE dat) ;                    // ???  
void set_display_place(BYTE line,column);
void write_string_lcd(BYTE line,column,unsigned char *string);
void Delay(WORD n)
{     WORD x;
         while(n--)  
{      x=500;   while(x--);  }
}
void write_cmd(BYTE cmd)
                 {     BYTE dl;
                         do {  
                         dl=rd_com;   }
                         while((dl&0x80)!=0); //??   
                         wr_com= cmd;   
                 Delay(1); }
                 
                 void write_data(BYTE dat)
{  BYTE dl;  
         do {   dl=rd_com;   }
         while((dl&0x80)!=0); //??   
         wr_data= dat;      
                Delay(1); }

                void write_string(BYTE *s)            
                        {     while(*s != '\0')            //'\0'????????     
                                {         write_data(*s);      
                        s++;     } }
                       
                        void set_display_place(BYTE line,column) {   
                                BYTE address;   
                                if(line == 1)     {        
                                        address = 0x80 + column;
                                         }     
                        else if(line == 2)   
                        {         address = 0xc0 + column;     }   
                        write_cmd(address);          }
                       
                        void write_string_lcd(BYTE line,column,unsigned char *string) {   
                        set_display_place(line,column);   
                        write_string(string);   
                        Delay(1); }
                        void lcd_init(void)       {  
                                write_cmd(0x38);//   
                                write_cmd(0x38);//   
                                write_cmd(0x06);//  
                                write_cmd(0x0c);//
                                write_cmd(0x01);//
                                }  
void main() {
         lcd_init();      
while(1)         
        {
        write_string_lcd(1,1,"   0123456789   ");
write_string_lcd(2,1,"   ABCDEDGHIJ   ");      } }






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1