毕业论文基于单片机的公交报站系统内容摘要:

店子 到了,请从后门下车,下车请当心;车辆起步, 请拉好扶手,前方停靠 金沙站 ”,同时 LCD12864 上显示 “茶店子到了 ”。 num=5,ISD4004 播报 “金沙站 到了,请从后门下车,下车请当心; ”,同时 LCD12864上显示 “金沙站到了 ”。 num=6,ISD4004 播报 “谢谢乘坐本次公交车 ”,同时 LCD12864 上显示 “谢谢乘坐 ”。 系统上电后,液晶显示模块 LCD12864 与语音模块 ISD4004 进行初始化,当检测到有按键按下时,进行键值的判断,根据键值,跳转到相应的显示程序和语音播放程序并执行,从而实现公交车语音报站功能。 软件主流程图如图 所示。 11 图 ISD4004 语音模块录放音 在本次软件程序设计中,我总共设置了 5 个按键,录音键( k1=) ,放音键( k2=) ,停止键( k3=) ,录放音地址移位键( k4=) ,复位键( k5=)。 当按下 k1 键时,语音模块就从 0X05 开始录音,录好一段音后,按下 k3 键,停止录音。 按下 k2 键,开始播放之前所录的声音。 按下 k4 键,录音地址往后移 100,此时 再按下k1 键,开始第二段录音。 如此,便可实现多段录音,而且每段录音所存放的地址都通过计算得出。 若是不满意当前的录音,可以按下 k5 键,重新录音。 图 为录音流程图。 图 为放音流程图。 12 图 录音程序流程图 13 图 放音程序流程图 14 LCD12864 显示 系统上电后,液晶显示模块进行初始化。 同时液晶显示部分按照数组序号显示字符程序,程序中 table 为要显示的数组 序号,按照数组的次序依次显示每站的站名。 图 为本次设计的液晶显示 12864 的程序流程图。 图 程序流程图 15 按键部分 按键部分采用扫描法,当检测到按键按下时,进行键值判断,并进行相应的显示程序以及语音播放程序的跳转,实现公交车语音报站功能。 图 是本次设计的按键程序流程图。 图 按键程序流程图 16 第四章 仿真过程、结果分析 软件仿真调试过程 本次单片机软件仿真系统我选择了 Proteus。 在整个系统软件设计中, 依旧从语音,液晶显示以及按键这三大部分进行综合考虑。 由于 Proteus 软件的限制,无法对 ISD4004语音芯片进行仿真,从而在此处我选用了 LED 灯来代替语音芯片,当按键按下时,相对应的 LED 灯点亮。 在仿真时,由于语音模块不能进行仿真,为了增加点难度,在液晶显示模块方面我选择了可以显示汉字的 12864 模块。 下面主要介绍一下 12864 的工作原理 错误 !未找到引用源。 LCD12864 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区 域进行控制,有电就有显示,这样即可以显示出图形。 其实用 LCD 显示一个字符时比较复杂,因为一个字符由 1616 点阵组成,既要找到和显示屏幕上某几个位置对应的显示 RAM区的 64 字节,还要使每字节的不同位为 “1”,其它的为 “0”,为 “1”的点亮,为 “0”的不亮。 这样一来就组成某个字符。 但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 在本次设计中,LCD12864 液晶显示模 块的 rs,rw,e 分别与 51 单片机的 P3^5, P3^6, P3^7 端口连接,进行程序的读写数据,字符操作。 而 D0~D7 分别与 51 单片机的 P0 口进行连接,用来输出数据与字符,这样就可以在液晶上显示出自己想要的字符 错误 !未找到引用源。 在此次仿真过程中,总共设计了 4 个按键, k1:欢迎乘坐, k2:上一站, k3:下一站 ,k4:谢谢乘坐。 当按下 k1 键时, LCD 上显示 “欢迎乘坐 ”;如果当前的站是 “电子高专到了 ”,当按下 k2 键时, LCD 上显示 “西 区公交站到了 ”,;当按下 k3 键时, LCD 上显示 “茶店子到了 ”。 当按下 k4 时, LCD 上显示 “谢谢乘坐 ”。 实现的效果图如下图 , , , , 所示 17 按下 k1 键 LCD12864 液晶显示 “欢迎乘坐 ”。 图 四 .1 “欢迎乘坐 ” 按下 k2 或者 k3 键显示, k2 键逆向显示, k3 键顺向显示 Num=1 LCD12864 液晶显示 “电子高专到了 ”。 图 四 .2 “电子高专到了 ” 18 Num=2 LCD1602 液晶显示 “西区公交站到了 ”。 图 四 .3 “西区公交站到了 ” Num=3 LCD12864 液晶显示 “茶店子到了 ”。 图 四 .4 “茶店子站到了 ” 19 Num=4 LCD12864 液晶显示 “金沙到了 ”。 图 四 .5 “金沙站到了 ” 按下 k4 键 LCD12864 液晶显示 “谢谢乘坐 ”。 图 四 .6 “谢谢乘坐 ” 20 ISIS 仿真系统基本知识 Proteus是英国 Labcenter公司开发的电路分析与实物仿真软件 [6]。 它运行于 Windows操作系统上,可以仿真、分析 (SPICE)各种模拟器件和集成电 路,该软件的特点是: ①实现了单片机仿真和 SPICE 电路仿真相结合。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、 RS232 动态仿真、 I2C 调试器、 SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。 ② 支持主流单片机系统的仿真。 ③ 提供软件调试功能。 在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision2 等软件。 ④ 具有强大的原理图绘制功能。 Proteus 软件所提供了 30 多个元件库,数千种元件。 元件涉及到数字和模拟、交流和直流等。 对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。 在Proteus 软件包中,不存在同类仪表使用数量的问题。 Proteus 还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。 总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大。 Proteus 与其 它单片机仿真软件不同的是,它不仅能仿真单片机 CPU 的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。 因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。 对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 Proteus ISIS 双击桌面上的 ISIS 6 Professional 图标或者单击屏幕左下方的 “开始 ”→“ 程序 ”→“Proteus 6 Professi onal” →“ISIS 6 Professional” ,出现如图 所示屏幕,表明进入 Proteus ISIS 集成环境。 21 图 启动时的屏幕 Proteus 的工作界面是一种标准的 Windows 界面,如图 所示。 单击 对象选择 按钮 P 会出现如图 对话框。 在 keywords中输入需要的元器件型号如 89C51会出现对话框 在 Results下选中需要的元器件然后按右下脚的 OK 关闭对话框,这时元器 件列表中就会列出 89c51。 这时在原件列表中左键选取 89c51,在原理图编辑窗口中单击左键,这样 89c52 就被放到原理图编辑窗口中了。 同样放置其他元器件。 Proteus 绘图流程举例 ,首先按刚才所述选取放置一元件电阻,然后在图形编辑窗口中右键选取电阻,然后单击左键会出现如图 对话框然后按需要进行设置即可。 22 图 Proteus 工作界面 23 图 对象选择 界面 图 修改元器件属性界面 24 ( .hex 文件) 图 添加十六进制文件界面 连好电路图后右键单击图中的单片机选中,然后单击左键出现如图 对话框在program file 中单击浏览图标,找到所需要的 .hex 文件最后单击 ok 退出。 KEIL Cx51 软件的使用 Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编 ,PLM 语言和 C 语言的程序设计,界面友好,易学易用。 下面介绍 Keil C51 软件的使用方 法。 启动后进入 keil c 的编辑界面如图。 此时点击 project—New Project 菜单选项可创建一个新的项目文件。 此时会弹出一个标准的 Windows 对话框,询问新建项目文件的名字,建议每个项目都使用一个独立的文件夹。 文件名写好后单击确定会出现如图 对话框要求选择单片机型号, keil c51几乎支持所有的 51 核的单片机,选好单片机后只要点击确定即可。 25 图 keil c 的编辑界面 图 CPU 选择界面 26 为项目新建文件 点击菜单 File—New File 此时屏幕如图 此时在弹出的 Text 窗口中写入自己的程序,写完后点击 File—Save As 将文件保存。 注意,如果用C语言编写程序,则扩展名为 .c,如果用汇编语言编写程序,则扩展名必须为 .asm。 此时回到 编辑界面单击 “Target 1”前面的 “+ ”号,然后在 “Source Group 1”上单击右键,在弹出的下拉菜单中单击 “Add File to Group „Source Group 1‟”再在出现的对话框中选择自己需要 .c 文件或 .asm文件,单击 Add 然后关闭此对话框。 此时编辑界面如下图 所示。 图 新建文件界面 27 图 编辑界面 .HEX文件 在生成 .hex 文件前要对程序进行编译看程序是否有误,单击图 中的编译按钮即可,如显示无误则右击 “Target 1” 再在下拉菜单中单击 “Options For Target „target1‟,此时单击 “Output”选中 “Create HEX File” 选项,最后单击确定。 此时再次点击编译按钮进行编译则自动生成保存 .hex 文件,此时只需按刚才 Proteus 介绍所说,将 .hex 文件添加到单片机中就可以在 Proteus 进行仿真了。 28 液晶显示模块中按字节为单位划分,单个屏幕中,共分为 8个页,每页为 8行,而每一行为 64个位 (即 64列 )。 同计算机一样,单片机控制液晶点阵显示中的数据也是以 “0 和“1”代码来表示的。 一般地, “0”代表不显示数据, “1代表有显示数据,根据编码的不同,最终会显示出不同的字符。 显示器上的显示点与驱动控制芯片中的显示缓存 RAM 是一一对应的,即字模当中的一个位代表 LCD显 示中的一个像素点,取点方式为从左到右,自上到下的顺序。 这里采用 1616的点阵输出显示每个汉字,那么就需要屏幕上的 256个点组成的方块来显示。 一个字节对应 8个点,所以一个汉字需要 32个字节来存储显示[7,8]。 “汉字字模点阵数据批量生成工具 ”就是运用这个原理来实现汉字编码的软件。 图 汉字字模点阵数据批量生成软件 本文采用 PCtoLCD2020汉字提取软件,打开窗口,如图 ,设置好字体、字号等格式参数,在汉字输入区,输入汉字或其他字符,即 得到需要的代码。 将本设计所涉及的汉字用软件取模批量生成 1616点阵代码,放入 ROM 区的 TA—BLE表格中,通 29 过逻辑控制,最终可将代码读出到硬件驱动电路上,显示出不同的汉字。 30 51 单片机公交车报站系统设计心得体会 时间过得很快,现在回想起这三个多月的 毕业 设计 , 终于可以画上一个 句号 了。 一路走来 ,感受颇多。 曾经有过失落;有过成功; 有过沮丧;有过喜悦;这已。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。