欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 430單片機(jī)-1602液晶顯示 [打印本頁(yè)]

作者: wang哈哈    時(shí)間: 2018-7-17 15:50
標(biāo)題: 430單片機(jī)-1602液晶顯示
/*                        1602液晶程序        */
#include<msp430x14x.h>
#define RS_1        P6OUT|=BIT3         //數(shù)據(jù)、命令選擇選擇端
#define RS_0        P6OUT&=~BIT3
#define RW_1        P6OUT|=BIT4        //讀寫(xiě)選擇端
#define RW_0        P6OUT&=~BIT4
#define E_1        P6OUT|=BIT5        //使能信號(hào)
#define E_0        P6OUT&=~BIT5
#define P2        P2OUT        //數(shù)據(jù),傳輸端口
unsigned char zi[]="ok";        
/*-----------------------------設(shè)置主時(shí)鐘--------------------------------------------*/
void CLOCK_INIT()//設(shè)置主時(shí)鐘        MCLK=8M
{   
     unsigned int i;

      BCSCTL1&=~XT2OFF;//開(kāi)啟TX2振蕩器
    do
    {
      IFG1 &=~ OFIFG;//清除振蕩器失效標(biāo)志位(晶體出錯(cuò)中斷標(biāo)志位。1時(shí)有中斷產(chǎn)生、0沒(méi)有)
      for(i=0xff; i>0; i--);//至少等待 50 us
    }   
      while((IFG1 & OFIFG) !=0 );//(IFG1 & OFIFG)==0時(shí) 中斷位關(guān)閉 則表達(dá)式為假  為假則退出
    BCSCTL2 |= SELM1;//使MCLK = XI2  8MHZ  0x80  最高主頻8MHz
}
void delay()
{
        unsigned int x;
        for(x=0;x<4000;x++)
          _NOP();
}
void zhil(unsigned char zhil)           //寫(xiě)指令
{
        RS_0;
        RW_0;
        P2=zhil;                 //P2口賦值
        delay();         //等待指令寫(xiě)入
        E_1;                 //拉低  (送一次脈沖)
        delay();
        E_0;        
}

void shuj(unsigned char shuj)          //寫(xiě)數(shù)據(jù)
{
        RS_1;
        RW_0;
        P2=shuj;
        delay();
        E_1;
        delay();
        E_0;
}

void init1602()                          //液晶初始化
{         
  unsigned int q;
  P2DIR=0XFF;
  P6DIR|=(BIT3+BIT4+BIT5);
        E_0;
        zhil(0x38);  //設(shè)置顯示方試16*2,5*7點(diǎn)陣,8位數(shù)據(jù)接口
        zhil(0x0c);  //設(shè)置開(kāi)顯示,顯示光標(biāo),0c不現(xiàn)實(shí)光標(biāo)
        zhil(0x06);  //寫(xiě)一字符光標(biāo)+1  整屏不左移
        zhil(0x01);        //顯示清屏數(shù)據(jù)指針清零,所有顯示清零        
//        zhil(0x80);        //設(shè)置第一行指針
        zhil(0x80+0x40);  //設(shè)置第二行指針
        for(q=0;q<2;q++)
                shuj(zi[q]);
        zhil(0x80);

}
void main()
{
          WDTCTL = WDTPW + WDTHOLD;//關(guān)看門(mén)狗
        CLOCK_INIT();//設(shè)置主時(shí)鐘        MCLK=8M
        init1602();
        while(1);
}







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