⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 93c66.c

📁 < 嵌入式C语言程序设计>>一书的源代码
💻 C
字号:
#include   <intrins.h>
#include   <Regx51.h>
//
#define    READ        0x0C00  /* xxxx110A8,A7-A0 */
#define    EWEN        0x0980  /* xxxx1001 ,1xxxxxxx */
#define    WRITE       0x0A00  /* xxxx101A8,A7-A0 */
#define    EWDS        0x0800  /* xxxx1000,0xxxxxxx */
//
#define    ShiftBit    4
//
#define    CS          P0_0
#define    SK          P0_1
#define    DI          P0_2
#define    DO          P0_3
//
char code int2charx[]="0123456789ABCDEF";
void             write_command(int);
unsigned char    read_byte(int);
void             write_byte(int,unsigned char);
void             check_busy(void);
void             write_LCD_data(unsigned);
//
unsigned char read_byte(int address)
{ 
    int i,command;  
    unsigned char temp;
    CS=1;
    command=(READ|address);  
    write_command(command);
    for(i=0;i<8;i++)                /* 读出一个位组 */
    {
         SK=1;
         SK=0;
         temp= (temp << 1);
         if(DO==1)
             temp=(temp | 0x01); 
    }       
    CS=0; 
    return(temp);       
} 
void write_enable()
{
    int command;    
    CS=1;
    command=EWEN;
    write_command(command);         
    CS=0;
}
void write_disable()
{
    int command;    
    CS=1;
    command=EWDS;
    write_command(command);         
    CS=0;
}
void write_byte(int address,unsigned char write_data)
{ 
    int i,command;  
    write_enable();
    CS=1;
    command=(WRITE|address);
    write_command(command);
    for(i=0;i<8;i++)                /* 写入一个位组 */
    {
          if(write_data & 0x80)
                  DI=1;
          else 
                  DI=0;
          SK=1;
          SK=0;
          write_data=(write_data<<1);
    }       
    check_busy(); 
    write_disable();
}
//
void write_command(int command)
{
     int i;
     command=(command<<ShiftBit);
     for(i=0;i<12;i++) {
          if(command & 0x8000)
                  DI=1;
          else
                  DI=0;   
          SK=1;
          SK=0;
          command=(command<<1);            
     }  
} 
//
void check_busy(void)
{
        CS=0;
        CS=1;
        while(DO==0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -