1、毕业设计说明书课题名称: 基 于 单 片 机 的 公 交 车 报站 系 统 设 计学生姓名 专 业 应用电子技术 班 级 1202 时 间 2014.10-2014.12 指导教师 电子工程学院武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 1 -摘 要:本文介绍了一种公交车报站系统的硬件设计原理,提供了一种以 AT89C52 单片机为核心,控制大屏幕 LED 点阵显示的硬件设计方案。系统主要通过 AT89C52 单片机做为系统 CPU,处理包括键盘输入和 LED 显示屏显示站名的所有信号处理。系统扫描到有键按下,判键确定后给 CPU 一个脉
2、冲信号,然后 CPU 处理信号,确定所到站的站名, 再通过扫描驱动从 LED 显示屏上显示出所到站的站名。达到半自动报站的作用。整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。其中显示模块是本系统的重点。本系统很大程度上提高公交车报站的准确性,可靠性。提高了公交系统的服务质量。促进城市经济发展和交通变化的和谐发展。关键词:AT89C52 单片机,16*16LED 点阵显示屏,武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 2 -目录第一章 31.1 前言31.2 背景与意义31.3 现状41.4 发展趋势41
3、.5 设计任务4第二章 案论证和选择52.1 总体方案52.2 单片机的选择52.3 LED 点阵显示方式的选择6第三章 系统硬件设计73.1 单片机介绍73.1.1 晶振电路103.1.2 复位电路设计113.1.3 按键电路设计113.2 显示电路设计123.2.1 16*16LED 显示屏123.2.2 LED 显示屏工作原理14第四章 软件设计164.1 软件开发工具和语音164.2 单片机软件流程图164.3 LED 程序分析17结论18致谢19参考文献19附录 A 元器件清单20附录 B 原理图、proteus 仿真图21武汉软件工程职业学院 38f56e95c929b5360b1
4、cc9c34e509bed.pdf - 3 -第一章1.1 前言随着科技的不断进步,人们对事物的认知程度已经得到了广泛的提升,在实际生活中,大家都希望能使用简便、智能、人性化的产品。在公交车自动报站方面,由于我国现状,人口众多,口音复杂,对于乘客而言,原来的人工报站存在着很多的问题。为了跟随科技发展,提高公交系统的服务质量,提升城市形象。开发一种能够节省人力和物力,而又能让乘客方便快捷的知道站台报站器就成为一种必然。因此本次毕业设计中提出一个以 AT89C52 单片机为核心,用LED 显示屏显示站名的即经济、高效、直观的公交车到站自动报站系统。1.2 背景与意义随着国民经济的快速发展,城市建设
5、规模不断扩大,大城市人口高度集中并大幅度增长,同时汽车保有量急剧上升,交通需求迅速扩大,而道路交通基础设施建设的发展则相对滞后。城市交通需求与供给之间的矛盾越来越突出,城市“乘车难” 、 “行车难”的局面在加剧,交通阻塞呈现出点到线、由线到面的扩展趋势,交通拥挤、交通延误、交通阻塞以及由此引起的噪音、废气污染严重影响着居民的正常的生活以及社会经济的持续、健康发展。近年来,我国城市交通的现状已引起了政府、公众、社会各界的广泛关注,有关专家学者和交通工程师们在吸取各国城市交通发展经验的基础上,找到了一条解决我国城市交通发展问题的有效途径,即优先发展城市公共交通,以公共交通为杠杆降低城市交通需求总量
6、,实现道路交通基础设施发展与交通需求增长的均衡。实施“公交优先”是解决我国城市交通发展问题的有效途径,也是我国目前城市交通发展的基本政策。公交智能化是智能交通的一个重要的子领域,同时也是落实“公交优先” ,使城市交通与社会经济和谐发展的重要组成部分。实施公交智能化,必须提高公交服务质量,而到站后的准确、及时报站就是一个方面,本设计基于 AT89C52 单片机、LED 点阵制作的公交车报站系统就能解决这方面的问题。从而,达到公共形象的提升。当前国内主要大城市的公交车大都采用人工报站,即每到一站由司机或者乘务员来进行报站。但有时由于受到各种因素如雨雪天路滑、车上拥挤、乘务员心情的变化等的影响,会出
7、现报错站,漏报站的情况,给乘客特别是不熟悉本市地形的乘客带来了不必要的麻烦,从而影响到了一个城市的窗口形象工程建设。于是开发研制自动报站系统成为必然。武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 4 -1.3 现状随着公交优先战略的确定,公交在缓解城市交通拥堵方面的作用将越来越重要,与这种要求相比,我国大城市公共交通还有很大差距,主要表现为:为社会提供服务信息的水平低,只能是以经验为主的被动、滞后的实施服务,仍以人工作业为主。上述问题显然不利于公交对乘客的吸引,也是导致公交运营组织模式落后、调度方式原始陈旧、企业管理效率不高的重要原因。因此
8、,如何提高公交系统的服务质量,是现代公交行业亟待解决的问题。我国发展智能运输的基础较差,因此理论研究虽在进行,但相应技术却得不到推广。在实际生活中得不到应用,达不到广泛服务社会的目的。所以发展一种自动报站系统,提高公交服务质量就成为民用科技研究的一个项目。目前在国际上已经实现了 GPS 定位车载智能系统,在国内的几个大城市也都有使用,实现了公交系统的全面监控、调度。公交车自动报站系统的研究也达到了无线联络,全自动报站的水平。但其一般其经济投入较高。结合我国现有的公交系统现状,半自动化报站系统还有很大的应用空间。适应用于一些中小城市。1.4 发展趋势现代信息社会中,作为人机信息视觉传播媒体的显示
9、产品技术得到了迅速发展,进入二十一世纪的显示技术将是平板显示的时代,LED 显示屏作为平板显示的主导产品之一无疑会有很大的发展,并有可能成为二十一世纪平板显示的代表性主流产品。信息化的社会的形成,信息领域的愈加广泛,显示屏的应用前景更为广阔。预计大型或超大型 LED 显示屏的主流产品局面将会发生改变,适合于服务行业特点和专业性要求的小型 LED 显示屏会有较大提高,而向信息服务领域的 LED显示屏产品门类和品种体系将更加丰富,部分潜在的市场需求和应用领域将会有所突破,如公共交通、停车场、餐饮、医院等综合服务方面的信息显示屏需求量将有更大的提高,大批量、小型化的标准系列 LED 显示屏在 LED
10、 显示屏市场总量中将会有多数份额。1.5 设计任务以 AT89C51 单片机为核心,16*16LED 点阵作为显示屏,制作一个公交车报站系统。设计要求:1. 用 1616LED 点阵显示汉字,要求能稳定、清晰地显示预设文字;2. 公交站名显示通过编程能实现左移滚动显示方式;3. 通过按键控制下一站的播报。武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 5 -行驱动第二章 方案论证和选择2.1 总体方案单片机控制系统框图,利用 AT89C51 单片机作为 CPU 来进行总体控制,通过驱动电路对点阵进行扫描,使其进行显示。图 2-1 系统框图2.
11、2 单片机选择方案一: 采用通过 SPCE061A 单片机编写程序显示要求汉字。SPCE061A 是凌阳科技公司 umSPTM(microcontroller and signal processor)系列产品中的 16 位微控制芯片,内置 32 闪存,其较高的处理速度芯片能够非常容易、快速地处理复杂的数字信号,适用于数字语音识别等领域。此方案也是有单片机直接驱动,性能稳定,驱动能力强,简单方便,但是由于我们系主要学习的是 51 系列单片机对于这一款新的单片机再去学习了解可能时间不够,故此方案也被放弃了。方案二:选用 ATMEL 公司的 AT89C52 单片机作为硬件电路的主控芯片,它是一个低
12、电压,高性能 CMOS 8 位单片机,片内 8K BYTES 的可反复擦写的只读程序存储器和 256 BYTES 的随机存取数据存储器,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置有 8 位中央处理器和 FLASH 存储器单元,功能强大的 AT89C52 单片机可提供许多复杂系统控制应用场合。AT89C52 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,因此单片机选择 ATC89C52 较为合适。16*16LED 点阵显示屏单片机 列驱动武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pd
13、f - 6 -报站器以单片机 AT89C52 为 CPU 来控制 LED 点阵显示屏显示所到站的站名,提高报站的准确性,高效性和直观性。由于线路不同,报站系统中存储的站名需要通过更改来适用于各种线路,以此提高系统的通用性。所以我们需要设计通信模块来实现 PC 机和单片机之间的通信。并能通过单片机与 PC 机之间的通信来实现报站名的更改,使其成为多功能开发型报站器。而由于考虑到自身设计水平有限,本次设计的系统没有设计语音模块模仿人声报站而是设计了按键模块控制 LED 显示屏显示站名,达到报站的目的。在内存方面,由于 AT89C52 的数据存储为 256 字节,由于站名的信息量比较大,片内数据存储
14、空间有限,所以需要扩展一个片外数据存储,来满足要求,这就要求系统应设置内存扩展模块。LED 显示屏考虑系统只是一个演示作用,所以本设计采用了 4 块 8*8 的 LED显示模块组成的 16*16 的 LED 显示屏,可以达到演示要求。2.3 LED 显示方式的选择根据驱动方式的不同,LED 大屏幕显示方式可分为静态显示和动态扫描显示。方案一:采用静态锁存方式,从理论上说,不论显示图形还是文字,只要控制这些组成图形或文字的各个点所在位置相对应的 LED 器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。1616 的点阵共有 2566 个发光二极管,显然
15、单片机没有这么多端口,如果采用锁存器来扩展端口,按 8 位的锁存器来计算,1616 的点阵需要256/8=32 个锁存器。这个数字很大,因为仅仅是 1616 的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很大的数字。这种方法可以直接驱动 LED,原理简单,驱动能力强,LED 的亮度也可以通过限流电阻调节,非常方便,但此种方法太浪费单片机的 I/O 口,只适合于较小的系统。因此采用另一种称为动态扫描的显示方法。 方案二:采用动态扫描方式,动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如 24 行)的同名列共用一套列驱动器。具体就由 4 块 8
16、8 组成的 1616 的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起,先送出对应第一列发光管亮灭的数据并锁存,然后选通第一列使其点亮一定的时间,然后熄灭;再送出第二列的数据并锁存,然后选通第二列使其点亮相同的时间,然后熄灭; 第二十四列之后又重新点亮第一列,这样反复轮回。当这样轮回的速度足够快(每秒 24 次以上) ,由于人眼的视觉暂留现象,只要刷新速率不小于 25 帧武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 7 -/秒,就不会有闪烁感,我们就能看到显示屏上稳定的图形了。该方法能驱动较多的 LED
17、,控制方式较灵活,而且节省单片机的资源。故采用本设计方案。第三章 系统硬件设计3.1 单片机介绍AT89C51 单片机的结构框图如图 3.1 所示。它主要由下面几个部分组成:1个 8 位中央处理单元(CPU) 、片内 Flash 存储器、片内 RAM、4 个 8 位的双向可寻址 I/O 口、1 个全双工 UART(通用异步接收发送器)的串行接口、2 个 16 位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。在 AT89C51 单片机结构中,最显著的特点是内部含有 Flash 存储器,而在其他方面的结构,则和 Intel 公司的 8051 的结构没有太大的区别。图 3
18、-1 AT89C51 单片机的结构框图主要性能1. 与 MCS-51 兼容 2. 4K 字节可编程闪烁存储器 CPU中断控制振荡器片内Flash存储器总线控制片内RAM4I/O 端口ETC定时器 1定时器 0串行端口外部中断P0 P2 P1 P3地址/数据TXD RXD计数器输入武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 8 -寿命:1000 次写/擦循环数据保留时间:10 年3. 全静态工作:0Hz-24Hz4. 三级程序存储器锁定5. 128*8 位内部 RAM6. 32 可编程 I/O 线7. 两个 16 位定时器/计数器8. 5
19、个中断源 9. 可编程串行通道10. 片内振荡器和时钟电路XTAL218XTAL119ALE30 EA31 PSEN29RST9P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 3P0.7/AD7 32P1.01 P1.12 P1.23P1.34 P1.45 P1.56P1.67 P1.78P3.0/RXD10P3.1/TXD1P3.2/INT0 12P3.3/INT1 13P3.4/T0 14P3.7/RD17P3.6/WR16P3.5/T115P2.7/A15 28P2.0/A8 21P2.
20、1/A9 2P2.2/A10 23P2.3/A1 24P2.4/A12 25P2.5/A13 26P2.6/A14 27U1AT89C51图 3-2AT89C51 引脚图P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8 个 TTL 门电流。当 P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 9 -存储器,它可以被定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部
21、必须被拉高。P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。
22、在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断 0)P
23、3.3 /INT1(外部中断 1)P3.4 T0(记时器 0 外部输入)P3.5 T1(记时器 1 外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 10 -ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不变的频率周期输
24、出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令时 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(000
25、0H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP) 。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出 。6振荡器特性:XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电
26、平要求的宽度。因为公交车车自动报站系统设计需要较大的存储量,所以要选择一个数据和程序容量较大的单片机,这样就不用扩展数据和程序存储器。在这里我们选用了 ATMEL 公司的 AT89C52 单片机作为本设计硬件电路的主控芯片,它是一个低电压,高性能 CMOS 8 位单片机,片内 8K BYTES 的可反复擦写的只读程序存储器和 256BYTES 的随机存取数据存储器,器件采用 ATMEL 公司的高密度,非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置有 8 位中央处理器和FLASH 存储器单元,功能强大的 AT89C52 单片机可提供许多复杂系统控制应用场合。3.1.1 晶振电路武
27、汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 11 -AT89C52 的内部有一个用于构成振荡器的高增益反相放大器。通过 XTAL1,ATAL2外部接上一片作为反馈元件的晶体,与 C1和 C2 构成了并联谐振电路,使其构成自激振荡器。电容的值具有微调的作用,我们取 30PF。具体的接法如右图外部晶振电路AT89C52 的工作频率范围在 0-24MHZ。我们选用的是 12MHZ 的晶振,振荡周期为 1us 机器周期为 1us,所以这个晶振可以满足这个系统的要求。并且晶振不能离单片机太远,不然使用外部晶振进行软件调试时就会发现找不到信号。3.1.
28、2 复位电路设计复位有硬件和软件两种,复位的作用是使程序自动从 0000H 开始执行,因此我们只要在 AT89C52 单片机的 RESET 端加上一个高电平信号,并持续 10ms 以上即可,RESET 端接有一个上电复位电路,它是由一个小的电解电容和一个接地的电阻组成的。人工复位电路另外采用一个按钮来给 RESET 端加上高电平信号。A T 8 9 C 5 2R E S E TV C C+ C1 0 U FR 11 KR 21 0 KK图 3-3 人工复位电路我们采用放电型人工复位电路,如图 3-3 人工复位电路,上电时 C 通过 R充电,维持宽度大于 10ms 的正脉冲,完成上复位功能。C
29、充电结束后,RESET端出现低电平 CPU 正常工作。在此我们取了典型值 R=10K,R1=1k,C=10uf。AT89C52XTAL1XL2C1C2C3武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 12 -上电复位实现的时间 :T=R*C=10K*10UF=100ms=10ms需要人工复位时,按下按钮 K,C 通过 K 和 R1 放电,RESET 端电位上升到高电平,实现人工复位,K 松开后 C 重新充电,充电结束后,CPU 重新工作,R1是限流电阻,阻值不可以过大,否则不能起到复位作用。3.1.3 按键电路的设计键盘实质上是一组按键开关
30、的集合,控制 CPU 通过按键来识别特定的用户命令,从而转入相应的程序来执行用户命令。键盘的软硬件的设计涉及下面几个方面的问题:对于此设计来说我们要准确的显示我们所要对应的信息,每按下一次按键要显示所要显示的信息。这按键是主要用来报站的而设计的。这样比键盘操作方便,也比较实惠。按键电路采用中断模式。当有按键按下时,系统产生中断,CPU 响应中断后,开始计数,即查询键号,通过软件来实现该键号所对应键的功能键盘的大体设置为:第一个键为报站控制键 S1 用来控制站台“+”例如:第一站为光谷站,按下 S1 时显示第二站:火车站,其余的站台工作原理也一样。S2 用来控制站台的“-” ,第二站为火车站,在
31、按下 S2 时这样就显示火车站。电路如图 3-4 按键电路:V C CR 61 0 KR 51 0 Kint0int1S 1S 2图 3-4 按键电路3.2 LED 显示屏设计我们知道的用来显示的器件很多。比如数码管、LCD、点阵式 LED。数码管只能显示数字,LCD 可以显示汉字、符号、数字和图形。虽然 LCD 的显示效果要比 LED 好,显示电路也比较简单(很大一部分已经集成化) 。但是它的价格比武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 13 -较高,也不容易采购。所以综合考虑生产成本,本系统采用点阵式 LED 显示。它具有以下优点
32、:1 价格比较便宜 2 容易扩展显示比较多的汉字 3 显示汉字效果好,广泛用于广告显示屏,交通屏幕。通常情况下,点阵式 LED 显示屏是由标准的 LED 显示模块组成的。3.2.1 16*16LED 显示屏HS 1088BS 点阵式 LED 显示模块是 8 行 8 列 64 个 LED 组成。单块点阵式LED 显示模块能够显示各种字母,数字和常用的符号。点阵式 LED 显示模块在8 行 8 列的每一个交点上装有一个 LED。模块有共阳极和共阴极之分。LED 的正极接行引线,负极接列引线的称为共阳极 LED 显示模块,反之为共阴极 LED 显示模块。由 4 个 8*8 的 LED 显示屏组成的
33、16*16 的 LED 汉字显示屏如图 3-5, 4个 8*8 的 LED 显示屏组成的 16*16 的 LED 显示屏,行引脚逐个连接而成。 图 3-5 8*8 单色 LED 模块内部电路武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 14 -图 36 4 个 8*8 的 LED 显示屏组成的 16*16 的 LED 显示屏3.2.2 LED 显示屏的工作原理 LED 点阵显示系统中各模块的显示方式: 有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的
34、窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。 点阵式 LED 汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于 24 帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 15 -减了发光单元的信号线数量,因此在 LED 显示技术中被广泛
35、使用。 以 88 点阵模块为例,说明一下其使用方法及控制过程。图 2-1 中,红色水平线 Y0、Y1Y7 叫做行线,接内部发光二极管的阳极,每一行 8 个 LED 的阳极都接在本行的行线上。相邻两行线间绝缘。同样,蓝色竖直线X0、X1X7 叫做列线,接内部每列 8 个 LED 的阴极,相邻两列线间绝缘。 在这种形式的 LED 点阵模块中,若在某行线上施加高电平(用“1”表示) ,在某列线上施加低电平(用“0”表示) 。则行线和列线的交叉点处的 LED 就会有电流流过而发光。比如,Y7 为 1,X0 为 0,则右下角的 LED 点亮。再如 Y0 为1,X0 到 X7 均为 0,则最上面一行 8
36、个 LED 全点亮。 现描述一下用动态扫描显示的方式,显示字符“B”的过程。其过程如图3-7图 3-7 用动态扫描显示字符“B”的过程武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 16 -第四章 软件设计程序就是为计算机某一算式或完成某一工作的若干指令的有序集合。计算机的全部工作概括起来就是执行这一指令序列的过成。这一指令序列称为程序。本章主要讲了主控部分以及 LED 显示部分的程序设计。4.1 单片机软件开发工具及语言本系统的处理器是兼容 8051 指令集的高速单片机 STC12C5412AD。为此,首选 Keil Vision 作为其开
37、发工具。Keil Vision 是美国 Keil Software公司出品的 51 系列兼容单片机 C 语言软件开发系统。其功能强大,生成的代码紧凑,是目前世界上使用最广的 51 系列兼容单片机开发工具。 本设计中,单片机软件是采用 C51 语言编写,C51 语言是 ANSI C 的扩展集,其语法结构、关键字等与 ANSI C 绝大部分是相同的。与汇编相比,C51 语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势。4.2 单片机软件流程系统通电,首先进行初始化,第一个站时,按输入键,系统进行比较判断是否按下, “是”则继续进行外部中断,调用程序清屏,再通过程序显示地址;“否”就返
38、回原状态。图 4-2 单片机软件流程武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 17 -4.3 LED 程序分析显示驱动程序在进人中断后首先要对定时器 T0 重新赋初值,以保证显示屏刷新率的稳定,1/16 扫描显示屏的刷新率(帧频)计算公式如下: 刷新率(帧频)=1/16T0 溢出率=1/16fosc/12(65536to) 其中,fosc 为晶振频率,to 为定时器 T0 初值(工作在 16 位定时器模式)。 然后显示驱动程序查询当前燃亮的行号,从显示缓存区内读取下一行的显示数据,并通过串口发送给移位寄存器。为消除在切换行显示数据的时候
39、产生拖尾现象,驱动程序先要关闭显示屏,即消隐,等显示数据打人输出锁存器并锁存,然后再输出新的行号,重新打开显示。 4.3.1 LED 汉字左移程序分析汉字的左移程序步骤如下: 先申请一个二维的数组,在数组中放入两个汉字的字码,然后使外部寄存器进行停留显示一段时间。 把这个数组的内容整体从左向右移动一位,再让外部寄存器进行停留显示一段时间。 进行上一步时,数组会少一列数据,这时就把下一个汉字的头字节取来补上。这样一直进行下去,直到最后没有汉字字码为止。 4.3.2 汉字站号的按键选择程序分析 按键程序是实现公交报站的一个重要组成部分,这里我使用了 51 单片机两个强大的外部中断来做汉字内容的切换
40、。 下一站按键按下之后,先对显示屏进行清屏,然后字模的地址指针移动到下一站字模组的首地址,主程序继续执行显示当前指针指向的汉字。 上一站按键按下之后,先对显示屏进行清屏,然后字模的地址指针移动到上下一站字模组的首地址,主程序继续执行显示当前指针指向的汉字。武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 18 -总 结本设计的是一个公交车报站 16*16 的点阵 LED 显示屏,能够在目测条件下LED 显示屏各点亮度均匀、充足,可显示图形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。本系统具有硬件少,结构简
41、单,容易实现,性能稳定可靠,成本低等特点,适合在每辆公交车上安装。总结本文的研究工作,主要做了下面几点工作 一、通过查阅大量的相关资料,详细了解了公交车报站系统和其中的 LED的发光原理和 LED 显示屏的原理,了解了公交车报站系统的现状,清楚地了解了在显示站名时 LED 显示屏与其它显示屏相比较有那些优点,明确了研究目标。并且通过对单片机资料的查阅和应用,更进一步增加了对单片机知识的理解和运用能力。并证实了自己的思路:“查资料思考总结运用找出差错,再查资料和向别人询问再次运用”的正确性。 二,本文设计的公交车报站 LED 显示屏能够实现在目测条件下 LED 显示屏各点亮度均匀、充足,可显示图
42、形和文字,显示图形和文字应稳定、清晰无串扰。图形或文字显示有静止、移入移出等显示方式。三,本文列出了系统具体的硬件设计方案,硬件结构电路图,软件流程图和具体汇编语言程序设计与调试等方面。 四,通过这次毕业设计,重新复习单片机知识并进一步增强了动手的能力,学以致用,把知识运用到实际生活中才是根本目的。 五,存在问题:没有考虑仿真软件是一个理想的仿真环境,而实际连接的电路板会由于譬如连接不当,相邻器件间的干扰等等的问题导致,仿真软件中能良好运行的程序在实际出现显示问题,经过排查和合理的器件摆放焊接,问题被解决。 总体来说这次的毕业设计很成功,达到了预想的目的:学到了知识,提高了能力,完成了任务。有
43、点缺憾是时间有限,不能进一步深入和扩散学习和研究。希望有时间可以对程序和电路图作更进一步的改进,譬如实现点阵的上下移动,对角线移动,三色显示等。 武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 19 -致谢 :本设计在老师的悉心指导和严格要求下完成,从课题选择、方案论证到具体设计和调试,无不凝聚着老师的关心和指导,在此向老师表示深深的感谢和崇高的敬意。在此过程中,使学生学到了很多专业上的知识,尤其是使学生对过去书本上不太理解熟悉的理论知识有进一步的掌握,也使学生感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程以及
44、与学会和他人共同进步的过程,没有学习就不可能有研究的能力,没有自己用心的研究,就不会有所突破,那也就不叫论文了。这次的经历会帮助我在以后学习中不断的激励自己继续进步。老师在论文上给于学生的帮助,令学生受益良多;杨老师渊博的学识、严谨的治学态度、开阔的思维以及为人师表的作风,将使学生毕生难忘,并将对学生今后的学习、工作和生活产生重要的影响。老师对本课题的研究以及论文的撰写倾注了极大的心血,区区数语,难表谢意!我还要感谢我的家人,我的家人为使我能顺利完成三年的学业,在经济上和精神上给予了我极大的支持,做出了不少的牺牲,在此,我对他们表示由衷地感激!同时,还要向学习期间所有曾给我帮助的老师、同学和朋
45、友表示衷心地感谢,有了大家的热心帮助,我才能一步一步地解决学习和生活中的各种问题。在此向大家表达我诚挚的谢意!最后衷心感谢在百忙之中评阅论文和参加答辩的各位老师、专家、教授 。参考文献 1、电工学 秦曾煌主编 高等教育出版社 2003 年第五版2、 数字电子技术 杨志忠主编 高等教育出版社 2000 年第一版3、 集成电路原理及应用谭博学主编,电子工业出版社,2008 第二版4、 EDA 技术基础 郭勇主编 机械工业出版社 2007 年第二版武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509bed.pdf - 20 -5、 电子技能实验与实训 周福平主编 科学出版社 2011 年第一版6、 新概念 51 单片机 C 语言教程 郭天祥主编 电子工业出版社 附录 A元器件清单器件名称 规格 数量单片机 AT89C52 1晶振 12MHz 1电解电容 10UF 1电容 8UF 2按键 3点阵 8*8 单红 4电阻 10k 4译码器 74LS138 2排阻 RESPACK-8 1武汉软件工程职业学院 38f56e95c929b5360b1cc9c34e509b