公交车车载语音报站LED大屏显示系统毕业设计Word文档下载推荐.docx
《公交车车载语音报站LED大屏显示系统毕业设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《公交车车载语音报站LED大屏显示系统毕业设计Word文档下载推荐.docx(64页珍藏版)》请在冰豆网上搜索。
相对于单片机80C31而言,AT89C52有更强大的功能。
综上所述,方案一比之方案二要好,本设计采用方案一,将在以下章节中对其做详细的阐述。
第二章系统的硬件设计
2.1系统控制单元
2.1.1单片机AT89C52:
●AT89C52单片机简介:
AT89C52是由美国Atmel公司生产的至今为止世界上最新型的高性能八位单片机。
AT89C52是一种低功耗、低电压、高性能、内含8KB闪速存储器(FlashMemory)的8位CMOS单片机。
这种器件以ATMEL高密度不挥发存储技术制造,与工业标准MCS-51指令系统和引脚完全兼容。
片内闪速存储器的程序代码或数据可在线写入,亦可通过常规的编程器编程。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外部中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是反复擦写的Flash存储器可有效地降低开发成本。
AT89C52与80C31相比,优越性就在于,其片内闪速存储器的编程与擦除完全用电实现;
AT89C52可实现在线编程,也可下载。
●AT89C52的特点:
兼容MCS-51指令系统;
8k可反复擦写(>
1000次)FlashROM;
256*8bit内部RAM;
32个双向I/O口;
3个16位可编程定时/计数器中断;
时钟频率0~24MHz;
3级加密位;
2个串行中断;
2个外部中断源;
2个读写中断口线;
6个中断源;
可编程UART串行通道;
低功耗空闲和丢电模式;
软件设置睡眠和唤醒功能。
●AT89C52的引脚功能:
其引脚图如图2.1.1.1所示。
它有3种封装方式,PDIP、PQFP/TQFP和PLCC/LCC。
AT89C52单片机为40引脚芯片。
各引脚功能说明如下:
1.主电源引脚:
Vcc(40脚):
接+5V电源正端。
GND(20脚):
接+5V电源地端。
2.输入/输出引脚:
(1)P0口(39~32脚):
P0.0~P0.7统称为P0口。
在不接片外存储器与不扩展I/O口时,可作为准双向输入/输出口。
在接有片外存储器或扩展I/O口时,P0口分时复用为低8位地址总线和双向数据总线。
(2)P1口(1~8脚):
P1.0~P1.7统称为P1口,可作为准双向I/O口使用。
出此之外还有第二功能:
P1.0可用作定时器/计数器2的计数脉冲输入端T2,P1.1可用作定时器/计数器2的外部控制端T2EX。
(3)P2口(21~28脚):
P2.0~P2.7统称为P2口,一般可作为准双向I/O口使用;
在接有片外存储器或扩展I/O口且寻址范围超过256个字节时,P2口用作高8位地址总线。
(4)P3口(10~17脚):
P3.0~P3.7统称为P3口。
除作为准双向I/O口使用外,还可以将每一位用于第二功能,而且P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
P3口的第二功能如表2.1.1.2所示。
端口引脚
第二功能
P3.0
RXD(串行口输入端)
P3.1
TXD(串行口输出端)
P3.2
(外部中断0请求输入端,低电平有效)
P3.3
(外部中断1请求输入端,低电平有效)
P3.4
T0(定时器/数器0计数脉冲输入端)
P3.5
T1(定时器/数器1计数脉冲输入端)
P3.6
(外部数据存储器写选通信号输出端,低电平有效)
P3.7
(外部数据存储器读选通信号输出端,低电平有效)
3.控制线:
(1)ALE/PROG(30脚):
地址锁存有效信号输出端。
ALE在每个机器周期内输出两个脉冲。
在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;
在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。
(2)/PSEN(29脚):
片外程序存储器读选通信号输出端,低电平有效。
当从片外程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。
(3)RST(9脚):
RST即为RESET,该引脚为单片机的上电复位端。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作,使单片机回到初始状态。
上电时,考虑到单片机有一定的起振时间,该引脚上高电平必须持续10ms以上才能保证有效复位。
(4)/EA/Vpp(31脚):
片外程序存储器选用端。
该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。
4.外接晶体引脚:
XTAL1(19脚):
接外部石英晶体的一端。
在单片机内部,它是一个反向放大器的输入端,这个放大器构成了片内振荡器。
XTAL2(18脚):
接外部石英晶体的另一端。
在单片机内部,它是片内振荡器的反向放大器的输出端。
●AT89C52控制部件及振荡器
控制部件是单片机的神经中枢,它包括定时和控制电路、指令寄存器、译码器以及信号传送控制等部件。
它先以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来协调单片机内部各功能部件之间的数据传送、数据运算等操作,并对外发出地址锁存ALE、外部程序存储器选通/PSEN,以及通过P3.6和P3.7发出数据存储器读/RD、写/WR等控制信号,并且接收处理外接的复位和外部程序存储器访问控制/EA信号。
单片机的定时控制功能是用片内的时钟电路和定时电路来完成的,而片内的时钟产生有两种方式:
内部时钟方式和外部时钟方式。
采用内部时钟方式时,如图2.1.1.3所示。
片内高增益反相放大器通过XTAL1、XTAL2外接作为反馈元件的晶体(呈感性)与电容组成的并联谐振回路构成一个自激振荡器向内部时钟电路提供振荡时钟。
振荡器的频率主要取决与晶体的振荡频率,一般晶体可在1.2~12MHz之间任选。
电容C1、C2的值则有微调作用,通常取20pF左右。
●AT89C52的程序存储器:
计算机的工作是按照事先编制好的程序命令序列一条条顺序执行的,程序存储器就是用来存放这些以编好的程序和表格常数,它由只读存储器ROM或EPROM组成。
计算机为了有序地工作,设置了一个专用寄存器——程序计数器PC,用以存放将要执行的指令地址。
每取出指令的一个字节后,其内容自动加1,指向下一字节地址,使计算机依次从程序存储器取出指令予以执行,完成某种程序操作。
AT89C52可寻址的地址空间为8KB。
下图2.1.1.4为AT89C52程序存储器编址图。
单片机执行指令,是从片内程序存储器取指令,还是从片外程序存储器取指令,首先由单片机/EA引脚电平的高低来决定。
/EA=1为高电平时,先执行片内程序存储器的程序,当PC的内容超过片内程序存储器地址的最大值(1FFFH)时,将自动转去执行片外程序存储器中的程序;
/EA为低电平时,CPU从片外程序存储器中取指令执行程序。
本设计AT89C52单片机/EA=1接高电平。
程序存储器的7个特殊入口地址见表2.1.1.5所示。
操作
入口地址
复位
0000H
外部中断
0003H
定时器/计数器0溢出
000BH
外部中断1
0013H
定时器/计数器1溢出
001BH
串行口中断
0023H
T2EX端负跳变
002BH
●AT89C52数据存储器:
单片机片内、片外数据存储器是两个独立的地址空间,应分别单独编址。
片内数据存储器除RAM块外,还有特殊功能寄存器SFR块。
对于AT89C52单片机,前者有256个字节,其编址为00H~FFH;
后者有128个字节,其编址为80H~FFH。
后者与前者高128个字节的地址是重叠的,由于访问它们所用的指令不同,并不会引起混乱。
其数据存储器编址图见图2.1.1.6所示。
片外数据存储器按16位编址时,其地址空间与程序存储器重叠,但不会引起混乱,访问程序存储器是用/PSEN信号选通,而访问片外存储器时,由/RD信号和/WR信号选通。
2.1.28255A可编程并行I/O扩展:
●8255A的扩展连接图:
8255A与单片机AT89C52的接口逻辑简单,其接口电路见图2.1.2.1所示。
因8255A芯片内部无地址锁存能力,所以图中8255A的片选信号CS及口地址选择线A1、A0分别由AT89C52的P0.7和P0.1、P0.0经地址锁存器后提供。
如果把没有参与选址的地址线状态都看作“1”状态,则8255A的A、B、C口及控制口地址分别为FF7CH、FF7DH、FF7EH、FF7FH。
8255A的复位端与AT89C52的复位端相连,都接到AT89C52的复位电路上。
●8255A芯片的简介:
1.芯片引脚:
AT89C52单片机工共有4个并行I/O口,但是这些I/O口并不能完全提供给用户使用。
因此需要进行I/O口的扩展。
而8255是单片机应用系统中广泛被采用的可编程的外部I/O口扩展芯片,它有3个8位并行I/O,每个口有三种工作方式。
其引脚图如图2.1.2.2所示。
Vcc(26脚):
接+5V电源正端;
GND(7脚):
接电源的0V端;
RESET(35脚):
复位信号输入端。
使内部各寄存器清除,置A、B、C口为输入端;
/WR(36脚):
写信号输入端。
使CPU输出数据或控制字到8255A;
/RD(5脚):
读信号输入端。
使8255A送数据或状态信息到CPU;
/CS(6脚):
片选端;
A1、A0(8、9脚):
地址总线的最低2位。
用于决定端口地址:
如A1A0为00,是A口;
A1A0为01,是B口;
A1A0为10,是C口;
A1A0为11,是控制字寄存器;
D7-D0(27-34脚):
双向数据总线;
PA7-PA0(37-40脚1-4脚):
A口的8位I/O引脚;
PB7-PB0(25-18脚):
B口的8位I/O引脚;
PC7-PC0(10-13脚17-14脚):
C口的8位I/O引脚。
2.8255A芯片内部结构:
8255A芯片内部结构可分为四个部分:
(1)数据总线缓冲器:
是一个8位的双向三态驱动器,用于与单片机的数据总线相连;
(2)读/写控制逻辑:
根据单片机的地址信息(A1、A0)与控制信息(/RD、/WR、RESET),控制片内数据、CPU控制字、外设状态信息的传递;
(3)控制电路:
根据CPU送来的控制字使所管I/O口按一定方式工作;
(4)三个并行I/O端口:
A口可编程为位输入,或8位输出,或双向传送;
B口可编程为位输入,或8位输出,但不能双向传送;
C口分为两个4位口,用于输入或输出,也可用作A口、B口的状态控制信号。
3.8255A的三种工作方式:
方式0(基本输入/输出方式):
这种工作方式不需要任何选通信号。
A口、B口、C口的两个4位口中任何一个端口都可以由程序设定为输入或输出。
作为输出口时,输出数据被锁存;
作为输入口时,输入数据不锁存;
方式1(选通输入/输出方式):
在这种工作方式下,A、B、C三个口分为两组。
A组包括A口和C口的高4位,A口可由编程设定为输入口/输出口,C口的高4位则用来作为A口输入/输出操作的控制和同步信号;
B组包括B口和C口的低4位B口可由编程设定为输入口/输出口,C口的低4位则用来作为A口输入/输出操作的控制和同步信号。
A口和B口的输入数据或输出数据被锁存;
方式2(双向传送方式):
在这种工作方式下,A口可用于双向传送,C口的PC3-PC7用来作为输入/输出的控制同步信号。
2.1.3AT89C52的复位电路:
与MCS-51单片机一样,AT89C52单片机系统也有上电复位和按扭复位两种方法。
所谓上电复位,是指计算机加电瞬间,要在RESET引脚上出现大于10ms的正脉冲,使单片机进入复位状态。
按扭复位是指用户按下“复位”按扭,使单片机进入复位状态。
复位是靠外部电路来实现的。
图2.1.2.3是上电复位以及按扭复位的一种实现电路。
上电时,+5V电源立即对单片机芯片供电,同时经电阻R对电容C充电。
C上电压建立的过程就产生一定宽度的脉冲,经反相后,RESET上出现正脉冲使单片机实现上电复位。
按扭按下时,RESET上同样出现高电平,实现了按扭复位。
2.2LED大屏显示单元
2.2.1大屏幕LED显示模块原理图:
本单元采用10个16*16型LED汉字点阵组成一个16*160的大型汉字显示屏,整个显示屏共16路行线和160路列线,采用单片机扩展口8255A的PA0-PA2和PB2-PB7以及PC4-PC7共13个控制口来控制LED大型汉字显示屏的显示。
大屏幕LED显示模块原理图如图2.2.1.1所示。
行信号控制:
PC4-PC7通过一片4线-16线译码器74LS154芯片译码,再通过两片74LS240芯片,逐一扫描点阵的16路行信号。
列信号控制:
点阵的160路列信号,可以分成20页,每页8路信号,单片机扩展的8255A的PA0-PA2通过一片3-8译码器74LS138进行译码,可以进行8路列信号的扫描。
为了分别扫描20页中的每一列信号,需要对20页中的每一页逐一进行选通,可以设计一个由两片74LS154芯片构成的一个6线-20线的译码器,6路输入信号由8255A的PB2-PB7提供。
并且每页的8路列信号加一个74LS244芯片,20页共需要20个74LS244芯片,对每页的每一路列信号逐一进行译码。
电路逻辑分析:
PC4-PC7通过4线-16线译码器74LS154后,再通过74LS240译码器后,只有1路是高电平,其他15路是低电平,再通过NPN三极管,可以实现某一路选通,同时其他15路截止。
通过8255A的PB2-PB7控制由两片74LS154组成的6线-20线译码器,可以选通20个74LS244芯片中的某一片,即仅选通一页,其他各页中的各路列信号表现为高阻态,同时,单片机通过扩展的8255A的PA0-PA2控制
3-8译码器74LS138,唯一选通这一页中8路列信号中的某一路,并表现为低电平,其他7路表现为高电平。
从电平逻辑上看,由此可以实现16*160点阵中,唯一选通某一个发光二极管,通过循环扫描,可以实现16*160点阵中每一个发光二极管的选通。
2.2.2LED大屏显示单元芯片简介:
1.4线-16线译码器74LS154:
当74LS154的两个选通信号G1和G2为低电平时,它可将4个二进制编码的输入译成16个互相独立的输出之一。
其引脚图见图2.2.2.1所示。
译码关系见表2.2.2.2。
G1
G2
DCBA
译码输出
0000
/Y0
0001
/Y1
0010
/Y2
0011
/Y3
0100
/Y4
0101
/Y5
0110
/Y6
0111
/Y7
1000
/Y8
1001
/Y9
1010
/Y10
1011
/Y11
1100
/Y12
1101
/Y13
1110
/Y14
1111
/Y15
2.3-8译码器74LS138:
3-8译码器74LS138为一种常用的地址译码器芯片,其引脚图如图2.2.2.3所示。
其中G1、/G2A、/G2B为3个控制端,只有当G1为“1”且/G2A、/G2B均为“0”时,译码器才能进行译码输出。
否则8个输出端全为高阻状态。
译码输入端与输出端译码逻辑关系见表2.2.2.4。
C
B
A
1
使用时,G1、/G2A、/G2B即可直接接至+5V电源端或接地,也可参与地址译码。
但其译码关系必须为100。
需要时也可通过反相器使输入信号满足要求。
3.74LS240芯片:
74LS240为反向驱动器或数据缓冲器,其引脚图2.2.2.5所示。
图2.2.2.574LS240引脚图
74LS240分为两组,分别由控制端/1G、/2G控制。
使用时/1G、/2G接地。
4.74LS244芯片:
74LS244为单向驱动器或数据缓冲器,其引脚图见图2.2.2.6所示。
图2.2.2.674LS244引脚图
它由8个三态门构成,分成两组,分别由控制端/1G和/2G控制。
使用时两个控制端/1G和/2G均接地,相当于8个三态门均打开。
Vcc接+5V电源端,GND接地。
2.2.3字模数据向显示电路传送的转换原理:
本设计先规定:
ISD4004语音芯片不需要我们把所要播报的站名录入到里面,也不需要我们把站名一个个地存放在外部扩展的EPROM和数据缓冲区中,这些都是由公交车公司技术部门来完成的。
本设计中我们使用完成了的芯片,只需要我们到用时直接提取出来即可。
这里举例说明一个字“十”的字模数据向显示器传送转换原理。
如图2.2.3.1所示。
根据显示站号硬件系统原理图,我们设定下列内容:
1.我们先把这个“十”字的32个字节罗列出来,按照前一半后一半、从上到下的原则,为01H,01H,01H,01H,01H,01H,01H,FFH,FFH,01H,01H,01H,01H,01H,01H,01H(前半个字);
80H,80H,80H,80H,80H,80H,80H,FFH,FFH,80H,80H,80H,80H,80H,80H,80H(后半个字),整个“十”字的32个字节。
2.我们只把这256个二极管显示这个“十”字的亮的罗列出它的字节来,设16行的首址为00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,EH,0FH,我们还设每一列为一个数据条,并设这一数据条结束标志为10H,那么这个“十”字的256个字节就缩为07H,08H,10H(第1列即第1个数据条)07H,08H,10H(第2列即第2个数据条)……00H,01H,02H,03H,04H,05H,06H,07H,08H,09H,0AH,0BH,0CH,0DH,0EH,0FH,10H(第8列即第8个数据条)……07H,08H,10H(第16列即第16个数据条),整个“十”字就转换完了,把256个字节转化为60个行地址加16个结束标志地址,共76个字节。
3.设一个站的结束标志地址为11H,这样EPROM里存放的是见表2.2.3.2中。
4.数据缓冲区RAM由公交车公司技术部门制作完成,我们要提取出所要在大屏幕显示器上显示的站名,只需要确定该站的首地址即可。
2.3语音单元
2.3.1语音电路原理图:
语音电路图如图2.3.1.1所示。
本语音报站系统分为ISD4004主芯片,还包含配套的变压电路,功放电路等。
从图中可以看出AT89C52和ISD4004之间的连线较少,单片机的P2.6接ISD4004的片选断SS,控制ISD4004的选通与否。
P2.7接ISD4004的串行输入引脚MOSI,从该引脚读入放音的地址。
P3.3接ISD4004的中断引脚/INT。
音频信号输出引脚AUDOUT通过功放电路与扬声器连接,AMCAP为自动静音端,使用通过一个电容接地。
此外由于ISD4004的工作电压为3V,而整个系统的电压为5V,因此需要通过采用变压电路得到3V电压供I