找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1915|回复: 0
打印 上一主题 下一主题
收起左侧

基于msp430单片机的1602显示源程序

[复制链接]
跳转到指定楼层
楼主
ID:280261 发表于 2018-3-26 17:40 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
基于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)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表