找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2503|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

CCS中MSP430F5529驅(qū)動(dòng)LCD1602源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:426770 發(fā)表于 2021-4-21 20:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include <msp430.h>
  2. #include <string.h>
  3. #include <LCD1602.h>
  4. #define CPU_F ((double)8000000)
  5. #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  6. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  7. #define DataDir     P3DIR
  8. #define DataPort    P3OUT
  9. #define Busy        0x80
  10. #define CtrlDir     P1DIR
  11. #define CLR_RS P1OUT&=~BIT3;    //RS = P1.3
  12. #define SET_RS P1OUT|=BIT3;
  13. #define CLR_RW P1OUT&=~BIT4;    //RW = P1.4
  14. #define SET_RW P1OUT|=BIT4;
  15. #define CLR_EN P1OUT&=~BIT5;    //EN = P1.5
  16. #define SET_EN P1OUT|=BIT5;
  17. void Disp1Char(unsigned char data)
  18. {
  19.     LCD1602_WriteDATA(data);
  20. }
  21. void DispStr(unsigned char *ptr)
  22. {
  23.     unsigned char i,n;
  24.     n=strlen(ptr);
  25.     for (i=0;i<n;i++)
  26.     {
  27.         Disp1Char(ptr[i]);
  28.     }
  29. }
  30. void LCD1602_WriteCMD(unsigned char cmd)
  31. {
  32.         CLR_EN;
  33.         CLR_RS;     //指令
  34.         CLR_RW;     //寫
  35.         DataPort=cmd;   //指令數(shù)據(jù)傳到P0口待發(fā)送給LCD1602
  36.         delay_ms(1);
  37.         SET_EN;     //LCD1602使能口
  38.         delay_ms(10);
  39.         CLR_EN;     //產(chǎn)生下降沿
  40.         delay_ms(10);
  41. }
  42. void LCD1602_WriteDATA(unsigned char Data)
  43.     {
  44.         DataPort=Data;
  45.         SET_RS;
  46.         CLR_RW;
  47.         SET_EN;
  48.         CLR_EN;
  49.         delay_ms(10);
  50.     }
  51. void LCD1602_Initi()
  52.     {
  53.         CtrlDir |= 0x38;        //控制線端口設(shè)為輸出狀態(tài)
  54.         DataDir  = 0xff;
  55.         LCD1602_WriteCMD(0x38); //  置功能,8位總線,雙行顯示,顯示5X7的點(diǎn)陣字符
  56.         LCD1602_WriteCMD(0x0f); //  顯示開關(guān)控制,開顯示, 有光標(biāo),閃爍
  57.         LCD1602_WriteCMD(0x06); //  光標(biāo)和顯示位置設(shè)置,  光標(biāo)移動(dòng)方向右移,屏幕上所有文字不動(dòng)
  58.         LCD1602_WriteCMD(0x01); //  清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置
  59.         delay_ms(10);
  60.     }
復(fù)制代碼



  1. /*
  2. * LCD1602.h
  3. *
  4. *  Created on: 2018年6月3日
  5. *      Author: Sunnl
  6. */

  7. #ifndef LCD1602_H_
  8. #define LCD1602_H_
  9. #include <msp430.h>
  10. void Disp1Char(unsigned char data);
  11. void DispStr(unsigned char *ptr);
  12. void LCD1602_WriteCMD(unsigned char cmd);
  13. void LCD1602_WriteDATA(unsigned char Data);
  14. void LCD1602_Initi();
  15. #endif
  16. /* LCD1602_H_ */



  17. #include <msp430.h>
  18. #include "LCD1602.h"
  19. unsigned char s[]="LCD1602Test";
  20. int main(void)
  21. {
  22.     WDTCTL = WDTPW | WDTHOLD;
  23.     LCD1602_Initi();
  24.     LCD1602_WriteCMD(0x80);
  25.     DispStr(s);
  26.     return 0;
  27. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表