基于单片机的语音交通灯设计_第1页
基于单片机的语音交通灯设计_第2页
基于单片机的语音交通灯设计_第3页
基于单片机的语音交通灯设计_第4页
基于单片机的语音交通灯设计_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河北大学工商学院装订线 本科生毕业论文(设计) 题目: 基于单片机的语音交通灯设计 学 部 信息科学与工程学部 学科门类 工学 专 业 电子科学与技术 学 号 2011481061 姓 名 裴芳 指导教师 孙雪 2015年5月10日基于单片机的语音交通灯设计摘要本文介绍了一个基于spce061a单片机的语音交通灯控制系统,包含硬件设计和软件设计。本设计以spce061a单片机作为整个系统的控制中心,利用其强大的语音处理性能配合音频放大电路实现语音播放。本设计硬件电路主要包括电源电路、单片机最小系统电路、数码管驱动电路、独立按键电路、音频放大电路。软件部分主要包括主程序、语音编解码程序、数码管显

2、示程序、红绿灯切换程序、按键检测程序。软硬件有机组合,实现了一套完善的交通灯控制系统。本设计利用数码管进行倒计时显示,采用双色发光二极管作为红绿灯,当信号灯切换时可以进行语音提示,基于spce061a单片机语音交通灯控制系统具有成本低、稳定性强、电路简单等特点。装订线关键字:spce061a;交通灯;语音提示;数码管design of voice traffic lights based on mcuabstractin this paper, based on a spce061a the voice-traffic light control system, including hardw

3、are and software design and focus on the design process. this design to spce06ea as the systems control center, using its powerful voice processing performance combined with voice playback audio amplifier circuit. the design of hardware circuit as long as including a power supply circuit, a microcon

4、troller system circuit, digitron tube driver circuits, independent press circuit, audio amplifier circuit. speech codec software consists of a main program, programs, digitron tube display, traffic lights switching programs, key monitoring programs. organic combination of hardware and software, impl

5、emented a complete set of traffic light control system.this design uses a digital countdown display, dual-color led as traffic lights, traffic lights can make voice prompts when switching, voice traffic light control system based on spce061a single-chip has the advantages of low cost, stability, sim

6、ple circuits, which can be widely applied in practice.key words:spce061a;traffic light;voice prompt;digitron目录 1绪论52语音交通灯总体方案设计62.1总体方案的论证与选择62.2主要功能模块论证与选择62.3语音交通灯工作过程73语音交通灯的硬件电路设计83.1电源电路83.2复位电路93.3时钟和锁相环电路103.4独立按键电路103.5音频放大电路113.6数码管显示电路和红绿灯显示电路113.7总体硬件电路原理134语音交通灯的软件设计144.1主程序144.2硬件初始化程序1

7、54.3数码管和红绿灯程序164.4独立按键检测程序184.5 语音播放程序195开发及调试过程215.1硬件开发及调试215.2软件开发及调试226总结236.1特点236.2不足与改进23参考文献24致谢24附录25附录251绪论随着国民生产总值的提高,人民的生活质量也稳步提升,城市化步伐逐渐加快,道路上的车辆越来越多,城市的交通安全引起越来越多的关注。而交通安全与十字路口的行车状况息息相关,所以在这种情况下,各大十字路口的交通灯控制起着极其重要的作用。而十字路口的行车状态得到合理、多元化的管理,除了要对十字路口实际路况进行一下数据采集并进行详细分析之外,还需要有一套完善的交通灯控制系统。

8、因此如何研究设计出一套功能完善的十字路口交通灯控制系统显得极为重要,它将对我国的城市交通发挥很大的作用。早在19世纪,红绿灯就是用来在十字路口疏导交通状况的工具。当时英国的首都伦敦相关政府为了有效管理马路上的马车,就在主要十字路口安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用这个信号灯来指示街道上的马车通行1。这就是最早的交通信号灯了。它由红绿两以旋转式方形玻璃提灯组成,其中蓝色表示通行,红色表示停止。随着这种交通工具的出现,使得交通得到了合理的管制,对于疏导交通流量、提高道路通行能力,减少交通事故有了明显效果。采用凌阳公司16位spce061a单片机设计了一个基于单片机的带语音提示的

9、交通灯控制系统。在此设计中红黄绿灯会交替倒计时显示,并且在红灯和绿灯切换时会有语音提示,另外本设计还可以通过板子上的十二个按键来实时模拟交通路况。设计的亮点就是带语音提示功能,交通灯共分为四个状态,分别为normal状态、emergency状态、setup状态、以及polling状态。各状态相互配合使系统更加完善,使用更便捷。 2语音交通灯总体方案设计本课题的目标是设计一个基于单片机的语音交通灯。该设计主要分为控制部分、显示部分和语音输出部分。控制部分采用凌阳spce061a单片机最小系统板,显现部分采用传统的led灯和七段八位数码管。语音输出部分通过spce061a单片机片内adc输出经音频

10、电路放大,再通过扬声器播放。2.1总体方案的论证与选择方案一:控制器采用凌阳公司的spce061a单片机,利用其强大的语音处理性能配合音频放大电路实现语音播放。方案二:控制部分采用ti公司的tms320系列的 dsp。显示部分采用led灯加数码管显示。语音采用dsp配合外置音频译码电路实现语音的播放。方案一优点是软件和硬件实现简单,且成本低,缺点是语音质量略差。方案二优点是语音失真度小,质量好,但是硬件部分比较复杂,软件算法也很复杂,而且成本很高。由于本设计对语音质量要求不是很高,所以最终采用方案一。2.2主要功能模块论证与选择(1)电源采用3节1.5v干电池串联,总电压为4.5v。单片机电源

11、采用三端ldo(spy0029)供电,输入电压为4.5v,输出电压为3.3v。(2)本设计选用凌阳公司的spce061a单片机作为主控芯片,spce061a与传统的51单片机相比具有更强的数据处理能力。(3)音频电路采用spce061a单片机片内部的dac通道,音频放大器采用凌阳公司的spy0030,该放大器具有供电电压低、输出功率大的特点2。除上述主要功能模块外还包括键盘电路、车辆行人流量模拟电路、时钟电路、锁相环电路以及数码管倒计时电路。系统设计框图如图2-1所示。图2-1 系统设计框图2.3语音交通灯工作过程 语音交通灯的控制中心为单片机,单片机上电后开始逐条执行rom当中的程序,通过程

12、序可以控制单片机i/o口高低电平的状态,这样i/o口就可以输出一个开关量,从而实现控制外围器件的功能3。本设计倒计时显示采用的是数码管,数码管内部有8个发光二极管按八字形顺序排列,共分为七个段外加一个小数点,可以通过单片机输出的开关量来控制8个发光二极管中具体哪一个亮、哪一个灭,这样就可以组合成0-9内的任意数字。如果采用二位数码管就可以显示0-99内任意的数字。经单片机解码出的音频信号从dac输出,对语音信号进行放大,经放大后的语音信号就可以驱动扬声器发声,这就是整个系统的工作原理。语音交通灯上电后开始执行主程序,主程序主要完成了对硬件的初始化,接着数码管开始倒计时,当数码管减到零时进行一次

13、红绿灯的切换,同时进行语音提示,程序依次循环。主程序里一直检测是否按下设置键,如果按下进入设置状态,设置状态下可以修改数码管倒计时的最大值,这样可以根据不同的路况来设置倒计时时间,方便适用于不同路口,也可以在不同时间段设置不同值;如果按下紧急键,程序跳转到紧急状态子程序,在紧急状态下所有路口均为红灯,该功能用于处理一些突发情况。3语音交通灯的硬件电路设计语音交通灯硬件采用模块化的设计思想,将不同功能的电路分开设计,然后组合在一起完成特定功能。本设计主要分为两个模块,即单片机最小系统模块和交通灯控制模块,整体硬件框图由主板、数码管、红绿灯、扬声器、独立按键、电源六部分构成,如图3-1所示。 图3

14、-1整体硬件框图3.1电源电路在电子设计中电源设计是系统设计中最重要的步骤之一,电源的稳定性直接影响到系统的稳定性。常用的电源方案有两种,一种是采用dc-dc(开关电源),另一种是采用ldo(低压差线性稳压电源)4。开关电源的主要优点在于电源效率高,但是开关电源的外围器件比较多从而导致系统成本上升。本设计采用的是低压差线性稳压电源(spy0029),低压差线性稳压电源具有成本低、纹波小等优势。spy0029需要的最小压差仅为1v,本设计中输入电压为4.5v输出电压为3.3v,输出电流能够达到1a,完全满足本次设计的需要。图中电容(c33、c34、c35、c36)主要起滤波的作用。d3、d4是稳

15、压二极管,主要起稳压和保护作用。系统电源电路如图3-2所示。图3-2电源电路3.2复位电路spce061a单片机为低电平复位。复位电路包括上电复位和手动复位。刚上电时,电容视为短路,rst脚相当于接地,然后电容开始充电,随着电容电压不断升高,电阻电压不断下降,即rst引脚电压不断上升至变为高电平,复位结束;当按下按键时,rst直接与gnd相连,同时电解电容被短路放电,按键松开时,vdd对电容充电,充电电流在电阻上,rst依然为低电平,仍然是复位,充电完成后,电容相当于开路,rst为高电平,正常工作。系统复位电路如图3-3所示。图3-3复位电路3.3时钟和锁相环电路spce061a单片机的时钟输

16、入为32.768khz,通过锁相环电路spce061a,单片机可以倍频到40mhz。c14和c15为晶振的负载电容。系统复位电路如图3-4所示。图3-4时钟电路3.4独立按键电路独立按键电路用于程序状态的切换。当独立按键按下时对应的i/o口为高电平,单片机通过读取i/o口的高低电平状态实现程序状态的切换。语音交通灯共分为四个状态,分别为normal状态、emergency状态、setup状态、以及polling状态。在normal状态下如果按下key1则会进入emergency状态,该状态用于突发情况下封锁路口,即所以路口全部为红灯,不允许任何车辆和行人通过。在normal状态下如果按下key

17、2则进入setup状态,该状态用于设置各个路口的通行时间,设置完成后通过key3保存本次设置并返回到normal状态。在normal状态下如果按下key3则进入polling状态,polling状态用于统计车流量,此时通过key1和key2选择播报各个路口的车流量。独立按键电路电路如图3-5所示。图3-5独立按键电路3.5音频放大电路spce061a单片机片内集成2路10位电流型dac,本设计中采用dac1作为音频输出端口。dac输出的电流范围为0-3ma无法直接驱动扬声器发声,所以需要放大器对其进行放大。放大器选用凌阳公司的spy0030集成运放,spy0030是一款专门用于对音频信号进行放

18、大的芯片,该芯片有供电电压低输出功率大的特点5,而且输出功率可以通过外部电阻调节。音频放电路电路如图3-6所示。图3-6语音播放电路3.6数码管显示电路和红绿灯显示电路语音交通灯采用四组两位七段数码管进行倒计时显示,分别分布在四个路口。红绿灯采用16个双色led进行显示,其中在东西南北四个路口各放四个。数码管和红绿灯电路原理类似,所以一起介绍。数码管分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(com)的数码管,共阳数码管在使用时应将公共极com接到+5v,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不

19、亮6。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(com)的数码管,共阴数码管在应用时应将公共极com接到地线gnd上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。本设计中采用的是共阳数码管。数码管结构图如图3-7所示。图3-7数码管结构图由于数码管内部二极管数量较多,而且i/o口的输出电流比较小无法直接驱动数码管,本设计中采用三极管驱动数码管,如图3-8所示,当cs-0为低电平时三极管处于饱和状态,三极管输出电流最大,起到驱动的作用。同理,双色led的工作电流也比较大也需要三级管扩流才能正常工作。数码管红绿灯电路如图3-8所

20、示。图3-8数码管和红绿灯电路3.7总体硬件电路原理语音交通灯硬件主要分为两个模块,分别是最小系统模块和交通灯控制模块。最小系统模块是整个控制的核心,主要包括电源电路、复位电路、时钟电路、锁相环电路、i/o界面电路以及音频播放电路。交通灯控制板是整个系统的功能电路,主要包括led显示电路、数码管显示电路、数码管驱动电路、以及流量监测电路,各电路之间相互配合。系统电源采用的3节5号电池,总电压为4.5v经ldo稳压到3.3v为单片机供电。上电后最小系统板上的电源指示灯亮,单片机完成上电复位后开始工作。单片机通过i/o口控制数码管显示倒计时和led灯颜色的切换。当单片机通过i/o口状态检测到有按键

21、按下时进行程序状态切换。需要发出声音信号时单片机负责把音频信号译码然后由adc1通道输出,经放大器放大驱动扬声器发声。4语音交通灯的软件设计语音交通软件采用c语言开发。编译器选用凌阳科技股份有限公司的ide(集成开发环境)。程序设计思想采用模块化编程,即将程序模块分开设计,每个程序模块负责不同的功能,在对应的头文件中对接口函数进行声明。主程序可以通过对应的头文件调用各个程序模块。本设软件部分共分为五个程序模块。分别是初始化程序模块、红绿灯程序模块、数码管显示模块、独立按键程序模块、语音播放程序模块。本章将详细介绍各个程序模块的执行流程。4.1主程序主程序是整个程序的入口,单片机上电后从main

22、函数开始执行。主程序完成硬件初始化后开始进入主循环。主循环中数码管开始倒计时,当数码管减到零时进行一次红绿灯的切换,配合语音提示。同时主程序中循环调用按键检测程序,当有按键按下时返回相应的键值。主程序通过键值选择执行哪个子函数。当键值为1时,此时key1被按下,程序会跳转到emergency子函数当中。当键值为2时,此时key2被按下,程序会跳转到setup子程序当中,依次类推主程序完成整个程序状态的切换。主程序流程如图4-1所示。图4-1主程序流程图主程序:main() bspinit(); /硬件初始化g_cntshi=displaycnt/10; / 数码管十位g_cntge=displ

23、aycnt%10; / 数码管个位 for(;)inputstat = getkeyvalue();/ 循环检测按键switch(inputstat)case normalstat: / normal状态funk_normal();break; case emergencystat: / emergency状态funk_emergency();break;case setupstat: / setup状态funk_setup();break;case pollingstat: / polling状态funk_query();break;default:break;4.2硬件初始化程序硬件初始化

24、程序主要完成对单片机各个外设的初始化,其中包括i/o口初始化、定时器初始化、看门狗初始化。i/o口初始化程序设置a口为带下拉电阻的输入,设置b口为同相低电平输出。定时器初始化程序设置定时器为中断方式,定时器用于音频的解码,调用sacm_s480_initial库函数即可完成。看门狗用于产生1ms的定时,在看门狗中断服务程序中进行计数,当计数值为1000时,则对应1s,这样就可以产生精确的延时。通过看门定时器就能实现数码管计数的精确控制。图4-1硬件初始化流程图硬件初始化程序:void bsp_init(void) /设置a口为带下拉电阻的输入 set_ioa_dir(0x0000);set_i

25、oa_attrib(0x0000);set_ioa_data(0x0000);/设置b口为同相低电平输出 set_iob_dir(0xffff);set_iob_attrib(0xffff);set_iob_data(0x0000); /设置看门狗定时时间为1ms watchdoginit(1); /使能看门狗 watchdogenable(); /完成定时器及语音播放初始化 sacm_s480_initial();4.3数码管和红绿灯程序红绿灯程序主要完成双色led的切换。当数码管从最大值减到0时,通过片选信号选择相应路口的红绿灯,当i/ob口输出高低电平时对红绿灯进行颜色切换控制。数码管显

26、示的控制原理与红绿灯类似,数码管的管脚中有段选信号和位选信号。通过片选端选择具体哪一位显示。由于人眼是存在视觉暂留大约为0.17s,如果片选信号切换的够快就可以完成数码管的动态显示。程序流程图如图4-2所示。首先通过片选信号选中低位数码管然后发送数据,延时一段时间后关闭低位数码管,接着以同样的方法发送高位数据。这样就可以完成显示0-99内任意的数字。图4-2主程序流程图数码管显示程序:void digdisplay(unsigned char data) unsigned char hightemp; unsigned char lowtemp; hightemp = data/10; low

27、temp = data%10; / 数码管清零,防止重影 pboutput=0; / 选通高位数码管 digcs5=0; digcs4=1; / 发送高位数据 pboutput=datatablehightemp; /取位码 / 稍作延时 delayms(200); / 选通低位数码管 digcs15=0; digcs14=1; / 发送低位数据 pboutput=datatablei; / 稍作延时 delayms(200); 4.4独立按键检测程序在理想情况下若单片机的i/o口出现低电平即可认为是对应的键被按下,但在实际情况中由于按键在闭合和断开的瞬间触点会存在抖动现象7,所以按键所连接的

28、i/o口上就会出现一些杂波信号造成单片机的检测错误,如图4-3所示。另外主程序中对按键的检测是循环进行的,若按键按下的时间较长会造成单片机多次检测到按键按下的情况,从而造成程序混乱。本设计在按键按下后以及松手后的瞬间加入了一个短时间的延时函数来滤除这段时间内的杂波信号,该滤波程序对高频杂波信号的滤除具有很好的效果,另外通过在程序中加入松手检测有效的避免了单片机误检测的情况。图4-3按键抖动按键检测函数:unsigned char getkeyvalue(void)if(key1 = 0)delay(10);if(key1 = 0)while(!key1);return 1;if(key2 =

29、0)delay(10);if(key2 = 0)while(!key2);return 2;if(key3 = 0)delay(10);if(key3 = 0)while(!key3);return 3;4.5 语音播放程序语音播放程序是整个设计的核心,语音播放主要分为三个过程分别是数据读取、数据译码、数模转换。数据读取过程将语音资源放入解压缩队列,数据译码过程将解压缩队列的内容放入输出队列,然后在定时器中断的控制下进行数模转换,最后模拟信号经放大后就可以通过扬声器输出。所以语音播放程序主要分为主程序和定时器程序,主程序完成语音函数的初始化以及将语音数据读取到输出队列。定时器中断服务程序里调用

30、sacm_s480音频译码算法将数字信号转换为模拟信号经adc1输出。语音播放程序流程图如图4-4所示和4-5所示。由于定时器程序比较复杂,程序代码见附录1。 图4-4语音播放主程序流程图语音播放主程序:void plays480(int index)sacm_s480_play(index, 3, 3);while(sacm_s480_status()&0x0001) != 0)sacm_s480_serviceloop();*p_watchdog_clear = c_wdtclr;sacm_s480_stop();5开发及调试过程本设计开发周期为三个月,主要完成三个方面的设计,硬件电路的设

31、计、软件程序的设计、整体调试。本章将详细介绍开发过程中用到的工具软件、开发过程中遇到的问题、以及问题的最终解决办法。5.1硬件开发及调试 硬件开发是本设计的难点,如果硬件不正常工作就无法继续进行,硬件设计也占用了整个开发周期的2/3。其中遇到的问题主要有元器件的选型、原理图绘制工具的选择、电路板的焊接、以及各个硬件模块的测试。元器件选型过程中发现同种功能的芯片很多,但是通过查看产品的数据手册发现它们之间还是有很大的区别。比如在设计数码管启动电路时通过查询资料了解到可以通过三极管实现,但是三极管的型号却很多,有pnp的还有npn而且其各项参数也不一样。这些都需要我们在设计电路的过程中格外注意。完

32、成元器件选型后需要进行原理图和pcb的设计,由于eda课上学习过protel的使用于是我安装在自己的计算机上,但是发现这个软件无法在win7操作系统下使用,通过查询资料发现它的升级版altium designer可以解决这个问题。altium designer操作也比protel灵活应用8。altium designer操作界面如图5-1所示。图5-1altium designer操作界面 5.2软件开发及调试软件开发相对于硬件要简单很多,软件开发的周期占整个开发周期的1/3。本设计软件主要针对凌阳公司spce06ea单片机,该公司提供的ide编译器(unspide)使用简单方便,而且支持c语

33、言编程。采用c语言编程简化了很多工作。unspide操作界面如图5-4-1所示。图5-4-1unspidekeil操作界面本设计软件的核心是如何利用凌阳提供的库函数完成语音的编码译码。凌阳压缩算法中sacm _a2000、sacm_s 480 、sacm_s 240 主要是用来放音,可用于语音提示。本设计中采用了sacm_s 480算法。其中主要用到库函数有sacm_s480_initial、sacm_ s480_play、sacm_ s480_stop9。sacm_s480_initial函数用于语音播放之前的初始化,sacm_ s480_play函数用于播放语音队列的语音,sacm_ s4

34、80_stop函数用于停止播放。通过这三个函数即可完成本设计中语音播放的功能。 6总结本文设计了一款带语音提示功能的交通灯控制系统。本设计利用spce061a芯片的强大的功能,通过控制四组数码管来模拟交通灯路口的延时,并且在红灯绿灯切换时会有语音提示。6.1特点在传统的交通灯控制系统中,只考虑视觉方面,忽略了轻度近视或者色盲人群的安全问题,所以不够人性化。而本设计就此缺点进行了改进,功能简单且易行,成本也相对较低,而且重要的一点是加入了语音提示功能,组成了一个有声有色的安全指示系统,这样就可以有效的帮助轻度近视或者色盲人群安心过马路,从而减少了交通安全事故的发生。 6.2不足与改进(1) 本设

35、计在设计电路时采用的是用三极管来驱动数码管,所以在运行过程中数码管亮度可能不够亮,针对这个不足,提出的改进方法是更换驱动方式,用74ls595来驱动数码管,由于74ls595具有数据存储寄存器,在移位的时候它的输出数据基本不发生改变,数码管也不存在闪烁感。(2) 本设计只是对交通灯运行状态的简单模拟,要想将其应用到实际的路口,就需要把小数码管换成大数码管;但是换成室外大数码管之后,就要考虑到电路板的防雷防水设计。 (3)电路上的独立按键是需要人频繁操作的器件,在操作过程中人体带有的静电可能通过按键接口烧毁单片机或其它器件,若在按键接口加上一个钳位电路将电位钳位在一个范围内这样可保护电路,防止电

36、路的烧毁10。参考文献:1百度文库: _8vqoqdxyc9s3mfrw3syxlb8cm5nmvzkh mebdrmobkxoiw3i4aodmp6 hexrtlfsm2张严斌凌阳16位单片机原理及应用m北京:北京航空航天大学出版社,年3张毅坤单片微型计算机原理及应用m出版社地点:西安电子科技大学出版社,1998 4张志伟硬件系统工程师宝典m人民邮电出版社,20155高阳一种基于凌阳单片机的交通灯控制系统j内蒙古科技与经济,2011.卷月:页码6陈忠平单片机原理及接口技术m出版社地点:人民邮电出版社,20117罗亚飞凌阳16位单片机应用基础m出版社地点:北京航空航天大学出版社,20038 高

37、海宾altium designer 10从入门到精通m出版社地点:机械工业出版社,20129罗亚飞凌阳16位单片机应用基础m北京.:北京航空航天大学出版社,200310 周志敏,纪爱华高效功率器件驱动与保护电路设计应用实例m出版社地点:人 民邮电出版社,2009致 谢经过三个多月不懈的努力,我的毕业论文接近尾声,在不断摸索的过程中我学习到了很多专业知识,对本专业的认识也得到了进一步的提高。作为一个本科生的毕业论文,由于经验与专业知识的匮乏,难免会遇到很多棘手的问题,做的设计可能也不不那么优秀,所以感谢所有给予我帮助的老师和同学,没有你们的帮助我的论文不可能完成的这么快,而我取得这些进步,在此首

38、先要感谢的是我的指导老师孙雪孙老师,感谢孙老师在繁杂的工作中抽出时间不厌其烦的给我解答我的疑问,她严谨而不苛刻的教学方式给了我很大的帮助和影响,孙老师教会我的不仅是一些专业知识,还有就是怎么去面对人生中的种种压力与挫折,更多的是做人的道理,再次由衷的感谢孙老师在这期间给予我的指导与关心。由于我的学术水品有限,本篇论文参考了大量文献资料,感谢学术界的前辈!也恳请各位老师以及学长前辈批评与指正。附录原理图:附录/* * file main.c * author pfang * version v1.0 * date 2015-4-10 *briefm main file*/#include spc

39、e061a.h#include trafficlight.hunsigned int cnt=0;unsigned int inputstat;unsigned int g_cntshi;unsigned int g_cntge;unsigned int g_cnt;void delayms(unsigned int ret);void irq4(void) _attribute_ (isr);/* * brief: main 函数 * param: 无 * retval: 无 */main() bspinit(); g_cntshi=displaycnt/10; g_cntge=displa

40、ycnt%10; for(;)inputstat = getkeyvalue();switch(inputstat)case normalstat: funk_normal();break; case emergencystat: funk_emergency();break;case setupstat: funk_setup();break;case pollingstat: funk_polling;break;default:break;/* * brief: 延时函数 * param: 无 * retval: 无 */void delayms(unsigned int ret)int

41、 i = 0; int j = 0; for(i = 0; i ret; i+) for(j = 0; j 99)_sn_redlight = 20;g_cnt = _sn_redlight;else if(inputstat = c_key2)_sn_lvlight+;if(_sn_lvlight99)_sn_lvlight = 20;g_cnt = _sn_lvlight;else if(inputstat = c_key3)cruentstat = c_status_normal;cruentstat_normal = c_1_lv;g_cntshi=g_cnt/10;g_cntge=g

42、_cnt%10;/* * brief: polling子程序 * param: 无 * retva: 无 */void funk_polling(void)if(inputstat = c_key1)southcnt = eastcnt_l + northcnt_s + weastcnt_r;northcnt = weastcnt_l + southcnt_s + eastcnt_r;play2number(southcnt,c_nan);play2number(northcnt,c_bei);else if(inputstat = c_key2)eastcnt = northcnt_l +

43、weastcnt_s + southcnt_r;weastcnt = southcnt_l + eastcnt_s + northcnt_r;play2number(eastcnt,c_dong);play2number(weastcnt,c_xi);else if(inputstat = c_key3)cruentstat = c_status_normal;cruentstat_normal = c_1_lv;/* * brief: 语言播放函数 * param: index 索引 * retva: 无 * retva: 无 */void plays480(int index)sacm_s

44、480_initial(1);sacm_s480_play(index, 3, 3);while(sacm_s480_status()&0x0001) != 0)sacm_s480_serviceloop();*p_watchdog_clear = c_wdtclr;sacm_s480_stop();/* * brief: 数码管显示函数 * param: 无 * retva:无 */void digdisplay(unsigned char data) unsigned char hightemp; unsigned char lowtemp; hightemp = data/10; low

45、temp = data%10; pboutput=0; digcs5=0; digcs4=1; pboutput=datatablehightemp; delayms(200); digcs15=0; digcs14=1; pboutput=datatablei; delayms(200); /* * brief: 红绿灯控制函数 * param: 无 * retva: 无 */void showcontrol(void)g_cntflag+;switch(cruentstat_normal)case c_1_lv:e_2colorled = c_1_e_lv;w_2colorled = c_1_w_lv;s_2colorled = c_1_s_lv;n_2colorled = c_1_n_lv;if(g_cnt-c_shantime)if(g_cntflag=2)g_cntflag = 0;g_cnt-;elsecruentstat_normal = c_1_shan;g_cntshi=g_cnt/10;g_cntge=g_cnt%10;break;case c_1_shan:if(shan_flag)e_2colorled = c_1_e_shan;w_2colorled = c_1_w_shan;s_2colorled = c_1_s_shan;n_2colorl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论