找回密码
 立即注册

QQ登录

只需一步,快速开始

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

stc15F2K60s4单片机+LCD1602测试程序

[复制链接]
跳转到指定楼层
楼主


单片机源程序如下:
  1. #include"LCD1602.h"
  2. void LCD_1602_Delay1ms(uint c)   //误差 0us
  3. {
  4.     uchar a,b;
  5.         for (; c>0; c--)
  6.         {
  7.                  for (b=199;b>0;b--)
  8.                  {
  9.                           for(a=1;a>0;a--);
  10.                  }      
  11.         }
  12.            
  13. }

  14. /*向LCD写入一个字节的命令*/
  15. #ifndef         LCD1602_4PINS         //当没有定义这个LCD1602_4PINS时
  16. void LCD_Write_Com(uchar com)          //写入命令
  17. {
  18.         EN = 0;     //使能
  19.         RS = 0;           //选择发送命令
  20.         RW = 0;           //选择写入
  21.        
  22.         LCD1602_DATAPINS = com;     //放入命令
  23.         LCD_1602_Delay1ms(1);                //等待数据稳定

  24.         EN = 1;                  //写入时序
  25.         LCD_1602_Delay1ms(5);          //保持时间
  26.         EN = 0;
  27. }

  28. #endif

  29. /*向LCD写入一个字节的数据*/                  
  30. #ifndef         LCD1602_4PINS                  
  31. void LCD_Write_Data(uchar dat)                        //写入数据
  32. {
  33.         EN = 0;        //使能清零
  34.         RS = 1;        //选择输入数据
  35.         RW = 0;        //选择写入

  36.         LCD1602_DATAPINS = dat; //写入数据
  37.         LCD_1602_Delay1ms(1);

  38.         EN = 1;   //写入时序
  39.         LCD_1602_Delay1ms(5);   //保持时间
  40.         EN = 0;
  41. }
  42. #endif


  43. /*清屏函数*/
  44. void LCD_Clear(void)
  45. {
  46. LCD_Write_Com(0x01);
  47. LCD_1602_Delay1ms(5);
  48. }

  49. /*写入字符串函数*/
  50. void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
  51. {     
  52. if (y == 0)
  53.         {     
  54.          LCD_Write_Com(0x80 + x);     //表示第一行
  55.         }
  56. else
  57.         {      
  58.         LCD_Write_Com(0xC0 + x);      //表示第二行
  59.         }        
  60. while (*s)
  61.         {     
  62. LCD_Write_Data( *s);     
  63. s ++;     
  64.         }
  65. }

  66. /*写入字符函数*/
  67. void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
  68. {     
  69. if (y == 0)
  70.         {     
  71.         LCD_Write_Com(0x80 + x);     
  72.         }   
  73. else
  74.         {     
  75.         LCD_Write_Com(0xC0 + x);     
  76.         }        
  77. LCD_Write_Com( Data);  
  78. }



  79. /*初始化LCD屏*/                  
  80. #ifndef                LCD1602_4PINS
  81. void LCD1602_Init()                                                  //LCD初始化子程序
  82. {
  83.         LCD_Write_Com(0x38);  //开显示
  84.         LCD_Write_Com(0x0c);  //开显示不显示光标
  85.         LCD_Write_Com(0x06);  //写一个指针加1
  86.         LCD_Write_Com(0x01);  //清屏
  87.         LCD_Write_Com(0x80);  //设置数据指针起点
  88. }

  89. #endif
复制代码

所有资料51hei提供下载:
stc15+LCD1602.zip (1.47 KB, 下载次数: 47)

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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