1、疴 秆 虢京娃派擂懂菩臭善磐薛泉筐晶蔬囗岈伉旧徂基于单片机的公交语音自动报站器系统设计 伦籴渔 立 详 邦睹化擗 羟 蚱汐夂 窝 肪胝 弹 涵滴 时 滂薨摘 要 壳鼯 辖 搔摔 鞒钳贰腚 澡 哕葬 碛 辜 赞 脂 妩桠衬 湓旬酌随着我国经济的飞速发展和城市化进程的加深,城市人口日益膨胀,机动车辆急剧增加,城市交通压力越来越大。发展公共交通事业是为居民提供安全有序的出行方式的不可替代的途径,公共交通管理的高质量和公共服务水平的人性化是吸引居民采用公交出行的有效途径,是中国解决交通问题的重要措施。公交车报站系统是公共交通系统的一个重要的组成部分,设计先进的报站系统能为广大居民乘车提供优质的服务,提
2、高公交系统的服务水平。 务 悔怜坦官橛剞熨居喋石本设计利用了 Atmol 公司的 AT89C51 单片机来设计一个公交语音自动报站系统。用 JHD162A LED 来提供站台信息的显示;用 ISD1700 系列语音芯片来对语音进行各种操作控制;并使用 DF 无线收发模块及 PT2262、PT2272 编解码芯片来实现信号的无线收发与识别。最后通过 AT89C51 对各个模块的控制实现无线收发与识别、信息显示及语音报站任务。 邻 剜 嫔组 匍 粜 徜 络 皋凛 呸隶逵妊述 祸 氏先兮煞唱十震帘 笕 槽 哒耥 乾咏 坝 辱 蟓贡 狐舫豆豆椒漕 嚎颊盏 炅关键词:51 单片机,ISD1700 语音芯
3、片,DF 无线收发模块,PT2262/PT2272 芯片,JHD 162A, 繇吾筋眉酡拖 钮 慢 陇 比 赠使 莶 恬砌 辚练傧涤 蹀 荭 姓!所有下载了本文的注意:本论文附有 CAD 图纸,凡下载了本文的读者请留下你的联系方式(QQ 邮箱) ,我把图纸发给你。最后,希望此文能够帮到你!滞涎嫌魄湛暗及腐叠利 远佳隽帙 鳌瘾缘 翥 纤 筲 嗥亚浦 娅邻宫 弭燃嗷胞 缘 灸裒摘要 氓蛔 济 堤嗜 坞瘪 襟 骋 鼯孑桀戾勃 嵴鹧鸯 彰侠昌萃 统II瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬Speech based on single chip bus stop reporter system 蜉瓶 拦孪
4、锚 傲蚣牢眙珈 瑷羚 鲅 忱腮 谙 臁 贼蟓 邴寮胰Abstract 染臀殳科戴寺踣嫡峙 黾裉洙 胀 搪摩辛渤 讹 悝 骛尴汇With the development of national economy and the deepening of the process of urbanization. The pressure on city traffic is increasing because of the Increasing urban population and the Sharp increase in motor vehicles. Development of pub
5、lic transport is the Irreplaceable way for the Residents safe and orderly travel. The high-quality of Public transport management and public services is a effect way to attract People take bus. and the important measure for China to solve the traffic problems. The bus stop device is a very important
6、 Part of Public transport system. The Advanced design of the device can serve people well and improve the Service level of public transportation systems.阂 吵 捅 惟逯弋仞鞲嶷僭噌At present, the city buses have generally installed the station voice system which gives the passengers a very comfortable experience
7、. However, most of the system is manual. The driver have to control it when the car entering and leaving the station. At this time, the traffic condition is so complicated that it usually brings security risks. The paper design a bus automated voice system with Atmel Companys AT89C51 single-chip. Us
8、ing JHD162A LCD to display the stations information, ISD1700 series voice chip controls the voice paragraph and DF wireless transceiver module,PT2262/PT2272 chip to achieve the signals wireless transmission and identification. Finally, all the modules are controlled by AT89C51 and the simulation of
9、the system.础 趟沼 砟堇 囱甩揄謇牟境枷交翩竦筏狗坼 贺 藐 猸 外肀 藜 悯 超蘅 缀 堆棵股 记 稃岿啵鹾 秭皤渡玻星惴骷蜜KEY WORDS: AT89C51,ISD1700s chip,DF wireless transceiver modules,PT2262/PT2272 chi,;JHD 162A 毁 抗恝 铕罂娆 你 痪 答含添桐瑚盥撅 辉 框毒笏 营 蜈貅尜 暇 泽伢 握嫉 鲤 次 哑 盼粳III 秃苍 楠 哒蓝 汛暖坑澄噔融目 录 弦它汾 绊郸 噬杠玉菽庾 鳖!所有下载了本文的注意:本论文附有 CAD 图纸,凡下载了本文的读者请留下你的联系方式(QQ 邮箱) ,
10、我把图纸发给你。最后,希望此文能够帮到你! 滞涎嫌魄湛暗及腐叠利 远 I前 言 瑗嫖 错 行粱慊方 垄 彭愕晌 .1第 1 章 设计概述 庥玖啤 灿 豪蹄停嗄惆 躜 慵 .21.1 课题的研究意义 崔 挡 珧丕 啮 挂 哞 瓷儆篷 垄 .21.2 国内外现状及发展趋势 窨龇峄 宰逾笠篥掬祁 佧鸽 .21.3 课题设计介绍 砩 惜湎啤之 铸笸 醇韭掩 祸 3第 2 章 概要设计 郫兮 矽 噶 捅 朕峨 辕遗脓萧 .42.1 设计思路 喁涂蓓娉限 讴肀 板仔吐砂 .42.2 系统框图 竟 阀 孑 热 哺熬 烃 楂 孓唛 拭 .42.3 模块设计分析 顿轩 相 啷 氮室繇 锊 畎琶 闾 .52.3.
11、1 无线收发编解码模块 藉裂倍慵 桩县 舅 樱 嫌俎 醌 .52.3.2 语音模块 石瘊豢 苁 鼬佘今玲 滥 眩如 .52.3.3 语音模块 筲廨 针鲈 棉 颖 屋荇 扫踬 梆 .62.4 系统体系结构 娄 剑 粲眚姆糖 徕 畏嚷迪 饧 .6第 3 章 硬件设计 官 鳞庐 萸笨 馁 瘥 认 肥 肀 翼 .63.1 硬件电路设计 瀣摸畏 廪 鬟燠悖舅 阀 戟 揽 .73.1.1 主控芯片 AT89C51 勘 挠酱绚 皂 贩 蔬愍迸豢 亓 .73.1.2 语音芯片 ISD17202负 董粒擤抖肛遂八 氢邹 劭 .83.1.3 DF 无线收发模块 5瘙魑 髋 葫迸笱函嵊 锋 卜 颜 .133.1.4
12、 DF JHD162A 液晶显示模块 4纱 焦酃蜍罕 脸 蚰 势 帖 濒 垢 17第 4 章 软件设计 淹瘴栖杏 觊 惧惠潦嘛歇睿 .204.1 系统程序流程图 艾 饿 梁衙 鸢 臣咒戕涪盅欲 204.2 程序子函数模块代码 坝赌 雌 揿 夂豹蕨 苇 澎架崴 204.3 系统任务设置 榆 市嗤 纭 蔡 损 瞠咀咻 孪韧 25第 5 章 电路设计与绘制 螃藻跫蜣 夺 跨 蚺砖 功 汇询 .305.1 电路板制作软件 Protel 99 SE 介绍 澉莹 瑾塘 悫 衰退案迨枰 凤 305.2 电路设计与绘制 钅 靠 腈 崤 韬苌 寰 诤皑摈 篼 .30前言 逸匕 呐槔 庠工笔棣 烂 那撬桀戾勃 嵴
13、鹧鸯 彰侠昌萃 统IV瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬5.2.1 电路原理图 诒旷 水琵隰 啵 伉珊蝙 兹嘣 .315.2.2 转化成 CAD 图纸 浩胯恨盖 礅 好 傧认 吊娜 缤 .32结 论 浍 不邦帆弄每 钅瘿 傻罨 龋 .33谢 辞 迄角淋泐雯楞醮 拢 摘啻脱 .34参考文献 艴宿状枘佟 毪 梗寥蕉 车 忍 .35外文资料翻译 财较脸 告酪撕崛淫暝 觐 伽 .36篑 澄低腆醋恍鍪囊授 琼 伸赴醵摒局肓 樱 写 亓喷 羌避尜 暇 泽伢 握嫉 鲤 次 哑 盼粳1 秃苍 楠 哒蓝 汛暖坑澄噔融恕刹鬲棍 图帜许 蒋 叹 堰挖前 言 瑗嫖 错 行粱慊方 垄 彭愕晌宙啜 垦陆 暮牖祭舡 蓝鸪
14、 哥从 1831 英国人沃尔特汉考克为他的国家制造出了世界上第一辆装有发动机的公共汽车起,到今天,公交车已经历经了将近 200 年的发展过程。从最初的“闷罐头”到如今配套的空调系统;从专人售票到无人售票;从人工报站到半自动语音报站,公交车向着越来越人性化的方向发展。可是目前存在的一个问题,半自动语音报站系统需要司机在车进出站时人工操作,由于这两个时间点往往是路面情况最复杂的时刻,因此也给行驶中的车辆带来了安全隐患。论文的目标就是彻底抛弃人工操作,实现公交进出站的全自动语音报站。利用 AT89C51 单片机、ISD1700 系列语音芯片、JHD162A LCD 液晶模块以及 DF 无线数据收发模
15、块来实现所需要的功能。 宾锈 侑湔 试 撕啼嘎 膦 伏奸单片机体积小,重量轻,具有很强的灵活性而且价格便宜,得到越来越广泛的运用,例如工业控制领域、家电产品,智能化仪器仪表,计算机外部设备,特别是机电一体化产品中都有重要的用途。20 世纪 80 年代中期,Intel 公司将 8051内核使用权以专利互换或出售的形式转给世界许多著名 IC 制造厂商,这样 8051就变成有众多制造厂商支持的,发展出上百个品种的大家族。到目前为止,其它任何一个单片机系列均未发展到如此的规模。正因为 51 单片的运用是如此广泛,因此学习单片机的运用是非常重要的。学好单片机也是学习其他嵌入式控制器如ARM、DSP 的基
16、础,任何嵌入式控制器都离不开单片机种所涵盖的如中央处理器,定时器、中断控制器,IO 口控制器,串行通讯控制器,I2C 总线控制器,片内外存储控制器,汇编语言,C 语言,操作系统的概念。因此说学好单片机,再去学习其他嵌入式控制器如 ARM、DSP 是比较简单的。可以说学好单片机是其它进阶微处理器的一个台阶 1。 嵌将邛 哚 寐俊 癔 垂 讪 芸 蝈本次设计的课题是“基于单片机的公交语音自动报站系统” ,设计中利用无线收发模块及编解码芯片实现站台的自动识别,通过单片机对无线模块、液晶模块及语音模块的综合控制实现全自动语音报站的功能。 活摺媾 嫫 辟遄 嘁 静近初 氚扪颃诃丢齿 衾淬鄢曰 阕 酊第
17、1 章 标题 偬 跞 阿 犋岛绺 窖糙淝玢 炝桀戾勃 嵴鹧鸯 彰侠昌萃 统2瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬第 1 章 设计概述 庥玖啤 灿 豪蹄停嗄惆 躜 慵肽 窿酚 烁 久衡湃璜桁戎粕视 蠛蜈移校呢庥浪涛 谫 塾1.1 课题的研究意义 崔 挡 珧丕 啮 挂 哞 瓷儆篷 垄症牡戮 鲈扪 噔静 谂 扎海寨目前随着城市区域的扩大、旅游资源的发展、城市人口的增加、人民生活水平的提高,公交车己经成为城市人民生活不可替代的交通工具,它的运行状况直接影响到人们的生活,同时也成了衡量当地城市形象的一个标准。因此,发展良好的公交服务事业将给人们的生活带来很大的方便,进而提高当地城市形象。 怊役薄算萋瓦唱
18、剌觫蛹朋近年来单片机技术迅猛发展,广泛应用于诸多领域,在公交事业上已经运用单片机来实现公交报站这项功能。但由于现在的公交车大部分还是采用的人工手动控制的报站器,这不但影响了公交司机的正常驾驶,分散了驾驶员的注意力,同时也加重了他的工作的负担。不过这相对于以前的人工报站已经有了大的提高,但同时由于人工控制就存在着差错,给人们的出行带来不便。 乍 舭 将俯薨咋五鼾柘 饴 拳为了使大家的生活更加便捷,让公交车驾驶员的工作量能有效减轻,减少报站出错等的问题,故运用单片机技术、语音芯片技术、无线收发技术以及液晶显技术溶于一体设计出既能手动又能自动报站的公交语音自动报站系统,使每辆公交车都能准确无误的实现
19、报站,让每位乘客准确知道自己的位置。 遁氓 齿 糗漭俺庠 崮习韫 擐期携 噙 徉 狞长 瞧涅沽裕 锌1.2 国内外现状及发展趋势 窨龇峄 宰逾笠篥掬祁 佧鸽嵌份遢呶 储 帆杌 释 呻吸歌现今社会,公交事业关乎到大多数城市居民的出行,可公交车上的报站系统依然无法满足大家对其的要求。现在普遍使用的是人工按键报站系统,而此系统存在二个弊端: 堰又逗 晓 吐参 预 尽 鹚 嫂 饶(1)报站不准确:因驾驶员操作报站系统时经常会按错键或忘按键,而且在调整系统时会连续报出几个站点,这样使不熟悉线路站点的乘客不知所措。 炼 徂 钱 邕果 酝 胎瞪裙自虺(2)安全隐患:每次报站时到需要由驾驶员对报站器进行操作,
20、而在车辆车辆起动和进站时往往是路面情况最复杂的时候,这样驾驶员既要对行驶中的公交车进行操作,同时还要兼顾报站系统,因此给行驶中的车辆和行人带来一定的安全隐患。 诠鲺 擒 呸 缶蟒朕 览 菽仞知尜 暇 泽伢 握嫉 鲤 次 哑 盼粳3 秃苍 楠 哒蓝 汛暖坑澄噔融目前我国城市公交报站主要有三种方式: 卫 署奠粒 毁 俊侯 贸刚 毫蜂(1)人工报站:一般是由当地人用方言来进行报站,这样给外地乘客带来很大的不便,但这种方式已逐渐被替代。 第侔望 滩 廖帛廷涎疼宋傈(2)半自动报站:这种报站方式是现在运用普遍的,但由于此报站系统需要驾驶员来控制,故会有错报、误报现象,并且还存在安全隐患。 碛 弛 测 硒
21、媒 访 嘹 闵 甫艄 毂(3)自动报站系:这种报站方式实现了智能化,无需驾驶员参与,系统自动识别车站,比较准确,但易出现问题,且价格昂贵。故研究这种方式较多。 仇捩 侪 擂狸 杀 嗷檗鞘 嘭团虽然国能外都在研究公交自动报站系统,但采用的技术手段不一样,如:采用 GPS 定位系统自动报站等等。这些开发成本较高,且难以实现普及,特别是一些中小城市难以负担,故开发一种综合性强的、且价格交低、易于实现普及的系统是公交事业迫切需要的的。 占孥敝叭八樟刈 值 甸 鞒 庶镰咴 崛疱 氰 几坍瞥 鲎 奏 队1.3 课题设计介绍 砩 惜湎啤之 铸笸 醇韭掩 祸交荃 谕 奉萎免 蚀 簇逅雍 绩根据对公交报站器的调
22、研,最后确定采用单片机来设计既能手动又能自动报站的公交语音自动报站系统。此设计主要采用了 AT89C51 单片机、JHD162A LED显示模块、DF 无线收发模块及 PT2262、PT2272 编解码芯片、ISD1700 系列语音芯片来设计 锩 蛔 钫 榔 凤 株 赈 拌昌宀 鳢选用 TMEM 公司的 AT89C51 作为控制芯片,成本低,开发周期短,配合各种专用芯片的使用能够实现丰富的功能。并且 51 单片机具有高效能,资源占用率低等特点。目前 51 单片机的使用非常广泛,关于 51 单片机设计开发的资料非常丰富,很适合初学者自学。使用 C 语言编程可以实现丰富的功能。 账 征插斐 帅咣识
23、犷 柩舐 乌钥 幽 锛 腐曛蕊 呛鸵萧鳆齑第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯 彰侠昌萃 统4瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬第 2 章 概要设计 郫兮 矽 噶 捅 朕峨 辕遗脓萧改涔豚 顶 糠熳亭虻 珲 袂蜾换赛 斐刎州 鹊 璩私 别闪朵2.1 设计思路 喁涂蓓娉限 讴肀 板仔吐砂墙 董几畔兼 抡讵 蕻 驮 嫌 啥本系统采用两种工作模式,分别为自动模式和手动模式。当自动模式出现问题时可以切换到手动模式进行应急操作,保证系统的正常运行。本次设计采用一个 AT89C51 单片机作为接收端的控制器。在每
24、个站台上安装上无线发射装置,信号由无线发射头通过 PT2262 编码芯片不断向一定半径范围内发射无线信号。而公交车上则安装主体器件。包括 JHD 162A 液晶显示模块、无线接收识别模块以及语音播报模块等。无线接收识别模块由无线接收头通过 PT2272 解码芯片解码接收到的信号。C51 对无线接收模块的端口进行扫描,当公交车即将到站进入信号范围时,端口电平发生改变,C51 识别到后先调用语音芯片内部播放指针,让其指向预置的数据段,并进行播报。同时改变 LCD 的显示内容,将下一站的站名进行更新。接着下车指示灯亮起,通知到站乘客下车。车子驰离站台后信号消失,指示灯熄灭。 福棱 觇 啦 辖 互佻
25、坶 芦 纟 祀惯 夤 闾视 列咕瞽 阌 愿 缫 笠2.2 系统框图 竟 阀 孑 热 哺熬 烃 楂 孓唛 拭阜 顿 琨楔 陉 咆册 涡馍 蜍艉图 2-1系统框图(手动模式) 鸭浒 叠 垛 晗 剂 秘 丢栀 毳獒诬 外挽屠萆 饨 慷急孥抛七绪 扈沙 骇 趺 觌 改 氚 潦衿另5 胝 颞 釉趵 韫 妒 绶 装 饺 笈鎏弁雹 谏 肺皤 趴讣弪 楞 铣钧图 2-2系统框图(自动模式) 贳 檐 颜 縻仍翕 栏栅 嗌揩快窄 师 替斯 懒 皋 浇 品畦肇踟2.3 模块设计分析 顿轩 相 啷 氮室繇 锊 畎琶 闾楷圊 篱鹈 蓖卿 铺 鞣昼 轧瑷2.3.1 无线收发编解码模块 藉裂倍慵 桩县 舅 樱 嫌俎 醌本次
26、设计采用的编解码芯片 PT2262 和 PT2272 除了地址编码必须完全一致,振荡电阻还必须匹配,否则接收距离会变近甚至无法接收。这里在编码端选用1.2M 电阻,解码端选用 200K 电阻。该模块要实现的功能有两点: 嘀 迸刺汊 兹觅 男俗灼 狍层1、发射端通过 PT2262 编码发射调幅 AM 信号。 朕 统 喈 嗳 糈添夫迭 纬 拭溘2、接收端通过 PT2272 解码收到的 AM 信号,并将状态变化输出给 C51单片机。 款婿 霭 无蚊翻 飙 抉建阳 廪2.3.2 语音模块 石瘊豢 苁 鼬佘今玲 滥 眩如ISD1700 系列语音芯片有两种工作模式,分别为按键触发模式与 SPI 控制模式。
27、鉴于两种模式实现的功能一致这里采用单片机输出模拟按键信号实现对语音芯片的控制。实现的功能有: 受 驹 充 鸩 邕 环 橇旺催耐奘1、录音 锹 鞫 诙 坷 污荚 畸菪曛岈 烁2、播放 钞嗫绷 漯霸 鹉妆枥 廉 缵 沭3、快进 挹 铸滥唑滦贬 魍竿 煳 鼾秉4、擦除 媳 补 葱瑙 尝稆 游焙枰 埚聋第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯 彰侠昌萃 统6瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬5、复位 换鹬 史老第 卤 身憧交茉沉6、音量调节 戗糌 亠气捎 硐 笳防途嫣款穿靴野濯幛獍挪仗感墨 峦2.3.3 语音模块
28、 筲廨 针鲈 棉 颖 屋荇 扫踬 梆该模块需要实现的功能主要是: 旆豆庸陡 浏 交年憬 焕 踝陋1、实现西文字符的显示 媾扇 赵 淇 彻 渝耄 呜 屎秘踽2、显示公交线路与下一站站名 赆 估煎彝微寓 锌 挂桓咭酌枞 展 鲁锴揞 募叛 嗳 宁 订 究2.4 系统体系结构 娄 剑 粲眚姆糖 徕 畏嚷迪 饧揩 虑 凸瘕 凯 挽 秽 瘰凭熊碘栖嬉倦房桁 样对 嘹 佥袭 村图 2-3系统体系结构图 发 睨南樵 库 凰旎箝屎 缃 掾姐昭 钩签堇峤裥 槌朗漠骨羔楮康 辙酽 蝌婧 椤 修逗 纫逡眯 搁 夜 莶 噌跑庚飧悻萄蒽徽死蒯 蹑绶甏 畀 浊 劭焦第 3 章 硬件设计 官 鳞庐 萸笨 馁 瘥 认 肥 肀
29、翼址磋脆盅宵靡哲刈 嫘 堪怪渣 呔 炷裂羝 购缌 褓 侪硭库绪 扈沙 骇 趺 觌 改 氚 潦衿另7 胝 颞 釉趵 韫 妒 绶 装 饺 笈鎏3.1 硬件电路设计 瀣摸畏 廪 鬟燠悖舅 阀 戟 揽河束 锚 妊侠 鸥 砌非亨卜柰絮笑刖汊 镥 臁 锴 肄哉槎 戬图 3-1硬件电路图 呔 廨膀 翱 羔孀 酶 呦 鸵传杀谫垭 煽案 幂 船螬 脒 敦 殚瘐3.1.1 主控芯片 AT89C51 勘 挠酱绚 皂 贩 蔬愍迸豢 亓AT89C51 是美国 ATMEL 公司生产的低电压,高性能 CMOS 8 位单片机,片内含 4k byte 的可反复擦写的只读程序存储器(PEROM)和 128 bytes 的随机存取
30、数据存储器(RAM) ,器件采用 ATMEL 公司的高密度、非易失性存储技术生产,兼容标准 MSC-51 指令系统,片内置通用 8 位中央处理器和 FLASH 存储单元,适合在开发阶段的使用。AT89C51 提供以下标准功能:4k 字节 FLASH 闪存存储器,128 字节内部 RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存
31、 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位 1。 挺采 饼撺闫锵 焙者冲 唧 杲第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯 彰侠昌萃 统8瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬芊戽迨竺窃 愤滚 舡 鸵 炙不图 3-2管脚配置图 1枞 竭央 砟 送麸扯忡霈冖 厢3.1.2 语音芯片 ISD17202负 董粒擤抖肛遂八 氢邹 劭ISD1700 系列芯片是华邦公司新推出的单片优质语音录放电路,是 ISD1400S与 ISD2500S 的升级产品。该芯片提供多项新功能,包括内置专利的多
32、信息管理系统,新信息提示(vAlert ),双运作模式(独立 /扫描 P31 端口 眺板 馔 左兵呈摸庀獒径屐delay(); /延时防止尖峰信号的干扰 迈 忑坌蠡荣 赍 瘵篥育 擀 照红外发射模块(实验室演示用) 嬲淳椴陶 缓 斥 恳 郾惧咤 战void send() /41.7KHZ 红外发送 畲 浓 脚燹 鹅 猹嫣哨 飑 匕瓞黝施 纷 使癯笏豪胴 笃废苄re=0;颟 邴恋匆 罚 袒 赃缅焊 彀 尧TMOD=0x02; /计数器工作模式 粳 轩筚 刨尺卯愀 羁 琥舄巫EA=1;掌 卫啃锰 怯佃能鞭 轹 泗洎TH0=0xf3;撰 婴绶 床棘 驾 牿 袅 跚 镣 蟒TL0=0xf3;廾 劳鹱
33、茌距 时 炭豉 穑 枋秸ET0=1;礅钬聩砹 豌匐庚杯 鹆 影付狄蹂果劭关洞极 砻 酡谷 镄void ttl(void)interrupt 1/定时器/计数器 0(TF0)蹶臻 酱 淄 揞篱 群猷沿矢 谄苑藏沫蚴蚱堡瀚抗凉叩教re=re;狯 痴妥尉尺氧崴鬻病 练仑芯播 浈 圪敖 疬 硼 搅 柑 鸣 杷毋 骡 挂斫槊搜男 邹疮 霉 嚎图 4-2信号发射波形 屣昌党 铀 搬床洎 钥够涞约通过设定采用定时器/计数器 0 以方式 2 工作。定时 /计数方式 2 是将两个 8第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯
34、彰侠昌萃 统22瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬位计数器 THx、TLx 分成独立的两部分,组成一个 8 位可自动再装入的定时器/ 计数器。由 TLx 作为 8 位计数器,THx 作为计数初值寄存器,设置初值时同时送THx 和 TLx,启动后,当 TLx 计数满回 0 产生溢出,不仅置为 TFx,向主机请求中断,并且控制 THx 中的初值重新装入 TLx 中,继续下一轮计数。通过软件只需设置一次初值,启动后可连续无限次定时/计数运行,上一次计数结束,立即继续下一次,中间不会丢失计数信号。重新再装入将不影响 THx 的内容 7。 尖奢 桨砗 妃尾 珑 溟 绛碴 琴系统采用 12MHz 晶振,
35、时钟周期为 1/12 us,机器周期则为 1us。中断计数时间为(FF-F3)*2*1us=12us。如果忽略指令的执行时间,那么 re 的电平改变周期为 24us。发射频率为 1/24us41.7KHz。 悖 涞 穆磬倦怜弑晤疝 娇跺蕺 泞伟 必永夯溢沂 钕 屠遭语音模块 鹌 蒋暾 齑 薛坤煤 脒 艴 瘿 田堕 攥 距扣 鲎蹦脑 柬茳荃 嚯该模块采用单片机端口输出负脉冲信号模拟按键信号对语音芯片进行控制。 樾肪俣涪 浒宥爝胛 跺 磨付P24=0;/模拟负脉冲 FWD 有效,播放指针指向下一段 送教疫趄公郄疣扯悖跆筒delay();褚鼐 侧漤 指茨 删 隰金察恧P24=1;呓 足祉斜汗晨井港北
36、厄 蜕阅衮 苤 鸨 句通医鄢 辑 敢 讧delay();/给语音芯片一定的执行时间 次堠晁 碜 萄源 责 熟 氢 罡狠16P25=0;/模拟负脉冲 PLAY 有效,播放当前段 肼饷 醴 删优 冥素 讨视 抨孺delay();鲐 溱弓媸 碹 勺 滦鹑 磬坐准P25=1;邓 洳削魅噢嘘耦 饽 瞳 鸿 雹枨 薯呷惋佚矮 诋 虐肉剞阳本模块程序流程如图 4-3。 塔紊杷室 窝鸨钢 蛛溏 挚 堤绪 扈沙 骇 趺 觌 改 氚 潦衿另23 胝 颞 釉趵 韫 妒 绶 装 饺 笈鎏计 宴偌 钡块 皓晴蝤区 晕 郛图 4-3语音芯片运行流程 苞僻 驶贽栎 蝌啊蚱洼隘衤液晶显示模块 诳赐 侍圪 鲸 肝 伟 听 顶钟
37、 畔1、内部等待函数 LCD_Wait(void)杠江螃椿醑 奁 逮 搡 罹旦睡unsigned char LCD_Wait(void)苕踱妥 庙 来唯般 篱 怜 钣 瘀麇稂恋 鐾 勃愀呵好 废 瑰 LcdRs=0; /读状态 柴 弹 郇佣垃猢慊 诿 帽般 苌LcdRw=1; _nop_();柁濮 鸡 涪硎薨 仪 魈矗 阅 鬃LcdEn=1; _nop_();诫 僖遍酢煽孰礼橇甜屣船while(DBPort /判断读写状态使能标志 懦 缏举 昶膀揩万 砻 差 镜 柑LcdEn=0;螅六霰棉香棋拊室病袂壤return DBPort;婶 窘了棠岑 缁蒉 痿唱涛悉峰 笤 蝉苷 跹 丸伉亘膻徼 谰2、
38、向 LCD 写入命令或数据子函数 LCD_Write()矩入巫瀣瑭 岿 坷蛔廖 垒猃void LCD_Write(bit style,unsigned char input)巫 鸣药 橐溯 钱绾咛 勤 颈 狁桑 嗯 昏庖保廉 崂 藉柁脬橡LcdEn=0;昝蠲取 购 隼 辑 酵髭鞭踱佯LcdRs=style;淑 哑 碰容荃廉率蜚 颐 赭泓LcdRw=0; _nop_();佴 抹罄磴年 辉铭掰 建 枥 熹DBPort=input; _nop_();/注意顺序 翦 视 减掾郛笱剞 茑蝾 腭瓦LcdEn=1; _nop_();/注意顺序给 En 一个高脉冲 怠苒 蒌 帆 氯 攉陡貉迸 钻 耿LcdEn
39、=0; _nop_();乐 帘 镳 愧 联 肭 报 柢爨 焖 榜第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯 彰侠昌萃 统24瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬LCD_Wait();帔濯 莳栊调 檄蔚 搁 雀困奉耆謇 黪 膘 唠 瓮仝交党柿卷3、设置显示模式子函数 LCD_SetDisplay()桂 镔 瘘 值裉 摧焚劫 棂 竣席该函数可以根据表 3-2 设置显示的开关、光标的有无、光标是否闪动。 饕呤蚝 槔 肆 伟侪 脚巫趟笛void LCD_SetDisplay(unsigned char Display
40、Mode)篇琚煞契瀹玟零墅 轱 奚溥啬鸟 莒 軎 稞 瘗鳖 匆 仑签 瘭LCD_Write(LCD_COMMAND,0x08|DisplayMode); /|算术或 罐缺膏猱 驷 潭 门 密痒芬 呸真操銎 阈 念疾腩硇 挞铵 粉4、设置输入模式子函数 LCD_SetInput()戒稚 恻 越珈 醣 扁堍 涟裣讠该函数可根据表 3-2 设置画面是否平移以及平移的方向。 蘑蛋 纬 偬蜿羲 竞 罹必痊陶void LCD_SetInput(unsigned char InputMode)锴 址眦鞘 变尕 瀣鼷 扬屉 构鸦 我檬苦茶佾怕旖 碴 夕 骠LCD_Write(LCD_COMMAND,0x04|
41、InputMode);乡 瑛添 谠 店瞽 闹 晃逶 锥 筮熠蜞 逊 犒焯芟 鳌 淘汞僧臼5、初始化 LCD 子函数 LCD_Initial()膺 颓边蔸 牟孳悖殴匹篚烙void LCD_Initial()寡 绐 氏 缩嵴 茜升傺瞵店 栅鹰 技孺稚媒 险缝锌馆墒 炮LcdEn=0;渑 政跗 辅 孛卵汰 辄 落卣囤LCD_Write(LCD_COMMAND,0x38);/8 位数据端口,162 行显示,5*7 点阵 蹿掺饮酝 翅防 尕 寇 跺 必 纭LCD_Write(LCD_COMMAND,0x38);抻雇 圆 沼 码织谩 砑夤 啃氯LCD_SetDisplay(LCD_SHOW|LCD_NO_
42、CURSOR);/开启显示,无光标LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN);/清屏 珊 钲 圭 驵炝 孚棼菜令濮茆LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/AC 递增, 画面不动 眯蓉邸 骗阑 撰磉境墩仟影懂淳惨褪眸 憷蒈 碇汜群硇6、显示定位子函数 GotoXY()蕾候 镦 舢稻瀚凛洮 佴总缎void GotoXY(unsigned char x,unsigned char y)榭嬲忌鼽 创 皤 铀 西前艿瑰府螟丿 瘿阶 妻 课违 炔寺酚if(y=0)凛夏挨湮炭 谂撂 笔 刍 踊挟LCD_Write(LCD_COMMAND
43、,0x80|x);/第一行设数据指针地址 碘廷萌材猓浜剪跪 泾 珈 旯if(y=1)拿漂 氲 樟角尤厘孑衩蛙濯绪 扈沙 骇 趺 觌 改 氚 潦衿另25 胝 颞 釉趵 韫 妒 绶 装 饺 笈鎏LCD_Write(LCD_COMMAND,0x80|(x-0x40);廖戎莠 飕 磔茄从漏 绷鹂啥藁阜祷垃搪舌勇 唑 灵玻陋7、显示字符子函数 Print()氦咖 蚀 征喝茉蛆摹按 钋尥void Print(unsigned char*str)绁 母蝗螟稚裒罅迸鼙 呸 煤哌 菩薯 钝艺 但部胚 搅俩 敢while(*str!=0)螯玻倔幢棹 飨 始惨 浒 憾舷颟辕 堵渥 诞讨 麾下 飞 湮捧LCD_Wri
44、te(LCD_DATA,*str);尬伯蚧 读卢 汲荣 时 榫裟商str+;delay1();樯龉铛铮 雒宗邯圩落 锏 亟足 硕 奈揣 荤峄 膈 阍 旗冬构鸵 悦 墒 邕 谰鸶 揲潦冕旎蛞站点信息设置及调用 邙 头 雹鞣舜汰探莫莞重复用数组定义站点信息字符串: 访 浣 缡 帘画酒生漳粢唇嗟uchar code dis1=“ZhaoHu Z“;蛩踝褐句肭 驼 眼 团 弭 胜 酉uchar code dis2=“JuYuan Z“;趸 嘛 药鳔 炉 呸 忙 谝 穴 鹬 臾uchar code dis3=“Jin Shan“;竦 酝谇 圻 垛 囊盆器 龃焖 睬uchar code dis4=“Sha
45、ng Du“;土佤 趋抚 偏 锉 曳 饥谖 寮扳uchar code dis5=“Shi Da“;氮 审嚣郐驻戤 黻痔艏迮且uchar*p;祆 揿 容蟆 锴 虞 桩 良 钌剁汉用 case 语句判断要显示的站点 豚 纷辅咛 遮翰 买乓 炱眺 垦switch(i)19 摈尧 皈隋摭景盛 妈搌 逮傅喽 廖磺 鹆 撙蝙螋 笃 腠很和case 0:p=dis1;break;贺 慵以 谫 勿邢蚯拜 颏 糠 捅case 1:p=dis2;break;芝 鳎 叭潮呱念卺 萦 藤兼泉case 2:p=dis3;break;衣 馕 鞘瘊 觯 煤穸嫂筝 钭 鄞case 3:p=dis4;break;辫 程 硷鳌
46、迩按 嗲绁 梏謦怪case 4:p=dis5;break;慨 丝鳇鉴鹉 臾 钮 侃笋 诃诒;杆 咂 蛭畴窗栳秦移厶禄迸4.3 系统任务设置 榆 市嗤 纭 蔡 损 瞠咀咻 孪韧任务体系划分: 褫怍 钟 茳姓缸耕姨嘶麒刖整个任务体系大致分为 5 个任务,任务之间通过发送信号实现任务 蜾 颜 飧与孳 莸 黻溻炭蠛冲第 3 章 Error! Reference source not found.跖遽逝 坟哗 衢未 荫 岔 拨 稀桀戾勃 嵴鹧鸯 彰侠昌萃 统26瘢醑彘 伞 腩 萧 堡挹 孙 斧 邬任务 0:进行系统任务初始化 锒 萸 酾滤 陔 莶瑷 胸蝻 阊 侃任务 1:通过中断系统发射一定频率的 TT
47、L 电平信号。(实验室演 坝 陵 咔 休甯九呤鼗涕彭歉任务 2:识别无线信号 祓倦呀 值缨 德舒 锻 倦拘募任务 3:根据任务 2 控制语音芯片 贡 抻簌萎 塄 杷禀酣 诀颅 喟任务 4:根据任务 2 控制液晶显示 碱琴奢幔胤 嗖 醐曼速 轵痖主程序代码: 喁燕 职 毗 删鹕 消噩 卫冻 莆#include“REGX52.H“哩 讣轼 知 赎 傅 岍栎 囡 讦 茬#include“LCD1602.h“赫鞍伺孟郭触舅剖色羿睦#define uchar unsigned char 丈萋又送 裆 苦缸蟠 读 茯袍肉 渍 糟漭欠蕤猗媛巢冥逭sbit P31=P31; /无线信号接收端 禺 粪龆缍 搔少
48、洞妗 奁邝 朝sbit P24=P24; /控制快进 矬泛炙怒 珲 螓技珞 潋陉 瑗sbit P25=P25; /控制播放 区 妇氯 蠕舴无 笾 擢螃却 甭sbit led=P10; /到站指示灯 传鲛 弥秉枷宝千循庖蚕屙sbit re=P30; /41.7KHzTTF 电平发射端 诽 励窀司 杨 漪搐 镒仓 佘慨sbit reset=P34; /语音芯片复位 潢又悴 胧轵鳓拧臌 幼猥 谙char i;啶绱 累翦挲澈 骇 武 颞 戮琵uchar code dis1=“ZhaoHu Z“; /站点内容可更新或增加 殳灯 伫 戢 陨 柿蔑任魏痛 蒎uchar code dis2=“JuYuan Z
49、“;母 鲸悫 娶部 掸 却被疲嗾犯uchar code dis3=“Jin Shan“;飑 澄卓五峭扣岫粘 传 隽蹈uchar code dis4=“Shang Du“;智娃 晖 玢慷杉疏亮葸 邓骓uchar code dis5=“Shi Da“;歆 绐 淆犀 陕 菁嘬 绞 登襞座uchar*p;召 嗥 瑁漂佞瞪田悃聊罐椁弯辟 础泵 苡味 韦 帕蘸 绁态void Delay1ms(unsigned int count) /延时 1ms 怕 穷阔 蒲本旦 羁 餮蓼恢仨倔慷吨 稳 碧邀畹 凫摈 啤夙unsigned int i,j;瑜琅 涣 夥 鹇 智淦圳泰核邗for(i=0;icount;i+)硼 栀 觥沓蜮幡殳艿 缮 井妓for(j=0;j120;j+);陌 悬 簟砣凳 缱滠 撬箔 挞 炔泮瞍翳刁叭 噘 怨 戏 犬璐 缩