单片机外扩存储的问题,麻烦各位帮帮忙

我想问下,
89C51自带的4K储存能应付多大规模的程序,一个LED显示和计费算法,够用吗?
8031,外扩8684,我编写的程序是不是烧录在8684上,当单片机开始运行的时候,怎么自动转到外存上执行代码。假如是org00000,单片机默认地址,那还能转过去的话,但是,假如由于外扩的时候,p0口和p2共同决定的启示地址是000030,那岂不是单片机无法执行程序了。
请各位帮帮忙?
po和p2共同决定外扩的地址,但是程序烧录在外扩的芯片上(是不是烧录在外扩上?假如单片机本身无内存),开始时,单片机怎么自动读取程序运行,加入程序不是默认开始org00000

LED显示和计费程序4k足够,通常4K存储2000行的程序没有问题.
实在不够可用89C52,有8K程序存储.价格性能与C51相当.通用编程器都能烧写.
8031接外储,只需将8031的EA引脚接低电平,程序将从外储地址0000H开始.注意:EA是内外存储器选择端,用89C51时切记将其接高电平.

基于单片机控制的自动停车收费管理系统

摘 要:介绍基于89C51单片机的一款临时停车场自动停车收费管理系统,该系统采用比传统停车计费方式更优越的红外线检测计费方式,可以实现自动计费,实时查询、显示停车场状况.打印数据.自动开启关闭车场大门以及随时更改收费标准等功能。该系统操作简单,价格低廉,安装调试方便,很好地解决了临时停车场的管理收费问题。 0 引言

随着经济的增长,越来越多的人加入了购车行列。汽车数量的剧增和停车场地的相对短缺,使得停车场的管理收费问题凸现。特别是大型超市的临时停车场管理收费更加困难。

1 现有停车场收费管理系统

目前的停车场收费管理系统通常采用以下两种计费方式:

(1)摄像计费方式:在停车场出入口分别放置一台摄像机,通过摄像机摄下汽车车牌号码,送单片机或者电脑处理。再通过单片机计算停车时间和费用,并控制大门开启。该方案信息量大,要求具有较大的存储容量。软件设计复杂,成本高。

(2)刷卡计费方式:车主到指定地点办理IC卡,通过打卡进出停车场,并通过IC卡缴费。但该方式更适合于有长期固定停放车位的停车场。

为了解决上述传统计费方式的不足,笔者设计了一款基于89C51单片机的临时停车场自动停车收费管理系统。本系统采用红外线检测单片机计费方式,所需存储容量小,具备了自动开启关闭大门功能、自动计费功能、显示功能(显示停车场状况)、查询功能和打印功能,而且收费方式可以调节,使系统更具灵活性。整个系统操作简单、价格低廉、安装调试方便。能够满足管理临时停车场的要求。此外,该系统还可以方便地实现信息加密和各种功能扩展,通过改进可成为通用型收费管理系统。

2 系统框架与工作流程

2.1系统框架

按功能划分。本临时停车场收费管理系统分为7大模块,如图1所示。

(1)红外线检测模块:安装在车场出入口以及每个停车位上,用于检测汽车的进出车场大门和停车位信号.送单片机作相应处理。红外线检测模块由红外线发射电路和红外线接收电路组成。其中接收电路又分为大门红外线接收电路和停车位红外线接收电路。

(2)大门控制模块:与红外线检测模块协作,执行停车场大门的开闭功能。

(3)单片机控制中心:采用89C51单片机系统,它是本系统的核心部分,主要功能是监控键盘状态.处理键盘输入的操作信息;监控停车场状态,控制大门开闭,有车驶入停车位后开始计时,汽车驶出停车位后停止计时,将停车时间换算为停车费用信息;控制显示器按要求显示各种信息;控制信息的打印过程。

(4)停车场状态显示模块:显示停车场状态信号。黄灯表示进出的汽车正在处理中;绿灯表示有空位:红灯表示场内车位全满,不允许汽车进入。

(5)数码管显示模块:显示停车的各种信息,包括北京时间、停车位、停车时间、空位数、停车费用、营业总额、收费标准和操作提示等内容。本模块采用8个共阳数码管静态显示方式,节约了成本。

(6)操作键盘模块:通过4x4键盘(16个开关组成的行列阵1进行多种人丁操作,包括显示、查询各类信息,修改收费标准,校准北京时间,打印当前显示内容等。

(7)微型打印机模块:选用TPUP一40A,打印发票和总营业额。

其中,操作键盘模块、数码管显示模块、停车场状态显示模块、微型打印机模块和单片机控制中心合称为中心控制电路。

2.2 工作流程

当汽车通过或者停在停车场时,红外线检测模块将通知单片机有汽车进、出,单片机再根据停车场的状态控制停车场大门的开启、关闭,计算停车的时间和费用,并送显示器显示,打印机打印,处理键盘的显示、查询、修改要求。停车收费标准为n元/小时,超过30分钟按一小时计,否则不计。该系统还可以充当时钟。

2 基于单片机控制的自动停车收费管理系统

3 红外线检测模块工作原理

红外线检测模块是本系统的主要模块。本节将详细介绍该模块的工作原理。

3.1红外线发射端

如图2所示,红外线发射电路包括相距一定距离的两个红外发射器D3和D4,用来发射红外线射束。两块NE555定时器芯片各自构成多谐振荡器,第一只为0.67KHz.其输出一方面送至第二只振荡器(21KHz方波)的4脚,对它进行调制,最后的输出用来点亮D3和D4;一方面送至IC5作为时钟信号,控制大门的开闭。

3.2 红外线接收端

红外线射束分别送至红外接收电路的TSOP1738(o)和TSOP1738(1),如果两束红外射束被阻断,则接收电路输出为1,反之输出为0,脉冲经处理后触发中断,送单片机处理,作为汽车驶入驶出车场或停车位的信号。停车位红外线接收电路如图3所示(大门红外线接收电路与之类似,只是减少了下降延触发的集成单稳态触发器74121)。

红外接收器TSOP1738的输出为集电器开路形式,两只红外线射束分别送至红外线接收器U1、U2。当红外射束不被汽车阻断时,U1、U2输出都为0V,如果射束被阻断则分别输出+5V电平。因此只有当两只红外线射束都被阻断时,U1、U2才输出+5V电平,分别送至上升延触发与下降延触发的集成单稳态触发器U4、U5,使74121输出方波OUT1和OUT2,送至74LS148优先译码器,作为汽车进出车位的中断信号 当汽车驶入停车位时,单片机取出此时的系统时间送相应RAM,当汽车驶出停车位时,单片机再次取出该时刻的系统时间,并和初始时间相减,所得时间即为停车总时间,并送相应RAM。

4 单片机控制中心的设计

单片机控制中心控制着本系统所有信号的输入、处理与输出,将各个模块有机地联系起来,它是系统的核心部分。

4.1硬件设置

本控制中心采用89C51单片机系统。因为系统所需存储容量不大,所以只使用89C51的内部RAM即可,不需要外扩RAM。该单片机采用上电与按钮复位电路,内部时钟频率为12MHz,通过软件构成系统时钟。定时器,I10设置为最高中断优先级,保证系统时间的准确性。在I/0口的设置上,单片机的P0口作为数据口.P0.0~P0.7分别与微型打印机的DB0~DB7相连。P1.0~P1.5作为外部中断源扩展口。P2.0~P2.2分别与红、绿、黄灯相连,作为停车场状态信号指示灯。

自动停车收费管理系统要处理的中断比较多(包括汽车出入停车场中断、驶入驶出停车位中断等),而且要求响应速度很快,所以采用软件查询的方法进行中断优先级排队满足不了要求。因此本系统采用74LS148优先编码器扩展单片机外部中断源,对应不同的中断处理(例如开始和停止计时、计费等),并送显示器显示。

单片机控制中心电路图(包含在中心控制电路中)比较复杂,由于篇幅所限,这里将其略去。

4.2 程序设计

本单片机控制中心的程序采用MCS51汇编语言编写.运行效率较高。其主要程序有:

①主循环程序:用于内部RAM和各种中断的设置,不断扫描键盘,做出相应操作,并送显示器显示。根据系统要求,主循环程序的流程如图4所示。

②打印子程序:完成发票或营业额信息打印功能。打印发票时将同时清除该停车位的停车信息。

③ 切换显示子程序:4x4键盘上的返回键可以切换显示北京时间、空位数、停车信息(包括停车位、停车总时间、停车费用),并将显示状态记录下来供打印子程序使用。显示停车信息时,如果不能同时显示全部内容,可通过上翻、下翻键切换显示。初始化时是显示北京时间。

④ F3功能键操作子程序:4×4键盘上的F3功能键主要用于查询各种数据、设置收费标准和校准北京时间。

⑤定时中断服务程序:系统时钟采用单片机内部时钟,该程序将时钟设置为24小时制,并修正时钟计数单元。

5 结语

传统的停车计费方式存在着一些不足,针对这些不足,设计了一个采用红外线检测单片机计费方式的全新自动停车收费管理系统,为临时停车场提供了一个操作简便、价格低廉,而且行之有效的管理办法。本系统的实际开发使用将大大节省临时停车场的管理费用及人手,提高临时停车场的利用效率。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-04-05
1:“89C51自带的4K储存能应付多大规模的程序,一个LED显示和计费算法,够用吗?”4K还不够??一个LED显示和计费的,4K还不够你牛B的啊,你如果用C编的话转成汇编也许就是罗里八琐一堆了,但也差不多啊。如果你能安排好程序空间适当在C中嵌入汇编一般来说是够了的。
2:“8031,外扩8684,我编写的程序是不是烧录在8684上,当单片机开始运行的时候,怎么自动转到外存上执行代码”,我不记得你这个8684是ROM呢还是RAM了,照你讲的应该是ROM。你问怎么转到外存上,那么这个是硬件设计的问题,P0扩展了低8地址和数据总线,P2是扩展了高8地址,通过/PSEN选通ROM。你问怎么转,那是内部逻辑电路的事情了,这个是满复杂的,我说你没必要考虑这么多吧?
3:“假如是org00000,单片机默认地址,那还能转过去的话,但是,假如由于外扩的时候,p0口和p2共同决定的启示地址是000030,那岂不是单片机无法执行程序了”
答:什么叫ORG 00000和ORG000030?程序起始是在ORG 0000H就算跳过中断矢量则是ORG 0030H。你问的“p0口和p2共同决定的启示地址是000030”谁说P0和P2共同决定“0030H”?你在片外扩展个ROM,最大扩展64KB的样子,地址空间是1000H和FFFFH,何谓P0和P2口共同决定?再说了P0和P2一个扩展低8一个扩展高8,怎么会把一个地址单元给一起决定了呢.建议多看相关书
4:“po和p2共同决定外扩的地址,但是程序烧录在外扩的芯片上(是不是烧录在外扩上?假如单片机本身无内存),开始时,单片机怎么自动读取程序运行,加入程序不是默认开始org00000”
答:首先,你把“org00000”这个错误改了,这个不多讲。再有你单片机加上了扩展,那么就是一个整体了,假如你用的是片内无ROM的8031,你扩展接好线后烧片子,电路自动就把程序烧到外扩了,这个不要多虑。这时单片机加入的程序当然是ORG0000H,因为你用的是片内无ROM的啊,那么扩展当然从0000H开始。本回答被提问者采纳
第2个回答  2008-04-06
4K储存能应付 一个LED显示和计费算法,只要你的这个计费算法不是特别的复杂得不得了 .由于复位操作,8031启动后一定会从由P2 P0共同决定的0000H地址去读取程序,所以你必须将片外的程序存储器硬件设计成从0000H地址开始。 如果你的程序确实很大,才会考虑到楼上所说的分成几份的事。现在显然不是这样,因为目前你还不能说对单片机很精通。假如你用的是片内无ROM的8031,你扩展接好线后烧片子,电路自动就把程序烧到外扩了,这个不要多虑。这时单片机加入的程序当然是ORG0000H,因为你用的是片内无ROM的啊,那么扩展当然从0000H开始。
第3个回答  2008-04-03
1. 4K储存能应付 一个LED显示和计费算法,只要你的这个计费算法不是特别的复杂得不得了。
2. 由于复位操作,8031启动后一定会从由P2 P0共同决定的0000H地址去读取程序,所以你必须将片外的程序存储器硬件设计成从0000H地址开始。
3. 如果你的程序确实很大,才会考虑到楼上所说的分成几份的事。现在显然不是这样,因为目前你还不能说对单片机很精通。
第4个回答  2008-04-04
4K的空间足够大了。

对于8031,EA引脚必须接地,这样8031就可以正常的访问外部ROM了,在8031正常启动之后,PC=0000H,单片机从ROM的第一个单元读取指令来执行。执行效果就和8051使用内部ROM一样——那就是说,给8051 写的程序可以直接写入一片ROM之中而不要对程序做修改。