新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430單片機(jī)驅(qū)動(dòng)LCD1602液晶

MSP430單片機(jī)驅(qū)動(dòng)LCD1602液晶

作者: 時(shí)間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
//實(shí)驗(yàn)?zāi)康模菏煜CD的使用方法
//LCD循環(huán)顯示本站網(wǎng)址和電話   //硬件要求:LCD直接與單片機(jī)的A口和D口相連接   //所有撥碼開關(guān)置OFF   //調(diào)節(jié)電位器,調(diào)節(jié)LCD亮度。   #include<msp430x14x.h>   #define set(x) P6OUT |=x   #define clr(x) P6OUT &=~x   #define rs BIT2   #define rw BIT3   #define e  BIT4   const char web[ ]={ ,w,w,w,.,5,1,h,e,i,.,c,0,m, };   //顯示公司web地址   const char tel[ ]={T,E,L,:,1,5,3,1,2,7,6,9,2,6,4, };   //顯示公司電話號(hào)碼   void init();                   //申明I/O口初始化函數(shù)   void lcd_init();               //申明LCD初始化函數(shù)   void write_web();              //申明顯示公司web地址函數(shù)   void write_tel();              //申明顯示公司tel函數(shù)   void write(char x);            //申明顯示1字節(jié)數(shù)據(jù)函數(shù)   void lcd_enable();             //申明LCD顯示設(shè)置函數(shù)   void delay();                  //申明延時(shí)函數(shù)   //---------------------------------------   //主函數(shù)   void main()   {   init();                //調(diào)用I/O口初始化函數(shù)     lcd_init();            //調(diào)用LCD初始化函數(shù)   write_web();           //調(diào)用顯示公司web地址函數(shù)   P4OUT=0Xc0;//PORTD=0XC0;            //設(shè)置第2行顯示地址   lcd_enable();          //調(diào)用LCD顯示設(shè)置函數(shù)   write_tel();           //調(diào)用顯示公司tel函數(shù)   while(1);   }   //---------------------------------------   //I/O口初始化函數(shù)   void init()   {   //ADCON1=0X07;               //設(shè)置A口為普通I/O口   //TRISA=0X00;                //設(shè)置A口為輸出   //TRISD=0X00;                //設(shè)置D口為輸出   P4DIR=0xff;   P6DIR=0x1c;//設(shè)置A口為輸出   WDTCTL = WDTPW + WDTHOLD;  //殺狗   }   //---------------------------------------   //LCD初始化函數(shù)   void lcd_init()   {   P4OUT=0x01;//PORTD=0X1;                 //清除顯示   lcd_enable();   P4OUT=0x38;//PORTD=0X38;                //8位2行5*7點(diǎn)陣   lcd_enable();   P4OUT=0x0e;//PORTD=0X0e;                //顯示開,光標(biāo)開,閃爍   lcd_enable();   P4OUT=0x06;//PORTD=0X06;                //文字不動(dòng),光標(biāo)右移   lcd_enable();   P4OUT=0x80;//PORTD=0X80;                //公司web顯示地址   lcd_enable();   }   //--------------------------------------   //顯示公司web地址   void write_web()   {   int i;   for(i=0;i<0x10;i++)        //一共16字節(jié)數(shù)據(jù)   {   write(web[i]);        //查表獲取數(shù)據(jù)并調(diào)用寫一個(gè)字節(jié)數(shù)據(jù)函數(shù)送LCD顯示   }   }   //--------------------------------------   //顯示公司tel函數(shù)   void write_tel()   {   int i;   for(i=0;i<0x10;i++)       //一共顯示16字節(jié)數(shù)據(jù)   {   write(tel[i]);       //查表獲取數(shù)據(jù)并調(diào)用寫一個(gè)字節(jié)數(shù)據(jù)函數(shù)送LCD顯示   }   }   //--------------------------------------   //寫一個(gè)字節(jié)數(shù)據(jù)函數(shù)     void write(char x)   {   P4OUT=x;//PORTD=x;                   //待顯示數(shù)據(jù)送PORTD口   set(rs);//rs=1;                      //該字節(jié)數(shù)據(jù)為數(shù)據(jù),而不是命令   clr(rw);//rw=0;                      //此次操作為寫,而不是讀   clr(e);//e=0;                       //拉低使能信號(hào)   delay();                   //保持使能信號(hào)為低一段時(shí)間   set(e);//e=1;                       //拉高使能信號(hào),建立LCD操作所需要的上升沿   }   //--------------------------------------   //LCD顯示設(shè)置函數(shù)   void lcd_enable()   {   clr(rs);                     //該字節(jié)數(shù)據(jù)為命令,而不是數(shù)據(jù)   clr(rw);                     //此次操作為寫,而不是讀   clr(e);                      //拉低使能信號(hào)   delay();                  //保持使能信號(hào)為低一段時(shí)間   set(e);                      //拉高使能信號(hào),建立LCD操作所需要的上升沿   }   //--------------------------------------   //延時(shí)函數(shù)   void delay()   {   unsigned int i;   for(i=0;i<10000;i++);   } 


關(guān)鍵詞: MSP430單片機(jī)LCD1602液

評(píng)論


技術(shù)專區(qū)

關(guān)閉