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

QQ登錄

只需一步,快速開始

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

基于MSP430F55229開發(fā)的1602顯示程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:907412 發(fā)表于 2021-6-10 11:03 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
S為顯示的數(shù)
  1. #include "MSP430F5529.h"
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. #define CPU_F ((double)8000000)   //外部高頻晶振8MHZ
  5. //#define CPU_F ((double)32768)   //外部低頻晶振32.768KHZ
  6. #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
  7. #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
  8. //12864/1602液晶控制管腳
  9. #define RS_CLR                P1OUT &= ~BIT3           //RS置低
  10. #define RS_SET                P1OUT |=  BIT3           //RS置高

  11. #define RW_CLR                P1OUT &= ~BIT4           //RW置低
  12. #define RW_SET                P1OUT |=  BIT4          //RW置高

  13. #define EN_CLR                P1OUT &= ~BIT5           //E置低
  14. #define EN_SET                P1OUT |=  BIT5          //E置高
  15. //彩屏/12864液晶/1602液晶的數(shù)據(jù)口,三液晶共用
  16. #define DataDIR         P3DIR                     //數(shù)據(jù)口方向
  17. #define DataPort        P3OUT                     //P4口為數(shù)據(jù)口
  18. void Port_init()
  19. {
  20.         P1DIR|=BIT0;
  21.         P1OUT|=BIT0;
  22.         P3SEL = 0x00;
  23.         P3DIR = 0xFF;                   //數(shù)據(jù)口輸出模式
  24.         P1SEL = 0x00;
  25.         P1DIR|= BIT3 + BIT4 + BIT5;     //控制口設(shè)置為輸出模式
  26. }
  27. void LCD_write_com(unsigned char com)
  28. {
  29.         RS_CLR;
  30.         RW_CLR;
  31.         EN_SET;
  32.         DataPort = com;                 //命令寫入端口
  33.         delay_ms(5);
  34.         EN_CLR;
  35. }

  36. void LCD_write_data(unsigned char data)
  37. {
  38.         RS_SET;
  39.         RW_CLR;
  40.         EN_SET;
  41.         DataPort = data;                //數(shù)據(jù)寫入端口
  42.         delay_ms(5);
  43.         EN_CLR;
  44. }
  45. unsigned char xs3[15]={'0','1','2','3','4','5','6','7','8','9','.','-','M'};
  46. uchar S,m,j,k;
  47. void celiang()
  48. {
  49.     m=S/100;
  50.     j=(S-m*100)/10;
  51.     k=S%10;


  52. }
  53. void sxx(unsigned char x, unsigned char y,unsigned char data)
  54. {
  55.     uchar wei;
  56.     if(y==0)
  57.     {
  58.         LCD_write_com(0x80);
  59.         wei=0x80+x;
  60.         LCD_write_com(wei);
  61.         LCD_write_data(data);
  62.     }
  63.     else
  64.     {
  65.         LCD_write_com(0xC0);
  66.         wei=0xC0+x;
  67.         LCD_write_com(wei);
  68.         LCD_write_data(data);

  69.     }
  70. }
  71. void LCD_clear(void)
  72. {
  73.         LCD_write_com(0x01);            //清屏幕顯示
  74.         delay_ms(5);
  75. }
  76. void LCD_init(void)
  77. {
  78.     LCD_write_com(0x38);                //顯示模式設(shè)置
  79.     delay_ms(5);
  80.     LCD_write_com(0x08);                //顯示關(guān)閉
  81.     delay_ms(5);
  82.     LCD_write_com(0x01);                //顯示清屏
  83.     delay_ms(5);
  84.     LCD_write_com(0x06);                //顯示光標(biāo)移動(dòng)設(shè)置
  85.     delay_ms(5);
  86.     LCD_write_com(0x0C);                //顯示開及光標(biāo)設(shè)置
  87.     delay_ms(5);
  88. }

  89. void main( void )
  90. {
  91.   WDTCTL = WDTPW + WDTHOLD;
  92.   Port_init();                        //系統(tǒng)初始化,設(shè)置IO口屬性
  93.   delay_ms(100);                      //延時(shí)100ms
  94.   LCD_init();                         //液晶參數(shù)初始化設(shè)置
  95.   LCD_clear();                        //清屏
  96.   celiang();
  97.    while (1)


  98.    {
  99.        S=100;
  100.        sxx(0,1, xs3[m]);
  101.        sxx(1,1, xs3[j]);
  102.        sxx(2,1, xs3[k]);
  103.    }
  104. }
復(fù)制代碼


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:956252 發(fā)表于 2021-7-25 17:03 | 只看該作者
怎么接線啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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