LCD12864引脚如下:

FPGA开发板得提供,3.3v电压,5v电压,普通io都是3.3v电压

DB:数据脚,得用双向io,因为程序里面需要读取液晶的应答(普通io3.3v可以)

E:?输出引脚即可,普通io3.3v可以

RW:?输出引脚即可,普通io3.3v可以

RS:?输出引脚即可,普通io3.3v可以

PSB:串行还是并行,接+5v为并行,0v为串行,这个不能悬空,而且一定要接+5v(接3.3v行不行,没有测试,不敢乱说)

V0:这个是控制屏幕显示对比度的,接5v为最高对比度,0v为最低对比度,但是这样根本看不出来屏幕有显示,很坑,还以为是驱动程序没写对,所以最好直接接+5v,先保证屏幕一些正常,把程序调试正确,最后再来调一下对比度即可,即调这个引脚的电压值。其实这个引脚悬空也行,因为lcd12864背后自带了一个电位器,可以调,拧紧的方向为增强对比度,而且很灵敏,调一点点即可,对比度高,屏幕明显看起来有紫红色,对比度太低甚至不显示的程度,屏幕看起来是淡蓝色

VCC:+5v,记住:不能接3.3v,只能5v(这个问题坑了我一天时间,我以为跟数据脚用一样的3.3v就可以,其实不行)

GND:0V但是我发现接不接好像都可以,挺奇怪的,但是最好接上吧

BLA:背光板的正极,+5v,3.3v都可以,只是亮度不同,不影响时序以及应答,不接也行,就没有背光了而已

BLK:背光板负极,0v

?

首先保证以上引脚电压都接正确,否则程序正确了也没有显示,而且不会应答,程序陷入死循环!!!比如,我就是把vcc接了+3.3v,被这个问题整整搞了大半天,心累!!!手头也没有万用表,示波器等高端设备,自己也只有通过一根线连接这个引脚和一个led来测试哪个引脚电平的高低,一点点尝试,怀疑每一个地方,第二天中午12.30,失败了156次后,正准备放弃的时候,稀里糊涂的换了一下VCC引脚为5V,结果程序竟然跑起来了,显示也正确了,你知道我当时有多开心吗,比中了一个亿还开心,真想告诉全世界!!!那种无数次失败后成功的喜悦,真的是太好了!所以这里想告诉大家,失败是成功之母,经历了无数次失败后,你已经积累了大量的知识,阅历和运气,只要你肯坚持下去,你一定会成功的!

?

下面是我的FPGA?nios?驱动12864的程序:(我为什么不上传呢,因为这样你下载可能就需要积分或者啥的,雅思托福的区别我感觉不方便,既然大家都是追求技术,我也能体会大家现在的心情,我写这个的目的也不是为了赚积分,或者图什么利益,我就是想记录下自己踩过的坑,分享给大家,希望大家少走弯路。所以我直接写在博客里面,这样你可以直接复制)

注:这个是LCD12864的驱动程序,至于为什么偶尔出现1602的字样,英文美文是因为这个驱动程序我是从LCD1602驱动程序移植过来的,因为这两个屏幕的驱动程序很相似,甚至不用改一行程序也能显示少数的字符,所以大家知道这么回事就行

LCD12864.h

LCD12864.c

从上面的代码我们可以看出,因为FPGA?nios我用的是100MHZ主频,速度太快(实际上一点也不快,我测试过了,一条a++自加指令都要差不多30个时钟周期,即整个nios只相当于3MHZ主频左右的单片机,算非常慢的cpu了),我们需要在指令之间插入延时1us比较好,才能匹配液晶屏需要的时序,这里我用的是自己写的延时函数,当然你也可以用库函数,ussleep(int?us);我自己写的delay延时函数如下:

最后在主函数里面这样调用,lcd12864液晶屏幕即可显示:

经过测试,整个程序完全o98k,放心用吧!!!运行效果如下:

FPGA nios软核编写液晶屏LCD12864驱动程序源码以及注意事项,本人亲自踩坑,重要!!!的更多相关文章

  1. 关于Quartus构建nios软核以及eclipse建立c语言工程以及成功下载到FPGA芯片过程遇到的各种问题以及解决方法详解

    这不是一篇构建nios的教程,而是遇到的各种问题以及解决方法.至于构建教程,网上一大把,我推荐正点原子的FPGA教程,比较新,比较详细,通俗易懂!!! 这里以一个点亮LED灯的Nios软核为例,很明显 ...

  2. FPGA的软核与硬核

    硬核 zynq和pynq系列的fpga都是双ARM/Cortex-A9构成,这里的ARM处理器为硬核,Cortex-A9部分为FPGA部分.即整体分为两部分:PS/PL.PS部分为A9处理器部分,PL ...

  3. [转] - 使用Qt作窗口截屏(含源码)

    截屏(screenshot),就是将屏幕上的东西拷贝下来存成图片文件.介绍的好像有点多余:(,那我们就直接切入正题. QPixmap提供了两个函数grabWidget和grabWindow可以将屏幕上 ...

  4. 36.QT-解决无边框界面拖动卡屏问题(附带源码)

    1.简介 看到很多才学QT的人都会问为啥无边框拖动为啥会花屏? 那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了, ...

  5. 仿iphone动态萤火虫锁屏应用安卓源码

    该源码是仿iphone动态萤火虫锁屏应用源码,源码SkyLock,这也是最近弄了一款锁屏,苦于市场百般阻拦与锁屏应用数量实在太多,于是将它拿出来开源:废话不多说,希望大家能够希望,更多说明请看下面的吧 ...

  6. leaflet-webpack 入门开发系列三地图分屏对比(附源码下载)

    前言 leaflet-webpack 入门开发系列环境知识点了解: node 安装包下载webpack 打包管理工具需要依赖 node 环境,所以 node 安装包必须安装,上面链接是官网下载地址 w ...

  7. 硬核干货:4W字从源码上分析JUC线程池ThreadPoolExecutor的实现原理

    前提 很早之前就打算看一次JUC线程池ThreadPoolExecutor的源码实现,由于近段时间比较忙,一直没有时间整理出源码分析的文章.之前在分析扩展线程池实现可回调的Future时候曾经提到并发 ...

  8. android后台截屏实现(1)--源码编译

    前段时间接到任务要实现后台截图并上传的功能,在网上查了好久,发现遇到这类问题的人还不少.经过一番对比后发现还是修改并编译源码中的screencap类然后通过JNI来调用这种方法比较可靠,而其他的在ja ...

  9. 硬核剖析Java锁底层AQS源码,深入理解底层架构设计

    我们常见的并发锁ReentrantLock.CountDownLatch.Semaphore.CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁. 上篇 ...

随机推荐

  1. 第十篇 -- 学习C++宝典2005版

    最近看了C++宝典,看时间是2005的,对于里面的程序自己也进行了编写,由于时间过久,可能有些函数的用法发生了改变,自己也对其进行了修改,用VS2017可以编译通过. 前四章学习内容 CPlusPlu ...

  2. LUSE: 无监督数据预训练短文本编码模型

    LUSE: 无监督数据预训练短文本编码模型 1 前言 本博文本应写之前立的Flag:基于加密技术编译一个自己的Python解释器,经过半个多月尝试已经成功,但考虑到安全性问题就不公开了,有兴趣的朋友私 ...

  3. ts 学习笔记 - 进阶篇 1

    目录 进阶 类型别名 字符串字面量类型 元祖 例子 越界的元素 枚举 手动赋值 常数项和计算所得项 常数枚举 外部枚举 进阶 类型别名 类型别名用来给一个类型起个新名字 type Name = str ...

  4. kivy八种布局方式学习

    kivy八种布局:FloatLayout.BoxLayout.AnchorLayout.GridLayout.PageLayout.RelativeLayout.ScatterLayout.Stack ...

  5. 内置函数 字符串比较 strcmp 登录密码

    1 //内置函数 字符串比较 strcmp 2 // 原理:将两个字符串从首字母开始,按照ASCII码的顺序逐个比较 3 //字符串1 == 字符串2 返回0 4 //字符串1 < 字符串2, ...

  6. Redis是不是真的变慢了?

    大家好,今天我们来学习一下如何确定Redis是不是真的变慢了. 我们在使用redis时一定会遇到变慢的时候,那我们如何来判断Redis是否真的变慢了呢, 一个最直接的方法就是查看Redis的响应延迟, ...

  7. 跟我一起写 Makefile(十四)

    使用make更新函数库文件 ----------- 函数库文件也就是对Object文件(程序编译的中间文件)的打包文件.在Unix下,一般是由命令"ar"来完成打包工作. 一.函数 ...

  8. CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记

    CAS5.3服务器搭建与客户端整合SpringBoot以及踩坑笔记 cas服务器的搭建 导出证书(1和2步骤是找了课程,随便写了一下存记录,不过对于自己测试不投入使用应该不影响) C:\Users\D ...

  9. Spring学习04(使用注解开发)

    7.使用注解开发 说明:在spring4之后,想要使用注解形式,必须得要引入aop的包. 在配置文件当中,还得要引入一个context约束 <?xml version="1.0&quo ...

  10. 解决微信官方SDK给出1.4.0等版本没有预览文件(previewFile)等接口

    使用苹果手机测试 调用微信的js-sdk在系统中实现上传.预览附件的功能.在自己的手机测试通过后,直接丢给QA测试了 本以为相安无事了,没想到QA用安卓手机测的时候居然不得,使用的是下载下来的jwei ...