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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3821|回復: 0
打印 上一主題 下一主題
收起左側

LCD1602頭文件下載用于MSP430單片機

[復制鏈接]
跳轉到指定樓層
樓主
LCD1602頭文件的源代碼


LCD1602頭文件的MSP430單片機源程序如下:
  1. /*********************************************************************
  2. * 作者:Z_XXX
  3. * 版本:v1.0(測試版本)
  4. *************************************************************************/

  5. #include<MSP430G2553.H>
  6. #include <intrinsics.h>
  7. #include<msp430.h>

  8. #define RS_HIGH P2OUT|=BIT0
  9. #define RS_LOW  P2OUT&=~BIT0
  10. #define RW_HIGH P2OUT|=BIT1
  11. #define RW_LOW  P2OUT&=~BIT1
  12. #define E_HIGH  P2OUT|=BIT2
  13. #define E_LOW   P2OUT&=~BIT2
  14. #define Lcd_Data_Port P1OUT



  15. void delay_nms(unsigned int n);
  16. void delay_1ms(void);
  17. void WaitForE();
  18. void Lcd_Com(unsigned char CMD);
  19. void Lcd_Clear();
  20. void Init_Lcd();
  21. void Lcd_Write_Data(unsigned char DATA);
  22. void Init_Port();
  23. void Lcd_XY(unsigned char x, unsigned char y );
  24. void Lcd_en_write1(void);
  25. void Lcd_en_write2(void);
  26. void delay_nus(unsigned int n);
  27. void delay_1us(void);
  28. void Lcd_Write_StrSetXY(unsigned char x,unsigned char y,unsigned char *p);
  29. void Lcd_Write_DataSetXY(unsigned char x,unsigned char y,unsigned char data);
  30. void Lcd_Write_Str(unsigned char *p);
  31. unsigned char sig[] = {"BOwen"};
  32. unsigned char sig1[] = {"BOwen"};
  33. unsigned char a = 'a';



  34. /*****************************************************
  35. * 說明:端口初始化
  36. *                 P2.0 P2.1 P2.2
  37. *                 RS   RW   E
  38. *                 P1.7 P1.6 P1.5 P1.4
  39. *                 DB7  DB6  DB5  DB4
  40. * 返回值:空
  41. *****************************************************/
  42. void Init_Port()
  43. {
  44.         P1DIR |= BIT7+BIT6+BIT5+BIT4;                        //設置P1口全部為輸出口
  45.         P2DIR |= BIT0+BIT1+BIT2;

  46.         delay_nms(50);
  47.         Lcd_Com(0x30);
  48.         delay_nms(50);
  49.         Lcd_Com(0x30);
  50.         delay_nms(5);
  51.         Lcd_Com(0x30);
  52.         delay_nms(500);

  53. }
  54. /*****************************************************
  55. * 說明:LCD初始化
  56. *****************************************************/
  57. void Init_Lcd()
  58. {
  59.         //Init_Port();
  60.         P1DIR |= BIT7+BIT6+BIT5+BIT4;                        //設置P1口全部為輸出口
  61.         P2DIR |= BIT0+BIT1+BIT2;
  62.         delay_nms(10);

  63.         Lcd_Com(0X28);                                //四位接口
  64.         delay_nms(50);
  65.         Lcd_Com(0X28);
  66.         delay_nms(50);
  67.         Lcd_Com(0X28);
  68.         delay_nms(50);
  69.         Lcd_en_write2();
  70.         delay_nms(50);

  71.         //WaitForE();
  72.         Lcd_Com(0X28);
  73.         delay_nms(500);

  74.         Lcd_Com(0x01);
  75.         Lcd_Com(0X0C);
  76.         Lcd_Com(0X06);

  77.         delay_nms(50);

  78. }
  79. /**************************************************
  80. *說明:寫入指令
  81. **************************************************/
  82. void Lcd_Com(unsigned char CMD)
  83. {
  84.         RS_LOW;
  85.         RW_LOW;
  86.         P1SEL = 0X00;
  87.         Lcd_en_write1();
  88.         Lcd_Data_Port &= 0X0F;
  89.         Lcd_Data_Port |= CMD&0XF0;
  90.         delay_nms(16);
  91.         Lcd_en_write2();

  92.         CMD = CMD<<4;
  93.         Lcd_en_write1();
  94.         Lcd_Data_Port &= 0X0F;
  95.         Lcd_Data_Port |= CMD&0XF0;
  96.         Lcd_en_write2();
  97.         //P2SEL


  98. }
  99. /***********************************************
  100. * 說明:清屏操作
  101. *************************************************/
  102. void Lcd_Clear()
  103. {
  104.         Lcd_Com(0X01);
  105. }
  106. /****************************************************
  107. * 說明:設置顯示地址
  108. *****************************************************/
  109. void Lcd_XY(unsigned char x,unsigned char y)
  110. {
  111.         unsigned char address;
  112.         if (y == 0)    address = 0x80 + x;
  113.         else          address = 0xC0 + x;
  114.         Lcd_Com(address);
  115. }
  116. /****************************************************************
  117. * 說明:寫入數據
  118. ****************************************************************/
  119. void Lcd_Write_Data(unsigned char DATA)
  120. {
  121.         RS_HIGH;
  122.         RW_LOW;
  123.         P1SEL = 0X00;
  124.         Lcd_en_write1();
  125.         Lcd_Data_Port &= 0X0F;//清空高四位
  126.         Lcd_Data_Port |= DATA & 0XF0;//送入高四位


  127.         delay_nms(16);
  128.         Lcd_en_write2();

  129.         DATA = DATA<<4;
  130.         Lcd_en_write1();
  131.         Lcd_Data_Port &=0X0F;
  132.         Lcd_Data_Port |= DATA&0XF0;
  133.         Lcd_en_write2();

  134. }
  135. /*********************************************************************************
  136. * 說明:寫入單個字符,X豎坐標,Y橫坐標
  137. *******************************************************************************/
  138. void Lcd_Write_DataSetXY(unsigned char x,unsigned char y,unsigned char data)
  139. {
  140.         Lcd_XY(x,y);
  141.         delay_nms(20);
  142.         Lcd_Write_Data(data);
  143. }
  144. /******************************************************************************
  145. * 說明:寫入字符串,不指定地址
  146. ****************************************************************************/
  147. void Lcd_Write_Str(unsigned char *p)
  148. {
  149.         while(*p)
  150.         {
  151.                 Lcd_Write_Data(*p);
  152.                         p++;
  153.         }
  154. }
  155. /***********************************************************************
  156. * 說明:寫入字符串,x為1602豎坐標,y為橫坐標
  157. ************************************************************************/
  158. void Lcd_Write_StrSetXY(unsigned char x,unsigned char y,unsigned char *p)
  159. {
  160.         Lcd_XY(x,y);
  161.         while(*p)
  162.         {
  163.         Lcd_Write_Data(*p);
  164.                 p++;
  165.         }
  166. }
  167. /*****************************************
  168. *
  169. *               1us延時函數
  170. *
  171. ****************************************/

  172. void delay_1us(void)
  173. {
  174.    asm("nop");
  175. }

  176. /*****************************************
  177. *
  178. *               N us延時函數
  179. *


  180. …………限于本文篇幅 余下代碼請從51黑下載附件…………

復制代碼

所有資料51hei提供下載:
LCD1602頭文件.rar (1.31 KB, 下載次數: 32)




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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美最猛性xxxxx亚洲精品 | 91麻豆精品国产91久久久久久 | 在线观看视频一区 | 久久精品免费一区二区三 | 国产在线一区二区三区 | 亚洲天堂av在线 | 日韩不卡在线观看 | www.一区二区 | 日韩欧美视频免费在线观看 | 99久久精品国产麻豆演员表 | 久久精品视频一区二区 | 国产在线a | www.日韩欧美 | 中文字幕日韩一区二区 | 黑人久久| 福利视频一区二区 | 在线视频三区 | 最新中文字幕 | 国产精品久久国产精品久久 | 在线免费国产 | 日本在线免费看最新的电影 | 亚洲性在线 | 国产激情视频在线观看 | 午夜三区 | 精品一二三区 | 亚洲欧美日韩在线 | 亚洲免费影院 | 成人精品久久 | 国产99久久精品一区二区永久免费 | 久久国内 | av一二三区 | 亚洲人成人一区二区在线观看 | 精品国产乱码久久久久久1区2区 | 久久精品国产v日韩v亚洲 | 天堂视频一区 | 国产成人精品高清久久 | www.狠狠干 | 欧美久久久久久久 | 欧美一区2区三区3区公司 | 久久久久久久久99 | 久久三区 |