嵌入式应用开发屏幕教程8080并口通信

目录

#8080相关概念介绍

#8080并行通信硬件连接部分

#并行通信硬件电路连接图

#并行通信读数据规定

#并行通信写数据规定


#8080相关概念介绍

        通信协议分为串行通信协议,并行通信协议,而本章所讲的8080是一种并行通信协议,并行通信协议 Parallel communication 指的是数据的每一位同时在多跟数据线上发送或者接受,通常以字或者字节并行传输。

        串行通信协议数据按位进行传输,并行通信协议相当于串行通信协议,有着更快的数据传输速度,但是不能进行远距离通信,这种通信一般用于对OLED  LCD 屏幕进行通信传输数据。

        并行通信协议在早期的电子设备中使用加多,现在较多的设备还是使用满足串行通信协议通信技术,但是并行通信协议有一个优点,就是数据传输快,因为有多根数据线可以同时传输。

         如果在时钟线频率相同的情况下,8总线的并行通信速度,就是串行通信的8倍,通常有 8 线 16线  32线 也有 4线 9线 12线,这里的线是指的,用来传输数据的数据总线。

        虽然8080微处理器已经被时代逐渐淘汰,但是由于8080的并行总线协议也叫因特尔总线,在扩展方面及数据传输方面的优越性被保留了下来。很多追求高速,近距离的接口和传输方式依然使8080总线,比如CPU扩展外部的RAM和ROM,LCD、打印机等广泛使用。     

#8080并行通信如何进行通信

#并行通信硬件电路连接图

        在OLED的8080接口中,需要下面这些信号线。

        RD:向OLED读数据

        WR:向OLED写数据

        D:传输数据(8 16 32 )

        CS:片选信号

        DC:命令数据线(0读写命令/1读写数据)

        RST:复位OLED屏幕

        这是一个0.96寸OLED引脚连接图。

                                         

#并行通信读数据规定

        这个图是读时序的图,这里WR全程为高禁止写,在RD的上升边沿,将D[0,7]里面的数据写入驱动芯片,CS为低,选中,RS为高写数据,最后数据传输完成 ,CS拉高,结束数据传输

伪代码表示:

LCD_CS = 0; //开始片选

LCD_DC = 1; //读数据

LCD_WR = 1; //禁止写

LCD_RD = 0; //开始读

data = DATAIN();//读取数据

LCD_RD = 1; //结束读

LCD_CS = 1; //结束片选
#并行通信写数据规定

        这个图是写时序的图,这里RD全程为高禁止写,在WR的上升边沿,将D[0,7]里面的数据写入驱动芯片,CS为低,选中,RS为高写数据,最后数据传输完成 ,CS拉高,结束数据传输。

伪代码表示:

LCD_CS = 0; //开始片选

LCD_RD = 1; //禁止读

LCD_DC = 1; //写数据

DATAOUT(Data); //输出数据 ,先准备好数据,然后上升沿一次性更新到lcd

LCD_WR = 0; //写入开始

LCD_WR = 1; //写入结束

LCD_CS = 0; //结束片选

        相关理解:如果是写,RD为高电平,WR负责控制,如果是读,WR为高电平,RD负责控制,无论是读写命令还是读写数据CS片选信号都要被拉低,结束之后拉高表示过程结束,数据被写在D[0:15]里面(8位找的图是16位),在WR的上升沿将数据读出,或者在RD的上升沿将数据读出。

                                                欢迎指正,希望对你有所帮助!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/754460.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Git使用过程中涉及的几个区域

一. 简介 Git 是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理,也是 Linus Torvalds 为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。 本文简单了解一下 git涉及的几个部分,以及git 常…

老无忧,成熟人士都在玩的社交app

随着互联网向不同年龄群体的进一步渗透,越来越多大龄人士逐步在传统以年轻人为主的平台中搭建起自己的空间,对缔结社交关系的需求也变得强烈起来。老无忧无忧交友app应运而生,于2024年6月1日正式上线(以下简称“老无忧”&#xff…

step6:改用单例模式

文章目录 文章介绍codemain.cppSerialPort.qmlSerialPortHandler.h 文章介绍 案例MF改为单例模式 参考之前写过的关于单例模式的文章单例模式1、单例模式2 code main.cpp qmlRegisterSingletonType(“com.example.serialport”, 1, 0, “SerialPortHandler”, SerialPortHan…

c++ 设计模式 的课本范例(上)

( 0 ) 这里补充面向对象设计的几个原则: 开闭原则 OCP : 面向增补开放,面向代码修改关闭。其实反映到代码设计上就是类的继承,通过继承与多态,可以不修改原代码,又增加新的类似的功能。 依赖倒置原则 Depen…

JavaSE:多态

向上转型: 先看一段代码: 为何Animal animalnew Dog这个代码不报错。就是因为使用了向上转型:父类引用引用子类对象 向上转型一共有三种方式可以实现向上转型:1.直接赋值,2.通过传参,3.返回值 1.直接赋值…

virtualbox安装win10

等到安装完成 设备下选择安装增强功能

【教程】几种不同的RBF神经网络

本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com 目录 一、经典RBF神经网络1.1.经典径向基神经网络是什么1.2.经典径向基神经网络-代码与示例 二、广义回归神经网络GRNN2.1.广义回归神经网络是什么2.2.广义回归神经网络是什么-代码与示例 三、概率…

Redis 5 种基础数据结构?

Redis 5 种基本数据结构(String、List、Hash、Set、Sorted Set)在面试中经常会被问到,这篇文章我们一起来回顾温习一下。 还有几种比较特殊的数据结构(HyperLogLogs、Bitmap 、Geospatial、Stream)也非常重要,我们后面下次再聊! 下面是正文。…

双减期末考试成绩怎么公布?

考试一直是衡量学生学习成果的重要手段。不过,随着"双减"政策的实施,我们就不得不重新审视传统的成绩公布方式。期末考试成绩,这个曾经让无数学生心跳加速的数字,如今该如何以一种更加合理、公正的方式呈现给学生和家长…

广和通 OpenCPU 二次开发(一) —— 串口

广和通 OpenCPU 二次开发(一) —— 串口 1.port,端口号2.引脚序列号对应芯片引脚图找,也可以对照GPIO功能复用表找3.要复用的pin脚对应的功能mode根据GPIO功能复用表选择 一、核心配置## 标题代码 int port 1; fibo_gpio_mode_s…

力扣SQL50 员工的直属部门 子查询 双重

Problem: 1789. 员工的直属部门 👨‍🏫 参考题解 Code select employee_id, department_id from Employee where primary_flag Y # Y 表明是直属部门 or employee_id in (select employee_idfrom Employeegroup by employee_idhaving count(employee…

国外的Claude3.5 Sonnet Artifacts和国内的CodeFlying孰强孰弱?

在Claude 3.5 Sonnet发布后,最受大家关注的问题应该就是它在编写代码能力上的变化。 要知道在Claude3.0发布以来的这几个月就因为它的编写代码能力而一直受到人们的诟病。 那Anthropic这次终于是不负众望,在Claude 3.5 Sonnet中更新了一个叫做Artifact…

ETAS工具导入DEXT生成Dcm及Dem模块(一)

文章目录 前言Cfggen之前的修改ECU关联DcmDslConnectionDiagnostic ProtocolDiagnostic Ecu Instance PropsCommonContributionSetEvent修改communication channel总结前言 诊断模块开发一般是先设计诊断数据库,OEM会释放对应的诊断数据库,如.odx文件或.cdd文件。如果OEM没有…

go~缓存设计配合singleFlight

一个缓存设计,配合go的singleFlight 最开始的设计如下 添加分布式缓存 上线后分布式缓存上涨的流量并不等于下游下降的流量,而是下游下降的流量 * 2~3 究其原因,就是采用了go的singleFlight,假定请求缓存时长10ms&a…

LabVIEW网络开发资源

在LabVIEW开发中,利用网络资源进行学习和查找资料是提高技能和解决问题的重要途径。以下几个国内外优质资源可以帮助开发者获得丰富的技术支持和交流机会: 1. NI Community (NI社区) 简介: National Instruments官方运营的社区,提供丰富的资…

浅谈:冒烟测试

在软件开发的生命周期中,测试阶段是确保产品质量的关键环节。冒烟测试作为软件测试的一种快速而有效的初步验证方法,重要性不言而喻。 冒烟测试源自制造业,尤其是电子行业。当一块电路板被制造出来后,工程师们会首次通电&#xf…

【应用开发二】GPIO操控(输出、输入、中断)

1 操控GPIO方式 控制目录:/sys/class/gpio /sys/class/gpio目录下文件如下图所示: 1.1 gpiochipX目录 功能:当前SoC所包含的所有GPIO控制器 i.mx6ull一共包含5个GPIO控制器,分别为GPIO1~5分别对应gpiochip0、gpiochip32、gpi…

【漏洞复现】用友 GRP-U8 FileUpload 任意文件上传漏洞

免责声明: 本文内容旨在提供有关特定漏洞或安全漏洞的信息,以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步,并非出于任何恶意目的。阅读者应该明白,在利用本文提到的漏洞信息或进行相关测…

蒙特卡洛法求定积分方

对于连续函数密度函数,求某一个区间的概率时,理论上通过积分获取, 以求曲线围成的面积为例 当我们在[a,b]之间随机取一点x时,它对应的函数值就是f(x)。接下来我们就可以用f(x)*(b-a)来粗略估计曲线下方的面积,也就是我…

Redis主从复制、哨兵以及Cluster集群

1.Redis高可用 在web服务器中,高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%、99.99%、99.999%等等)。 但是在Redis语境中,高可用的含义似乎要宽泛一些,除了保证提供…