基于Arduino的一种电子显示屏控制系统设计
arduino液晶屏显示实训报告

arduino液晶屏显示实训报告本次实训旨在通过使用Arduino控制液晶屏显示信息来加深对于Arduino的理解,并实际运用其功能。
本报告将详细介绍实训的目标、步骤和结果,并对实训过程中遇到的问题进行总结和分析。
一、实训目标:1.熟悉Arduino开发环境的搭建和基本操作;2.掌握Arduino控制液晶屏显示的基本原理和方法;3.实现Arduino与液晶屏的连接和数据传输;4.利用液晶屏显示特定信息,如温度、湿度等。
二、实训步骤:1.硬件准备:准备Arduino开发板、液晶屏、杜邦线等硬件设备;2.软件设置:安装Arduino开发环境,并选择合适的库文件以支持液晶屏;3.连接电路:按照液晶屏的引脚定义,将Arduino与液晶屏进行正确连接;4.编写代码:使用Arduino编程语言,编写控制液晶屏显示的代码;5.上传代码:将编写好的代码上传至Arduino开发板,实现与液晶屏的通信;6.测试验证:观察液晶屏显示的效果,并进行必要的调试。
三、实训结果:通过本次实训,我们成功实现了Arduino控制液晶屏显示信息的目标。
液晶屏能够准确显示我们预设的各种信息,如温度、湿度等。
在实际的应用场景中,我们可以通过传感器采集环境数据,并通过Arduino将这些数据显示在液晶屏上,从而提供给用户实时的信息反馈。
四、问题总结与分析:在实训过程中,我们遇到了一些问题,如液晶屏的接线错误、代码逻辑错误等。
通过仔细检查接线、逐行调试代码等方法,我们逐一解决了这些问题,并最终实现了预期的功能。
在今后的实践中,我们需要更加注意细节,认真阅读硬件设备和库文件的说明文档,以避免类似的错误。
结论:通过本次实训,我们深入了解了Arduino控制液晶屏显示的原理和方法,并成功实现了相关功能。
这对于我们进一步学习和应用Arduino有着积极的促进作用。
同时,我们也提高了对于硬件设备接线和软件编程的实践能力。
希望今后能够将所学知识应用于更广泛的领域,为社会的发展做出贡献。
基于arduino的毕业设计doc

基于arduino的毕业设计doc随着信息化时代的加速发展,电子技术发展非常迅猛。
因此,以革新的思想、突破性的技术、高质量的实验来打破传统的课堂教育,是不可避免的选择。
基于Arduino的毕业设计是一种基于开源硬件开发平台、以便捷性和低成本为特征的设计方式。
本设计基于Arduino硬件平台,采用电脑进行编程和监测控制。
主要技术包括Arduino硬件平台设计、控制型程序设计和较为简单的电子电路设计,以及计算机软件开发。
该设计的目的在于让学生从理论知识与实践相结合中提升技能水平,并充分展现自己的创新思路。
设计主要功能是利用烟雾传感器、温湿度传感器、液晶显示屏、语音合成模块与Arduino开发板相结合,设计实现了智能家居管理系统。
其具有环境检测、报警与语音提示的功能,旨在实现电子技术应用在家庭生活中解决实际问题的初步探索。
首先,设计硬件系统,搭建实验平台。
基于Arduino的智能家居模块中包括Arduino 开发板和多个传感器模块,如光级传感器、烟雾传感器、温湿度传感器、语音录放模块,还有LCD1602液晶模块。
本设计采用Arduino Mega 2560控制器,该控制器具有更多的引脚、更大的存储容量和执行速度。
另外,液晶显示屏具有简洁的界面、可直接显示运行状态,可更方便的完成家居控制。
其次,设计控制型程序。
更广泛的,本设计采用传感器测量并处理得到输入信号。
处理过程与数据处理相关的控制电路的设计是最主要的设计内容。
本设计实现了对烟雾变化的实时检测,通过语音提示警报,同时显示在液晶显示屏上。
此外,温湿度传感器和光级传感器也能够实时检测环境状态进行控制。
最后,设计控制端软件。
本设计使用Processing IDE软件开发,以便于进行交互式操作。
软件可以实现控制端程序中图形用户界面的设计和实现,采用多线程处理机制,允许用户通过界面来对传感器的读取数据、操作执行与预警功能的实现进行操作。
总之,基于Arduino的毕业设计充分发挥了Arduino平台诸多优势,如开源软硬件、开发生态、跨平台性等,在学习过程中大大提高了学生的实践能力和电子技术水平,尤其在控制系统与软件算法的实际应用中能够体会到自己所学知识的实用价值,对未来的创新和研发有着不可估量的价值。
基于Arduino控制的OLED显示模块的电子实践教学研究

基于Arduino控制的OLED显示模块的电子实践教学研究*王红敏1,王燕1,刘军强2,宁生科1(1.西安工业大学工业中心,陕西西安710021;2.西安工业大学机电工程学院,陕西西安710021)Arduino开源平台[1]的应用为我校电子类专业创新人才的培养提供了新的方向。
其具有价格低廉、编程简单、应用方便、强扩展能力,且不需要过于深厚的理论知识作为开发基础等诸多优点,使得项目开发过程中的原型制作更加快捷简单。
因此,在实践应用中,学生可以自主挖掘日常生活或工业生产中的潜在需求,完全不会受到理论知识的限制,通过Arduino开源平台快速制作原型来进行验证,并在此基础上进行方案的持续优化。
整个实践[2]形成一个新鲜有趣的创新思维的迭代过程,从而激发学生的学习兴趣,培养创新工程实践能力。
OLED被称为有机发光显示器(Organic lighting emitting device,OLED),其具有自发光、响应时间短、低功耗、高亮度、工作温度范围宽、抗震性好以及轻薄等特点,已经在中小尺寸显示领域得到快速的发展。
并且OLED与以CRT为代表的第一代显示器和以LCD为代表的第二代显示器相比,有着明显的技术优势,已逐渐取代传统LCD显示屏在电子实践教学环节的主流地位,并广泛应用于智能家电、通信、军工、工业仪器仪表及大学生科技竞赛等领域。
针对OLED显示屏的广泛应用及适用前沿技术的发展,我校对传统电子工艺实习课程进行转型优化,对课程内容、实验设置等方面进行了调整。
2018年开始应用0.96寸OLED显示模块等实验装置,并开设出利用Arduino开源平台控制OLED显示屏的综合性、设计性实践项目[3],为学生提供了多样性选择,提高了综合性、设计性实验内容的比例,培养了学生的自主创新能力。
一、OLED显示模块的工作原理在基于Arduino的实验教学中开发的液晶显示主要采用支持众多图形显示的OLED显示模块[4],0.96寸OLED 是目前最常见的图形液晶显示器,该模块分辨率为128像素伊64像素,也称为12864OLED。
基于单片机的LED点阵显示屏的设计报告

基于单片机的LED点阵显示屏的设计报告设计报告:基于单片机的LED点阵显示屏一、设计背景随着科技的不断进步和人们对信息的需求日益增长,LED点阵显示屏逐渐成为一种常见的信息显示方式。
它广泛应用于各种领域,如室内外广告、公告牌、交通信号灯等。
本设计报告旨在介绍一种基于单片机的LED 点阵显示屏的设计方案。
二、设计原理本设计采用了以常用的Arduino单片机为控制核心,结合LED点阵显示屏模块,通过控制单片机的GPIO口,实现对LED点阵显示屏的控制。
三、设计流程1.硬件设计:选择合适的LED点阵显示屏模块,并了解其接口定义和控制方式;根据LED点阵显示屏模块的接口定义,设计相应的电路连接,并进行连线布局;为单片机提供稳定的电源,并确保单片机与LED点阵显示屏之间的数据线路连接正确。
2.软件设计:编写单片机的控制程序,采用合适的编程语言(如C语言);根据LED点阵显示屏的控制方式,编写相应的模块以实现对显示内容的控制,如亮度控制、位选控制等;通过单片机的GPIO口与LED点阵显示屏模块进行数据传输,根据需要的显示内容进行相应的控制。
四、关键技术1.单片机控制:通过单片机的GPIO口与LED点阵显示屏模块进行数据传输,实现对其显示内容的控制。
2.显示内容控制:根据具体需求,编写合适的控制程序,通过控制单片机的GPIO口,实现对LED点阵显示屏模块的亮度、显示内容等进行控制。
3.位选控制:通过控制LED点阵显示屏模块的位选引脚,实现多个LED点阵模块的级联显示,以扩展显示屏的显示面积。
五、实验结果及优化经过系统的实验和调试,基于单片机的LED点阵显示屏实现了预期功能,能够正常显示所需的内容,并且具备一定的亮度控制和位选控制功能。
同时,根据实际应用需求,对设计方案进行优化,如增加红外遥控功能、集成温度传感器等,以提升用户体验和功能扩展性。
六、总结与展望本设计报告介绍了一种基于单片机的LED点阵显示屏的设计方案。
arduino连接显示屏方法详解

arduino 连接显示屏方法详解
Arduino 是一款便捷灵活、方便上手的开源电子原型平台。
包含硬件(各
种型号的Arduino 板)和软件(Arduino IDE)。
由一个欧洲开发团队于2005 年冬季开发。
其成员包括Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis 和Nicholas Zambetti 等。
它构建于开放原始码simple I/O 介面版,并且具有使用类似Java、C 语言的Processing/Wiring 开发环境。
主要包含两个主要的部分:硬件部分是可以
用来做电路连接的Arduino 电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。
你只要在IDE 中编写程序代码,将程序上传到Arduino
电路板后,程序便会告诉Arduino 电路板要做些什幺了。
Arduino 能通过各种各样的传感器来感知环境,通过控制灯光、马达和其
他的装置来反馈、影响环境。
板子上的微控制器可以通过Arduino 的编程语
言来编写程序,编译成二进制文件,烧录进微控制器。
对Arduino 的编程是
通过Arduino 编程语言(基于Wiring)和Arduino 开发环境(基于Processing)来实现的。
基于Arduino 的项目,可以只包含Arduino,也可以
包含Arduino 和其他一些在PC 上运行的软件,他们之间进行通信(比如Flash,Processing,MaxMSP)来实现。
Arduino控制系统的设计与实现

Arduino控制系统的设计与实现近年来,Arduino控制系统越来越受到科技爱好者的关注。
因为可以定制、灵活、易于开发,Arduino控制系统已被应用于各个领域,如机器人、智能家居、测量控制等。
本文将介绍如何设计和实现一个简单的Arduino控制系统。
1.硬件和软件Arduino控制系统通常由两部分组成:硬件和软件。
硬件是由Arduino微控制器、外设模块(如传感器和执行器)和电路板组成的;软件是由程序代码编写的,其中包括控制算法和用户交互接口。
1.1 硬件Arduino微控制器是这个控制系统的核心。
它由一个Atmel AVR微控制器和一个简单易用的开发环境组成。
Arduino有许多型号,例如Arduino UNO、Arduino Mega和Arduino Nano等。
由于Arduino开源、定制性强和价格便宜,它被广泛应用于各种创新项目中。
除了微控制器,控制系统的硬件还需要选择一些适当的外设模块。
例如,如果需要测量温度和湿度,则需要选择温度传感器和湿度传感器;如果需要控制舵机,则需要选择一个舵机控制板。
常用的模块还包括LED灯、继电器、红外传感器等。
Arduino的电路板通常由一些输入/输出引脚组成。
它们可以连接到外设模块,以实现控制系统的功能。
例如,如果要连接一个温度传感器和一个LED灯,则需要设置输入引脚用于连接传感器,输出引脚用于连接LED灯。
1.2 软件Arduino的编程语言基于Wiring编程语言,它是一种简单易用的C编程语言,可以轻松掌握。
它擅长于处理数字和文本数据,同时还支持操作和控制输入/输出接口。
Arduino的开发环境包括Arduino IDE和Arduino库。
Arduino IDE是一个集成开发环境,可以用于编写、上传和调试程序代码。
Arduino库是一组常用函数库,包括控制模块、通信接口、传感器控制等功能。
在编写Arduino控制系统程序代码时,需要考虑如何实现控制算法和用户交互接口。
基于ARDUINO的多功能智能LED点阵屏

基于ARDUINO的多功能智能LED点阵屏作者:孙建振王振姬广超董雨鑫梁栋茂邹劢豪来源:《电脑知识与技术》2020年第23期摘要:多功能迷你LED灯屏幕它的设计方案主要是以 ARDUINO 为主控单元,基于GPIO 的输入输出功能,用LED点阵实现动态显示、秒表以及贪吃蛇小游戏。
硬件电路包括控制单元ARDUINO UNO单片机 LED点阵屏幕以及74HC595位移缓存器。
软件控制部分用C/C++语言编写,并进行了简单的PCB设计,在单片机的控制下显示各种各样的内容。
用户可以通过简单的通讯对显示内容进行设计,方便人们的学习与使用。
关键词:ARDUINO开发板;LED灯;游戏;PCB;C语言中图分类号:TP3; ; ; ; 文献标识码:A文章编号:1009-3044(2020)23-0220-021 引言5G将要到来,物联网的应用越来越广泛,许许多多的物联网产品走进了人们的生活。
基于LED的电子产品就是非常典型的例子。
从交通灯到电视显示屏等现代电子产品都与LED密切相关,所以学习、设计或了解LED产品都是非常有必要的事情。
单片机是一种具有CPU的集成控制芯片,作为控制器被广泛使用。
本文将LED与ARDUINO单片机联系在一起,基于ARDUINO单片机做了一系列有趣的LED开发。
2 迷你LED智能屏幕系统总体介绍迷你LED智能点阵屏幕是基于ARDUINO开发板开发的。
围绕ARDUINO最小应用系统开发了数值显示、时钟、LED贪吃蛇等功能。
功能核心是由ARDUINO主控芯片发送数据到74HC595位移缓存器,从而控制LED灯实现各种显示功能。
2.1 电路设计2.1.1 ARDUINO介绍ARDUINO NANO是ARDUINO USB接口的微型版本,最大的不同是没有电源插座以及USB接口是Mini-B型插座。
ARDUINO NANO是尺寸非常小的而且可以直接插在面包板上使用。
其处理器核心是ATMEGA328(NANO3.0),同时具有14路数字输入/输出口(其中6路可作为PWM输出),8路模拟输入,一个16MHz晶体振荡器,一个MINI-B USB口,一个ICSPHEADER和一个复位按钮。
Arduino和C51开发OLED显示屏

Arduino和C51开发OLED显⽰屏技术:51单⽚机、Arduino、OLED显⽰屏、U8glib概述OLED显⽰屏常常⽤作为智能产品的显⽰设备,本⽂简单介绍OLED显⽰屏的使⽤⽅法。
详细代码下载:⼀、OLED显⽰屏OLED显⽰屏是利⽤有机电⾃发光⼆极管制成的显⽰屏。
由于同时具备⾃发光有机电激发光⼆极管,不需背光源、对⽐度⾼、厚度薄、视⾓⼴、反应速度快、可⽤于挠曲性⾯板、使⽤温度范围⼴、构造及制程较简单等优异之特性,被认为是下⼀代的平⾯显⽰器新兴应⽤技术。
这⾥我们使⽤的0.96⼨的OLED显⽰屏,它的显⽰区域是128*64的点阵,每个点都能⾃⼰发光。
OLED显⽰屏可以显⽰汉字、字符和图案等,智能⼿环和智能⼿表等智能设备⼀般都是选择OLED显⽰屏来作为显⽰设备。
⼆、51单⽚机 — OLED显⽰屏硬件连接:这⾥简单介绍OLED显⽰中⽂:1. 打开PCtoLCD2002.exe -> 选项,修改⼀些选项:2. 输⼊你想要显⽰的汉字,点击->⽣成字模,复制下⾯的数组即可:我这⾥输⼊的是:”显⽰屏测试程序”,对应数组为:{0x00,0x00,0x00,0xFE,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0xFE,0x00,0x00,0x00,0x00},{0x40,0x42,0x44,0x58,0x40,0x7F,0x40,0x40,0x40,0x7F,0x40,0x50,0x48,0x46,0x40,0x00},/*"显",0*/ {0x40,0x40,0x42,0x42,0x42,0x42,0x42,0xC2,0x42,0x42,0x42,0x42,0x42,0x40,0x40,0x00},{0x20,0x10,0x08,0x06,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x02,0x04,0x08,0x30,0x00},/*"⽰",1*/ {0x00,0x00,0xFE,0x12,0x92,0xB2,0xD2,0x92,0x92,0x92,0xD2,0xB2,0x9E,0x00,0x00,0x00},{0x40,0x30,0x0F,0x04,0x84,0x64,0x1F,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x00,0x00},/*"屏",2*/ {0x10,0x60,0x02,0x8C,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0xFF,0x00,0x00},{0x04,0x04,0x7E,0x01,0x80,0x47,0x30,0x0F,0x10,0x27,0x00,0x47,0x80,0x7F,0x00,0x00},/*"测",3*/ {0x40,0x40,0x42,0xCC,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x11,0x16,0x10,0x00},{0x00,0x00,0x00,0x3F,0x10,0x28,0x60,0x3F,0x10,0x10,0x01,0x0E,0x30,0x40,0xF0,0x00},/*"试",4*/ {0x24,0x24,0xA4,0xFE,0x23,0x22,0x00,0x3E,0x22,0x22,0x22,0x22,0x22,0x3E,0x00,0x00},{0x08,0x06,0x01,0xFF,0x01,0x06,0x40,0x49,0x49,0x49,0x7F,0x49,0x49,0x49,0x41,0x00},/*"程",5*/ {0x00,0x00,0xFC,0x04,0x04,0x04,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x04,0x04,0x00},{0x40,0x30,0x0F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,0x03,0x00},/*"序",6*/想要显⽰出来的话,要把这些数组放到oledfont.h⽂件下:main函数代码:int main(void){u8 t;OLED_Init(); //初始化OLEDOLED_Clear(); //清屏t=' ';while(1){OLED_ShowCHinese(0,0,0); //0:显OLED_ShowCHinese(18,0,1);//1:⽰OLED_ShowCHinese(36,0,2);//2:屏OLED_ShowCHinese(54,0,3);//3:测OLED_ShowCHinese(72,0,4);//4:试OLED_ShowCHinese(90,0,5);//5:程OLED_ShowCHinese(108,0,6);//6:序OLED_ShowString(0,2,"1.3' OLED TEST"); //打印字符串OLED_ShowString(20,4,"2018/12/25");OLED_ShowString(0,6,"ASCII:");OLED_ShowString(63,6,"CODE:");OLED_ShowChar(48,6,t);//显⽰ASCII字符t++;if(t>'~')t=' ';OLED_ShowNum(103,6,t,3,16);//显⽰ASCII字符的码值delay1s();}}程序显⽰效果如下:三、Arduino — OLED显⽰屏硬件连接:加载库⽂件:打开Arduino IDE -> 项⽬ -> 加载库 -> 管理库中搜索U8glib,然后安装即可。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《学术论文写作》课程论文基于Arduino的一种电子显示屏控制系统设计姓名:学院(系):专业:自动化班级:学号:基于arduino的一种简易电子显示屏设计摘要:LED显示屏因其工作稳定可靠、寿命长、亮度高等优点,在许多场合中应用广泛。
加强显示屏控制系统的可靠性研究意义重大。
基于Arduino单片机,研究设计了一种新的电子显示屏控制系统。
以PC机为上位机,向单片机发送显示代码和控制命令,单片机控制显示驱动模块驱动LED点阵显示屏进行扫描显示。
PC机与单片机之间的通信采用ISP下载编程器来实现。
利用按键模块通过单片机对显示屏的显示内容进行翻页和更新控制。
关键词:显示屏;可靠性;Arduino;控制The Design of Electronic Display Control System based on ArduinoAbstract: LED displays is widely used in many occasions because of its a dvantages such as stable, reliable and long life. It is of great significance to strengthen the research of the reliability of electronic display control system. Here introduces a new kind of el ectronic display control system based on Arduino microcontroller. System uses PC as uppe r computer.PC send control commands and display code it has stored to the Arduino microcontr oller. And arduino microcontroller receives and deals with control command and display code which are from PC. Then drives scan display of the display screen. Communication between PC and the microcomputer can be implemented by using ISP download programmer. At last, page and update the content which is displayed of the billboard by using the key module and all is based on the single chip microcomputer.Keywords: electronic display; reliability; Arduino microcontroller1.系统整体设计本系统硬件的设计采用模块化设计,既能满足模块本身功能又要能够和整个系统兼容,如图1.1所示。
系统硬件由Arduino控制系统,显示扫描电路,显示屏,键盘扫描电路及数据传输部分以及上位机六部分组成。
上位机通过数据传输部分向MCU系统发送显示代码和控制命令,MCU系统执行显示命令并将显示代码处理后控制显示部分的显示内容和显示方式。
而按键也可以通过键盘扫描电路对显示进行控制。
图1.1 系统硬件组成框图2.控制系统设计控制系统的核心是Arduino单片机。
Arduino是一个基于开放原始码的软硬件平台,具有使用类似Java、C语言的Processing/Wiring开发环境。
Arduino UNO是系列的一个版本。
UNO的处理器核心是ATmega328,具有14路数字IO口(其中6路可作为PWM输出),6路模拟输入,一个16MHz晶体振荡器,一个USB口,一个电源插座,一个ICSP header和一个复位按钮。
选定一定数量的IO口作为控制口,控制外部的各种器件和数据的输出【2】。
根据功能选择一定的单片机端口添加外围的器件,具体电路如图2.1所示。
在该系统中,数字接口主要用作LED显示数据的行控制输出以及矩阵键盘的控制。
具体接法为:矩阵键盘的x1、x2、x3、x4、y1、y2、y3、y4分别接10、11、12、A0、A1、A2、A3、A4接口,点阵模块的连接如图2.2所示。
图2.1 控制部分电路图图2.2 点阵—单片机连接图3.驱动单元3.1 行驱动单元译码电路的功能是为了解决单片机I/O端口不足。
行译码所用器件为串并转换器74HC138和锁存器74HC573。
四个138级联成8线-32线译码器,三级管Q1-Q16接显示屏H1-H8解决了显示屏供电不足的问题。
锁存器573的Q3,Q7分别接138的G2B,G2A使能端,实现对138的使能控制,达到锁存功能,Q4,Q5,Q6分别接138的A,B,C端,A,B,C为138译码器的三个地址输入。
具体电路如图3.1所示图3.1 行驱动单元电路行译码采用的是芯片74HC138。
如果不采用译码电路完全依靠单片机的端口输出来控制LED显示屏显示,需要很多个端口。
而采用了译码电路后仅仅需要少量端口便可实现控制显示。
大大减少了I/O口的占用数目,为单片机扩展其他功能预留下来了空间。
74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:两个低有效(E1和E2)和一个高有效(E3)【4】。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高。
表1 74HC138集成译码器功能表3.2 列驱动单元列驱动电路由74HC595构成,它具有一个8位串入并出的移位寄存器和一个8位输出锁存器,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,达到重叠处理的目的【5】。
各管脚说明见表3-2。
数据在SH_CP 的上升沿输入,在ST_CP的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲【6】。
移位寄存器有一个串行移位输入(DS),和一个串行输出(Q7),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(为低电平),存储寄存器的数据输出到总线1。
表3.2 74HC595管脚说明1引用自《ATmega128通用实验板手册》工作顺序:单片机先送1个8位数据到第一个595的内部移位寄存器->然后数据会送到内部的输出寄存器->输出,当MR(10引脚)为高电平,OE(13引脚)为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。
具体电路如图3.2所示图3.2 列驱动单元电路3.3 按键模块矩阵键盘用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个,它能够有效地提高单片机系统中I/O口的利用率。
矩阵键盘的编程方法:(1)先读取键盘的状态,得到按键的特征编码。
先从P1口的高四位输出低电平,低四位输出高电平,从P1口的低四位读取键盘状态。
再从P1口的低四位输出低电平,高四位输出高电平,从P1口的高四位读取键盘状态。
将两次读取结果组合起来就可以得到当前按键的特征编码。
使用上述方法我们得到16个键的特征编码。
(2)根据按键的特征编码,查表得到按键的顺序编码。
将16个按键的特征编码按照按键排列的顺序排成一张特征编码与顺序编码的对应关系表,然后用当前读得的特征编码来查表,当表中有该特征编码时,它所在的位置就是对应的顺序编码。
矩阵键盘电路如图 3.3所示。
图3.3 矩阵键盘电路4. 程序设计设计目标和硬件总体结构确定的情况下,软件可以分为主程序,通信程序,静态显示子程序,各种特效显示子程序,键盘控制程序等五个主要部分组成。
具体结构如图4.1所示。
图4.1 软件功能结构框图4.1 主程序系统软件采用C语言编写,按照模块化的设计思路设计。
首先分析程序所要实现的功能,程序要实现静态显示,动态显示,按键控制三大功能。
其通信程序接收上位机数据,交给主程序处理再通过控制程序选择不同的显示程序进行显示。
主程序的工作流程如图4.2所示。
图4.2 主程序流程图4.2 左移显示程序显示程序分为静态显示程序、左移显示2种种显示方式。
其中左移程序调用了静态显示程序为子程序。
显示采用的是列扫描的显示方式,选通一列后按照列与数据元素的对应关系第i列对应的行数据为数组中的第i和第i+16个元素。
将对应元素的由低至高位依次从端口输出具体做法为将元素向右逻辑移位后再与0X01相与,所得结果通过单片机端口输出到串并转换器的A端,锁存在锁存器里完成一列数据移位后再将其输出。
如此依次循环选通各列来显示所需画面。
动态显示程序流程如图4.3所示,根据显示数据的存储原理通过改变实际LED列与数据逻辑列的方法来实现程序的左右移动。
显示数据与列的对应关系为:第i列对应的数据为数组中i和第2×i个数据。
显示数组中,第1至16个元素的第8至第1位LED显示屏中的第1至第8行。
同理第17至32个元素的第8至第1位LED显示屏中的第9至第16行。
所以将元素数据进行逻辑位移便能产生左移动的效果。
图4.3 左移程序流程图4.3 矩阵按键程序的设计4*4矩阵键盘有8个引脚,4个一组,分别对应行和列,通过按键扫描的方法,对不同行(列)分别输入高低电平,然后读取不同列(行)上的电平,从而知道键盘上的某一按键按下。
例如,当第1行输出低电平,其他行输出高电平,分别读取依次列上的状态,如果第1列为低,结果为(1,1),按键为1,如果第2列为低,则结果为(1,2)按键为2。
5 系统调试对矩阵键盘进行调试,利用简单的控制程序测试矩阵按键是否能控制13号数字接口上的LED等的亮灭。
发现有时控制不了,说明焊接存在虚焊情况,然后及时补救,将觉得可能虚焊的点又重新焊了一次,再次测试,没有问题了。
然后矩阵按键与单片机的连接进行了检查,方法是接入电源试运行,发现有时运行不稳定,说明接线有时会存在接触不良现象,于是换用了插口比较紧的接线,也解决了这一问题。
在软件调试过程中,配合对应硬件电路单独运行某程序功能块,检查是否正确,发现有些模块执行结果和预想的不一致,于是通过单步运行以及设置断点等方法,找到原因并加以改正,最终得到正确的运行结果。