收藏 分销(赏)

基于单片机的自动停车收费系统完整论文.doc

上传人:天**** 文档编号:3680747 上传时间:2024-07-13 格式:DOC 页数:30 大小:239.91KB
下载 相关 举报
基于单片机的自动停车收费系统完整论文.doc_第1页
第1页 / 共30页
基于单片机的自动停车收费系统完整论文.doc_第2页
第2页 / 共30页
基于单片机的自动停车收费系统完整论文.doc_第3页
第3页 / 共30页
基于单片机的自动停车收费系统完整论文.doc_第4页
第4页 / 共30页
基于单片机的自动停车收费系统完整论文.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、摘 要介绍基于AT89S52单片机的一款停车场自动停车收费管理系统,该自动停车收费系统采用比传统停车计费方式更优越的红外线检测计费方式,采用红外线检测计费方式,所需存储容量小,具备了自动开启关闭大门功能、自动计费功能、显示功能(显示停车场状况)、查询功能,而且收费方式可以调节,使系统更具灵活性。该自动停车收费系统操作简单,价格低廉,安装调试方便,很好地解决了临时停车场的管理收费问题。整个自动停车收费管理系统操作简单、价格低廉、安装调试方便,能够满足管理临时停车场的要求。本系统的实际开发使用将大大节省临时停车场的管理费用及人手,提高临时停车场的利用效率。此外,该自动停车收费管理系统还可以方便地实

2、现信息加密和各种功能扩展,通过改进可成为通用型停车场收费管理系统。关键词:单片机;停车场;自动停车收费系统ABSTRACTThe management system introducing that one money parking lot automation motor stoppage of monolithic machine charges owing to AT89S52, is the system parking voluntarily chargings turn to adopt the plan parking ratio tradition to waste more

3、 advantageous way infrared ray detecting plan fee way , adopt infrared ray to check plan fee way, required memory capacity has been small , have had the function (situation demonstrating parking lot) , inquiry function opening automatically closing the entrance door function , the automation meter f

4、ee function , showing, and charge way is not bad adjust , make flexibility have more systematically. That automation motor stoppage charges systematically handling a simplicity , price is cheap , the installation debugging goes to the lavatory, problem having resolved charge for provisional parking

5、lot administration very good. Charge for entire automation motor stoppage manages the system operation simplicity , price is cheap , assembles a debugging to go to the lavatory. Be able to satisfy the call for managing provisional parking lots. Originally systematic reality develops administration c

6、ost and hand being put into use will economize provisional parking lot greatly , improves provisional parking lot utilization ratio. Besides, be the management system parking voluntarily chargings turn to be able to realize encrypted and various information function expansion conveniently, charge fo

7、r parking lot manages system by improving but becoming the type being applied or used universally.KeyWords:Monolithic machine; Parking lot; Charge for automation motor stoppage is systematic目 录1引言12课程任务32.1 系统框架32.2 工作流程43主要的功能元器件介绍53.1元器件介绍53.1.1 74LS13853.1.2 LM35863.2 LED显示部分73.2.1 LED显示器74单片机AT8

8、9S52简介84.1 AT89S52的引脚及功能84.1.1 I/O口:94.1.2 P3口的第二功能104.2 特殊功能寄存器104.2.1 看门狗定时器114.2.2 定时器 2125程序设计165.1 如何进行程序设计165.2 程序流程图165.3 系统程序17结 论24参考文献25附录一: 电路原理图26致 谢27xx学院2012届本科生毕业设计1 引言随着经济的高速增长,汽车的社会拥有量不断增加,越来越多的人加入了购车行列,私家车的数量越来越大,汽车停车场的数量将随之增加,规模不断扩大,这给停车场的车辆管理系统(停车效率、停车安全)提出了新的挑战。汽车数量的剧增和停车场地的相对短缺

9、,使得停车场的管理收费问题凸现。特别是大型超市的临时停车场管理收费更加困难。该停车收费系统操作简单,价格低廉,安装调试方便,很好地解决了临时停车场的管理和收费问题。目前的停车场收费管理系统通常采用以下几种计费方式:(1)摄像计费方式:在停车场出口和入口分别放置一台摄像机,通过出入口的摄像机摄下汽车车牌号码,送单片机或者电脑处理。再通过单片机计算停车时间和费用,并控制大门开启。该方案信息量太大,要求具有较大的存储容量。软件设计比较复杂,成本还很高。(2)非接触IC卡自动计时停车收费方式:硬件组成上,发卡设备直接由上位机控制,所以无需键盘、LCD模块等硬件,出口设备包含入口设备和发卡设备所有的硬件

10、,它们的设计只需在出口设备硬件基础上去掉相应模块,所以在后面的硬件设计介绍中以出口设备为代表三种设备的不同功能由软件编程实现,出口程序经过精简和简单的修改可得到入口设备程序,所以在软件设计中主要讨论了出口设备和发卡设备的程序流程。等待射频IC卡的请求、按键请求或串13通信请求。有任一种请求则进入相应处理程序,并且处理程序返回之前。屏蔽其它两种请求。IC卡请求,验证用户IC合法性,若为非法卡,则放弃IC卡请求,若为合法卡,从IC卡中获取当前时间和停车起始时间,计算出停车费用,从IC卡获取用户余额。若判断消费金额超过用户余额则蜂呜报警并在LCD中提示。否则将扣除消费金额并将余额写入IC卡中,最后将

11、用户序列号和消费金额存储到系统,上位机根据存储器中用户消费金额更新用户余额。串口通信请求,出口设备与上位机连接时。根据上位机命令,可进行存储器数据上传、设置设备时间等操作。向挡车闸电机控制器发出开关信号。发卡设备主程序流程,开机后对读写卡模块和串口进行初始化,然后等待上位机命令,若为“发新卡命令”。接着接收上位机发来的新用户数据,当在有效范围内检测到合法卡时将数据写入IC卡内扇区2中相应位置中,若为“充值命令”,将有效范围内IC卡的用户信息传给上位机,然后等待上位机发来“写卡命令”,收到“写卡命令”,紧接着接收上位机发送的数据,然后将接收到的数据写入IC卡中。(3)刷卡计费方式:车主到指定地点

12、办理IC卡,车主通过打卡的方式进出停车场,并通过IC卡来缴费。但该方式更适合于有长期固定停放车位的停车场和长期来此停车的人群,例如居民小区等。对其他人群或者是很少来此停车的人很不方便,还不实惠。(4)最初的人工收费方式:就是有专门的收费人员在停车场看守和守候,既负责收费又负责停车场的状况。如果有车停进来,该人员主动向车主收取停车费。并交待注意事项:如停车时间等问题。车主的安全不是很有保障,容易发生刮碰问题还有因抢车位发生摩擦的可能。262 课程任务传统的停车计费方式存在着一些不足,针对这些不足,设计了一个采用红外线检测单片机计费方式的自动停车收费管理系统,为临时停车场提供了一个操作简便、价格低

13、廉,而且行之有效的管理办法。本系统的实际开发使用将大大节省临时停车场的管理费用及人手,提高临时停车场的利用效率。系统采用红外线检测计费方式,可以实现自动开启关闭大门功能、自动计费功能、显示功能(显示停车场状况)、查询功能,而且收费方式可以调节,使系统更具灵活性。2.1 系统框架大门控制模块红外线检测模块操作键盘模块数码管显示模块停车场状态显示模块单片机控制中心图2-1 停车场自动停车收费管理系框统图(1)红外线检测模块:安装在停车场入口和出口,用于检测汽车的驶入停车场大门和驶出停车场大门。送单片机作相应处理。红外线检测模块由红外线发射电路和红外线接收电路组成,使用的是2组红外线发射对管。(2)

14、大门控制模块:在单片机的控制下与红外线检测模块协同作业,执行停车场大门的开启和关闭功能。保证了停车场的安全,减少了因抢占停车位发生意外的可能性。(3)单片机控制中心:采用AT89S52单片机系统,它是本系统的核心部分,主要功能是监控键盘状态。处理键盘输入的操作信息;监控停车场状态,控制大门开启和关闭,有汽车驶入停车位后车位数减一,当空车位数为零时,红灯亮,不再让汽车进入停车场。汽车驶出停车位后停车位数加一,大门开启,让其离开。将停车的数量换算为停车场的费用总费用信息,控制显示器按要求显示各种信息。(4)停车场状态显示模块:显示停车场状态信号其中不仅包括每停一辆车的价格还包括显示今天一共停了多少

15、辆车,现在停了几辆车,还有几个空车位可以使用。这时大门的绿灯表示有车正在进入空车位,还可以停车;红灯表示场内车位全满,不允许汽车进入。不仅方便了驾驶人,还便于管理者查看停车场的各种情况,可以及时的调整收费标准和经营策略。(5)数码管显示模块:显示停车场的各种信息,包括北京时间、停车位、空停车位数、停车的费用、收费标准和操作提示等内容。本模块采用6个共阳数码管静态显示方式,节约了成本。(6)操作键盘模块:通过键盘进行多种人工操作,包括显示、切换、查询各类信息,修改收费标准,修改北京时间(北京时间可以精确到秒)等显示内容。其中,操作键盘模块、数码管显示模块、停车场状态显示模块和单片机控制中心合称为

16、中心控制电路。2.2 工作流程当汽车进入或驶出停车场时,2组红外线检测模块将通知单片机有汽车驶入或驶出停车场,单片机再根据停车场的当时的状态控制停车场大门的开启或关闭,根据设置好的停车费用,并送显示器显示,处理人工键盘的操作,进行显示、查询、修改和切换。停车收费标准为n元辆,系统初始值设为20元/辆,可以停车时交费也可以离开时交费经营者可以根据自己的情况来定。该系统还可以充当时钟来使用。用程序来说就是检测有没有空车位,有空位则允许车进入,没则不打开大门。如果有车进来,等待汽车通过传感器,打开进车大门,已停车位数加1,停车总量加1,延时一段时间,让汽车通过进车门,关闭进车门;没空位时,不打开大门

17、,即红灯亮。检测有没车出去,有则等待汽车通过出车门传感器,打开出大门,已停车位数减1,延时一段时间,让汽车通过出车门,关闭出车门。3 主要的功能元器件介绍该系统主要有以下元器件构成,下面对各器件进行下介绍,让我们对各个器件有所了解,有所认识。3.1元器件介绍本节将介绍74LS138、LM358和数码管74LS47的基本常识和基本功能。3.1.1 74LS138 图3-1 38译码器原理逻辑符号及管脚排布74LS138为3线8线译码器,共有两种线路结构型式,其工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一

18、个对应的输出端以低电平译出。利用G1、/(G2A)和/(G2B)可级联扩展成24译码器;若外接一个反相器还可级联扩展成32线译码器。若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。在中规模集成电路中译码器有几种型号,使用最广的通常是74LS138译码器,74LS138译码器件的逻辑功能,其输出为低电平有效,使能端G1为高电平有效,/G2,/G3为低电平有效,当其中一个为低电平,输出端全部为1。74LS138译码器的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,因为每次仅一个为低电平,其余皆为高电平。数字系统中,译码器的功能是将一种数码变换成另一种数码。译码器

19、的输出状态是其输入变量各种组合的结果。译码器的输出既可以用于驱动或控制系统其他部分,也可驱动显示器,实现数字、符合的显示。译码器是一种组合电路,工作状态的改变无需依赖时序脉冲。译码器可分为数码译码和显示译码俩大类。其中:显示译码:包括驱动液晶显示器(LCD)、发光二极管(LED)、荧光数码管等。数码译码:主要是用来完成各种码制之间的转换。例如可以来完成BCD十进制数、十进制数BCD之间数制的转换。3.1.2 LM358LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使

20、用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC增益部件和其他所有可用单电源供电的使用运算放大器的场合。LM358的封装形式有塑封8引线双列直插式和贴片式。LM358特性:内部频率补偿。直流电压增益高(约100dB)。单位增益频带宽(约1MHz)。低功耗电流,适合于电池供电。电源电压范围宽:单电源(330V);双电源(1.515V)。低输入偏流。低输入失调电压和失调电流。共模输入电压范围宽,包括接地。差模输入电压范围宽,等于电源电压范围。参数:输入偏置电流45nA,输入失调电流50nA,输入失调电压2.9mV,输入共模电压最大值VCC为1.5V,共模抑制比80dB,电源抑制比10

21、0dB。图3-2 LM358DIP塑封引脚图引脚功能3.2 LED显示部分在单片机系统中,常用的显示器有:发光二极管显示器,简称LED;液晶显示器,简称LCD;荧光管显示器。而发光二极管显示又分为固定段显示和可以拼装的大型字段显示,此外还有共阳极和共阴极之分等。 3.2.1 LED显示器图3-3 数码管的外形和引脚LED显示器是由发光二极管显示字段组成的显示块,有7段和“米”字段之分。这种显示块有共阳极和共阴极两种。此外,显示块中还有一个圆点型发光二极管用于显示小数点。通过发光二极管亮、暗的不同组,可以显示多种数字、字母以及其他符号。LED显示块中的发光二极管共有两种连接方法。(1)共阳极接法

22、发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接5V,这样,阴极端输入低电平的段的发光二极管被点亮,相应的段被显示;其余的段则不点亮。(2)共阴极接法发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样,阳极端输入高电平的段的发光二极管被点亮,相应的段被显示;而输入低电平的段则不点亮。4 单片机AT89S52简介单片微型计算机SCMC (Single Chip Microcomputer)简称单片机。它是把组成微型计算机的各功能部件:中央处理器CPU(Central Processing Unit)、随机存储器RAM(Random Access Memory)、只读存储器ROM

23、(Read Access Memory)、I/O (Input/Output)接口电路、定时器/计数器以及串行通讯接口等部件制作在一块集成芯片中,构成一个完整的微型计算机。由于它的结构与指令功能都是按照工业控制要求设计的,故又叫单片微控制器 4.1 AT89S52的引脚及功能 图4-1 AT89S52的引脚图AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程F

24、lash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。AT89S52采用40引脚的双列直插封装(DIP方式)。(1)主电源

25、引脚Vcc和VssVcc(40脚):接5V电压;Vss(20脚):接地。(2)外接晶体引脚XTAL1和XTAL2XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。XTAL2接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。选用12MHz频率的晶体,允许输入的脉冲频率为500kHz。电容的大小范围为20pF40pF。4.1.1 I/O口:P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个T

26、TL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1 口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL 逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输

27、入(P1.1/T2EX),在flash编程和校验时,P1口接收低8位地址字节。P2 口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节

28、和一些控制信号。P3 口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL 逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流。P3口亦作为AT89S52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。4.1.2 P3口的第二功能RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状

29、态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器

30、选通信号(PSEN)是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。4.2 特殊功能寄存器特殊功能寄存器(SFR)的地址空间并不是都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。

31、定时器2 :寄存器T2CON 和T2MOD 包含定时器2的控制位和状态位,寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。中断寄存器:各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。存储器结构:MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于AT89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H1FFFH)开始,接着从外部寻址,寻址地址为:2000HFFFFH。数据存储器:AT89S52有256字节片内数据存储器。高128字节与特

32、殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。例如,下面的直接寻址指令访问0A0H(P2口)存储单元MOV 0A0H , #data使用间接寻址方式访问高128字节RAM。例如,下面的间接寻址方式中,R0内容为0A0H,访问的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOV R0 , #data堆栈操作也是简介寻址方式。因此,高128字节数据RAM也可用于堆栈空间。4.2.1 看门狗定时器WDT是

33、一种需要软件控制的复位方式。WDT由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(WDTRST)构成。WDT在默认情况下无法工作,为了激活WDT,用户必须向WDTRST寄存器(地址为0A6H的SFR)依次写入0E1H和0E1H。当WDT激活后,用户必须向WDTRST写入01EH和0E1H喂狗来避免WDT溢出。当计数达到8191(1FFFH)时,13位计数器将会溢出,这将会复位器件。晶振正常工作、WDT激活后,每一个机器周期WDT都会增加。为了复位WDT,用户必须向WDTRST写入01EH 和0E1H(WDTRST是只读寄存器)。WDT计数器不能读或写。当WDT计数器溢出时,将给RST

34、引脚产生一个复位脉冲输出,这个复位脉冲持续96个晶振周期(TOSC),其中TOSC=1/FOSC。为了很好地使用WDT,应该在一定时间内周期性写入那部分代码,以避免WDT复位。掉电和空闲方式下的WDT:在掉电模式下,晶振停止工作,这意味这WDT也停止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给WDT喂狗,就如同通常AT89S52复位一样。通过中断退出掉电模式的情形有很大的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中断服务程序。为了防止WDT在中断保持低电平的时候复位器件,WDT

35、直到中断拉低后才开始工作。这就意味着WDT应该在中断服务程序中复位。为了确保在离开掉电模式最初的几个状态WDT不被溢出,最好在进入掉电模式前就复位WDT。在进入待机模式前,特殊寄存器AUXR的WDIDLE位用来决定WDT是否继续计数。默认状态下,在待机模式下,WDIDLE0,WDT继续计数。为了防止WDT在待机模式下复位AT89S52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入待机模式。4.2.2 定时器 2定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择。定时器2有三种工作模式:捕捉方式、自动重载(向下

36、或向上计数)和波特率发生器。工作模式由T2CON中的相关位选择。定时器2有2个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。在计数工作方式下,寄存器在相关外部输入角T2发生1至0下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给

37、定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。捕捉方式:在捕捉模式下,通过T2CON中的EXEN2来选择两种方式。如果EXEN2=0,定时器2时一个16位定时/计数器,溢出时,对T2CON的TF2标志置位,TF2引起中断。如果EXEN2=1,定时器2做相同的操作。除上述功能外,外部输入T2EX引脚(P1.1)1至0的下跳变也会使得TH2和TL2中的值分别捕捉到RCAP2H和RCAP2L中。除此之外,T2EX的跳变会引起T2CON中的EXF2置位。像TF2一样,T2EX 也会引起中断。自动重载:当定时器2工作于16位自动重载模式,可对其编程实现向上计数或向下计数。这一功

38、能可以通过特殊寄存器T2MOD中的DCEN(向下计数允许位)来实现。通过复位,DCEN 被置为0,因此,定时器2 默认为向上计数。DCEN 设置后,定时器2就可以取决于T2EX向上、向下计数。可编程时钟输出如图4-2 所示,可以通过编程在P1.0引脚输出一个占空比为50%的时钟信号。这个引脚除了常规的I/O角外,还有两种可选择功能。它可以通过编程作为定时器/计数器2的外部时钟输入或占空比为50%的时钟输出。当工作频率为16MHz时,时钟输出频率范围为61Hz到4Hz。为了把定时器2配置成时钟发生器,位C/T2(T2CON.1)必须清0,位T2OE(T2MOD.1)必须置1。位TR2(T2CON

39、.2)启动、停止定时器。时钟输出频率取决于晶振频率和定时器2捕捉寄存器(RCAP2H,RCAP2L)的重载值,如公式所示:时钟输出频率= (4-1)在时钟输出模式下,定时器2不会产生中断,这和定时器2用作波特率发生器一样。定时器2也可以同时用作波特率发生器和时钟产生。不过,波特率和输出时钟频率相互并不独立,它们都依赖于RCAP2H和RCAP2L。图4-2 定时器2时钟输出模式中断:AT89S52有6个中断源:两个外部中断(INT0和INT1),三个定时中断(定时器0、1、2)和一个串行中断。这些中断如图9所示每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或

40、无效。IE还包括一个中断允许总控制位EA,它能一次禁止所有中断。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。定时器2可以被寄存器T2CON中的TF2和EXF2的逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2或EXF2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2的标志位TF2在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。晶振特性:如图4-3所示,AT8

41、9S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。图4-3 中断源图4-4 内部振荡电路连接图空闲模式在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断

42、或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。掉电模式在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR 的值,但不改变片上RAM 的值。在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。程序存储器的加密位AT89S52有

43、三个加密位不可编程(U)和可编程获得下表所示的功能。加密位1(LB1)编程后,EA引脚的逻辑值被采样,并在复位期间锁存。如果器件复位,而没有复位,将锁存一个随机值,直到复位为止。为了器件功能正常,锁存到的EA值必须和这个引脚的当前逻辑电平一致。5 程序设计5.1 如何进行程序设计程序设计就是用计算机所能接受的语言把所需解决问题的步骤逐一描述出来,也就是编制计算机的程序,在设计应用系统时,软件的编制是重要环节。软件的质量直接影响整个系统功能的实现。应用程序的设计因系统而异,但程序设计总是有共同特点及其规律的。在编写程序时,采取如下几个步骤:(1)分析问题,明确所要解决问题的要求,将软件分成若干个

44、相对独立的部分。根据功能关系和时序关系,设计出合理的软件总体结构。(2)定程序框图,即根据所选择的计算方法制定框图,这不仅是程序设计的一个重要组成,而且是决定成败的关键部分。(3)合理分配系统资源,包括定时器/计数器、中断、堆栈等。分配好单元后,进一步将程序框图画成详细的操作流程。(4)根据程序的流程图和指令系统编写出程序。注意在程序的有关位置处写上功能注释,提高程序的可读性。(5)程序调试。通过编辑软件编辑出的源程序,必须用编译程序汇编后生成目标代码。如果源程序有语法错误,需修改源文件后继续编译,直到无语法错误为止,然后利用目标代码通过仿真器进行程序调试,排除设计和编程中的错误直到成功。(6

45、)程序优化。使各功能程序模块化,子程序化,缩短程序的长度,加快运算速度和节省数据存储空间,减少程序执行的时间。5.2 程序流程图本单片机控制中心的程序采用C语言编写,运行效率较高。其主要程序有:主循环程序:用于内部RAM和各种中断的设置,不断扫描操作按键,做出相应操作,并送显示器显示。根据系统要求,主循环程序的流程如图5-1所示。按键调整程序:可以进行秒调整、分调整、小时调整和停车费用调整。切换显示子程序:键盘上的返回键可以切换显示北京时间、空位数、停车信息(包括剩余的停车位、已停车位数、总停车数量、停车费用)。显示停车信息时,如果不能同时显示全部内容,可通过按下切换键切换显示。初始化时是显示

46、北京时间。时钟中断程序:系统时钟采用单片机内部时钟,该程序将时钟设置为24小时制。调用显示时钟子程序有键盘操作转相应可能子程序调用检测子程序调用切换显示子程序YN初始化 调用调整操作子程序图5-1 程序流程图5.3 系统程序#include#define uint unsigned int#define uchar unsigned charint n,z,shou_fei;char shi,fen,miao;sbit P1_0=P10; /进车门红灯sbit P1_1=P11; /进车门绿灯sbit P1_2=P12; /出车门指示灯sbit P1_3=P13; /进车检测位sbit P1_

47、4=P14; /出车检测位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; /功能选择控制位/*延时函数*/void delay(uint i) while(i-);/*1ms延时函数*/void delay1ms(uint j) uint a,b; for(a=0;aj;a+) for(b=0;b1000;b+) tingche(); /*按键函数*/anjian()if(P0_4=0) /时调整 while(1) shijian(); if(P0_2=0) while(P0_2=0) shijian(); shi+; if(shi=

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服