久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5946|回復(fù): 2
收起左側(cè)

MSP430單片機(jī)驅(qū)動LCD1602液晶屏源程序

[復(fù)制鏈接]
ID:140725 發(fā)表于 2017-3-7 01:28 | 顯示全部樓層 |閱讀模式
MSP430單片機(jī)做的驅(qū)動常見的LCD1602液晶屏的源程序:
0.png
完整的程序下載:
MSP430單片機(jī)驅(qū)動LCD1602液晶屏源程序.rar (23.6 KB, 下載次數(shù): 333)




下面是部分源碼預(yù)覽:
  1. #include <msp430x22x4.h>    /*單片機(jī)寄存器頭文件*/
  2. #include "lcd1602.h"    /*LCD驅(qū)動頭文件*/
  3. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  4. /*- 名    稱:Serial_To_Parallel()                                              -*/
  5. /*- 功    能:輸出通過74HC164由并行轉(zhuǎn)為串行                            -*/
  6. /*- 輸入變量:無                                                      -*/
  7. /*- 輸出變量:無                                                      -*/
  8. /*-///////////////////////////////////////////////////////////////////-*/
  9. void Serial_To_Parallel(char dat)
  10. {
  11.    unsigned char i;
  12.    for(i=0;i<8;i++)
  13.    {   
  14.       if(dat&0x80)
  15.         Data_OUT_H;
  16.       else
  17.         Data_OUT_L;
  18.       CLK_H;
  19.       _NOP();//空延遲
  20.       _NOP();
  21.       _NOP();
  22.       CLK_L;
  23.       dat<<=1;
  24.     }
  25. }

  26. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  27. /*- 名    稱:Delay()                                         -*/
  28. /*- 功    能:延時                                                    -*/
  29. /*- 輸入變量:無                                                      -*/
  30. /*- 輸出變量:無                                                      -*/
  31. /*-///////////////////////////////////////////////////////////////////-*/
  32. void Delay(unsigned int count)
  33. {
  34.     unsigned int i=count;
  35.     while (i != 0)
  36.     {
  37.         i--;
  38.     }
  39. }
  40. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  41. /*- 名    稱:LCD_WriteCommand(unsigned char Com)                      -*/
  42. /*- 功    能:LCD寫入命令                                              -*/
  43. /*- 輸入變量:unsigned char Com(命令字)                             -*/
  44. /*- 輸出變量:無                                                      -*/
  45. /*-///////////////////////////////////////////////////////////////////-*/
  46. void LCD_WriteCommand(unsigned char Com)
  47. {  
  48.   RS_SET_L; //命令
  49.   RW_SET_L; //寫操作
  50.   _NOP();
  51.   Serial_To_Parallel(Com);  
  52.   _NOP();
  53.   E_SET_H;  
  54.   _NOP();
  55.   E_SET_L;//使能端下降沿沿寫入
  56.   Delay(Delay_Count);
  57. }
  58. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  59. /*- 名    稱:LCD_WriteData(unsigned char Dat)                         -*/
  60. /*- 功    能:LCD寫入數(shù)據(jù)                                              -*/
  61. /*- 輸入變量:unsigned char Dat(數(shù)據(jù))                               -*/
  62. /*- 輸出變量:無                                                      -*/
  63. /*-///////////////////////////////////////////////////////////////////-*/
  64. void LCD_WriteData(unsigned char Dat)
  65. {
  66.    RS_SET_H;        //數(shù)據(jù)   
  67.    RW_SET_L;        //寫操作
  68.    Serial_To_Parallel(Dat);
  69.    _NOP();
  70.    E_SET_H;
  71.    _NOP();
  72.    E_SET_L;//使能端下降沿沿寫入
  73.    Delay(Delay_Count);
  74. }
  75. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  76. /*- 名    稱:LCD_SetXY(char x,char y)                                 -*/
  77. /*- 功    能:設(shè)定LCD寫入數(shù)據(jù)指針                                              -*/
  78. /*- 輸入變量:unsigned char Dat(數(shù)據(jù))                               -*/
  79. /*- 輸出變量:無                                                      -*/
  80. /*-///////////////////////////////////////////////////////////////////-*/
  81. void LCD_SetXY(char x,char y)
  82. {
  83.     switch(y)//數(shù)據(jù)指針=80+地址碼(0-27H,40-67H)
  84.     {
  85.       case 1:LCD_WriteCommand(0x7f + x);break; //第1行   
  86.       case 2:LCD_WriteCommand(0xbf + x);break; //第2行
  87.     }
  88. }
  89. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  90. /*- 名    稱: LCD_DispStr(...)                                       -*/                          
  91. /*- 功    能:  LCD寫入字符                                              -*/
  92. /*- 輸入變量:x(列數(shù)),y(行數(shù)),*p字符串指針,length(長度)          -*/
  93. /*- 特殊說明:x或者y為0時候,液晶顯示使用默認(rèn)地址(不指定新地址)     -*/
  94. /*- 輸出變量:無                                                      -*/
  95. /*-///////////////////////////////////////////////////////////////////-*/
  96. void LCD_DispCharArray(char x,char y,char *p,unsigned char length)
  97. {
  98.     if (x !=0x00 && y!=0x00)
  99.     {
  100.       LCD_SetXY(x,y);//數(shù)據(jù)有效重新設(shè)置位置
  101.     }
  102.     while(length!=0)
  103.     {
  104.        LCD_WriteData(*p);
  105.        p++;
  106.        length--;
  107.     }   
  108. }
  109. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  110. /*- 名    稱: LCD_DispStr(...)                                       -*/                          
  111. /*- 功    能:LCD寫入字符串,自動識別結(jié)束符號‘\0’                    -*/
  112. /*- 輸入變量:x(列數(shù)),y(行數(shù)),*p(字符串指針)                      -*/
  113. /*- 特殊說明:x或者y為0時候,液晶顯示使用默認(rèn)地址(不指定新地址)     -*/
  114. /*- 輸出變量:無                                                      -*/
  115. /*-///////////////////////////////////////////////////////////////////-*/
  116. void LCD_DispStr(char x,char y,char *p)  //exp:LCD_DispStr(1,1,"LCD_Serial_test");
  117. {
  118.   if (x !=0x00 && y!=0x00)
  119.   {
  120.     LCD_SetXY(x,y);//數(shù)據(jù)有效重新設(shè)置位置
  121.   }
  122.   while(*p!='\0')
  123.   {
  124.     LCD_WriteData(*p);
  125.     p++;
  126.   }
  127. }
  128. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  129. /*- 名    稱:LCD_Init()                                               -*/
  130. /*- 功    能:LCD初始化                                                -*/
  131. /*- 輸入變量:無                                                      -*/
  132. /*- 輸出變量:無                                                      -*/
  133. /*-///////////////////////////////////////////////////////////////////-*/
  134. void LCD_Init()
  135. {
  136.    E_SET_OUT;                   //輸出端口初始化部分
  137.    RW_SET_OUT;
  138.    RS_SET_OUT;
  139.    DataPort_SET_OUT;
  140.    E_SET_L;   //使能拉低
  141.    RW_SET_L;  //讀寫拉低
  142.    RS_SET_L;  //選擇拉低
  143.    CLK_SET_OUT;
  144.    
  145.    LCD_WriteCommand(0x38);              //寫命令部分
  146.    LCD_WriteCommand(0x01); //清屏
  147.    LCD_WriteCommand(0x06);
  148.    LCD_WriteCommand(0x0c); //開顯示,不顯示光標(biāo)
  149.    LCD_WriteCommand(0x00);
  150. }
  151. /*-////////////////////////////函數(shù)說明///////////////////////////////-*/
  152. /*- 名    稱:LCD_CLR()                                                -*/
  153. /*- 功    能:LCD清屏                                                  -*/
  154. /*- 輸入變量:無                                                      -*/
  155. /*- 輸出變量:無                                                      -*/
  156. /*-///////////////////////////////////////////////////////////////////-*/
  157. void LCD_CLR()
  158. {
  159.    LCD_WriteCommand(0x01); //清屏   
  160. }

復(fù)制代碼





評分

參與人數(shù) 2黑幣 +6 收起 理由
++___aa + 3 贊一個!
sssmmmnnn + 3 很給力!

查看全部評分

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:324433 發(fā)表于 2018-5-8 16:37 | 顯示全部樓層
試試,感覺應(yīng)該可以
回復(fù)

使用道具 舉報

ID:324433 發(fā)表于 2018-5-8 16:38 | 顯示全部樓層
試一下
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区久久 | 欧美精品一区在线发布 | www.一级毛片 | 综合久久99 | 日韩在线一区二区三区 | 欧美综合一区 | 最大av在线| 久久网站黄| 日本免费在线观看视频 | 日韩精品一区二区三区高清免费 | 在线播放中文 | 欧美jizzhd精品欧美巨大免费 | 亚洲欧美日韩国产综合 | 天久久| 欧美成人h版在线观看 | 欧美一级毛片在线播放 | 成人h电影在线观看 | 国产精品久久久久久一区二区三区 | 中国黄色毛片视频 | 欧美日韩在线成人 | 一区中文字幕 | 国产精品国产三级国产播12软件 | 91精品一区二区三区久久久久久 | 亚洲精品一二三 | 中文字幕国产 | 国精产品一区二区三区 | 精品视频www | 成人欧美一区二区三区黑人孕妇 | 一区二区三区日韩 | 91久久精品国产91久久性色tv | 精品国产一区二区三区久久久蜜月 | 欧美亚洲高清 | 久久久久无码国产精品一区 | 精品日韩一区二区三区 | 久草福利 | 日本午夜视频 | 婷婷综合五月天 | 中文字幕在线一区二区三区 | 精品日韩在线 | 国产一级视屏 | 免费观看一级特黄欧美大片 |