标题: 基于msp430单片机的1602显示源程序 [打印本页]

作者: 鳏独境谛    时间: 2018-3-26 17:40
标题: 基于msp430单片机的1602显示源程序
基于430单片机的1602简单显示

单片机源程序如下:

  1. #include "io430.h"

  2. #define RS_di                P5OUT &= ~BIT5           //RS置低
  3. #define RS_gao                P5OUT |=  BIT5           //RS置高

  4. #define RW_di                P5OUT &= ~BIT6           //RW置低
  5. #define RW_gao                P5OUT |=  BIT6           //RW置高

  6. #define EN_di                P5OUT &= ~BIT7           //E置低
  7. #define EN_gao                P5OUT |=  BIT7           //E置高

  8. unsigned char DATA[30]= "feeling tipsy;dispersed;forgot";

  9. //*************************************************************************
  10. //                        初始化IO口子程序
  11. //*************************************************************************
  12. void Port_init()
  13. {

  14.         P4SEL = 0x00;
  15.         P4DIR = 0xFF;                   //数据口输出模式
  16.         P5SEL = 0x00;
  17.         P5DIR|= BIT5 + BIT6 + BIT7;     //控制口设置为输出模式
  18. }

  19. //***********************************************************************
  20. //        显示屏命令写入函数
  21. //***********************************************************************
  22. void LCD_write_com(unsigned char com)
  23. {       
  24.         RS_di;
  25.         RW_di;
  26.         EN_gao;
  27.         P4OUT = com;                 //命令写入端口
  28.         __delay_cycles(5000);
  29.         EN_di;
  30. }

  31. //***********************************************************************
  32. //        显示屏数据写入函数
  33. //***********************************************************************
  34. void LCD_write_data(unsigned char data)
  35. {
  36.         RS_gao;
  37.         RW_di;
  38.         EN_gao;
  39.         P4OUT = data;                //数据写入端口
  40.         __delay_cycles(5000);
  41.         EN_di;
  42. }

  43. //***********************************************************************
  44. //        显示屏清空显示
  45. //***********************************************************************
  46. void LCD_clear(void)
  47. {
  48.         LCD_write_com(0x01);            //清屏幕显示
  49.         __delay_cycles(5000);
  50. }





  51. //***********************************************************************
  52. //        显示屏初始化函数
  53. //***********************************************************************
  54. void LCD_init(void)
  55. {
  56.     LCD_write_com(0x38);                //显示模式设置  
  57.    __delay_cycles(5000);
  58.     LCD_write_com(0x08);                //显示关闭
  59.     __delay_cycles(500);
  60.     LCD_write_com(0x01);                //显示清屏
  61.     __delay_cycles(5000);
  62.     LCD_write_com(0x06);                //显示光标移动设置
  63.     __delay_cycles(5000);
  64.     LCD_write_com(0x0C);                //显示开及光标设置
  65.     __delay_cycles(5000);
  66. }

  67. //***********************************************************************
  68. //      主程序
  69. //***********************************************************************
  70. int main( void )
  71. {
  72.   // Stop watchdog timer to prevent time out reset
  73.   WDTCTL = WDTPW + WDTHOLD;
  74.   unsigned char i = 0;
  75.   Port_init();
  76.   LCD_init();
  77.   //LCD_write_data(data);
  78.   while(1)
  79.   {
  80.     if(i<=15)
  81.     {
  82.     LCD_write_com(0x80+0x00);
  83.     for(i=0;i<=15;i++)
  84.      {
  85.         LCD_write_data(DATA[i]);
  86.      }
  87.     }
  88.     else
  89.     {
  90.       LCD_write_com(0x80+0x40+0x00);
  91.       for(i=16;i<=29;i++)
  92.       {
  93.        LCD_write_data(DATA[i]);
  94.       }
  95.     }
  96.      
  97.     // LCD_write_data(data);
  98.   }
  99. }
复制代码

所有资料51hei提供下载:
1602xian_shi.zip (178.43 KB, 下载次数: 6)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1