片单机课程设计报告公交车自动报站系统课程设计.doc
《片单机课程设计报告公交车自动报站系统课程设计.doc》由会员分享,可在线阅读,更多相关《片单机课程设计报告公交车自动报站系统课程设计.doc(25页珍藏版)》请在咨信网上搜索。
湖 北 理 工 学 院 电气与电子信息工程学院 《 单片机课程设计报告》 课设名称:基于单片机的公交车自动报站系统 专业名称: 电气工程自动化 班 级: 2016级专升本( 1 )班 学 号: 姓 名: 指导教师: 课设时间: 2016.12.5~2016.12.16 课设地点: K2—407 电气与电子信息工程学院 《单片机课程设计》任务书 2016 ~2017 学年第1学期 学生姓名: 专业班级:电气工程及自动化2016级专升本(1)班 指导教师: 肖志军 工作部门: 电气自动化教研室 1、课程设计题目: 基于单片机的公交车自动报站系统 2、课程设计要求: 2.1根据具体设计课题的技术指标和给定条件,以单片机为核心器件,能独立而正确地进行方案论证和电路设计,完成仿真操作。要求概念清楚、方案合理、方法正确、步骤完整; 2.2 熟悉、掌握各种外围接口电路芯片的工作原理和控制方法; 2.3 熟练使用单片机汇编语言或C51进行软件设计; 2.4 熟练使用Proteus、Keil软件进行仿真电路测试;(或用开发板联合调试) 2.5 熟练使用Protel软件设计印刷电路板; 2.6 学会查阅有关参考资料和手册,并能正确选择有关元器件和参数; 2.7 编写设计报告,参考毕业设计论文格式。 (1)根据课题要求确定系统设计方案; (2)绘制系统框图、系统仿真原理图(印刷电路板图),列出元器件明细表; (3)计算电路参数和选择元器件,画出软件框图,列出程序清单; (4)打印仿真结果,根据测试结果进行误差分析与修改调整; (5)对设计进行全面总结。 3、 技术指标: 设计公交车自动报站系统,以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息及服务用语,同时利用LCD液晶电路进行本站站名以及下一站站名的显示,还可对实时时间进行显示。本设计利用STC89C52作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、显示电路、电源电路、时钟电路等。 4、进度安排 教学第 15 周:2016.12.5~2016.12.9 时 间 星期一 星期二 星期三 星期四 星期五 星期六 星期天 1、2节 讲解设计题目、要求 3、4节 方案的选择论证 方案的选择论证 系统硬件设计(1) 系统硬件设计(2) 系统软件设计(1) 5、6节 7、8节 地 点 K2-407 K2-407 K2-407 K2-407 K2-407 教学第 16周:2016.12.12~2016.12.16 时 间 星期一 星期二 星期三 星期四 星期五 星期六 星期天 1、2节 系统软件设计(2) 3、4节 仿真调试(1) 仿真调试(2) 设计答辩 设计答辩 讲解报告要求 5、6节 7、8节 地 点 K2-407 K2-407 K2-407 K2-407 K2-407 4.1、基本要求 根据过程、报告、答辩等确定设计成绩,成绩分优、良、中、及格、不及格五等。 评定项目 基本内涵 分值 平时表现 考勤 10分 答辩情况 回答问题情况 20分 操作能力 实物或仿真测试正常无故障运行 20分 课设报告 完成设计任务、报告规范性等情况 50分 90~100分:优;80~89分:良;70~79分:中;60~69分,及格;60分以下:不及格 5、课程设计参考资料 [1]贺哲荣.AT89S51单片机硬件设计与编程实例.北京:中国电力出版社.2012 [2]李泉溪.单片机原理与应用实例仿真.北京:北京航空航天大学出版社,2012. [3]王平.单片机应用设计与制作.北京:清华大学出版社, 2012. [4]彭为等.单片机典型系统设计实例精讲. 北京:电子工业出版社,2007 [5]王庆利等.单片机设计案例实践教程.北京:北京邮电大学出版社,2008 [6]韩志军等.单片机应用系统设计——入门向导与设计实例.北京:机械工业出版社,2005 [7]皮大能等. 单片机课程设计指导书. 北京:北京理工大学出版社,2010 [8]张毅刚.单片机原理及应用.北京:高等教育出版社,2011. 基于单片机的公交车自动报站系统 1、 课程设计方案选择 1.1、示案论证: 文字显示电路 CPU控制 晶振、复位 语音播放电路 脉冲检测电路 时钟电路 图1-1 系统组成结构图 如图4-1所示本系统使用八位单片机作为控制器件。当系统进行语音再生时,单片机控制电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。同时,单片机通过程序读取文字信息并读取时钟电路的实时时间,送入液晶显示模组来进行站数和站名以及当前时间的显示。当脉冲检测电路达到系统预定值是就表明到了某一站系统就会对当前车站进行播报和显示。当系统进行语音录制时,语音信号通过语音录入电路送给语音合 成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。 1.2、硬件方案的选择 1.2.1语音芯片的选泽 : 方案一:基于ISD2560语音芯片的录放电路设计 ISD2560系列语音芯片可通过SPI协议方便地与CPU接口。 用ISD2560芯片构成的单片机通用开发板采用国内最常用的MCS-51语言单片机89C51来与ISD2560系列语音芯片相结合,可供用户开发各种新型智能型数码语音产品。 方案二; 基于ISD1730语音芯片的录放电路 ISD1730是华邦公司新推出ISD1700 系列芯片的单片优质语音录放电路,该芯片能提供多项新功能,包括内置专利的多信息管理系统,新信息提示,双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。 通过分析比较,本次设计采用ISD1730语音芯片设计录放电路,其相对于ISD2560语音芯片来讲功能更强大,由按键直接控制语音的录放等,电路工作稳定、可靠性高,完全达到了设计要求,具有非常好的实用性。 1.2.2显示芯片的选泽 : 方案一:采用LCD点阵显示,用来显示文字、图形、图像、等各种信息的显示屏幕。它均由LCD矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形,该方案简单易行。但所需的元件较多,且不容易进行操作,可读性差,一旦设定后,很难再加入其他的功能。 方案二:采用液晶(LCD1602)显示器件,该液晶显示器件与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该器件的价格也略低于相同点阵的图形液晶模块。而且此液晶显示平稳、省电、美观,更容易实现题目要求,对后续的功能兼容性高,。只需将软件作修改即可,可操作性强,也易于读数,能同时显示日期、时间、星期且易于修改。 综上分析,我们采用了第二个方案。 1.2.3时钟芯片的选泽: 方案一:采用软件实现,直接用单片机的定时器编程实现,优点节省硬件,但编程复杂且程序运行的每一步都需要时间,多一步或少一步程序都会影响记时的准确度,准确度较差。 方案二:采用专用的时钟芯片实现时钟的记时,专用时钟芯片记时准确,容易控制,能够从芯片直接读出日期、时间、星期,更符合题目要求。 综上分析,我们采用了第二个方案,时钟芯片选择常用的DS1302。 1.2.4控制模块的选择: 所学专业课中学习过51单片机,并且单片机体积小,重量轻,具有很强的灵活性而且价格便宜,所以控制模块选用AT89C52单片机。 1.2.5脉冲检测电路的选择: 脉冲检测电路该系统关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的 环境中运行,故采用可靠的霍尔元件DN6848作为信号的采集装置,再经光电耦合器4N25输入给单片机。光电耦合器的信号进入C51后,采用中断方式对脉冲计数。外部晶振12MHz。 2、硬件设计 图2-1 总原理图 如图2-1所示:单片机的P0口接显示模块芯片1602的数据口,P2^0~P2^2接1602的读写口及使能端。P1^0~P1^2接时钟电路DS1302。P2^3接脉冲检测电路。P3口接语音电路。 2.1语音播放电路(ISD1730) 2.1.1语音播放电路的管脚图如图2-2所示:总共有28个管脚。通过STC89C51单片机控制ISD1730语音芯片的录放,并用单片机对录放时间的设定和控制。 ISD1730 芯片提供了多项新功能,包括内置专利的多信 息管理系统,新信息提示,双运作模式,以及可定制的信 息操作指示音效。芯片内部包含有自动增益控制、麦克风 前置扩大器、扬声器驱动线路、振荡器与内存等的全方位 整合系统功能。此芯片的性能特点是: 1) 可录、放音十万次,存储内容可以断电保留一百年。 2) 两种控制方式,两种录音输入方式,两种放音输出方式。 3) 可处理多达255 段以上信息。 4) 有丰富多样的工作状态提示。 5) 多种采样频率对应多种录放时间。 图2-2 ISD1730管脚图 6) 音质好,电压范围宽,应用灵活,价廉物美。 2.1.2 与单片机的连接 图2-3 接口图 如图2-3所示图中的4-7脚和单片机P3口相连,此时P3口做基本的输入输出单片机通过P3.0来控制此芯片成为当前被控制设备并且开启 SPI 接口,此端口为低电时平有效。SPI(13脚,15脚)为喇叭输出脚。MISO(4脚):SPI 接口的串行输出端口, SCLK 下降沿之前的半个周期将数据放置在 MISO 端,数据在 SCLK 的下降沿时移出,此时语音通过喇叭进行播放。MOSI(5脚):SPI 接口的数据输入端口。主控制芯片在 SCLK 上升沿之前的半个周期将数据放置在 MOSI 端。数据在 SCLK 上升沿被锁存在芯片内。此管脚在空闲时,应该被拉高。SCLK(6脚):接口时钟管脚,单片机通过此管脚来同步MISO和MOSI端各自的数据输入输出,此管脚空闲时,必须拉高。当REC(24脚)接地时通过MIC(10脚、11脚)接麦克风进行语音信息的录入。 2.2液晶显示电路(LCD1602): 2.2.1 字符型液晶显示是一种专门用于显示字 母、数字、符号等点阵式LCD,本设计采用的 是LCD1602-LM032L型液晶显示器如图2-4 所示,其外形尺寸为80×36×14,单5V供电, 由左到右共14个引脚. LCD1602分两行显示, 每行可显示多达16个字符。本设计在LCD1602 第一行固定显示时间,第二行显示欢迎语并在车 辆到站时显示本站站名和下一站站名。在车辆离站 时再次显示欢迎语。 图2-4 管脚图 2.2.2 与单片机的连接 如图2-5所示芯片(D0-D7)为其数据口和单片机 P0口相接,此时单片机P0口做基本的输入输出 功能,因为P0口具有地址/数据复用的功能所以 在当基本的输入输出时需要接上拉电阻。芯片的 使能端以及读/写端寄存器的选择端接到P2^0~P2^2。 单片机通过P0^0对芯片进行控制,当E端由高电 平跳变成低电平时,液晶模块执行命令,低电平时 写入数据。RW为读写信号线,高电平时进行读操 作,低电平时进行写操作。当RS和RW共同为低 电平时可以写入指令或者显示地址,当RS为低电 平RW为高电平时可以读忙信号,当RS为高电平 RW为低电平时可以写入数据。 图2-5接口图 2.3时钟电路(DS1302): 2.3.1 DS1302时钟芯片可以工作于24小时模式或AM/PM的12 小时模式。其内部包含了10个小时寄存器和31字节RAM,这 些寄存器和RAM用来存放各种时间数据。在使用时,可以对芯 片的当前时间进行设定。如图2-6所示芯片共有8个管脚采用了 简单的I2C三线通信方式,便于节省芯片和与之接口的微处理 器管脚。芯片有着2.0~5.5V的宽供电电压范围,在5V供电时 其接口与TTL电平兼容;并且功耗很低,在2.0V供电时仅耗 图2-6 管脚图 300nA的电流。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31日时可自动调整,包括闰年,有效至2100年。可采用12h或24h方式计时,采用双电源(主电源和备用电 源)供电,可设置备用电源充电方式,同时提供了对后背电源进 行涓细电流充电的能力。主要性能:(1)31字节RAM存储时间数据。(2)2.0~5V供电。(3)支持单字节传输模式和突发式传输模式。(4)8针DIP封装和SOIC封装。(5)3线接口,简单易用。(6)兼容TTL电平。(7)操作温度-40~+85°C。 2.3.2 与单片机的连接 如图2-7所示DS1302与单片机的连接 仅需要3条线,即SCLK、I/O、RST、。 Vcc2在单电源与电池供电的系统中提供 低电源并提供低功率的电池备份。Vcc2 在双电源系统中提供主电源,在这种 运行方式下Vcc1连接带备份电源,以 便在没有主电源的情况下能保存时间 信息以及数据。DS1302由两者中的较 大者供电。当Vcc2大于Vcc1+0.2V时, Vcc2给DS1302供电。当Vcc2小于 Vcc1时,DS1302由Vcc1供电[15]。 RST接在P1.2上,此引脚为高电位时, 选中此芯片,可对其进行操作。串行数 据线I/O与串行时钟线SCLK分别接在 P1.0和P1.2上,所有的单片机地址、命 令及数据均通过这两条线传输。 图2-7 接口图 2.4脉冲检测电路: 如图2-8所示本设计的关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的环境中运行,而霍尔元件具有耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀的优点,故采用可靠的霍尔元件DN6848作为信号采集装置,采集公交车车轴转数。再经过光电耦合器4N25输入给单片机。光电耦合器的电流传输比为10%~250%,响应时间小于10ms,把霍尔元件集成的开关按预定位置有规律地布置在物体上,当车轴转动经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号列可以传感出该运动物体的位移。再通过光电耦合器是一种电信号的耦合器件,它一般是将发光二极管和光敏三极管的光路耦合在一起,输入信号加于发光二极管上,输出信号由光敏三极管输出,送入单片机的P2^3进行检测。 图2-8 脉冲电路图 2、 软件设计 3.1流程图 如图3-1所示为系统的总体流程图,系统运行时先对所有芯片进行初始化,然后通过对DS1302时钟芯片进行控制读取时钟芯片的系统时间并将时间显示在显示芯片LCD1602液晶显示屏的第一行,并使时间一直显示。然后车子启动在液晶显示屏上显示欢迎语通过车轮的转动单片机对脉冲电路进行检测并计数,在和系统中的预定值进行比较,判断其是否达到预定值,如果达到预定值则读取预先储 存的站名信息然后通过开始 语音芯片ISD 1730进行播放并提示, 然后将站名 通过LCD1602进行显示如果对脉冲计 数判断未达到预定值系统初始化 则返回到脉冲计 数在进行继续计数当计数达到预定值 时就进行相应的操作最后执行完在返 回脉冲计数来显示时间 进行下一站的是否到达 进行判断并执行相应的操作。一直到 最后一站整个系统执行完毕再一次执 行初始化进行第二次循环。 对脉冲计数 如图3-2所示为语音芯片ISD1730 的录音流程图,首先通过控制选定 录音存放的地址,然后设定控制字的 命令,然后判断录音时相对应的按键 是否到预设值? 是否按下如果检测到按键按下则开始 录音操作,录音完毕返回。如果相对 否 的按键未按下则返回继续进行判断 直到相对应的按键按下然后进行录音。 如图3-3所示为ISD1730的放音流程 图当系统要进行放音操作时通过 是 语音播报当前站点并显示 单片机对其进行相应的控制 然后读取所播放语音的地址 然后进行其控制字的控制, 之后芯片进行自动播放语音 显示下一站点播报 信息。然后返回,播放语音 完成。 返回 图3-1 总流程图 图3-1 总流程图 开始 开始 送放音地址 送录音地址 送放音控制字 送录音控制字 判断按键状态? 自动放音 否 返回 是 开始录音 返回 图3-3播放流程图 图3-2启动写入数据 录音流程图 读写线置0 调用延时子程序 开始 启动使能控制线 设定方向及位移 调用延时子程序 传输数据 写指令子程序 写指令子程序 调用延时子程序 调用延时子程序 清屏 调用忙子程序 写指令子程序 返回 图3-4 显示流程图 如图3-4所示为显示芯片LCD1602的显示流程图,当其需要显示信息时先调用一段延时子程序(这里如果不调用延时子程显示屏则无发显示)然后调用LCD的写指令子程序,完毕之后清屏再次调用写指令子程序和延时子程序,然后设定写入的方向以及写入的位移之后再次执行写指令子程序,又一次调用延时,所有的写操作准备做完之后,调用其忙子程序检测其是否可以进行写入,启动写数据操作指令,将读写线置0使其可以进行写操作,启动使能控制端开始传输数据传输完毕之后再调用一次延时子程序,使显示信息可以被人看到,所有工作做完之后返回,在进行下一次的信息进行显示。依次循环。 3、 仿真结果及分析 4.1仿真结果图 图4-1初始化图 如图4-1所示为仿真结果运行开始的图也就是系统运行但公交车未启动时的初始图,只通过时钟芯片显示了当前时间。 图4-2车辆启动显示图 图4-2为公交车启动系统自动显示时间和显示欢迎语以及服务提示的语音播报,图中用一个按键来控制脉冲的输入来模仿公交车的启动。 图4-3 A站显示图 图4-3为公交车到达A站时的运行结果图,系统通过对车轮走过的的路程来判别是否到站,仿真图中用一个脉冲发生器来模拟单片机通过对脉冲的的计数来与预定值进行判别,如果到站则进行播报并显示。 图4-4 B站显示图 图4-4为到达B 站时的仿真结果图,原理与A站的相同。本仿真只选取了少数几个站做代表,实际运用中可以添加更多的车站信息。 5、课程设计小结 经过了近几个月的学习和努力,我终于完成了基于单片机的公交车自动报站系统的设计,在这个过程中我的收获是非常多的,并且需要改进和学习的地方也非常多。我从以下两个方面来对自己在这次毕业设计的过程中的感想来做一下总结: 5.1 收获 通过这次设计我知道了在做一个系统之前很重要的是要做好需求分析,为此,我在网上查看了大量的相关资料,对目前市面上流行的几种公交车报站器进行了分析和比较,来为此次设计个方案确定来做了充足的准备。通过研究各种公交车报站器来自己确定要完成的公交车报站器的工作原理和要具备的各种功能。在我做这次毕业设计之前,我以为这东西很好做,一做起来才感动力不从心,并且我对一些EDA的软件基本没有了解,甚至都不知道它是干什么,怎么用,对程序的理解也仅仅局限于书本上有限的知识。但是通过了这次设计,我深入了解了单片机的工作原理和机制,对它的各个模块功能有了更深层认识和更本质的理解,并且在这个过程中,我更加深入认识了Proteus和KeilC51这两个软件,对这软件的基本操作能够熟练的使用,了解了软件的优缺点,并且熟练了对C语言的使用和LCD1602程序设计。在做课程设计的过程中我遇到了很多困难,很多方案确定不下来,编写代码时也总是出现这样或者那样的错误,并且有些功能自己也不知道该用什么方法来实现,经过和同学的讨论以及老师的深刻指导,我克服了这一些困难。最终基本完成了用Proteus来实现公交车的模拟报站,但是模块还是很简陋,也需要进一步的优化。 5.2 不足之处 该系统还存在着一些不足,主要体现在:仿真过程没有办法使用ISD1730语音模块和脉冲 检测电路的霍尔元件,用了蜂鸣器和脉冲信号发生器来代替,只对这两个模块根据资料进行了相应的介绍。如果以后做实物的过程,那应该完善这两部分。并且在设计过程中也暴露了很多的缺点,比如编程能力有待提高,需要通过不断的编译仿真调整才能最终得到想要的结果。 5.3 总结 本次设计用Proteus仿真基本达到了预先的要求。设计采用了Atmel公司的AT89C51单片机来设计的一个公交自动报站系统,本设计使用了C语言进行编程,利用了KeilC51软件进行编译生成HEX文件,使用了Proteus软件进行了基本的仿真实现,能够完成对输入信号的判断处理,自动液晶显示站名以及声音提示。这次设计能够实现设计中提出的功能方案。通过这次的设计,对于在KeilC51环境下的编程能力有了进一步的提高,同时对单片机系统设计理念也有了进一步认识,理解了模块化设计在整个系统设计中的作用。 电气与电子信息工程学院 《单片机课程设计》成绩评定表 课程设计名称:基于单片机的公交车自动报站系统 答辩或质疑记录: 1、设计中用ISD1730为语音播报芯片进行语音播报与站名信息的储存但在仿真时由于Proteus软件元件库的限制没有ISD1730这款芯片,然后用了一个蜂鸣器做了模拟,来代替语音芯片的放音,但设计中给出了此芯片的介绍及用法以及和单片机的接法。若做实物图则可以用ISD1730这款芯片来接喇叭进行语音播报。 2、设计中用霍尔元件对车轮所转过的圈数进行计数然后再通过车轮转一周所走过的路程来得到每一站之间的路程,然后根据这个路程来判断车辆是否到站然后进行相应的操作。仿真中无法用霍尔元件来仿真所以用了一个脉冲发生器来代替,通过对脉冲的计数来判别是否到站,但设计中给出了其实际检测电路的具体介绍以及应用及其和单片机的接法。若做实物图则可直接应用使设计更为精确可行。 成绩评定依据: 平时表现( 10%): 操作能力( 20%): 答辩情况( 20%): 课设报告( 50%): 最终评定成绩(以百分制评定) 附录1 电路总原理图 附录2 源程序清单 #include <reg52.h> #include <intrins.h> #include <string.h> #define uint unsigned int #define uchar unsigned char sbit IO = P1^0; //定义1302双向数据线管脚 sbit SCLK = P1^1; //定义1302串行接口的同步时钟 sbit RST = P1^2; //定义1302复位管脚 sbit RS = P2^0; sbit RW = P2^1; sbit EN = P2^2; sbit BEEP = P3^7; sbit P32 = P2^3; uchar *WEEK[]={ "SUN","***","MON","TUS","WEN","THU","FRI","SAT"}; uchar LCD_DSY_BUFFER1[]={"TIME 00:00:00 "}; uchar LCD_DSY_BUFFER2[]={" welcome to:HS "}; uchar LCD_DSY_BUFFER3[]={"AAAAAAAAA "}; uchar LCD_DSY_BUFFER4[]={"BBBBBBBBB "}; uchar LCD_DSY_BUFFER5[]={"CCCCCCCCC "}; uchar DateTime[7]; void DelayMS(uint x) { uchar t; while(x--) { for(t=0;t<120;t++); } } void Play(uchar t) { uchar i; for(i=0;i<100;i++) { BEEP = ~BEEP; DelayMS(t); } BEEP = 0; } void Write_A_Byte_TO_DS1302(uchar x) { uchar i; for(i=0;i<8;i++) { IO=x&0x01;SCLK=1;SCLK=0;x>>=1; } } uchar Get_A_Byte_FROM_DS1302() { uchar i,b=0x00; for(i=0;i<8;i++) { b |= _crol_((uchar)IO,i); SCLK=1;SCLK=0; } return b/16*10+b%16; } uchar Read_Data(uchar addr) { uchar dat; RST = 0;SCLK=0;RST=1; Write_A_Byte_TO_DS1302(addr); dat = Get_A_Byte_FROM_DS1302(); SCLK=1;RST=0; return dat; } void GetTime() { uchar i,addr = 0x81; for(i=0;i<7;i++) { DateTime[i]=Read_Data(addr);addr+=2; } } uchar Read_LCD_State() { uchar state; RS=0;RW=1;EN=1;DelayMS(1); state=P0; EN = 0;DelayMS(1); return state; } void LCD_Busy_Wait() { while((Read_LCD_State()&0x80)==0x80); DelayMS(5); } void Write_LCD_Data(uchar dat) { LCD_Busy_Wait(); RS=1;RW=0;EN=0;P0=dat;EN=1;DelayMS(1);EN=0; } void Write_LCD_Command(uchar cmd) { LCD_Busy_Wait(); RS=0;RW=0;EN=0;P0=cmd;EN=1;DelayMS(1);EN=0; } void Init_LCD() { Write_LCD_Command(0x38); DelayMS(1); Write_LCD_Command(0x01); DelayMS(1); Write_LCD_Command(0x06); DelayMS(1); Write_LCD_Command(0x0c); DelayMS(1); } void Set_LCD_POS(uchar p) { Write_LCD_Command(p|0x80); } void Display_LCD_String(uchar p,uchar *s) { uchar i; Set_LCD_POS(p); for(i=0;i<16;i++) { Write_LCD_Data(s[i]); DelayMS(1); } } void Format_DateTime(uchar d,uchar *a) { a[0]=d/10+'0'; a[1]=d%10+'0'; } void main() { int F=0 ; Init_LCD(); while(1) { GetTime(); Format_DateTime(DateTime[6],LCD_DSY_BUFFER1+5); Format_DateTime(DateTime[4],LCD_DSY_BUFFER1+8); Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+11); strcpy(LCD_DSY_BUFFER1+13,WEEK[DateTime[5]]); Format_DateTime(DateTime[2],LCD_DSY_BUFFER1+5); Format_DateTime(DateTime[1],LCD_DSY_BUFFER1+8); Format_DateTime(DateTime[0],LCD_DSY_BUFFER1+11); Display_LCD_String(0x00,LCD_DSY_BUFFER1); if(P32==0) { F++; switch(F) { case 1:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 45:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER3);break; case 55:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 100:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER4);break; case 115:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 150:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER5);break; case 170:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 200:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER5);break; case 210:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 260:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER4);break; case 270:Display_LCD_String(0x40,LCD_DSY_BUFFER2);break; case 300:Play(2),Display_LCD_String(0x40,LCD_DSY_BUFFER3);break; case 310:Display_LCD_String(0x40,LCD_DSY_BUFFER2),F=0;break; } } } } 附录3 头文件清单(reg52.h) /*-------------------------------------------------------------------------- REG52.H Header file for generic 80C52 and 80C32 microcontroller. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __REG52_H__ #define __REG52_H__ /* BYTE Registers */ sfr P0 = 0x80; sfr P1 = 0x90; sfr P2 = 0xA0; sfr P3 = 0xB0; sfr PSW = 0xD0; sfr ACC = 0xE0; sfr B = 0xF0; sfr SP = 0x81; sfr DPL = 0x82; sfr DPH = 0x83; sfr PCON = 0x87; sfr TCON = 0x88; sfr TMOD = 0x89; sfr TL0 = 0x8A; sfr TL1 = 0x8B; sfr TH0 = 0x8C; sfr TH1 = 0x8D; sfr IE = 0xA8; sfr IP = 0xB8;- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单机 课程设计 报告 公交车 自动 报站 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文