刘良新 单片机课程设计报告
1.设计的主要目标任务
设计的主要目标本课题要求设计一公交车语音报站系统,具备8个或以上的站点,按下相应按键就播放相应的语音,并通过液晶屏幕显示所在站点的信息。以实现公交车的语音报站,即在到站时候司机按下按键自动播报语音提示信息及,同时利用LCD显示电路进行汉字显示。同时系统需具有可操作性和兼容系,即在使用过程中,对不同的公交线路能够很方便的进行设定。本设计要求利用AT89C52作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、显示电路、按键模块电路等
2.方案设计 2.1基本原理
本系统使用八位单片机作为控制器件。当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站名的显示。当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。而且,系统具有根据公交车的行驶方向确定报站顺序的功能(司机或乘务人员可以通过按键来控制)。当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。
2.2系统框图
AT89C52
系统组成结构
第 2 页
钦州学院课程设计报告
3.主要电路介绍 3.1主控电路简介
微控制器选择目前市场上常用的Intel生产的AT89C52单片机作为主控芯片,同时, AT89C52系统还需要外接晶振和复位电路。 3.1.1关于AT89C52单片机
AT89C52提供以下标准功能:8k字节FLASH闪速存储器,256字节内部RAM,32个I/O口线,3个16位定时/计数器,一个6向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C52可降至OHZ的静态逻辑操作,并支持两种软件可选的节点工作模式。空闲方式停止CPU工作,但允许RAM,定时/计数器,串行口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个部件复位。 3.1.1.1 AT89C52主要性能参数
AT89C52单片机与MCS-51产品指令和引脚兼容,内部含有8K字节可擦写FALSH闪存,1000次擦写周期。同时具有全静态操作:OHZ-24MHZ,三级加密程序存储器,256×8字节内部RAM,32个可编程I/O口线,3个15位定时/计数器,8个中断源,可编程串行UART通道的功能部件。 3.1.1.2 引脚功能说明
引脚图如下图图所示:
第 3 页
刘良新 单片机课程设计报告
功能说明如下:
1 VCC:电源电压 2 GND:地
3 P0 口:P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
4 P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表2.1。Flash 编程和程序校验期间,P1 接收低8 位地址。
表3-1 P1.0和P1.1的第二功能
第 4 页
钦州学院课程设计报告
引脚号 P1.0 功能特性 T2(定时/计数器2外部计数脉冲输入),时钟输出 T2EX(定时/计数2捕获、重装载触发和方向控制) P1.1 5 P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地址的外部数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据。在访问8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。
6 P3口:P3口是一组带有内部上拉电阻的8位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,更重要的用途是它的第二功能,如表2.2所示,此外,P3 口还接收一些用于Flash 闪速存储器编程和程序校验的控制信号。
表3-2 P3口第二功能
第 5 页
刘良新 单片机课程设计报告
7 RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
8 ALE/PROG: 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。
9 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。
·EA/VPP:外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V 编程电压Vpp。
·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。
·XTAL2:振荡器反相放大器的输出端。
3.1.2 振荡器电路的设计
89系列单片机的内部振荡器电路如图所示,由一个单级反相器组成。XTAL1为反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要在XTAL1和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器。
第 6 页