当前位置: 首页 > news >正文

LCD1602小程序

1显示数据

typedef struct 
{
  unsigned long int mL_data;
  unsigned long int L_data;
  unsigned long int M3_data;
}water_date;
extern water_date water_data1;

2数据处理函数

/**---------------------------------------------------------------------------------
  * @brief       数据处理函数
  * @param           无
  *    @arg         需处理数据结构体起始地址
  * @retval     数据起始地址
  ---------------------------------------------------------------------------------*/
unsigned char* DATA_DEAL(water_date t)
{
    unsigned char  DIS_DATA[] = {"000mL;000L;000M3"}; 
    if(t.mL_data || t.L_data || t.M3_data)
    {
        DIS_DATA[0] = (t.mL_data * 1000/450)%1000/100 + 0x30;
        DIS_DATA[1] = (t.mL_data * 1000/450)%100/10 + 0x30;
        DIS_DATA[2] = (t.mL_data * 1000/450)%10 + 0x30;
        
        DIS_DATA[6] = t.L_data%1000/100 + 0x30;
        DIS_DATA[7] = t.L_data%100/10 + 0x30;
        DIS_DATA[8] = t.L_data%10 + 0x30;
        
        DIS_DATA[11] = t.M3_data%1000/100 + 0x30;
        DIS_DATA[12] = t.M3_data%100/10 + 0x30;
        DIS_DATA[13] = t.M3_data%10 + 0x30;

        return DIS_DATA;
    }
    else return 0;

}

3显示函数

/**---------------------------------------------------------------------------------
* @brief      对应位置显示函数
* @param        y:1,2(从第几行开始写)
                            x:0-15(从改行的第几位开始写)
*    @arg         NULL
* @retval     null
---------------------------------------------------------------------------------*/
unsigned char LCD1602_WRITE(unsigned char y,unsigned char x,unsigned char *write_data)
{
    unsigned char i;
    lcd_wcmd(0x06);            //向右移动光标
    if(y == 1)
    {    
        lcd_pos(x);                //设置显示位置为第一行的第1个字符
        i = 0;
        while(*(write_data + i) != '\0')
        {                           //显示字符"WLCOME  TO"
            lcd_wdat(*(write_data + i));
            i++;
        //    delay(200);                //控制两字之间显示速度
            if(i > 15)
            {
                LCE1602_STATUS = WRITE_NO;
                return LCE1602_STATUS;        
            }     
        }
        LCE1602_STATUS = WRITE_OK;
      return LCE1602_STATUS;    
    }
    else
    {
        lcd_pos(0x40 + x);                //设置显示位置为第一行的第1个字符
        i = 0;
        while(*(write_data + i) != '\0')
        {                           //显示字符"WLCOME  TO"
            lcd_wdat(*(write_data + i));
            i++;
        //    delay(200);                //控制两字之间显示速度
            if(i > 15)
            {
                LCE1602_STATUS = WRITE_NO;
                return LCE1602_STATUS;        
            }     
        }
        LCE1602_STATUS = WRITE_OK;
      return LCE1602_STATUS;    
    }
}

 

转载于:https://www.cnblogs.com/Ph-one/p/LCD1602.html

相关文章:

  • STC51六中中断配置点亮一个LED
  • STC51几种简单的延时函数
  • GSM900TCP/UDP连接
  • arm-linux工具
  • 盎司
  • Win7下硬盘安装fedora17
  • sudo fdisk -l
  • 硬盘
  • 开发人员不可不看的 OBD通讯协议知识
  • Ubuntu 12.10 用wubi安装到硬盘中
  • ubuntu 12.04网络设置
  • ubuntu 12.04及12.10无法安装 ia32-libs
  • ubuntu文字界面与图形界面切换
  • Android下点亮LED
  • MiniTools在ubuntu下快捷方式
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • 《深入 React 技术栈》
  • Go 语言编译器的 //go: 详解
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JavaScript学习总结——原型
  • Java新版本的开发已正式进入轨道,版本号18.3
  • 编写高质量JavaScript代码之并发
  • 基于游标的分页接口实现
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 批量截取pdf文件
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 学习Vue.js的五个小例子
  • 走向全栈之MongoDB的使用
  • gunicorn工作原理
  • 从如何停掉 Promise 链说起
  • ​flutter 代码混淆
  • #前后端分离# 头条发布系统
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (编译到47%失败)to be deleted
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (九)信息融合方式简介
  • (转载)利用webkit抓取动态网页和链接
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .NET 4.0中的泛型协变和反变
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @AliasFor注解
  • @拔赤:Web前端开发十日谈
  • [ C++ ] STL---string类的使用指南
  • [20160807][系统设计的三次迭代]
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [c++] C++多态(虚函数和虚继承)
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [HDU 3555] Bomb [数位DP]
  • [Java][算法 双指针]Day 02---LeetCode 热题 100---04~07
  • [LeetCode]Max Points on a Line