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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

MSP430F5529+1602源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:580450 發表于 2020-10-6 15:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  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                P6OUT &= ~BIT1           //RS置低
  10. #define RS_SET                P6OUT |=  BIT1           //RS置高

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

  13. #define EN_CLR                P6OUT &= ~BIT3           //E置低
  14. #define EN_SET                P6OUT |=  BIT3           //E置高
  15. //彩屏/12864液晶/1602液晶的數據口,三液晶共用
  16. #define DataDIR         P3DIR                     //數據口方向
  17. #define DataPort        P3OUT                     //P4口為數據口

  18. void clock_init()
  19. {
  20.   UCSCTL3 = SELREF_2;                       // Set DCO FLL reference = REFO
  21.   UCSCTL4 |= SELA_2;                        // Set ACLK = REFO
  22.   UCSCTL0 = 0x0000;                         // Set lowest possible DCOx, MODx

  23.   // Loop until XT1,XT2 & DCO stabilizes - In this case only DCO has to stabilize
  24.   do
  25.   {
  26.     UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + DCOFFG);
  27.                                             // Clear XT2,XT1,DCO fault flags
  28.     SFRIFG1 &= ~OFIFG;                      // Clear fault flags
  29.   }while (SFRIFG1&OFIFG);                   // Test oscillator fault flag
  30.         
  31.   __bis_SR_register(SCG0);                  // Disable the FLL control loop
  32.   UCSCTL1 = DCORSEL_5;                      // Select DCO range 16MHz operation
  33.   UCSCTL2 |= 249;                           // Set DCO Multiplier for 8MHz
  34.                                             // (N + 1) * FLLRef = Fdco
  35.                                             // (249 + 1) * 32768 = 8MHz
  36.   __bic_SR_register(SCG0);                  // Enable the FLL control loop

  37.   // Worst-case settling time for the DCO when the DCO range bits have been
  38.   // changed is n x 32 x 32 x f_MCLK / f_FLL_reference. See UCS chapter in 5xx
  39.   // UG for optimization.
  40.   // 32 x 32 x 8 MHz / 32,768 Hz = 250000 = MCLK cycles for DCO to settle
  41.   __delay_cycles(250000);
  42. }

  43. //*************************************************************************
  44. //                        初始化IO口子程序
  45. //*************************************************************************
  46. void Port_init()
  47. {
  48.         P1DIR|=BIT0;
  49.         P1OUT|=BIT0;
  50.         P3SEL = 0x00;
  51.         P3DIR = 0xFF;                   //數據口輸出模式
  52.         P6SEL = 0x00;
  53.         P6DIR|= BIT1 + BIT2 + BIT3;     //控制口設置為輸出模式
  54. }

  55. //***********************************************************************
  56. //        顯示屏命令寫入函數
  57. //***********************************************************************
  58. void LCD_write_com(unsigned char com)
  59. {        
  60.         RS_CLR;
  61.         RW_CLR;
  62.         EN_SET;
  63.         DataPort = com;                 //命令寫入端口
  64.         delay_ms(5);
  65.         EN_CLR;
  66. }

  67. //***********************************************************************
  68. //        顯示屏數據寫入函數
  69. //***********************************************************************
  70. void LCD_write_data(unsigned char data)
  71. {
  72.         RS_SET;
  73.         RW_CLR;
  74.         EN_SET;
  75.         DataPort = data;                //數據寫入端口
  76.         delay_ms(5);
  77.         EN_CLR;
  78. }

  79. //***********************************************************************
  80. //        顯示屏清空顯示
  81. //***********************************************************************
  82. void LCD_clear(void)
  83. {
  84.         LCD_write_com(0x01);            //清屏幕顯示
  85.         delay_ms(5);
  86. }

  87. //***********************************************************************
  88. //        顯示屏字符串寫入函數
  89. //***********************************************************************
  90. void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)
  91. {
  92.         
  93.     if (y == 0)
  94.     {
  95.             LCD_write_com(0x80 + x);        //第一行顯示
  96.     }
  97.     else
  98.     {
  99.             LCD_write_com(0xC0 + x);        //第二行顯示
  100.     }
  101.    
  102.     while (*s)
  103.     {
  104.             LCD_write_data( *s);
  105.             s ++;
  106.     }
  107. }

  108. //***********************************************************************
  109. //        顯示屏單字符寫入函數
  110. //***********************************************************************
  111. void LCD_write_char(unsigned char x,unsigned char y,unsigned char data)
  112. {
  113.         
  114.     if (y == 0)
  115.     {
  116.             LCD_write_com(0x80 + x);        //第一行顯示
  117.     }
  118.     else
  119.     {
  120.             LCD_write_com(0xC0 + x);        //第二行顯示
  121.     }
  122.    
  123.     LCD_write_data( data);  
  124. }

  125. //***********************************************************************
  126. //        顯示屏初始化函數
  127. //***********************************************************************
  128. void LCD_init(void)
  129. {
  130.     LCD_write_com(0x38);                //顯示模式設置  
  131.     delay_ms(5);
  132.     LCD_write_com(0x08);                //顯示關閉
  133.     delay_ms(5);
  134.     LCD_write_com(0x01);                //顯示清屏
  135.     delay_ms(5);
  136.     LCD_write_com(0x06);                //顯示光標移動設置
  137.     delay_ms(5);
  138.     LCD_write_com(0x0C);                //顯示開及光標設置
  139.     delay_ms(5);
  140. }

  141. void main( void )
  142. {
  143.   // Stop watchdog timer to prevent time out reset
  144.   WDTCTL = WDTPW + WDTHOLD;
  145.   clock_init();
  146.   uchar i,*p;
  147.   Port_init();                        //系統初始化,設置IO口屬性
  148.   delay_ms(100);                      //延時100ms
  149.   LCD_init();                         //液晶參數初始化設置
  150.   LCD_clear();                        //清屏
  151.    while (1)
  152.       {
  153.                 i = 1;
  154.                 p = "xxxxxxxx";                //字符串輸出顯示
  155.                 LCD_clear();
  156.                 LCD_write_str(0,0,"Welcome.DM430-L");
  157.                 delay_ms(250);
  158.                
  159.                 while (*p) {
  160.                         LCD_write_char(i,1,*p);      //單個字符輸出顯示
  161.                         i ++;
  162.                         p ++;
  163.                         delay_ms(100);               //延時250ms
  164.                         }
  165.                 delay_ms(250);
  166.                 P1OUT^=BIT0;
  167.       }
  168. }
復制代碼


1602.zip

423.5 KB, 下載次數: 28, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:819974 發表于 2021-3-6 14:06 | 只看該作者
能問一下是用什么軟件寫的嗎?
回復

使用道具 舉報

板凳
ID:876849 發表于 2021-3-9 16:13 | 只看該作者
學習一波大佬的操作
回復

使用道具 舉報

地板
ID:956252 發表于 2021-7-26 09:57 | 只看該作者
想問一下,lcd怎么接線呢?
回復

使用道具 舉報

5#
ID:896149 發表于 2021-8-1 22:11 | 只看該作者
wj520yyj 發表于 2021-7-26 09:57
想問一下,lcd怎么接線呢?

我也想知道
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧洲一级毛片 | 91 在线 | 在线观看黄免费 | 亚洲精品国产第一综合99久久 | 在线一区视频 | 污视频免费在线观看 | 国产精品99久久久久久人 | 国产午夜精品视频 | 涩涩视频网站在线观看 | 久久精品国产99国产精品 | 欧美日韩在线看 | 在线视频亚洲 | 日日摸夜夜爽人人添av | 欧美精品一区三区 | 一区二区三区国产 | 久久99国产精品 | 一级免费毛片 | 国产在线a | 欧美在线| caoporn免费在线视频 | 成人在线播放网址 | 欧美一区二区在线观看视频 | 久久久久久色 | 中国一级毛片免费 | 日韩国产欧美在线观看 | 一区二区av | 成人免费观看视频 | 播放一级黄色片 | 国产精品国产亚洲精品看不卡15 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 亚洲小视频在线观看 | 国产一区二区三区精品久久久 | 久久久久国产一区二区三区四区 | 欧美一区二区三区在线 | 影视先锋av资源噜噜 | 日韩欧美在线精品 | 人人九九精 | 国产一区二区三区色淫影院 | 精品久久久久久久 | 一级毛片高清 | 日本91av视频 |