基于avr单片机的led点阵屏设计_毕业设计(编辑修改稿)内容摘要:

C 语言 是 一种 高级 程序设计语言, C 语言经过若干年的使用,可以 证明其强大性,C 语言最初是用来开发 UNIX 操作系统,在 C 语言在其编译效率、执行速度等方面显示出了强大的优越性,这就扩大了它的使用范围。 C 语言相比于其他程序设计语言,最大的特点是可以直接控制硬件,这是 JAVA、 C等高级语言多没有的特性,它兼顾了高级语言的特点,又具有汇编语言的特点,其执行速率也是很快的。 所以 C 语言成为了嵌入式开发领域的主流语言。 另外, C 语言还是一种结构化语言,在 C 语言中最基本的单元就是函数,我们可以把功能接近的代码,放在一个函数中,这样我们的程序就成为了由一个个函数组成的整体,在主函数中我们 可以调用相应的函数来实现某种功能, C 语言的这种特点使其很容易调试、修改。 在 C 语言中,有很多的库函数,如果在我们的程序中要实现某种功能,而这种功能在函数库中已经得以实现,那么我们就可以将这个函数库直接包含在我们的程序中,可以减少我们自己多要编写的代码量。 综合比较了两种语言,在本系统设计中,我们采用 C 语言作为程序设计语言。 系统软件编译器介绍 用 C语言编写好的程序不能直接被单片机所执行,要想让 C语言控制单片机运行,需要对 C 语言程序进行编译,所以编译程序是不可缺少的。 支持 AVR 用 C 语言编程的编译器 主要有: ICCAVR 编译器和 AVRStudio 编译器。 目前在单片机开发中普遍都是使用 ICCAVR 来进行编译。 因此软件设计最终方案为采用 C 语言为编程语言, ICCAVR为编译工具按照控制、通信、显示等几个功能模块来编写程序。 上位机控制传输软件 本系统采用 PC 机作为上位机,这样对该系统的控制就变得简单了,因为 PC 机可以直观的反应单片机的状态。 本系统中上位机的作用是存储字模数据并控制单片机的显示,通过通信系统将控制指令传送到单片机中控制 LED 的显示。 LED 点阵屏的显示一般有存储显示和实时显示两种。 存储显示是将要显示数据的字模通过串口由上位机发送到单片机内,单片机接到上位机发来的数据,再接受上位机的控制信息便可以在 LED 显示屏上显示了。 实时显示即上位机屏幕上显示的内容会同步的显示到单片机多控制的 LED 显示屏上。 两种显示方法相比较:实时显示对于硬件的要求较高,对于通信系统的要求很高,上位机需要不断的将更新的数据发动到 LED 屏幕上,通信开销交大,此种显示方式多用于广场的新闻播报显示屏。 存储济南大学毕业设计 显示不要求有较高的传输速率,对硬件要求不是很高,多用于需要较长时间在显示屏上显示信息的场合,上位机将数据发送到单片机 后,单片机便可以将其长期的显示在屏幕上了。 本系统设计中,对于实时性要求不是很好,另外,从成本方面考虑,选用存储显示来设计系统。 下载软件 AVR 单片机的下载软件主要有: AVRFighter ,Mucode,AVRStudio。 AVRStudio 在下载程序时,不方便设置熔丝位,而 AVRFighter ,Mucode 可以方便直观的设置 AVR的熔丝位,所以本系统采用 AVRFighter 作为下载软件。 济南大学毕业设计 第 3 章 系统硬件设计 在第二章中,讨论过不同的软硬件设计方案,选择了最有效的 方案,在本章中详细设计系统的硬件,其中包括 AVR 单片机最小系统的设计,串口通信硬件设计, ISP下载口设计, JTAG 调试口设计, LED 点阵屏幕设计, LED 驱动电路设计。 硬件系统的总体设计 本系统采用 AVR 单片机为核心控制器件,用四块 8*8 点阵相连组成 16*16 点阵屏,作为显示部分,用两片 74HC595 作为列驱动控制,用 74LS164 作为行驱动控制,系统硬件总体方框图如图 所示。 图 系统硬件总体框图 AVR 单片机最小系统设计 AVR 单片机最小系统包括 UART 串口, AVR 芯片,复位电路,时钟电路, ISP下载口, JTAG 仿真调试接口,电源供电接口。 在串口通信中采用 MAX232 芯片作为电平转换芯片, AVR 单片采用的是 TTL 电平: +5V 代表逻辑 1,0V 代表逻辑 0 而 PC机采用的是 RS232 电平, +15V 代表逻辑 0, .15V 代表逻辑 1,与单片机的逻辑电平不一致,所以采用 MAX232 芯片进行电平转换。 串口通信电路设计 在串口通信设计中,我们选用 UART 与上位机进行通信,串行通信可分为同步串行通信与异步串行通信。 同步串行通信的代表有 SPI、 IIC,这种通信 的最显著特点是,收发方有相同的时钟来协调双方的发送。 异步串行通信的代表是 UART,在这种通信方式里,我们没有统一的时钟来协调收发方。 收发方数据一致性的保证是波特率,在这种发送方式中,每个数据帧的格式是一位起始位,后跟若干数据位,奇偶校验位, 单 片 机 74HC595 列驱动 74HC164 行驱动 LED 点阵模块 时钟电路 复位电路 济南大学毕业设计 停止位。 数据位的位数我们可以在配置寄存器中进行设置,而选用奇偶校验也可以在配置寄存器中进行设置,这样就可以保证了数据发送的正确性质了。 串口通信电路原理图如图 所示,在 DB9 中只用到 3 跟线,其中第五管脚接地,第二管脚接到 MAX232 的第 14 管脚,在 MAX232 中 11 管脚输入的数据经过电平转换从 14 管脚发送出去,传送到上位机中,其中 11 管脚接单片机的串口发送端。 DB9 的第 3 管脚接到单片机的 13 管脚上,上位机发送的数据通过 13 管脚进行电平转换,从 MAX232 的第 12 管脚发送出去,传送到单片机的串口接收端。 图 串口通信电路原理图 复位电路设计 复位电路是确保单片机最小系统中不可缺少的一部分,当单片机上电后,单片机会自动运行存储在 FLASH 中的程序,当程序出现问题时候,我们希望程序重新开始执行,那么我们会使用到复位,单片机重新开始执行程序,我们会 在自小系统中设置一个按键,当手按下,单片机会自动复位,这种复位叫做上电复位。 另一种复位是上电复位,但我们打开电源时候,单片机会自动复位,从 FLASH 开始处,执行程序。 复位电路工作原理如图 所示,当系统上电时,电流经过 10K 电阻和 10uF 电容,系统导通,此时在电容的正极上是低电平,而 AVR 单片机是低电平复位,所以此时单片机复位。 在上电过程中,电容有个充放电的过程,所以上电后瞬间电容又放电。 此电路中还有手动复位的功能,当按下按键时,电流经过 10K 电阻,又经过 1K电阻,电路导通,此时在 10K 电阻两端有个很大 的压降, 10K 电阻 RESET 端为低电平,单片机复位。 济南大学毕业设计 图 复位电路 单片机的下载口 在 PC机上写好的程序要下载到单片机里才能控制单片机的 IO 口输出高低电平,从而控制 LED 点阵屏亮灭。 对于 AVR 单片机来说,可以有两种下载程序的方法,一种通过 ISP 在线下载,一种通过 JTAG 仿真调试,在调试后程序自动下载到单片机里,同时 JTAG 仿真调试可以很方便的找出程序中的错误,有利于调试,所以在的最小系统中也加入了 JTAG 口。 ISP 下载口的电路原理图如图 所示,接口的 2 管脚接 VCC, 10 管脚接 GND ,在下载器上可以通过跳线设置通过下载线给单片机供电,接口的第 3 管脚悬空, 9 接到单片机的程序下载口上,这样通过下载器就可以向单片机里下载程序了。 JTAG 仿真调试口电路原理图如图 所示,其中 9 分别接到单片机的JTAG 调试口,在 AVRStudio 开发环境中,可以通过 JTAG 仿真调试逐句执行程序语句来观察单片机控制的 LED 显示屏的现象还帮助调试。 同时也可以用仿真调试器来图 ISP 下载口 济南大学毕业设计 给系统供电。 图 JTAG 下载口 AVR 单片机的时钟电 路 对于 AVR 单片机来说,片内已经集成了晶振,可以采用外部晶振提供时钟源,也可以通过设置单片机的熔丝位来改用内部晶振。 但是,在系统对时钟要求严格的场合应选用外部晶振。 在本系统中,由于要用到串口通信,在串口通信中要用波特率来保持上位机跟单片机传输数据的一致。 所以的系统采用外部晶振的工作方式。 如图 为单片机的时钟电路。 AVR 单片机最小系统 AVR 单片机最小系统是单片机能够正常工作时,所需要连接的最少管脚数,一般AVR 单片机要能够工作需要接电源、地、晶振、下载口。 图 为 AVR 单片 机的最小系统原理图,在本系统中,由于采用了 74HC595 芯片及 74HC164芯片实现串行数据转换为并行数据,所以在的系统中只用到少量的 IO 口,这样其他图 时钟电路 济南大学毕业设计 的 IO 口可以用来控制其他的外设,达到减少 IO 口的目的。 在画原理图的过程中,我大量的使用了网络标号,网络标号相同的结点可以正常的连接起来,这样可以避免在画电路原理图时,采用大量的连线。 采用网络标号可以达到模块化的目的,这样画较为复杂的电路原理图时,可以很整洁清晰的表达出来。 也有利于原理图的纠错,避免了复杂难看的线路连接网络。 其实, AVR 单片机内部已经集成了很多外 围设备接口,在 AVR 单片机内部集成了晶振,所以在 AVR 最小系统中可以不画外围晶振,最简单的 AVR 最小系统只需要两根电源线, 4 根程序下载线。 由于在本系统中,我们用到了串口,所以需要设置波特率,那么对于时钟源的精确度就有要求了。 所以我们采用外部晶振的方式,采用 的晶振来为系统提供电源。 LED 点阵屏设计及驱动电路设计 驱动电路设计 图 AVR 单片机最小系统 济南大学毕业设计 本系统中采用两片 74HC595 和两片 74HC164 将串行数据转换为并行数据,在LED 点阵屏设计时,采用三极管来驱 动显示屏,这样可以是每个二极管的亮度都达到饱和。 图 为三极管组成的驱动电路。 在电路中,采用的是 PNP 型三极管,三极管的基极接到 74HC164 的输出端,发射极接到电源,集电极接到 LED 点阵屏上,这样当 74HC164 某个管脚输出低电平时,其对应的三极管导通,电流通过三极管流到 LED 点阵屏,点亮相应的二极管。 当 74HC164 输出高电平时,其对应的三极管不能导通,所驱动的发光二极管不会被点亮。 这样就能很好的控制发光二极管的亮灭了。 图 三极管驱动电路 行驱动电路设计 在行驱动 电路中,采用 2 片 74HC164 来扩展 IO 口, 74HC164 的输出通过 的电阻接到三极管的基极。 图 为 74HC164 的管脚图。 济南大学毕业设计 图 74HC164 74HC164 是一种串入并出的芯片,在本设计中,将芯片的 2 管脚接在一起,使 2 管脚成为线与的关系,数据从 2 管脚串行进入芯片,时钟线接在第 8 管脚,在每个时钟周期的上升沿,串行数据写入芯片内,在 8 个时钟周期后,数据就并行的从芯片输出。 同时,芯片的第 13 管脚,也是芯片的级联管脚,可以将第 13 管 脚接到下一片芯片的输入端,这样就可以输出 16 位并行数据了。 图 为本设计中 74HC164的级联图,本系统中用单片机的 IO 口模拟芯片输入的数字时钟,通过 IO 口不断的拉高拉低来实现时钟的效果,在每次的上升沿数据就写入到了芯片内, 16 个上升沿后,16 位数据就在 IO 口准备好了,输出到 16 个三极管的基极,为低电平的 IO 口所对应的三极管导通,三极管驱动相应的发光二极管点亮。 列驱动电路设计 在列驱动电路里,用了两片 74HC595 来扩展 IO 口, 74HC595 芯片的功能类似 于74HC164,但 74HC595 芯片带有锁存功能,在时钟引脚上,每来一个上升沿,串行 图 74HC164 级联效果图 济南大学毕业设计 数据就向高位移位,待 8 为数据都准备好时,在锁存时钟引脚上来一个上升沿,就打开锁存端口,并行数据发出。 74HC595 输出端接在限流电阻端,限流电阻另一端接在了 LED 点阵屏幕上。 图 为 74HC595 的引脚图。 其中第 14 管脚为数据输入管脚,第 9 管脚为级联管脚,本设计中将两片 595 芯片级联起来,当低位芯片满八位时,通过级联端口向高位移位,第 11 管脚为 595 芯片的时钟输入端,每次在 11 管脚上产生 一个上升沿时,串行数据就向前移动一位,第 12 管脚为 595 芯片的数据锁存端,当在 12 管脚上产生上升沿时,锁存输出打开,595 中的数据并行输出。 第 13 管脚为 595 的使能端,在本。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。