电子信息工程毕业设计-公交车报站器-毕业设计.pdf
《电子信息工程毕业设计-公交车报站器-毕业设计.pdf》由会员分享,可在线阅读,更多相关《电子信息工程毕业设计-公交车报站器-毕业设计.pdf(72页珍藏版)》请在咨信网上搜索。
目录1系统总体方案.31.1 公交车报站器可选方案.31.2 设计方案的可行性分析和选择.51.3 公交车报站器的硬件框图.52系统硬件设计.62.1 SPCE0 61A 简介.62.2 系统电源设计.102.3 语音存储电路设计.102.4 音频输出电路设计.122.5 显示电路设计.132.6 键盘电路设计.143系统软件设计.153.1 语音处理.153.2 主函数流程图.173.3 初始化函数.243.4 语音播放的实现.293.5 更新时间.323.6 设置时间.33参考文献.46谢辞.47附录一公交车报站器电路图.49附录二公交车报站器程序.50在当今社会,即使在私家车越来越多的今天,公交车仍然是人们出行的首选,因为公交车具有方便、快捷、车票便宜等优点。传统的公交车报站主要由售票员 报站,但是有些售票员有着浓重的地方口音,给外地人乘坐公交车造成了困难,另外,随着无人售票车逐渐增多,公交车报站器就越显得重要了。目前我国公交车辆己从原有的人工语音报站发展到现在的自动语音报站。就 报站语音而论,绝大多数报站装置都采用IsD系列的语音芯片,部分报站产品也 有采用最新的数字语音处理合成技术,两者各有优缺点。前者成本低,但音质较 差,且更改报站信息不灵活,当公交车辆临时改道时必须重新对语音芯片编程;后者受信息容量、语音音质的限制,且更换信息仍需专业设备。因此设计一款能 够方便地更换报站信息、播放高音质语音信息的公交车报站器愈显重要。本方案利用单片机的语音处理功能,以及其强大的处理能力,完成语音的合 成技术,再配合存储器,扩大存储容量,很容就可以实现公交车报站器,从而为 市民提供了更加人性化的服务。这些优点使得本方案成为制作公交报站器一种最 经济实用的选择。1系统总体方案公交报站系统的设计要求报站系统可以完整地播放一条公交线路的站名。可 以在显示屏上显示当前的时间,具有时间日期的设置功能,还可以播放音乐或广 告。经过杳阅资料,可选方案有基于MP3/U盘的公交车报站设计,基于GPS的公 交车报站器系统设计和基于SPCE0 61A的公交车报站系统设计等.1.1 公交车报站器可选方案1.1.1 基于MP3/U盘的公交车报站设计方案采用AT89C51SND1C单片机(内部集成MP3解码器)作为主控CPU及解码MP3 数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB 与PC机联机的控制。利用FAT 16在K9F12 0 8上实现文件系统,形成一个Windows 可识别访问的64MB寻址区域。结合USB控制器,系统可作为优盘在Windows下使 用,从而实现在Windows下对文件的管理以及数据存储功能。这样通过程序的设 定,公交车可通过键盘实现MP3格式声音信号的报站以及各种信息的广播。列表 文件在系统对闪存初始化时生成,系统在对闪存进行格式化的同时生成该名为 SCHED-ULE.LST的列表文件。该列表文件可在Windows下利用记事本打开,编辑 所需播放的MP3名称。播放报站信息的同时通过16个16X 16的LED点阵显示相 应的播放内容。系统框图如图1.1所示。USB接口电 闪存电路-LED语音输 MP3解码-点性入电路及DAC山 MCl 显/5 i 电路功放电路 键盘 指示电 口图L1方案一系统框图1.1.2 基于GPS的公交车自动报站系统设计方案GPS的公交车自动报站系统利用GPS,通过GPS接收单元接收卫星发送的信号确 认车辆的动态位置(经度、纬度)、时间、状态等信息,与公交线路信息库中存储 的车站的位置进行比较,根据预先设定的距离和规则向乘客通报车站和线路的语 音信息;并且能把车辆运行的详细情况记录下来,对公共汽车的运营状况进行全 程监控并记录。系统的组成见图1.2。GPS uVTCCT二 y 5 f 一 K彳 Z-S1415VDDX1CE NCX1CECLK NCX1CESDA NCVSS NCPV1N NCDAC1 PVPPDAC2 IOB11VREF2 1OB12VSS 1OB13AGC 1OB14OPI 1OB15MICOUT XSLEEPMICN VSSPFUSE XROMTNC 1OA15NC 1OA14NC 1OA13U IOA12c f I)HH 1OA11工声口入51,ANNnmnnnnnn:n 1OA916177318721971207021692268236r24662565266427632862296130603159325857565554E EK.r-X.*X1 丁f 寸二y.F-o一X三C 1B.图2.2 SPCEO61A引脚图表2.1 SPCE0 61A引脚功能表引脚名称类型引脚功能I0 A15:8输入输出0 A15:8:双向 10 端口I0 A7:0 输入输出I0 A7:0:通过编程,可设置成唤醒管脚I0 A6:0:与 ADC Line_In 输入共用I0 B15:ll输入输出I0 B15:ll:双向10端口。I0 B10-0除用作普通的10端口,还可作为如下功能:I0 B10输入输出I0 B10:通用异步串行数据发送管脚TxI0 B9输入输出I0 B9:TimerB脉宽调制输出管脚BPWM0I0 B8输入输出I0 B8:TimerA脉宽调制输出管脚APWM0I0 B7输入输出I0 B7:通用异步串行数据接收管脚RxI0 B6输入输出I0 B6:双向10端口I0 B5输入输出I0 B5:外部中断源EXT2的反馈管脚I0 B4输入输出I0 B4:外部中断源EXT1的反馈管脚I0 B3输入输出I0 B3:外部中断源EXT2I0 B2输入输出I0 B2:外部中断源EXT1I0 B1输入输出I0 B1:串行接口的数据传送管脚IOBO输出I0 B0:串行接口的时钟信号DAC1输出DAC1数据输出管脚DAC2输出DAC2数据输出管脚OSC1输入32 768Hz晶振输入管脚OSCO输出32 768Hz晶振输出管脚VCP输入PLL的RC滤波器连接管脚AGC输入AGC的控制管脚MICN输入麦克风负向输入管脚MICP输入麦克风正向输入管脚VREF2输出电压源2.0 V产生5mA的驱动电流,可用作外部ADC Line_In通道的最高参考输入电压,不可作为电压源使用MICOUT输出麦克风1阶放大器输出管脚,管脚外接电阻决定AGC增益倍数OPI输入麦克风2阶放大器输入管脚VRTPAD输入ADC Line_In通道的最高参考输入电压管脚VMIC输出麦克风电源VCM输出AD参考电压(由内部ADC产生)VDD输入逻辑电源的正向电压VSS输入逻辑电源和10 口的参考地VDDIO输入10端口的正向电压管脚VSSIO输入10端口的参考地AVDD输入模拟电路(A/D、D/A和2 V稳压源)正向电压AVSS输入模拟电路(A/D、D/A和2 V稳压源)参考地RSETB输入低电平有效的复位管脚SLEEP输出睡眠模式(高电平激活)ICE输入激活ICE(高电平激活ICECLK输入ICE串行接口时钟管脚ICESDA输入输出ICE串行接口数据管脚TEST输入测试模式时接高电平,正常模式时接地GND或悬浮ROMT输入测试闪烁存储器,正常模式时悬浮NC输入正常使用时接地2.2系统电源设计图2.3是电源部分的电路,61单片机的内核工作电压是3.3V,而10 口电压 可以是3.3V也可以是5V。公交蓄电池12 V直流电压经过7805产生5V电压,再 经过SPY0 0 2 9后产生3.3V电压分别给系统供电。LM780 5是常用的三端正电源稳压电路,使用的是TO-220封装,能提供直流 电源5V的输出电压,内含短路和热过载保护电路,应用范围非常广泛。带散热 片时能持续提供1A的电流,如果使用外围器件,它还能提供不同的电压和电流。它有三个引脚,弓I脚1为输入电压,弓I脚2为+5V输出电压,弓|脚3接地。SPY0 0 2 9是凌阳公司设计的电压调整IC,采用CMOS工艺,具有静态电流低,驱动能力强,线性调整出色等特点。它有三个引脚,弓I脚1接地,弓I脚2为输入2.3语音存储电路设计因为SPCE0 61A的FLASH只有32 K字,要存放大量的语音资源,就要外扩存 储器。本次设计选用SPR40 96芯片。2.3.1 SPR4096芯片简介SPR40 96 是一个高性能的 4M-bit(512 KX8-bit)FLASH,分为 256 个扇区(Sector),每个扇区为 2 KBo SPR40 96 还内置了一个 4KX8bit 的 SRAM。SPR40 96内置了一个总线存储器接口和一个串行接口,它允许单片机通过 8bit并行模式或者Ibit串行模式访问FLASH/SRAM存储区。本设计使用品行模 式,串行接口的工作频率可达5MHz.有两个电源输入端VDDI和VDDQ.VDDI是给 内部FLASH和控制逻辑供电的;VDDQ是专门为I/O供电的。最大读电流为2 mA。SPR40 96按串行接口模式工作,要把CF2CF0均接高电平。CF7为低电平时 选中FLASH,高电平时选中SRAM.3.3.2语音存储电路图2.4是SPR40 96与单片机的硬件连接图。SPR40 96的SCK接SPCE0 61A的I0 B0,SDA接SPCE0 61A的lOBhCFOCF2接高电平,CF7接低电平,选中FLASH。图2.4 SPR40 96电路图2.4 音频输出电路设计SPCE0 61A内置2路10位精度的DAC,芯片输出的音频信号功率较小,在报 站时要求比较大的声音,就要对芯片输出的声音信号进行功率放大,因此电路选 用了 SPY0 0 30音频功率放大电路。图2.5为音频输出电路。SPCE0 61A的音频输出采用双通道数/模转换DACSPY0 0 30芯片是一个音频驱动,其增益可以通过外部电阻(最长增益调整为 2 0)o它的输出功率约70 0 mW,电压可调范围很广(2.4V-6.8V),具有双端输出 模式,低失真,低待机电流等特点。简单易用,仅需2.4V(两颗电池)即可工作。图2.6为SPY0 0 30芯片的引脚图。表2.2为引脚功能表。图2.6 SPY0 0 30芯片引脚图表2.2 SPY0 0 30芯片引脚功能表引脚名称引脚号类型引脚功能VDD8输入电源的正向电压VSS3输入电源地SPP2输出音频输出正极SPN1输出音频输出负极ACIN5输入信号输入正极INN4输入信号输入负极CE7输入芯片使能VREF6输出参考电压2.5 显示电路设计图2.7为显示电路图。整个显示过程中采用动态显示,即六位显示器逐一轮 流显示,每位持续1ms,10 ms或2 0 1ns之内循环一遍,刷新速度不要小于每秒三 十桢。由于视觉暂留,我们看到的便是6只显示器同时在显示。DGNDS480 S2 40压缩算法中SACM_A2 0 0 0、SACM_S480、SACM_S2 40主要是用来放音,可用 于语音提示,而DVR则用来录放音。3.1.2 语音识别语音的识别可分为下列几个部分:预处理,语音信号数字化;特征提取,抽 取反应语音本质的特征参数,形成特征矢量序列;语音模型库,从一个或多个讲 话者多次重复讲话中提取的语音参数模板;模式匹配,把输入语音的特征参数与 语音模型库进行比较分析,得到识别结果。识别的过程可用图3.1表示。输入语音,预处理特征提取识别模式匹配初识结后处理别果 识结(语音模型库_别果训练图3.1语音的识别3.1.3 语音合成语音合成是将以其他方式表示或存储的信息转换成语音。最常见的语音合成技术是将文本转换为语音(TTS)o文本转换成语音如图3.2所示。_文本处理文本输入 A韵律处理语音合成-语音输出词典及语言规范语音数据库图3.2文本转换成语音图3.2主函数流程图在主函数中完成SPR40 96的初始化、键盘、显示的初始化,并且进行显示 时间与播报公交车报站的站点,然后进入循环根据键盘的值执行相关的操作。主函数流程图如图3.3所示。开始初始化局部变量初始化SPR40 96,键盘,时间播报所有站点,行车路线主函数程序:int main(void)unsigned int uiKey;unsigned int uiOn_Off;unsigned int uiKeyl_Count;unsigned int uiKey2 _Count;unsigned int uiflag;unsigned int uiTemp;uiOn_Off-0;uiKeyl_Count=0;/uiKey2 _Count=16;/键盘值数码管显示或不显示标志/keyl按下次数/key2按下次数/按键keyl、key2的奇偶标志临时变量局部变量初始化uiflag=0;SP_SIOInitial();初始化 SPR 模组,SPR40 96DIGnit();初始化数码管Keynit();初始化键盘Time_Init();初始化显示时间DIG_Set(l,0);DIG_Set(2,0);DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);Broadcast(52);播放站点while(l)(if(uiDisp=0)显示时间(DIG_Set(l,0);DIG_Set(2,0);DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);if(uiDisp 二二 1)显示月日 DIG_Set(l,DatauiMonth_H);DIG_Set(2,DatauiMonth_L);DIG_Set(3,0 x0 0 77);DIG_Set(4,DatauiDay_H);DIG_Set(5,DatauiDay_L);DIG_Set(6,0 x0 0 7f);if(uiDisp=2)显示年 DIG_Set(1,0 x0 0 40);DIG_Set(2,DatauiYear_H);DIG_Set(3,DatauiYear_MH);DIG_Set(4,DatauiYear_ML);DIG_Set(5,DatauiYear_L);DIG_Set(6,0 x0 0 40);uiKey=Key_Get();得到键值,扫建程序在12 8Hz中断中调用switch(uiKey)case KEY 1:uiA2 0 0 0 _S480=0;/选择 S480 放音,在中断 FIQuiKey=0;if(uiflag 1)uiKey l_Count+;NextStation(uiKey 1 _Count);/播放提示下一站*uiflag=1;else(uiflag=0;ComingStation(uiKey l_Count);*站到 了*)if(uiKeyl_Count=16)(uiKeyl_Count=0;/如果是终点站,重新初始化)break;case KEY2:uiA2 0 0 0 _S480=0;if(uiflag-=0)(uiKey2 _Count;NextStation(uiKey2 _Count);uiflag=1;)else(uiflag=0;ComingStation(uiKey2 _Count);if(uiKey2 _Count-0)uiKey2 _Count=16;break;case KEY3:uiA2 0 0 0 _S480=0;PlaySnd_S480(65,3);break;播放提示语,车在运行中,请做好扶稳case KEY4:uiA2 0 0 0 _S480=0;PlaySnd_S480(67,3);break;请让座case KEY5:广告或娱乐 uiA2 0 0 0 _S480=1;PlaySnd_A2 0 0 0(70,3);break;case KEY6:g_4Hz_On=1;uiSetflag+;/进入4Hz中断代码,实现闪烁效果Set_Time();break;设置时间case KEY7:uiKey=0;uiDisp+;if(uiDisp=3)切换显示时间/月日/年uiDisp=0;if(uiDisp=0)(uiTemp=*PNT_Ctrl_New;打开2 Hz中断,显示秒针 uiTemp|=C_IRQ5_2 Hz;*P_INT_Ctrl_New=uiTemp;elseuiTemp=*P_INT_Ctrl_New;关闭 2 Hz 中断,不显示秒针 uiTemp&=Oxfffb;*P_INT_Ctrl_N e w=uiTemp;uiTemp=*P_IOB_Buffer;uiTemp&=Oxfffb;*P_IOB_Data=uiTemp;)break;case KEY8:if(uiOn_Off=0)DIG_Off();关闭数码管uiOn_Off=1;)else(DIG_On();打开数码管uiOn_Off=0;break;default:break;)*P_ Watchd og_C 1 ear=0 x0 0 0 1;清看门狗3.3初始化函数系统要对SPR40 96,键盘、显示、时间初始化SPR40 96初始化流程图如图3.4所示。开始设置系统时钟为49M设置IOBO,I0 B1为输出结束图3.4 spr40 96初始化SPR40 96初始化程序如下:PUBLIC _SPSIOInitialSPSIOInitial:.PROC系统时钟设定rl=0 x0 0 98;/Fosc=49mHzP_SystemClock=rl;rl=P_IOB_Dir;rl|=1;/set bitO output for sckP_I0 B_Dir=rl;rl=P_IOB_Attrib;rl|=1;/buffer outputPIOBAttrib=rl;rl=PIOBBuffer;rl|=1;/output highPIOBData=rl;retf,ENDP键盘初始化流程图如图3.5所示,初始化1OB8-1OB15为下拉电 阻输入口3初始化键盘变量打开 12 8Hz(IRQ6_TMB)中断图3.5键盘初始化键盘初始化程序如下:F_Key_Init:_Key_Init:push rl to spINT Offrl=PKeyDir/初始化10为下拉输入rl&=Key_ALL P_Key_Dir=rl rl=P_Key_Attrib rl&=Key_ALL P_Key_Attrib=rl rl=0 ScanCnt=rl/初始化变量KeyCode=rl KeyUp=rlrl=C_TMB2 _12 8Hz/开启 IRQ6JTMB2(12 8Hz)中断P_T imeBase_Setup=rlrl=PNT_Maskrl|=C_IRQ6_TMB2 P_INT_Mask=rl INT FIQ,IRQ pop rl from spRetf,ENDP数码管初始化流程图如图3.吵示,U2 7开始二初始化显示缓冲区与显示变量1初始化IOA 口为输出口打开4Hz中断结束图3.6数码管初始化 数码管初始化程序如下:_DIGnit:F_DIG_Init:push rl,bp to spINT Offrl=DIG_Count r2=0 x0 0 0 0bp=R_DIG_Buf?DIG_InitBuf:bp+=r2rl-=1/Clear Display Bufferjnz?DIG_InitBuf R_CurDIG=r2 rl=P_SEG_Attrib rl|=PIN_SEG_ALL P_SEG_Attrib=rl rl=P_SEG_Buf rl&=PIN_SEG_ALL P_SEG_Data二 rl rl=P_SEG_Dir rl|=PIN_SEG_ALL P_SEG_Dir=rl rl=P_DIG_Attrib rl|=PINDIG_ALL P_DIG_Attrib二 rl rl=P_DIG_Buf rl&二 PIN_DIG_ALL P_DIG_Buf=rl rl=P_DIG_Dir rl|=PIN_DIG_ALL P_DIG_Dir=rl/Reset Dig Pointer/Initial 10 Ports for Seg/Initial 10 Ports for Digrl=P_INT_Mask rl|=C_IRQ4_4KHz PNT_Mask=rl/Enable IRQ4_4KHz IntINT FIQ,IRQpop rl,bp from spretf,ENDP时间初始化流程图如图3.7所示。设置IOB2为高电平输出(秒)打开2 Hz,4Hz中断结束图3.7时间初始化时间初始化程序:void Time_Init(void)unsigned int uiTemp;uiTemp=*P_I0 B_Dir;设置I0 B2为高电平输出uiTemp|=0 x0 0 0 4;*P_I0 B Dir=uiTemp;uiTemp=*P_IOB_Attrib;uiTemp|=0 x0 0 0 4;*P_I0 B_Attrib=uiTemp;uiTemp=*P_I0 B Data;uiTemp|=0 x0 0 0 4;*P_I0 B_Data=uiTemp;uiTemp=*P_INT_Ctrl_New;开 2 Hz、4Hz 中断uiTemp|=C_IRQ5_2 IIz;uiTemp|=C_IRQ5_4Hz;*P_INT_Ctrl_New=uiTemp;3.4语音播放的实现由于语音资源存储在外廓的存储器SPR40 96上面,要实现语音播放必须采 用手动方式。需要获得语音资源,关键解决语音资源的起始地址,然后通过读取 函数获得语音资源。函数流程图如图3.8所示。取得语音资源的开始地址 与结束地址图3.8手动方式播放流程图手动方式播放程序:void PlaySnd_A2 0 0 0(unsigned int Sndlndex,unsigned int DAC_Channal)unsigned int uiStatus;unsigned int uiRet;unsigned int uiKey;unsignedlongulConAddrHighest;unsignedlongulConAddrHigh;unsignedlongulCon_AddrLow;unsignedlongu1Con_AddrLowe s t;unsignedlongulCon_EndAddr;unsignedlongulCon_StartAddr;/语音播放状态/存储语音资源/语音资源的最高字节地址/语音资源的高字节地址/语音资源的低字节地址/语音资源的最低字节地址/语音资源的末地址ulCon_AddrHighest=SP_SIOReadAByte(BASE_START_ADDRESS+Sndlndex*12);/第一个播放文件地址u1Con AddrHighest=u1Con_AddrHighest 2 4;ulCon_AddrHigh=SP_SIOReadAByte(BASE_START_ADDRESS+Sndlndex*12+1);ulConAddrHigh=ulCon_AddrHigh 16;ulCon_AddrLow=SP_SIOReadAByte(BASE_START_ADDRESS+SndIndex*12+2);ulConAddrLow=ulConAddrLow 8;ulCon_AddrLowest=SP_SIOReadAByte(BASE_START_ADDRESS+SndIndex*12+3);ulConStartAddr=ulCon_AddrHighest|ulConAddrHigh/开始地址I ulConAddrLow|ulConAddrLowest;ulConAddrHighest=SP_SIOReadAByte(BASE_END_ADDRESS+Sndlndex*12);ulConAddrHighest=ulCon_AddrHighest 2 4;ulConAddrHigh=SP_SIOReadAByte(BASE_END_ADDRESS+Sndlndex*12+1);ulCon_AddrHigh=ulCon_AddrHigh 16;ulCon_AddrLow=SP_SIOReadAByte(BASE_END_ADDRESS+SndIndex*12+2);ulCon_AddrLow=ulCon_AddrLow=ulCon_EndAddr)文件结束?uiStatus=0;如果文件结束,结束放音break;uiRet=SP_SIOReadAWord(ulCon StartAddr);取得语音资源 SACM_A2 0 0 0 _FillQueue(uiRet);填充解码队列ulCon_StartAddr+;移动资源指针ulCon_StartAddr+;if(uiStatus)/解码(SACM_A2 0 0 0 _Decoder();else停止放音SACM_A2 0 0 0 Stop();)uiKey=Key_Get();if(uiKey!-0)uiStatus=0;*(unsigned int*)0 x70 12=0 x0 0 0 1;3.5更新时间可以使用SPCE0 61A单片机的2 Hz时基中断,在2 Hz时基中断中调用更新函 数,函数要作的就是换算好进位的关系。比如60秒进位1分钟,然后秒清零。更新时间程序如卜:void TimeRun(void)更新时分if(g_uiSecondJhalf=120)(g_uiSecond half=0;uiMinite_L+;)if(uiMinite_L=10)(uiMinite_L=0;uiMinite H+;if(uiMinite_H 二二 6)uiMinite_H=0;uiHour_L+;)if(uiHourH=2)&(uiHour_L=4)(uiHourH=0;uiHourL=0;uiDay_L+;)elseif(uiHour L 二二 10)uiHourL=0;uiHour_H+;3.6设置时间在设置时间时出现动态闪烁效果,这个问题使用4Hz的时基中断改变标志 位,在设置时间函数中根据这个标志位显示或关闭数码管,出现闪烁效果。时间 设置流程图如图3.9所示.开始修改标志清看门狗图3.9时间设置流程图时间设置程序如下:void Set_Time(void)unsigned int uiKey;unsigned int uiTemp;while(l)uiKey=Key_Get();*P_Watchdog_Clear=0 x0 0 0 1;调整分钟if(uiSetflag=1)if(g_Light=1)(DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);)if(g_Light=0)(DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,0);DIG_Set(6,0);)switch(uiKey)(case KEY6:uiSetflag=2;uiKey=0;break;case KEY7:uiMinite_L+;if(uiMinite_L=10)uiMinite_L=0;uiMinite_H+;if(uiMinite_H-6)uiMinite_H=0;)break;case KEY8:uiMinite_L;if(uiMinite_L=Oxffff)uiMinite_L=9;uiMinite_H;if(uiMinite_H=Oxffff)uiMinite_H=5;)break;default:break;)调整小时if(uiSetflag=2)if(g_Light=1)(DIG_Set(3,DatauiHour_H);DIG_Set(4,DatauiHour_L);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);if(g_Light=0)DIG_Set(3,0);DIG_Set(4,0);DIG_Set(5,DatauiMinite_H);DIG_Set(6,DatauiMinite_L);)switch(uiKey)(case KEY6:uiSetflag=3;uiKey=0;break;case KEY7:uiHour_L+;if(uiHour_L=10)uiHour_L=0;uiHour_H+;if(uiHour_H=-2)&(uiHour_L=4)(uiHour_H=0;uiHour_L=0;)break;case KEY8:if(uiHour_H=0)&(uiIIour_L 0)(uiHour_H=2;uiHour_L-3;elseuiHour_L;if(uiHour_L=Oxffff)(uiHour_L=9;uiHour_H;if(uiHour_H=Oxffff)uiHour_H=0;)break;default:break;)调整日if(uiSetflag=3)uiTemp=*PNT_Ctrl_New;/关闭2 Hz中断,不显示秒针uiTemp&=Oxfffb;*P_INT_Ctrl_New=uiTemp;uiTemp=*P_IOB_Buffer;uiTemp&二 Oxfffb;*P_IOB_Data-uiTemp;if(g_Light=1)DIG_Set(l,DatauiMonth_H);DIG_Set(2,DatauiMonth_L);DIG_Set(3,0 x0 0 77);DIG_Set(4,DatauiDay_H);DIG_Set(5,DatauiDay_L);DIG_Set(6,0 x0 0 7f);if(g_Light=0)(DIG_Set(l,DatauiMonth_H);DIG_Set(2,DatauiMonth_L);DIG_Set(3,0 x0 0 77);DIG_Set(4,0);DIG_Set(5,0);DIG_Set(6,0 x0 0 7f);)switch(uiKey)case KEY6:uiSetflag=4;uiKey=0;break;case KEY7:uiDay_L+;if(uiDay_L=10)(uiDay_L=0;uiDay_H+;)if(uiDay_H=3)&(uiDay_L=2)(uiDay_H=0;uiDay_L=1;break;case KEY8:uiDay_L;if(uiDay_L=Oxffff)uiDay_L=9;uiDay_H;if(uiDay_H=Oxffff)uiDay_H=0;)if(uiDay_H-=0)&(uiDay_L=0)uiDay_H=3;uiDay_L=1;)break;default:break;)if(uiSetflag=4)调整月if(g_Light=1)(DIG_Set(l,DatauiMonth_H);DIG_Set(2,DatauiMonth_L);DIG_Set(3,0 x0 0 77);DIG_Set(4,DatauiDay_H);DIG_Set(5,DatauiDay_L);DIG_Set(6,0 x0 0 7f);if(g_Light=0)(DIG_Set(l,0);DIG_Set(2,0);DIG_Set(3,0 x0 0 77);DIG_Set(4,DatauiDay_H);DIG_Set(5,DatauiDay_L);DIG_Set(6,0 x0 0 7f);)switch(uiKey)(case KEY6:uiSetflag=5;uiKey=0;break;case KEY7:uiMonth_L+;if(uiMonth_L=10)uiMonth_L=0;uiMonth_H+;if(uiMonth_H 1)&(uiMonth_L=3)(uiMonth_H-0;uiMonth_L=1;break;case KEY8:uiMonth_L;if(uiMonth_L=Oxffff)uiMonth_L=9;uiMonth_H;if(uiMonth_H=Oxffff)uiMonth_H=0;)if(uiMonth_H-=0)&(uiMonth_L=0)uiMonth_H=1;uiMonth_L=2;break;default:break;)if(uiSetflag=5)调整年if(g_Light=1)(DIG_Set(1,0 x0 0 40);DIG_Set(2,DatauiYear_H);DIG_Set(3,DatauiYear_MH);DIG_Set(4,DatauiYear_ML);DIG_Set(5,DatauiYear_L);DIG_Set(6,0 x0 0 40);if(g_Light=0)DIG_Set(1,0 x0 0 40);DIG_Set(2,0);DIG_Set(3,0);DIG_Set(4,0);DIG_Set(5,0);DIG_Set(6,0 x0 0 40);)switch(uiKey)case KEY6:uiSetflag=7;uiKey=0;break;case KEY7:uiYear_L+;if(uiYear_L=10)uiYear_L=0;uiYear_ML+;)if(uiYear_ML=10)uiYear_ML=0;uiYear_MH+;)if(uiYear_MH-=10)uiYear_MH=0;uiYear_H+;)if(uiYear_H-10)uiYear_H=0;uiYear_MH=0;uiYear_ML=0;uiYear_L=0;)break;case KEY8:uiYear_L;if(uiYear_L=Oxffff)(uiYear_L=9;uiYear_ML;if(uiYear_ML=Oxffff)(uiYear_ML=9;uiYear_MH;if(uiYear_MH=Oxffff)(uiYear_MH=9;uiYear_H;if(uiYear_H 二一Oxffff)(uiYear_H-9;if(uiYear_H-=0)&(uiYear_MH-0)&(uiYear_ML-=0)&(uiYear_L=0)uiYear_H=9;uiYear_MH=9;uiYear_ML=9;uiYear_L=9;break;default:break;)if(uiSetflag=7)退出设置模式,重新初始化uiSetflaguiSetflag=8;uiKey=0;uiTemp=*PNT_Ctrl_New;/关闭2 Hz中断,不显示秒针uiTemp|=C_IRQ5_2 Hz;*P_INT_Ctrl_New=uiTemp;uiDisp=0;if(uiSetflag-=8)(uiSetflag=0;break;参考文献1罗亚非.凌阳16位单片机应用基础M.北京:北京航空航天大学出版社,20032 薛钧义,张彦斌.凌阳十六位单片机原理及应用M.北京:北京航空航天大学出版 社,20033李维,郭强.液晶显示器件应用技术M.北京:北京邮电学院出版社,19994何立民.单片机应用系统设计M.北京:北京航空航天大学出版社,19985雷思孝等.单片机原理及实用技术:凌阳十六位单片机原理及应用M.西安:西安电子科 技大学出版社,20046房小翠,王金凤.单片机实用系统设计技术M.北京:国防工业出版社,19997高吉祥.基本技能训练与单元电路设计M.北京:电子工业出版社,20078赫建国,郑燕,薜延侠.单片机在电子电路设计中的应用.北京:电子工业出版社,20069何小艇,童乃文,章守苗等.电子系统设计.杭州:浙江大学出版社,199810 CHAO J.An Experimental Investing into the Performance of GPS-based Vehic Positioning in Very Dense Urban AreasJ.Journal of Engin- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子信息工程 毕业设计 公交车 报站
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【曲****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【曲****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文