上个星期把MINI2440板上的富余数据线引了出来,看着以前丢下的1602突然有了想用ARM9驱动它的冲动,于是就开始干了。
代码是从以前刚学C51的时候改的,呵呵,看见以前写的代码真觉得很烂,现在已经整理好了。

虽说有点牛刀杀鸡的味道,但驱动起来真的费了不少劲。如果有裤子穿就好了 ^_^

驱动方式:2440+HC595+LCD1602

电路图:

电路图 (原文件名:1602.jpg) 
全家福

全家福 (原文件名:moto_0009.jpg)

LCD1602.H  头文件内容

#ifndef  __LCD1602_H__
#define  __LCD1602_H__

#include "./include/gpio.h"
#include "./include/def.h"
#include "./include/timer.h"

//------- 驱动方式 -----------//
#define    IO_WAY                  0                 //模拟IO
#define    SPI_WAY                  1                 //SPI

#define    LCDCTL_WAY    SPI_WAY                //使用SPI驱动

//------- 控制端口与控制引脚 ------//
#define    LCD1602_CTL_PORT    rGPFCON                        //GPF 端口

#define    LCD1602_RS  GPFPin0                                //RS引脚
#define    LCD1602_RW  GPFPin2                                //RW引脚
#define    LCD1602_E   GPFPin4                                //EN引脚

//------- 数据端口与数据引脚 ------//        (使用74HC595)
#define    LCD1602_DATA_PORT    rGPGCON                        //GPG 端口
#define    HC595_ST    GPGPin5                                //  SPI1MISO 引脚
#define    HC595_SH    GPGPin7                                //  SPI1CLK 引脚
#define    HC595_Ds    GPGPin6                                //  SPI1MOSI 引脚

#define    SPI1Baud           300000                                // 设置波特率为300 khz          (PCLK=50666666)

//-------- 自制字符 ---------
#define    SELF_SYMBOL                  1                        //  使能自制字符显示

#if SELF_SYMBOL
extern const U8 CGTAB[8][8];
#endif

//----- 延时函数 ----------//
#define   delay_ms(x)   TimerDelay(1000*x)
#define   delay_us(x)   TimerDelay(1*x)

//--------- 主函数 ----------//
void LCD1602_init(void);                                //1602初始化(带清屏)
void LCD1602_Clear(void);                                //1602清屏
void LCD1602_putchar(U8 number);                        //显示字符
void LCD1602_putcharXY(U8 number,U8 x,U8 y);            //在指定位置显示字符
void LCD1602_putstring(U8 *p);                        //显示字符串
void LCD1602_putstringXY(U8 *p,U8 x,U8 y);              //在指定位置显示字符串
#if SELF_SYMBOL
void LCD1602WriteRAM(U8 *Data,U8 tab_N);
#endif

//--------- 子函数 ----------//
void LCD1602Pin_init(void);
#if LCDCTL_WAY==SPI_WAY
void SPI1SendData(U8 Data);
#else
void  HC595SendData(U8 data);
#endif
void LCD1602WriteCMD(U8 CMD);
void LCD1602WriteDATA(U8 W_DATA);
void LCD1602SetPoint(U8 x,U8 y);

#endif        // __LCD1602_H__

代码与原理图ourdev_513387.rar(文件大小:298K) (原文件名:Up.rar)

收藏0

发一个自己写的2440驱动1602的资料(电路+代码)相关推荐

  1. 发一个自己写的抓包软件,支持插件化脚本分析

    市场上的抓包工具已经足够多,轻量级的,重量级的都有,典型的wireshark,smartsniff等, 各有优缺点,PowerSniff是为程序员准备的一款抓包工具,目标是使协议解析插件编写更简单.文 ...

  2. 发一个笔筒式的摄像头驱动(台湾原相科技)

    无意中搞到了一个摄像头,长这样,连上电脑后显示未知设备,系统默认驱动安装不了 然后查了一下VID,PID,在网上搜索到了驱动,上一张图先,驱动安装后显示PC VGA Gamer@Plus(看得出来这款 ...

  3. metronic php 后台,发一个自己写的通用后台(Yii2+metronic_v4.5.6)

    lxj 评论于 2016-11-23 11:55 Fatal error: Uncaught exception 'yii\base\InvalidParamException' with messa ...

  4. arduino下载库出错_arduino的I2C通讯 3:驱动1602液晶屏

    上个推送,我们学习了I2C功能的基础知识.而且知道了使用很多器件都需要安装库.本次,我们一起来做一个实例,用arduino驱动1602液晶屏 1602代表屏幕有16列,2行.传统的驱动方式占用了大量的 ...

  5. 单片机led闪烁代码_单片机驱动LED发光二极管的电路以及编程

    一.单片机驱动单个发光二极管 1.电路 代码: 1.点亮单个LED二极管 #include<reg51.h> sbit LED1=P1^0:void main(void){LED1=1:w ...

  6. 写一个公用的gpio口驱动

    因为项目需要控制的GPIO口比较多,如果每个GPIO口都写一个驱动就显得比骄麻烦,所以就写了一个通用的GPIO口驱动.只要dts里面配置好设备GPIO相关信息就可以自动加载了.可以很充分的体现多个设备 ...

  7. 匪夷所思!意念「返生」熟鸡蛋论文引争议,新华社:一个敢写一个敢发

    来源|雷锋网 文|付静 近日,一篇来自郑州市春霖职业培训学校的研究成果引发网友热议.该校一篇题为<熟鸡蛋变成生鸡蛋(鸡蛋返生)-孵化雏鸡的实验报告>的论文,收录在 2020 年 6 月第 ...

  8. 测试驱动开发_DevOps之浅谈测试驱动开发

    "测试驱动开发(Test-Driven Development, TDD),以测试作为开发过程的中心,它要求在编写任何产品代码之前,先编写用于定义产品代码行为的测试,而编写的产品代码又要以使 ...

  9. iic模块PCF8574驱动1602学习记载

    用PCF8574来扩展单片机的IO口,虽然IIC通信程序网上到处都是,但是之前也是驱动一个关于iic总线的芯片,那芯片怎么也不答应我,估计是地址的原因吧.地址这个事情总是不好把握.所以当拿到文档的时候 ...

最新文章

  1. hdu 1753大小数相加
  2. 小游戏_猜数_JAVA
  3. matlab平面问题编程,有限元平面矩形单元MATLAB程序设计.docx
  4. 阿里云物联网边缘计算加载MQTT驱动
  5. 申请 Let's Encrypt 数字证书,并安装cerbot快速上手教程~~
  6. server sql 分组 去重 字符串拼接_SQL必知必会
  7. 后台接收数组_腾讯C++后台开发面试笔试知识点参考笔记
  8. erp核心目的及erp特点
  9. 微信小程序开发(一):小程序代码构成
  10. springboot高校教室排课系统的设计与实现毕业设计-附源码221556
  11. poi完成word、excel、pdf添加斜体水印
  12. 移动通信网络规划:多址技术
  13. secureCRT免密安装
  14. OneZero第四次站立会议(2016.3.24)
  15. android 模拟电脑按键精灵,Android 模拟点击 按键精灵 ADB方案
  16. JSON.stringfy()详解
  17. 什么是readout function/readout函数
  18. 0基础极速入门!深度学习高层API最强官方课程
  19. linux系统中的sl命令 以及其他好玩的东西
  20. 【正则】二代身份证正则表达式

热门文章

  1. 数据结构实验五 查找算法的实现
  2. c语言占用cpu的程序,Windows下用C语言获取进程cpu使用率,内存使用,IO情况
  3. mysql error 1201_ERROR 1201 (HY000): Could not initialize master info structure; .....
  4. HDU 1203 I NEED A OFFER! (动态规划、01背包、概率)
  5. 037-PHP如何返回闭包函数实例
  6. HDU5923-Prediction-有继承味道的并查集
  7. 复习Python DB-API
  8. Httpd 使用ip可以访问,localhost和127.0.0.1不能访问
  9. 持久化雪花视图实例学习
  10. 847. Shortest Path Visiting All Nodes(二)