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

📄 lcd.c

📁 嵌入式操作系统ucosii在msp430CPU中的移植代码
💻 C
字号:
#include "lcd.h"

#define WRITE(){\
    _NOP();\
    P4OUT&=~BIT4;\
    P5OUT&=~BIT1;\
    _NOP();\
    _NOP();\
    P4OUT|=BIT4;\
    P5OUT|=BIT1;\
    _NOP();\
}

void Lcd_InitCommand(unsigned char command_code){
    unsigned int i;
    P4OUT|=BIT4+BIT3+BIT6;
    P5OUT|=BIT1;
    _NOP();
    _NOP();
    P4OUT&=~BIT6;//   /CS=0
    WRITE();//D=1
    P4OUT&=~BIT3;//D=0
    WRITE();
    WRITE();//D=0
    _NOP();
    i=8;
    for(i=8;i>0;i--){
        if((command_code&0x80)!=0){
            P4OUT|=BIT3;//D=1(100)
            WRITE();
        }
        else{
            P4OUT&=~BIT3;//D=0
            WRITE();
        }
        command_code=command_code<<1;
    }
    P4OUT&=~BIT3;//D=0
    WRITE();
}

/*写数据地址*/
void write_ram_addr_data(unsigned char address,unsigned char data){
    unsigned int i;
    P4OUT|=BIT6;//   /CS=1
    _NOP();
    P4OUT&=~BIT6;//   /CS=0
    _NOP();
    P4OUT|=BIT4;//    /WR=1  
    P5OUT|=BIT1;
    _NOP();
    P4OUT|=BIT3;//D=1(1010)
    WRITE();
    P4OUT&=~BIT3;//D=0
    WRITE();
    P4OUT|=BIT3;//D=1
    WRITE();
    P4OUT&=~BIT3;//D=0
    WRITE();
    for(i=5;i>0;i--){ 
        if((address&0x80)!=0){
            P4OUT|=BIT3;//D=1(100)
            WRITE();
        }
        else{
            P4OUT&=~BIT3;//D=0
            WRITE();
        }
        address=address<<1;
    }
    
    for(i=4;i>0;i--){ 
        if((data&0x01)!=0){
            P4OUT|=BIT3;//D=1(100)
            WRITE();
        }
        else{
            P4OUT&=~BIT3;//D=0
            WRITE();
        }
        data=data>>1;
    }
}

/*显示阀位程序*/
void display_valve(void){
    int i,aaaa;  
    for(i=1;i<4;i++){
        aaaa=LCD[i];
        if(aaaa<80){
            write_ram_addr_data(16*i,distab[LCD[i]*2]);
            write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
        }
        else{
            LCD[i]-=80;
            write_ram_addr_data(16*i,distab[LCD[i]*2]+8);
            write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
        }            
    }
}  

/*显示组态模式程序*/
void display_mode(void){
    unsigned int i=0,aaaa;
    aaaa=LCD[i];
    if(aaaa<80){
        write_ram_addr_data(16*i,distab[LCD[i]*2]);
        write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
    }
    else{
        LCD[i]-=80;
        write_ram_addr_data(16*i,distab[LCD[i]*2]+8);
        write_ram_addr_data(16*i+8,distab[LCD[i]*2+1]);
    }   
}

⌨️ 快捷键说明

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