毕业设计题:电子桩考仪的设计.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流毕业设计题:电子桩考仪的设计.精品文档.毕业设计题:电子桩考仪的设计目 录一、设计任务与要求21.1 设计概述21.2 设计要求2二、设计方案的选择3三、硬件电路设计83.1 整系统电路 83.2 各模块电路 8四、印刷板电路的设计与制作 144.1 整个系统印刷板电路图的设计144.2 组装说明15五、软件设计165.1 总程序流程设计 165.2 源程序设计 17六、系统电路调试与检测 17七、结论及个人心得18八参考文献 18附件1电子桩考仪设计摘要:此处的电子桩考仪设计是采用STC89C52单片机小系统、LX06LA语音录放芯片、74LS138的3-8译码器,再加上语音放大TEL2025B芯片,激光发射与光敏接收组成的检测电路等各部分综合设计而成的一个系统。其中单片机主要是完成模型现场的信号发送与接收并作相应的判断;在做出判断后,它会有相应的动作。比如是否控制继续采样或者播放相应的语音,可以说我们加入了单片机控制系统就解决了本设计系统大部分问题。考虑到设计经济的要求,我们用单段可录可循环播放语音的语音芯片LX06LA。因由语音芯片来完成直接驱动喇叭,声音会较小,故加入信号放大器来完成功率驱动的目的。考虑到节省控制芯片的控制端口,我们用译码器来实现这个目的;当然我们可用4-6译码器做,考虑到我们手边正有138,故我们采用了此芯片来做这个设计。因模拟考场的实际情况,我们试过用红外发送与接送方法,但红外的发射有较大的发射范围,会影响到接收部分的灵敏性,于是果断采用激光发送光敏接收的方法,来提高检测的准确性。就这样通过优化组合设计,我们就能完成此次电子桩考仪模型的设计。关键词: STC89C52单片机小系统、译码器、语音录放、语音放大一、 设计任务与要求1.1 设计概述设计并制作一个模拟桩考场地(如图1所示)的自动判别系统。能实现对科目二倒桩移库考试的所有犯规动作进行全自动判断和语音提示。图1 模拟桩考场地1.2 设计要求 1.2.1 基本要求(1)按一定的比例设计一个模拟的倒桩移库场地(含框架、发射光线、接收光线等组成部分)。本部分由选题同学共同设计制作并共享使用;(2)该控制系统能实现对科目二倒桩移库考试的所有犯规动作进行全自动判断和语音提示(具体包括碰杆、碰线、移库不入等犯规);(3)该控制系统能实现对科目二倒桩考试合格者作出“考试合格”的语音提示。1.2.2 发挥部分(1) 可通过远程电脑模拟控制现场情况,例如远程启停等;(2) 实时显示车辆在场地上的位置;(3) 能存储考生的成绩;(4) 其他。任务简析:从系统设计的要求,我们可知其是一个面向汽考市场的现代化产品之一。目前从国内类似的电子产品市场,可以看出此产品的发展还是有比较大空间的。但我们从实际出发,将任务比做为一个简易的“电子考桩仪”模型。将要求简化后,我们可做之,也能真正让我们的设计与制作能力有所体现。对于要求中要做一个倒桩移库场地,我们根据指导老师指点做之;即共同做一个等比宽长的考场场地。针对于考试中所犯的错误进行判断和进行语音提示的问题,我们用激光发射与接收及喊话喇叭来完成。对于在考试中未出现任何的错误考生,在考试时间到时,用喊话喇叭发出“考试合格,请挂空档下车”的语音提示。(注意:考试时间限定为5分钟)至于发挥部分我们还是可以做一些的。比如说考试时间提示,我们可用语音加显示的方法。再比如说考场状态的指示,用指示灯显示的方法可以完成之,等等。二、 设计方案的选择 2.1 方案一:基于PC、输出语音功放、LCD显示、声光报警、MiniARM工控板、GPRS模块、数据采集器、场地传感器阵、汽车状态检测器综合的设计方案(图2)方案一的设计原理方框图原理框图简析:图2为用PC与MiniARM工控板为核心外加输出语音功放、LCD显示、声光报警、GPRS模块、数据采集器、场地传感器阵、汽车状态检测器综合设计的一个完全智能化的电子桩考仪系统。其特点是能通过PC对语音功放及喇叭输入的语音信号控制,以达到各种语音播放来界定考试现场各种可能状态的功能。其控制的依据是通过PC上的人性化设计软件从PC上的硬件与MiniARM工控板通信所得的数据。其有两处显示,一处是PC上控制软件界面上含车的模拟位置及各种状态的显示;另一处是直接由工控板给以数据控制的LCD屏显示。(主要有考试状态、考生号、时间等内容)若出现考试犯规问题时工控板会与此同时给出相应的声光报警信号。关于犯规的数据依据,则是由GPRS模块、数据采集器、场地传感器阵、汽车状态检测器给出,其中场地传感器主要用来界定汽车是否压线、碰杆及移库不入等犯规的内容,根据现场的实际情况它会产生相应的各种电参量,以提供给数据采集器控制采集。工控板主要以通信的方式来对数据采集器做相应控制,以获得相应的采集数据,并在其内部进行数据处理。检测系统中,汽车状态的检测主要是:车是否熄火及控制,是否多次踩刹车及车在现场的位置确定等判断。它检测到的数据是传给车载GPRS模块的,通过GPRS通信其与控制处的接收模块进行数据交换。工控板是从接收模块处取得数据并对其进行处理来做出车运行状态的确定与判断的,且将所得结果送PC、LCD及声光报警装置。这个系统智能化程度高,对软硬件要求也相应较高,但其做出的各项功能是相对比较完善的。在此之外我们还是要注意到其不足之处。2.2 方案二:基于HZ8050型电子考桩仪系统的综合设计方案 (图3)方案二的设计原理方框图 原理框图简析:图3是用分模块的方式进行电子考桩仪系统进行设计的方案。其主要有控制中心模块(有LED显示屏部分、主控计算机部分、打印机部分以及车管专用的服务器部分构成)、考场设备模块(有考场评判站部分、监控摄像设备部分、红外检测部分、龙门架以及桩杆检测部分构成)、考车设备模块(有考车信号检测部分、车载仪部分以及自动熄火控制部分构成)三大模块组成。系统功能是能通过控制中心、考场设备以及车载设备来完成考试现场的各种信息情况采集并做出相应的评判和处理。其中控制中心的主控计算机为核心部分,其主要是监视现场的实际情况并做出相应的指示。考虑到其主要工作任务,故加进了LED显示屏做同步显示。打印机主要是打印考生的成绩及相关文件。为了便于考试主控中心与车管所联系,专门加入了车管所服务器及专用网。控制中心的所得考试信息主要是从考场设备的考场评判工作站取得,而考评工作站是从通过有线与无线数据的信息传送方式来得到信息的。较详细的有:一、其可以从监控摄像设备中取得现场的实时录像数据;二、其可以从红外检测、龙门架及桩位检测中得到考车是否压线、碰杆、移库等相关检测信息。以上是考评站通过有线信息传输方式得到的,而车载设备中的考车状态信号,主要是通过车载仪收集检测考车信号与采集控制自动熄火装置的信号并由无线发射模块将所得数据传给考评工作站,当然这是一个可双向通信传输数据的控制模式。这个设计系统较好的完成了倒桩考试中对考生考试要求的评判,在电子设计工作中它是一个可借鉴而且是较完善的设计系统方案。整个系统设计方案其功能是比较完善的,但其造价也应是不低的。我们要能看出此系统设计中的不足之处。2.3 方案三:基于指纹识别、微机管理、网络交换控制、音频放大及播放、视频采集、现场摄像、红外电子桩杆检测、车载无线监测、考试服务系统的综合设计方案(图4)方案三的设计原理方框图原理框图简析:图4为用指纹识别、微机管理、打印设备、网络交换控制、音频放大及播放、视频采集、现场摄像、红外电子桩杆检测、车载无线监测、考试服务系统等综合的设计方案原理方框图。其主要分两个大的模块,一是控制室模块(有指纹识别部分、微机管理部分、网络交换、考试服务系统、无线网、打印、照相、音频放大设备等组成);二是考试场地模块(主要有现场摄像头、高音喇叭、红外电子桩杆、车载检测设备、无线熄火控制、IO采集及无线IO接口模块等组成)。两模块主要是通过有线与无线两种通信方式进行数据的传输。这个设计方案能完成除倒桩考试所规定的各项考试规范外,还需要特别说明的是其具有防代考的指纹识别、照片对应识别的功能。因考虑到控制中心与考场实地有较大的距离问题,特别加入RS232转485转换来解决这个问题。这个系统基本上能完成汽车倒桩考试的各项要求,但我们也应看到改系统设计的复杂性,制作不经济性等不好处。2.4 方案四:基于多机控制、现场监控及显示、数据无线发送与接收、外部网络连接、考试文件打印、考车设备、监控数据存储的综合设计方案(图5)方案四的设计原理方框图原理框图简析:图5为用多机控制、现场监控及显示、数据无线发送与接收、外部网络连接、考试文件打印、考车设备、监控数据存储等综合设计方案的原理方框图。其由两个大的模块组成:一是控制室模块;二是现场监控检测模块。两个模块主要通过有线、无线的数据传输方式进行数据传输。这个设计方案控制部分比较的特别,由主控机实现的多机控制是该系统方案的一个突出特点。其还有独立的监视录像控制机,以实现现场的监控显示并对录像数据存储的模块,这样方便资料的调用及审查。其还可以通过路由器完成考试系统与外网的连接。其考试场地的LED显示屏,有专门的LED控制机来控制。控制机通过无线收发网来完成对考车的具体情况数据采集,当然在考车上也有无线数据发送接收器设备。针对于不同的考生,有专门的信息录入机来完成考生信息的录入工作;与信息录入机相连的打印机可以在考生当场考试结束后就立即打印相应的考试成绩及相关文件。从整体设计来看,该控制系统的控制机构是通过四个控制机联网来完成系统核心组建的,其给系统的扩建工作带来较大的余地。其是一个比较完善的电子考桩仪设计方案。但我们要看得到它的设计不足之处。2.5 方案五:基于语音、PLC为核心的控制设计方案(图6)方案五的设计原理方框图原理框图简析:图6为采用语音、PLC为核心的控制设计方案原理方框图。该方案设计的突出特点是系统设计简单,基本能完成对倒桩考试的各种犯规动作相应的语音提示。其控制过程是这样的:由按键来完成系统的开始、结束或复位等操作,考试时,若出现犯规,则检测系统会相应监测并采样回数据,经过控制系统的处理判断做出相应的语音提示,这样我们就可以模拟出现场考试的过程了。由于硬件设计的局限性,这个设计方案固然存在不足之处,比如PLC控制系统的设计不易。但我们从实际出发,这个方案还是可行的。2.6 方案六:基于语音芯片、语音放大、激光发射与检测、单片机为控制核心的设计方案(图7)方案六的设计方框图原理框图简析:图7为用语音芯片、语音放大、激光发射与检测、单片机为控制核心综合的设计方案原理方框图。该设计系统具有制作简单且方便制作,也基本能完成倒桩考试所要求的各项规则进行语音提示的特点。其工作过程:实时光敏检测于模拟考场上取得检测信号送给单片机控制系统并在控制系统中不断进行判断;若犯规则做出相应的控制信号来控制语音芯片,让其播放相应的语音,恐语音芯片难以驱动喇叭,于是加入了语音信号放大器;若没有犯规在规定的考试时间之后一刻循环播放“考试合格,请挂空档下车”的语音提示。在这之后等待系统的复位,以让系统再次重新自检后工作。2.7 方案比较与选择从以上六个方案的简要分析我们可以知道;方案一到方案四,都是现实生活中各处考场在实际应用的电子考桩仪系统设计原理方案。我们清楚的是它们的整体系统设计难度大,对软硬键的设计挑战性也大,这些系统建设的投资也是不低的,故在此设计中不采用这四个方案。但我们通过对它们的概要分析,让我们增长了不少的有关正真电子考桩仪系统设计与其工作原理的相关知识,也给我们做这个电子考桩仪提供了较多的思路,大有好处。对于方案五,它是用PLC作为核心控制器的控制系统,其控制性能稳定,抗干扰能力强;从这方面来说,可以说其是做控制系统的不二选择,但是从制作的工艺难度来说,这个方案又是可作第二位的系统设计方案。因此我们提出可做性较大的设计方案六,它是采用单片机作为控制核心的电子桩考仪系统设计方案,也因我们之前做过相应控制核心系统的东西,对其应用起来也比较的方便,更因此方案对于此设计要求能灵活控制的综合考虑,我们在本系统设计中也结合了实际情况的基础上,决定采用方案六作为此次毕业设计的设计方案。三、硬件电路设计3.1整系统电路3.1.1 控制整机电路(图8)控制部分整机系统设计电路简析: 此电路图(图8)是根据方案六得出的。它是以单片机为核心设计的电子考桩仪控制系统电路图。它主要用到了单片机、程序下载电平转换、74LS138译码、语音录放几个关键电路。其中单片机主要完成激光输出控制、光敏输入检测、语音播放控制等工作,而MAX232主要完成在程序下载时进行电平转换的任务;138则主要完成译码输出控制激光发射的任务;语音录放主要完成当单片机发出控制信号时,放出相应的语音提示的任务。综合以上的一些关键控制电路,我们就可以完成这个设计。另外还需要说明的是,系统电路中我们还加入了考试开始开关、系统复位开关、人性化考试控制开关,还有系统自检指示灯。相信在加入了这些后,系统的控制会更完善。3.2各模块电路3.2.1 核心控制电路(图9)核心控制电路图电路简析: 分析图9知,这是本系统设计的核心控制部分。选择它主要是基于这几点:一、方便控制,修改方便,其适于扩展性设计。二、编程容易,用C、汇编均可行。三、其工作性价比较高,工作稳定。四、控制端口较多,方便其它的扩展功能性设计。基于以上几点的考虑我们选择Atmel公司的MCS-51系列AT89C52 单片机做为核心控制器件。这个器件基本可以完成本设计的控制任务。(1) STC AT89C52外部引脚如下图所示(图10)单片机芯片外部引脚图(2) STC AT89C52引脚简析 1. VCC(PIN40):电源(+5V); 2. GND(PIN20): 接地; 3. XTAL1和XTAL2(PIN18、19):接晶振; 4. P0口(3239):双向I/O口;5. P1口(18):准双向通用I/O口;6. P2口(2128):准双向通用I/O口;7. P3口(1017):多用途端口,可按每位定义的第二功能操作;8. PIN30引脚:地址锁存信号输出端;9. RST(PIN9):复位信号输入端;10 .PIN31引脚:内部/外部程序储存器选择线;11. PIN29引脚:片外程序储存器选通信号端(低电平有效)3.2.2 时钟源电路(图11)晶振电路电路简析:分析图11知,这个电路为单片机外部提供振荡源内部提供反向放大器自激振荡的工作方的电路,时钟发生器对振荡脉冲进行二分频。它还有另一种时钟源提供方式,即将XTAL1接地,外部时钟接到单片机的XTAL2上的外部时钟提供方式。通过查资料得知C1C2的取值范围为(15-30pF)一般来说,要求C1C2的值是一样的,有资料谈到可将晶振起振电容C1、C2中的C2去掉,这样有利于晶振起振,因为C2可能会造成下载程序不成功,但是我们暂时未遇到此种情况,此点还有待验证。Y1的最高工作晶振频率为24MHz。选择这样的时钟源提供方式比由外部时钟输入提供方式要好,主要是因其工作稳定性高,性价比也较高。3.2.3 电源电路(图12)电源电路电路简析:分析图12知,做系统设计要求电源比较稳定。故我们采用变压器变压经整流滤波后,再用CW7905(额定输出功率为7.5W,额定电压输出-5V,输出电流为1.5A)稳压为5V后的方式来提供电源。当然我们也想过用开关电源来做系统电源,但发现用它做电源不经济的问题,故不用这个设想。3.2.4 复位电路(图13)复位电路电路简析: 分析图13知,其是单片机人工复位的复位电路。当VCC上升时间不超过1ms,通过在VCC与RES引脚之间加的一个10uF的电容,就可以实现自动上电复位,即打开电源单片机就自动复位一次 。3.2.5 语音录放及语音放大电路(图14)语音播放电路电路简析: 分析图14知,其是系统设计的录放电路。(其是手持式喊话器的整机电路,其只能经行单段的语音可循环播放工作)其采用可录放语音芯片LX06LA完成语音播放工作。通过实际的使用发现其录放音效果还比较满意。因语音信号输出负载能力比较小,故在其后面加入语音放大芯片TEA2025B,使得整机的负载驱能力大大提高。我们可通过调节电位器R17来调节喇叭的声音大小。其还有电源、录音、放音、音乐播放四个控制开关。比较特别是,特别音乐播放不是通过语音芯片完成的,而是由XC64DC可自调整电容容量的振荡器完成的(其外型类似三极管),给其上电它就可以输出特别的音乐信号。在这里我们可用喊话器的自带电源,在其中接入一个8050三极管于放音开关上,再从其基极与地上接出两根控制线给单片机控制,我们就能实现对它进行放音控制。可惜的是它不能够实现多段语音的录放工作(只能单端的录放),这是使用它的不足之处。因我们只做“模型”,故这样做也是可以的。(最多是多用几个喊话器来进行语音播放)3.2.6 程序下载电平转换电路(图15)电平转换电路电路简析: 分析图15知,此电路采用一般开发板程序下载(PC电平转MCU电平)电路,其应用完全在本系统中得到了实现,而且其工作稳定性在系统中也得到较好体现,电路中PIN6PIN16接了消除高频干扰的瓷片电容。其78脚是与发/接PC数据的连接专用引脚,而其10、9脚是与发/接单片机数据的专用引脚(其保存了8脚的数据原样输出与7脚的数据原样接收)且将电平降为±5V(或±30V)左右。这样就可以让单片机与PC之间完成数据的接收与发送工作即通信。(1) MAX232外形引脚图(图16) MAX232外部引脚图(2) MAX232引脚简析 1. PIN16:单+5V电源工作; 2. 其PIN 7、PIN9(和PIN12):可转换电平输出脚; 3. 其PIN 8PIN10(和PIN13):可转换电平输入脚;3.2.7 考场电路(图17)模拟考场设计电路电路简析: 分析图17知,此原理图是根据倒转考试考场要求得出的。它是以激光发射与光敏接收为核心设计的电子考桩仪考场电路。其主要布控线及位置如下图所示:(图18)模拟考场及小车考试线路示意图这一部分电路是制作小组共同制作的。其是用简易激光发射与光敏接收驱动电路制作的。从模拟考场示意图中我们可以看出,场地中设置了10个激光发射与光敏接收;即10个压线监测。小车要求按示意图中路线进行考试,否则算是犯规。注意:此处的模拟考场上的检测信号是通过RJ45插座接口外加一对一网线(8根的)与控制板连接起来的。注意我们要多加一根地线,以作为信息回路。3.2.8 激光发射驱动电路(图19)激光发射驱动电路电路简析: 分析图19知,此电路为考虑到我们是用扫描的方式来完成激光的发射驱动的。它是由74LS138译码器译码与9013三极管取反组成。我们也想过用反相器集成块74LS14来做这个部分。只因我们身边有译码器与9013,故我们采用了它们来做。(1) 74LS138外形引脚图(图20) 74LS138外部引脚图(2) 74LS138引脚简析 1. PIN1、2、3:译码地址输入; 2. PIN 4、5:选通端(低电平有效); 3. PIN 6:选通端(高电平有效); 4. PIN7、PIN915:译码输出(低电平有效); 5. PIN8与PIN16:分别为地与电源引脚;四、印刷板电路的设计与制作4.1 整个模型印刷板电路的设计4.1.1 设计制作的流程基本流程框图如下: (图21) 制板流程图4.1.2 设计的整机系统电路图 详见(控制电路见图8,模拟考场电路见图17)。 4.1.3 控制部分系统PCB图(图22)控制部分整机系统PCB4.1.4 模拟考场电路PCB图(图23)模拟考场系统PCB说明:1.喊话器电路的PCB我们不在此给出,我们用已有的即可。4.2 组装说明整系统电路PCB(图22、图23)是指在保证其正常工作条件下的PCB图,连接时,可视具体元器件的安装情况自由调整。(注:图22、23仅为元器件安装参考PCB图)用到的器件说明请见下列器件表元器件(名称/类型)参数(特性)/数量STC AT89C52单片机1块MAX2321块发光二极管2个光敏电阻10个激光头10个电阻200/31个电阻1K/2个电解电容50V100uF/1个电解电容50V10uF/1个(NPN)三极管9013/10个(PNP)三极管8050/21个无极性电容104/5个无极性电容22pF/2个晶振11.0592MHz/1个按键3个74ls1382块(串口下载接口、DB9封装)母头(九针)1个自锁开关1个USB接口1个STC AT89C52插座1个MAX232插座1个74ls138插座1个九针排阻10k/1个发射激光头10个光敏电阻10个RJ45插座6个一对一网线(8线的)4根(1.5m)单列排针3块(120针)排线4线合1型/1个跳线独立型/4根五、软件设计5.1总程序流程设计 根据设计的要求,我们给出如下较详细的程序流程图(见图24)(图24)整系统的程序设计流程图简要说明:我们将整个系统分为几个程序模块,主要有系统上电初始化模块;上电后的自检模块;humanity标志置位判断、工作前的初始化、自检指示、开始开关判断模块;humanity工作模块;(正常)工作模块。通过这些程序模块的组合,我们就能完成设计所要求的大部分任务了。5.2 源程序设计我们是采用Keil uVision2编程软件编写这个设计程序,使用的是C语言编程。因实际的硬件与控制板的连接比较的灵活,故我们的连接要以此程序说明为依据方可。根据程序设计流程图(图24)我们得出相关较详细的源程序(详见附件1)六、系统电路调试与检测6.1 激光线控制板的调试与检测调试/检测项调/测试内容使用的仪器或方法调/测试结果1单片机小系统程序执行的硬件情况硬件执行程序情况正常274LS138周围电路的调测万用表(用万用表测试控制板的各处电参数)经测试发现激光发射控制部分工作正常(有些意外的是,PC的+5V电源接上后,会有0.7左右的压降即控制部分的电源电压变低,比较严重时会影响程序的下载,仔细分析后发现主要是电源电压不稳定造成)3激光发射驱动与光敏接收电路万用表(用万用表测控制板的各处电参量)各处工作正常6.2 软件的调试与检测调试/检测项调/测试内容使用的仪器或方法调/测试结果1最小系统的程序下载及控制板程序执行用PC、Keil uVision2编程软件编写测试程序进行调试,用万用表测试(关键的测试点)程序的下载成功,通过了测试(控制板程序的执行亦可行) 由于硬件的设计基本通过测试,程序的设计与硬件连接还算可以,硬件的焊接因PCB的设计经验不足及时间比较的紧而出现了一些小问题,(主要是控制板的跳线比较多,处理得不怎么好)还好此次的毕业设计硬件调试还是比较的成功。从做这个设计的整个过程来看,它让我们深刻的认识到做设计时要瞻前顾后考虑到每一个细节,要做多次的PC仿真(以给总结判断带来依据)这也更加证实了平时我们要多做一些制作来充实自己动手能力的说法。七、 结论及个人心得7.1 结论1. 此设计在做完时,经过仔细分析后发现还是存在一些问题不能解决。(比如软件方面的,在程序编写时的思想欠缺的问题)2. 此系统程序的编写有些复杂(当然有同学建议用“PLC做核心控制器件”来进行方案设计,这是一个进行较复杂硬件设计,较容易程序软件设计的好建议,但时间紧,恐难做出,故没有采纳这个方案),硬件的制作出现了一些问题。在制作时,也让我感受到实际的制作能力有所下降。因比较重视这次设计,故借鉴以前的一些制作经验,解决了较多的常规问题。3. 本来这个设计,我们打算用单片机、ARP9600语音芯片、74HC154译码器、CT74LS151数据选择器等元件的综合设计方案来设计这个系统的。这样可以加强了我们对新元器件学习及应用的兴趣。但因时间短,语音芯片较贵等因素,故没采纳它。(也只能在以后的学习工作中希望能对它加以应用一番)7.2 个人心得经过近两周的实践设计与制作,我的感受与体会都很多。首先要感谢指导老师的指点迷津,让我获益匪浅,也感谢帮助过我的各位同学,让我收获不少。此外,在实物制作的过程中也发现了自己的很多不足与缺点。还发现,实践操作比理论分析难得多(就这次设计而言)其中在做板子和焊接,用了很久,最后也没能得到多少改善。从这当中我也认识到问题的关键在于自己不完善的知识而造成麻烦,即使得在制板和焊接时效率很低,这也深深地让自己认识到知识积累不全面也不扎实的后果。也就是说我们应该多多总结,多多反思,多从自己身上找原因,多借鉴别人成功的经验,才能真正的学到一些知识和技能。最后,还多亏在指导老师指导下以及同学们的帮助下,解决了比较多的实际问题,在此我真心表示诚挚的感谢!八、参考文献1. 邓木生 主编.电子技能训练.北京: 机械工业出版社,20022. 杨志忠 主编.数字电子技术.北京: 高等教育出版社出版,20033. 胡燕如 主编 耿苏燕 副主编.模拟电子技术.北京:高等教育出版社,2004.24. 马忠梅 籍顺心 马凯 马岩 编著.单片机的C语言应用程序设计. 第四版. 北京: 北京航空航天大学出版社,2007.1 5. 谭浩强 著.C程序设计.北京:清华大学出版社,2005.7附件1源程序:#include<reg52.h>/*初始化部分*/#define uint unsigned int#define uchar unsigned char#define M 20bit time_end=0;bit rxh_1=0,rxh_2=0;bit flag_1=0,flag_2=0,flag_3=0,flag_4=0,flag_5=0,flag_6=0,flag_7=0;bit A_1=0,A_2=0,A_3=0,A_4=0,A_5=0,A_6=0,A_7=0,A_8=0,A_9=0;bit A_10=0,A_11=0,A_12=0,A_13=0,A_14=0,A_15=0,A_16=0,A_17=0,A_18=0;bit M_L1=0,M_L2=0,M_L3=0,M_L4=0,M_L5=0,M_L6=0,M_L7=0,M_L8=0;bit M_L9=0,M_L10=0,M_L11=0,M_L12=0,M_L13=0;bit yk_1=0;flag_A1=0,flag_A2=0,flag_A3=0,flag_A4=0,flag_A5=0,flag_A6=0,flag_A7=0,flag_A8=0,flag_A9=0,flag_A10=0,flag_A11=0;sbit renxinghuaanjian=P17;/*renxinghua开关*/sbit start_1=P31;/*开始开关*/sbit zijian=P37;/*自检灯控制端*/sbit P3_2=P32;sbit P2_7=P27;sbit P2_6=P26;sbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;sbit P0_3=P03;sbit P0_4=P04;sbit P0_5=P05;sbit P0_6=P06;sbit P0_7=P07;uchar count_1=0,count_2=0;uchar second,minute;uchar code fashe_1=0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88, 0x89;/*发射的138控制段码*/void init_1()/*自检前的初始化*/ P0=0xFF; P2=0x40+0X80;/*照顾P2.7-2.6,亦照顾P2.5-P2.0处所接的喇叭*/ P1=0x80;/* 照顾到P1.7(renxinghua控制开关) */ P3=0x02;/*照顾开始开关与自检灯*/ zijian=1;void init_2()/*开始开关按下后的初始化*/ rxh_1=0;rxh_2=0; P0=0xff;/*要取数据*/ P2=0xc0;/*要取数据*/ P1=0x00;/*屏蔽掉renxinghua开关(P1.7)*/ P3=0x00;/*关开始开关与自检灯*/void init_3()/*中断初始化*/TMOD=0x01; /*T/C0工作方式1,16位的计数器*/TH0=(65535-50000)/256;TL0=(65535-50000)%256;ET0=1; /开定时器0溢出中断允许EA=1; /开CPU申请中断允许TR0=1; /*开中断 */void timer0() interrupt 1 using 1/*工作方式1,使用第1组16位特殊功能寄存器*/TH0=(65535-50000)/256;TL0=(65535-50000)%256; count_1+; if(count_1=M) count_1=0; if(M_L4=1) count_2+; if(count_2=10) count_2=0; yk_1=1;/*4线被挡10s后,此处做标志位*/ second+; if(second=20) /*为了调试而设置的(设20s)!*/ flag_6=1; if(second=10) /*为了调试而设置的(设15s)!*/ flag_7=1; if(second=60) second=0; minute+; if(minute=5)/*5分钟累加计时*/ time_end=1; /*设置标志位时间*/ EA=0;/关CPU中断 ET0=0; /关T0中断 TR0=0; /关T0/*工作部分*/void rxhgz()/*renxinghua工作*/ void voice(); zijian=0; while(1) P0=P1=P2=P3=0x00; if(flag_6=1) /*为了调试而设置20s!*/ voice(); /*考试时间到,考试合格,请挂空挡下车(结果为P2.0为1)*/ /调试成功! / if(time_end=1) /*真正的工作用此!*/ / flag_6=1; / voice(); /*考试时间到,考试合格,请挂空挡下车*/void uwork()/*正常工作*/ void delay_1(uint z) ; void voice(); uchar j,cj2; zijian=1; while(1) for(j=0;j<10;j+) P1=fashe_1j; if(j<8) cj2=P0; else if(j=8)|(j=9) cj2=P2; delay_1(120); /*延时.*/ if(P1=0x84) if(cj2!=0xef) / flag_1=1;voice(); /*判5xian*/ if(P1=0x85) if(cj2!=0xdf) / flag_1=1;voice(); /*判6xian*/ if(P1=0x86) if(cj2!=0xbf) / flag_1=1;voice(); /*判7xian*/ if(P1=0x87) if(cj2!=0x7f) / flag_1=1;voice();