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

📄 main.c

📁 7920 msp430 chuanxing 非常好用啊 分享啊啊 啊啊 啊
💻 C
字号:
//////////////////////////////////////////////////////////////////////////////////////////
/////ST7920串行控制128*64液晶
//QQ:178463135
//E-Mail:lyz803@163.com
//rst  p4.0   复位
//rs   p4.1   片选
//rw   p3.1    数据 
//E    p3.3    时钟
//


#include <msp430x14x.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long

uchar busy,hang,lie,flash_flag;
void Delayus(ulong ilinshi)
{ ulong ii;
  for(ii=0;ii<=ilinshi;ii++);
}
void BUSYLOOP()
{
  Delayus(1000);
}
void Write_command(uchar x,uchar bb)
{
    uchar b,i=0;
    BUSYLOOP();
    b=x;
    P4OUT|=BIT1;  //cs=1;
    P3OUT|=BIT1;  //data=1;
    for(i=0;i<5;i++)   //5 个连续1 '11111'
    {
        P3OUT&=~BIT3;  //clk=0
        P3OUT|=BIT3; ;  //clk=1
    }        
    P3OUT&=~BIT3;  //clk=0
    
    P3OUT&=~BIT1;  //data=0;
    for(i=0;i<3;i++)  //RS,RW,0           Rs=Rw=0   //写命令 
    {
        P3OUT&=~BIT3;  //clk=0
        P3OUT|=BIT3; ;  //clk=1
    }        
    ////////////////////////////////////上面是发送一个完整的启动数据'11111000'
    for(i=0;i<4;i++)      //发送高4位
    {
       if((x&0x80)?1:0)   //1
         P3OUT|=BIT1;  //data=1;
       else
         P3OUT&=~BIT1;  //data=0;
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
       x=x<<1;
     }
     P3OUT&=~BIT1;  //data=0;
    for(i=0;i<4;i++)  //RS,RW,0    发送4个0;
    {
        P3OUT&=~BIT3;  //clk=0
        P3OUT|=BIT3; ;  //clk=1
    }        
//////////////////////////////////////////////    
    for(i=0;i<4;i++)      //发送低4位
    {
       if((b&0x08)?1:0)   //1
         P3OUT|=BIT1;  //data=1;
       else
         P3OUT&=~BIT1;  //data=0;
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
       b=b<<1;
     }
    
    P3OUT&=~BIT1;  //data=0;
    for(i=0;i<4;i++)  //RS,RW,0    发送4个0;
    {
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
    }        
    
    P4OUT|=BIT1;  //cs=1; 
    Delayus(100);
}

void Write_data(uchar x)
{
    uchar b,i=0;
    BUSYLOOP();
    b=x;
    P4OUT|=BIT1;  //cs=1;
    P3OUT|=BIT1;  //data=1;
    for(i=0;i<5;i++)   //5 个连续1 '11111'
    {
        P3OUT&=~BIT3;  //clk=0
        P3OUT|=BIT3; ;  //clk=1
    }        
    
    P3OUT&=~BIT3;  //clk=0    //RW=0
    P3OUT&=~BIT1;  //data=0;
    P3OUT|=BIT3;   //clk=1
    
    P3OUT&=~BIT3;  //clk=0    //RS=1
    P3OUT|=BIT1;  //data=0;
    P3OUT|=BIT3;   //clk=1
    
    P3OUT&=~BIT3;  //clk=0    //0
    P3OUT&=~BIT1;  //data=0;
    P3OUT|=BIT3;   //clk=1
////////////////////////////////////上面是发送一个完整的启动数据'11111010'
    for(i=0;i<4;i++)      //发送高4位
    {
       if((x&0x80)?1:0)   //1
         P3OUT|=BIT1;  //data=1;
       else
         P3OUT&=~BIT1;  //data=0;
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
       x=x<<1;
     }
     P3OUT&=~BIT1;  //data=0;
    for(i=0;i<4;i++)  //RS,RW,0    发送4个0;
    {
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
    }        
//////////////////////////////////////////////    
    for(i=0;i<4;i++)      //发送低4位
    {
       if((b&0x08)?1:0)   //1
         P3OUT|=BIT1;  //data=1;
       else
         P3OUT&=~BIT1;  //data=0;
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
       b=b<<1;
     }
    
    P3OUT&=~BIT1;  //data=0;
    for(i=0;i<4;i++)  //RS,RW,0    发送4个0;
    {
       P3OUT&=~BIT3;  //clk=0
       P3OUT|=BIT3; ;  //clk=1
    }        
    
    P4OUT|=BIT1;  //cs=1; 
    Delayus(100);
}

void CLEAR()
{
  Write_command(0x01,1);
  Write_command(0x34,1);
  Write_command(0x30,1);
}

void CHUSHIHUA()
{
P4OUT&=~BIT0;
Delayus(40000);
P4OUT|=BIT0;    //rst=1
Delayus(40000);
Write_command(0x30,0);
Delayus(6000);
Write_command(0x30,0);
Delayus(200);
Write_command(0x30,0);
Write_command(0x30,0);

//--------------
Write_command(0x0c,1);

//Write_command(0x0C,1);
Delayus(100);
Write_command(0x01,1);
Delayus(1000);
Write_command(0x06,1);
}

void IO_Init(void)   //初始化端口
{
  P4DIR|=0x03;           ///CS=1
  P4OUT|=0x03;
  P3DIR=0x0a;              //P3.1,3.3=OUT
  P3OUT|=0x0a; 

}
void main(void)
{
WDTCTL=WDTPW+WDTHOLD;
// P3SEL = 0x00f;                            // Setup P3 for SPI mode
  IO_Init(); 
  CHUSHIHUA();//初始化函数//
  CLEAR();
  
Write_command(0x80,1);  //4行

Write_data('T');  //TEL:13156015636
Write_data('E'); 
Write_data('L'); 
Write_data(':'); 
Write_data('1'); 
Write_data('3'); 
Write_data('1'); 
Write_data('5'); 
Write_data('6'); 
Write_data('0'); 
Write_data('1'); 
Write_data('5'); 
Write_data('6'); 
Write_data('3'); 
Write_data('6'); 
/*
  
  U0CTL = CHAR + SYNC + MM + SWRST;         // 8-bit, SPI, Master
  U0TCTL = CKPL + SSEL1 + STC;              // Polarity, SMCLK, 3-wire
  U0BR0 = 0x002;                            // SPICLK = SMCLK/2
  U0BR1 = 0x000;
  U0MCTL = 0x000;
  ME1 = USPIE0;                             // Module enable
  U0CTL &= ~SWRST;                          // SPI enable
  IE1 |= URXIE0;                            // Recieve interrupt enable
  _EINT();                                  // Enable interrupts
  
  
  
  */
  
  _BIS_SR(LPM0_bits + GIE); 


}

⌨️ 快捷键说明

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