第一篇:智能生鲜配送柜系统方案
智能生鲜配送柜组网系统方案
一、系统背景
生鲜电商的异军突起,让很多朋友尝到了甜头,但是物流配送却是生鲜电商的拦路虎,让很多做生鲜电商的朋友们头痛不已。有了问题就要想办法解决问题,智能生鲜配送柜就这样出现在了大家的视野里。
智能生鲜配送柜是专门针对电商进行生鲜、食品(产品适用于蔬菜、水果、肉食、生鲜等)配送而设计的冷鲜类智能配送柜。产品集冷藏保鲜、网络配送、智能化网络管理与一体。可以与电商和物流平台紧密结合,实现生鲜食品网络化配送功能,并能很好的解决配送后的保鲜问题。
二、系统分析
智能生鲜配送柜是一个基于物联网的,能够将生鲜进行识别、暂存、监控和管理的设备,与配送柜监控平台构成智能配送投递箱系统。配送柜监控平台能够对本系统的各个配送投递箱进行统一化管理(如配送投递箱的信息,快件的信息,用户的信息等),并对各种信息进行整合分析处理。
工作流程:客户通过电脑手机等终端在网上进行下单完成支付,电商根据客户购买清单,进行食品的包装、打标,电商通过冷藏车送货将食品送到社区配送站,配送业务员扫描订单条码,将配送食品放入对应的冷藏箱,客户通过短信通知密码,取走所购食品。
三、系统架构
智能生鲜配送柜系统主要由智能生鲜配送柜、四信F3X36系列工业路由器、监控平台三部分组成。
监控平台包括web服务器、数据服务器及PC,主要实现与各地众多配送柜子系统进行通信,实时监控各配送柜终端的在线状况、向配送柜终端推送指令和信息、处理来自终端的请求和报告等。
智能生鲜配送柜:主要包括工控机、无线传输设备。工控机主要处理短信、按键、led广告系统以及设备运行状态信息等。无线传输设备采用四信F3x36系列工业路由器,F3X36是一款基于3G/4G无线网络通讯的工业级通信产品,集成了全系列从逻辑链路层到应用层通信协议,能够为用户提供安全、高速、稳定、可靠的各种协议路由转发的无线路由网络,轻松实现智能配送柜终端3G/4G无线联网和远程管理服务。
四、系统优势
智能配送终端是一个基于物联网,能够将物品(快件)进行识别,暂存,监控和管理的设备。外形类似一个超市的储物柜,简单理解就是一个智能的超市存储柜,它的智能之处在于,核对信息后会自动发信息给客户,通知客户取件。4.1先进的系统集成
1)IC卡付费系统采用业界最为先进的密钥管理系统,整个系统安全、可靠。2)登录方式以卡号/注册用户名/邮箱地址/身份证号码+密码+验证码方式登录。3)最先进的系统集成方案、通过手机号码+验证码的方式取相应的快件。4.2安全稳定的数据传输
通过四信通信设备,把每个终端都组合成智能联网终端,通过运营商网络可以实时监控每一个终端的运行情况、随时调整供应链和电子促销广告。实现设备远程监控与管理,减低设备的维护成本。
四信通信是业界最早大力投入技术与资源探索无线通信技术在金融与自助领域应用的公司。自主研发的物联网无线通信路由器、M2M数传终端为自助终端的无线专网建设、安全加密、远程设备维护、供应链管理、广告推送及管理提供了强大的设备与技术支持。下面是整个系统网络拓扑图:
4.3良好的市场效应
1)对于任何一家配送公司都有利于宣传企业和树立品牌形象。
2)高效率、低成本的收费方式,采用电子货币结算,提高资金管理效率,有效杜绝徇私舞弊以及假钞残钞所造成的经济损失。3)简化了人工操作流程,提高了工作效率和准确性,降低了企业的运营成本。
第二篇:智能配送柜
智能配送柜
原理
3.1、控制系统:
采用32位基于ARM核心的STM32F103ZET6芯片,功能强大,支持多种数据接入及输出、台湾百扬扫描器、广州致远热敏型微型打印机及GPRS通信模块、128*64点阵液晶显示屏。3.2、箱柜通过GPRS无线收发模块与服务器连接 3.3、为了提高柜子的利用率,门和物品是动态分配的;
3.4、箱体采用环保整体塑料内胆,保温层进行聚氨酯发泡,整体柜门内嵌密封条,与柜体结合完好,整体保温性能良好;
3.5、柜体内整体所料内胆两侧有凹槽,可以插入托盘放置冰排,方便每次更换,以便于清洁维护;
3.6、柜体背面提供外接AC220V电源接口;
3.7、采用备用电源在停电或电网电压波动大的情况下,机器可自动接上备用电源或对电源进行调节,停电后使用备用电源可正常工作不少于5小时。
3.8、独有的电控锁安装设计,具备防撬、防插等功能,同等箱数、同等容积的条件下,空间利用率最高,可大大减少场地占用费用。
现状
智能快递柜行业在国内兴起的时间已有两年由余,第一批从事智能快递柜的企业因为早期盲目圈地没有足够的设备投放,设备分布太分散导致运营成本过高,快递公司和快递员普遍不买单,随之而来的是资金量断裂,彻底进入痛苦期。尽管如此,大家对行业的热情依然高涨,前仆后继。对于智能快递柜本身而言个人觉得无论是行业还是个人对其定义都是比较狭隘的,单纯将其归纳入快递末端派件或者未来增加揽收的功能而已。对设备的相关指标各自持不同意见,事实上设备早在十年前已经开始在德国但是和流行起来,部分指标是值得参考的。至于说设备的运营板块,行业还是相对比较模糊。第一点:弄明白智能快递柜真正的定义
对于智能快递柜的字面释义: 理解为通过智能手段将传统的需要配送、交接和寄存的某些特定物品在用户自由的时间送达用户手里,安全有效高效智能的一种柜子。因此它与传统意义上的用于解决快递末端配送问题的释义大不相同。定义更为广泛,视野更加开阔,他不是因为快递问题集中爆发而产生而是因为用户和人们对生活品质的追求越来越高和对个人隐私的保护要求愈来愈高的前提下产生的。未来它真正能发挥一些什么价值取决于用户希望它提供什么功能:
日常饮食、日常生活、日常用品的配送、安保监控功能、日常网购、日常生活缴费、报检报修、家政服务、物品交换、公益爱心、工具租赁;广告、信息发布;自助售货、夜间购物 单纯将快递柜视为电子商务产物或者是快递末端的投递工具是比较狭隘的定义,智能快递柜本身是一种工具,工具使用范围和使用方法决定了发挥的效果
第二点:智能快递柜的那些指标(投放、安装、设计、比例)
区域选择:设备集中投放的区域的选择需要有一定标准,快递的整个区域户数、面积、小区的个数和快递的件户比要有一定的要求,通常为3万户以上为一个单位,整体楼宇均为高层(7层以上电梯公寓),以中型社区为主,小区整体数量不超过50个,12%以上件户比(120件/天/千户)可作为优质投放区
设备覆盖率:设备密集度决定效果,设备所能够覆盖的密度要有一定的要求,通常覆盖率在50%会有一部分中小快递愿意支付费用,区域渠道和广告价值方开始凸显,因为如果快递柜本身密集度不够快递公司整体效率提升不够明显,无法达到颠覆性的效果,快递公司买单的积极性不够高,当整体覆盖率超过80%以上,快递公司投递效率开始成本的增长,传统配送人均80件/天,使用设备后几乎能够超过200件/天,形成自助收费本身不会是问题,当前快递公司普遍能够接受根据区域不同价格在0.5元/件左右
设备使用率是关键:任何一个区域都会夹杂着各种老旧小的社区,这种老旧小区日均快递量均在20件/日左右(部分特殊除外),这种区域投放快递柜第一没有明显的广告效应,同时快递柜的成本投入和使用率不高,第三老旧小区门卫通常会低价有偿代收,投放设备后破坏了短时间的生态平衡,整体效果和意义也不大。因此整个区域通常80%的覆盖率为最佳覆盖率。太低无法提升效率,太高资源浪费回收周期变长
投放设备箱门配置: 每个小区设备投放数量,为了实现设备的使用率最大化通常设备投放不会按照已有快递总量来配置箱门,需要考虑有一部分特殊快递走其他渠道配送,设置一定合理的比例投放,通常投放比例为整体快递量的70%左右。
第三点:你未来一定要运营智能快递柜 智能配送柜本身属于重资本中投入行业,在进行运营的过程中有一个环节是需要尽可能避免的,那就是再劳动密集型,重资本 劳动密集型在早期是极为不适合企业这样的,如果真有那样的一天也一定是企业发展整体比较顺利的时候。因此,之前听到很多朋友需要人机结合的模式来发展,个人觉得还有待于继续讨论,或许部分特殊区域因为每日的揽件量比较大,设备很难满足大部分的需求,这种区域通常是比较好的写字楼、学校和园区,而写字楼园区和学校又是快递公司的主战场,要想通过人机结合的方式形成规模效应需要沟通衔接的太多,特殊情况特殊对待,不同的场地最后一公里的解决方案不同。总体说来,设备投放占优势的地方投放设备,设备不占优势的地方线下便利店和普通门店作为补充,这才是我们在运营过程中所提到的人机结合。
问题
盲目扩张、分众式拼命圈地使得设备分散 认同率不高 行业尚未形成
单纯将快递柜视为电子商务产物或者是快递末端的投递工具
运营模式 操作流程
1、送货员拿着送货单,在配送柜的红外线扫描器上
扫描后,下位机检索箱柜,将物品与其中一个空箱格对应,并通过GPRS模块将物品条形码、箱号、门号发到服务器,服务器管理软件通过物品条形码,在系统中查询出客户的手机号和会员卡号
2、如果会员卡号不是空,管理软件以会员卡号为开箱密码。客户可以通过扫描会员卡条码开箱,也可以手动输入会员卡号开箱;
3、如果会员卡号为空,管理软件自动生成密码。客户手动输入密码开箱;
4、以上信息确认以后,服务器通过GPRS发送箱号、柜号、密码(会员无此项)给客户,会员卡号与密码使用一次后失效,同时释放相应箱格。
第三篇:生鲜配送运营
生鲜蔬菜物流配送方案
一、市场背景
1、由于人们生活水平的发展,开始讲求天然产品,这是蔬菜产品有了广阔的市
2、农贸批发大市场,地理位置优越,蔬菜品种较为齐全,蔬菜产品质量较好
3、商业企业要求最好的销售和利润的最大化,为了使利润最大化,组建一个以蔬菜物流冷 链批发式配送为主的农产品配送公司具有很大的市场潜力
二、产品分类
仓储主要以干货、鲜货为主
三、蔬菜配送中心的组织结构 1.信息中心
信息中心指挥和管理着整个配送中心,它是配送中心的中枢神经。它的功能是:对外负
第四篇:智能快递柜
简介
“智能物流配送柜”是深圳市永胜金狮创新科技有限公司专门针对于物流快递行业开发出来的一种新型配送系统。
快递人员收取快递中往往因为找不到收件人/取件人,或收/取件人因为有急事而让快递人员等待等种种原因而浪费大量时间。而收件人有时也会因为急事外出、紧急会议等各种原因而一时无法接收快递,十分不方便。
有了智能物流配送柜,快递人员只需将包裹放入配送柜中,而收件人员也可在自己有空闲时去收取,省时省力。
一、技术参数
智能物流配送柜由双核处理器、7寸LCD显示器、触摸屏、IC卡读卡设备或指纹识别仪、电源等主要设备组成,其主要技术指标如下:
1、四核处理器,主频1000MHz,最大1GB DDR3内存,最大 8GB 程序/是数据存储器,支持一个100Mbit/s以太网口,支持720P高清数字图像编解码,可外接200万像素CMOS数字摄像头,提供USB接口,支持触摸屏和LCD显示。
2、内置或外接IC读卡器:支持ISO/IEC 1443A/1443B,NFC等协议,可读写NXP(原飞利蒲)S50/70芯片制成的MF1 IC卡,MF1 IC卡为非接触式射频卡,工作频率13.56Mhz,有16个扇区,每个扇区有64字节数据,每个扇区可独立使用一组密钥进行加密,无法破解,读卡距离可达50mm,NFC支持手机卡,可直接用手机刷卡开门,也可选用指纹识别来认证身份。
3、支持密码开箱,二维码扫描开箱,公交卡刷卡开箱等多种身份认证方法;
4、带触摸屏的7寸或10寸彩色液晶显示屏可作为人机交互界面,显示高清画面,动态键盘,手写输入,提示操作流程,完成规定的操作任务,显示每个箱格内存放物品的名称或型号及每种物品的简略说明。
5、每台智能控制器可通过100Mbit/s以太网口与管理服务器在同一局域网内联网通讯,实现远程开箱,参数设置,记录上传,状态查询等功能
6、每台智能控制器可通过USB进行数据导入/导出,外接语音提示模块和图像监视摄像头
二、用途
联网型智能物流配送柜用途广泛,办公大楼中各公司对其他公司物品的收发、住宅小区网上购物终端等等,只要用得上快递的地方就能得上智能物流配送柜
1、实现包裹、快递的存入、取出,可省去快递人员与收件人员大量时间。
2、实现对智能物流配送柜的管理人员和使用人员进行监管,管理人员对智能物流配送柜进行设置或使用人员进行快件存取时都需要进行相对应的验证方式进行身份认证。
3、可在智能物流配送柜终端设备或管理中心对IC卡、指纹及用户权限进行管理,如将箱号设置成与房号相对应,将系统设置成只有在本小区居住或办公人员才有进行使用等
4、检测到非法打开储物柜箱门时系统会发出报警信号。
5、智能物流配送柜自带一路视频摄像头,只能用于图像抓拍,不能用于监控,也无法与第三方的图像监控系统兼容。
第五篇:智能快递柜
智能快递柜
第1章 绪论
这一章讲了单片机在现在生活中的发张趋势和应用范围,并对本课题的背景及意义,阐述了其发展状况。简要说明了本文所介绍的内容。
1.1 单片机的发展史
单片单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,它最早 是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,为使更多的业内人士、学生、爱好者,产品开发人员掌握单片机这门技术,于是产生单片机开发板,比较有名的例如电子人DZR-01A单片机开发板。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
单片机比专用处理器更适合应用于嵌入式系统,因此它得到了最多的应用。事实上单片机是世界上数量最多的计算机。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
智能快递柜
1.2 智能快递柜的发展趋势
近年来,随着电子商务的迅猛发展,快递业务呈高速增长趋势,但快递末端“最后一公里”投递问题却成为快递发展的瓶颈。智能快递投递箱将快件暂时保存在投递箱内,并将投递信息通过短信等方式发送用户,为用户提供24小时自助取件服务,这种服务模式较好地满足了用户随时取件的需要,受到快递企业和用户的欢迎,为解决快件“最后一公里”问题提供了有效的解决方案。国家邮政局领导高度关注智能快递投递箱的发展,指示要尽快开展智能快递投递箱相关标准研究工作,以期在发展初期就对智能快递投递箱的使用与管理问题进行研究和规范,以推动这种服务模式规范化、健康化发展。
自2003年以来,随着电子商务的快速发展,物流面临着严峻的考验。众所周知,淘宝搞的双十一活动,掀起了一股网购大风。不仅如此,快递包裹也跟着席卷开来。各地的物流仓库都出现了快递包裹爆仓,出仓的速度远远跟不上进仓的速度。这种现象的出现与快递配送的“最后一公里”不无关系。
各行各业试图解决这快递“最后一公里”的问题,包括增加配送人员,包裹代收,设立共同配送点等等,不过还是改变不了人等人的局面。最终,智能快递终端被引用进来。
在国外,24小时自助快递站已经有10多年的发展历史,日本每栋楼宇都有一个标准的配置用来收发快递,操作十分简单,只有像信用卡等贵重或者重要物品一定要送达本人签字,德国、俄罗斯、法国、爱沙尼亚等欧洲国都在使用。
2012年2月至6月,DHL国际快递对瑞士3个不同地点的3台全天候自助包裹终端机进行了测试。第一台自助包裹终端机于2月安装在苏黎世的一家加油站,已经投入运营,另外两台将安装到瑞士西部地区。
在国内,智能快递终端还处于刚刚起步状态。不少高新科技公司纷纷推出了各种快递终端。小部分地区已经出现了智能快递终端的身影,它们分布在大中专院校、企事业单位、社区、写字楼、工厂等地。给收件用户提供了一个自由便捷的快递服务。
也许智能快递终端不能完美地解决物流的“最后一公里”,但是,可以肯定的是它将会给人们的生活带来极大的便利。
智能快递柜
1.3 设计研究的要求及能实现的主要内容
智能快递投递箱系统物联网这一核心技术,包括前台站点快件存取和后台中心数据处理两部分。物联网就是通过红外感应、蓝牙等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。有了“物物相连”的网络后还需要依靠先进的信息处理技术。
第2章 设计过程及方案
2.1 设计方案
系统采用STC89C52单片机板,使用红外线感应模块,按钮矩阵模块,蓝牙模块控制驱动器控制电机转动的不同角度,将齿轮和齿轮条与异步电机练接。就可以实现齿轮条的转动来控制机械臂的定位。我们在不同的三个按钮上设施了不同的使异步电机旋转的角度。有60度,120度,360度。当操作不同的按钮时三个异步电机就会转动不同角度,机械臂移动到不同位置寻找物品。
2.2 设计原理
使用STC89C52单片机,在STC89C52单片机的P1.0-P1.3接步进电机一,P1.4-P1.7接步进电机二,在单片机P0.0-P0.3接步进电机三。在P2口接矩阵按键,在P3.2接红外遥控,在单片机的P3.1接蓝牙模块的RXD,在步进电机的P3.2口接TXD。其他引脚接VCC和GND。
第3章 硬件电路设计
3.1 最小系统设计
1)在STC89C52单片机的P1.0-P1.3接步进电机一 2)P1.4-P1.7接步进电机二
3)在单片机P0.0-P0.3接步进电机三 4)在P2口接矩阵按键,在P3.2接红外遥控 5)在单片机的P3.1接蓝牙模块的RXD 6)在步进电机的P3.2口接TXD。其他引脚接VCC和GND 3
智能快递柜
3.2 重要元器件介绍
3.2.1 单片机介绍
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
该单片机具有以下标准功能: 8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
智能快递柜
3.2.2 红外线介绍
红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射的红外光转换为相应的电信号,再送后置放大器。
发射机一般由指令键、调制电路、驱动电路、发射电路等几部分组成。当按下指令键或推动操作杆时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。
智能快递柜
3.2.3 蓝牙介绍
蓝牙(Bluetooth®):是一种无线技术标准,可实现固定设备、移动设备和楼宇个人域网之间的短距离数据交换(使用2.4—2.485GHz的ISM波段的UHF无线电波)。
3.2.4 步进电机
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元步进电机件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
步进电机是一种感应电机,它的工作原理是利用电子电路,将直流电变成分时供电的,多相时序控制电流,用这种电流为步进电机供电,步进电机才能正常工作,驱动器就是为步进电机分时供电的,多相时序控制器。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
智能快递柜
3.2.5 步进电机驱动器
步进电机驱动器是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速和定位的目的。
智能快递柜
3.2.6 矩阵按键
在键盘中按键数量较多时,为了减少I/O口的占用,通常将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。
第4章 软件设计
软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。
软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。
智能快递柜
软件程序: #include “reg51.h” #include
#define GPIO_KEY P2 #define const_interrupt_time 792 //840us定时值
sfr AUXR=0x8e;
sbit IR_sr=P3^2;//外部中断口,数据接收口
void delay();void KeyDown(void);
void TrunLeftMotor1(unsigned long angle);void TrunRightMotor1(unsigned long angle);void TrunLeftMotor2(unsigned long angle);void TrunRightMotor2(unsigned long angle);void TrunLeftMotor3(unsigned long angle);void TrunRightMotor3(unsigned long angle);void initial();//初始化外围 void Int0();//外部中断函数 void detector_IR();
long unsigned int NumKey=0;unsigned char ucMotorStep=0;//被触发的电机动作编号
` unsigned char ucdata;//从遥控器中接受的编码 unsigned char busy=0;unsigned char d=0;/******************************************************************************* * 函 数 名 : main * 函数功能
: 主函数 * 输 入 : 无 * 输 出 : 无
*******************************************************************************/ void main(void){ SCON=0X50;AUXR=0x00;TMOD=0X21;TL1=0XFd;
智能快递柜
TH1=0XFd;ES=1;EA=1;TR1=1;initial();while(1){ KeyDown();detector_IR();if(NumKey==1)
{ TrunLeftMotor1(60*1);
delay();
TrunLeftMotor2(60*1);
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*1);
delay();
TrunRightMotor1(60*1);
NumKey=0;
} if(NumKey==2)
{ TrunLeftMotor1(60*2);
delay();
TrunLeftMotor2(60*2);
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*2);
delay();
TrunRightMotor1(60*2);
NumKey=0;
}
if(NumKey==3)
{ TrunLeftMotor1(60*3);
delay();
TrunLeftMotor2(60*3);
智能快递柜
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*3);
delay();
TrunRightMotor1(60*3);
NumKey=0;
} if(ucMotorStep==1)
{ TrunLeftMotor1(60*1);
delay();
TrunLeftMotor2(60*1);
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*1);
delay();
TrunRightMotor1(60*1);
ucdata=0x74;
} if(ucMotorStep==2)
{ TrunLeftMotor1(60*2);
delay();
TrunLeftMotor2(60*2);
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*2);
delay();
TrunRightMotor1(60*2);
ucdata=0x74;
} if(ucMotorStep==3)
{ TrunLeftMotor1(60*3);
delay();
智能快递柜
} {
d=0;} if(d==2){
d=0;} { TrunLeftMotor2(60*3);delay();TrunLeftMotor3(360*1);delay();TrunRightMotor3(360*1);delay();TrunRightMotor2(60*3);delay();
TrunRightMotor1(60*3);
ucdata=0x74;delay();TrunLeftMotor2(60*1);delay();TrunLeftMotor3(360*1);delay();TrunRightMotor3(360*1);delay();TrunRightMotor2(60*1);delay();
TrunRightMotor1(60*1);delay();TrunLeftMotor2(60*2);delay();TrunLeftMotor3(360*1);delay();TrunRightMotor3(360*1);delay();TrunRightMotor2(60*2);delay();
TrunRightMotor1(60*2);12
if(d==1)TrunLeftMotor1(60*1);
TrunLeftMotor1(60*2);
if(d==3)TrunLeftMotor1(60*3);
智能快递柜
delay();
TrunLeftMotor2(60*3);
delay();
TrunLeftMotor3(360*1);
delay();
TrunRightMotor3(360*1);
delay();
TrunRightMotor2(60*3);
delay();
TrunRightMotor1(60*3);
d=0;
} } } void KeyDown(void){ char a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f)//读取按键是否按下
{
delay();
if(GPIO_KEY!=0x0f)//再次检测键盘是否按下
{
GPIO_KEY=0X7F;
switch(GPIO_KEY)
{
case(0X77): NumKey=0;break;
case(0X7b): NumKey=1;break;
case(0X7d): NumKey=2;break;
case(0X7e): NumKey=3;break;
}
GPIO_KEY=0XBF;
switch(GPIO_KEY)
{
case(0Xb7): NumKey=4;break;
case(0Xbb): NumKey=5;break;
case(0Xbd): NumKey=6;break;
case(0Xbe): NumKey=7;break;
}
GPIO_KEY=0XDF;
switch(GPIO_KEY)
{
case(0Xd7): NumKey=8;break;
case(0Xdb): NumKey=9;break;
智能快递柜
case(0Xdd): NumKey=10;break;
case(0Xde): NumKey=11;break;
}
GPIO_KEY=0XEF;
switch(GPIO_KEY)
{
case(0XE7): NumKey=12;break;
case(0XEb): NumKey=13;break;
case(0XEd): NumKey=14;break;
case(0XEe): NumKey=15;break;
}
while((a<50)&&(GPIO_KEY!=0xf0))//检测按键松手检测
{
delay();
a++;
}
} } } void delay(){
unsigned int i = 200;while(i--);} void TrunLeftMotor1(unsigned long angle){ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCodeLeft[8] = { 0x0E, 0x0C, 0x0D, 0x09, 0x0B, 0x03, 0x07, 0x06};beats =(angle*4076)/360;while(beats--){
tmp = P1;
tmp = tmp & 0xF0;
tmp = tmp | BeatCodeLeft[index];
P1 = tmp;
index++;
index = index & 0x07;
delay();} } void TrunRightMotor1(unsigned long angle)
智能快递柜
{ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCodeRight[8] = { 0x06, 0x07, 0x03, 0x0B, 0x09, 0x0D, 0x0C, 0x0E};beats =(angle*4076)/360;while(beats--){
tmp = P1;
tmp = tmp & 0xF0;
tmp = tmp | BeatCodeRight[index];
P1 = tmp;
index++;
index = index & 0x07;
delay();} } void TrunLeftMotor2(unsigned long angle){ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCode[8] = { 0xE0, 0xC0, 0xD0, 0x90, 0xB0, 0x30, 0x70, 0x60};beats =(angle*4076)/360;while(beats--){
tmp = P1;
tmp = tmp & 0x0F;
tmp = tmp | BeatCode[index];
P1 = tmp;
index++;
index = index & 0x07;
delay();} } void TrunRightMotor2(unsigned long angle){ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCode[8] = { 0x60, 0x70, 0x30, 0xB0, 0x90, 0xD0, 0xC0, 0xE0};
智能快递柜
beats =(angle*4076)/360;while(beats--){
tmp = P1;
tmp = tmp & 0x0F;
tmp = tmp | BeatCode[index];
P1 = tmp;
index++;
index = index & 0x07;
delay();} } void TrunLeftMotor3(unsigned long angle){ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCodeLeft[8] = { 0x0E, 0x0C, 0x0D, 0x09, 0x0B, 0x03, 0x07, 0x06};beats =(angle*4076)/360;while(beats--){
tmp = P0;
tmp = tmp & 0xF0;
tmp = tmp | BeatCodeLeft[index];
P0 = tmp;
index++;
index = index & 0x07;
delay();} } void TrunRightMotor3(unsigned long angle){ unsigned char tmp;unsigned char index = 0;unsigned long beats = 0;unsigned char code BeatCodeRight[8] = { 0x06, 0x07, 0x03, 0x0B, 0x09, 0x0D, 0x0C, 0x0E};beats =(angle*4076)/360;while(beats--){
tmp = P0;
tmp = tmp & 0xF0;
tmp = tmp | BeatCodeRight[index];16
智能快递柜
P0 = tmp;
index++;
index = index & 0x07;
delay();} }
void Int0()interrupt 0 { unsigned char i,j;EX0=0;// 关闭外部中断0 i=10;while(i--){ TH0=(65535-const_interrupt_time)/256;TL0=(65535-const_interrupt_time)%256;TR0=1;while(!TF0);TF0=0;TR0=0;
while(IR_sr){ EX0=1;return;} } //每840us检测一次P3.2口是否出现高电平,共检测10次,出现高电平则重新进入中断
while(!IR_sr);// 等待低电平过去
j=5;while(j--){ TH0=(65535-const_interrupt_time)/256;TL0=(65535-const_interrupt_time)%256;TR0=1;while(!TF0);TF0=0;TR0=0;
while(!IR_sr){ EX0=1;
智能快递柜
return;} } //每840us检测一次P3.2口是否出现低电平,共检测5次,出现低电平则重新进入中断
while(IR_sr);// 等待高电平过去
for(i=0;i<4;i++){ for(j=0;j<8;j++){
while(!IR_sr);// 等待低电平过去
TH0=(65535-const_interrupt_time)/256;TL0=(65535-const_interrupt_time)%256;TR0=1;while(!TF0);TF0=0;TR0=0;//延时840us
if(IR_sr)//判断是否是高电平 { ucdata|=0x80;//最高位置“1”
while(IR_sr);// 等待高电平过去 }
ucdata>>=1;//如果是低电平则右移一位 } } EX0=1;// 开中断 return;} void initial()//初始化外围 { ET0=1;//允许定时中断 IT0=1;//下降沿触发 EX0=1;//允许外部中断 EA=1;//开总中断 }
void detector_IR(){ if(ucdata==0x79)ucMotorStep=1;//按下‘1’
智能快递柜
else if(ucdata==0x73)ucMotorStep=2;//按下‘2’
else if(ucdata==0x50)ucMotorStep=3;//按下‘3’ else if(ucdata==0x7b)ucMotorStep=4;//按下‘4’ else if(ucdata==0x71)ucMotorStep=5;//按下‘5’ else if(ucdata==0x52)ucMotorStep=6;//按下‘6’ else if(ucdata==0x5E)ucMotorStep=7;//按下‘7’
else if(ucdata==0x56)ucMotorStep=8;//按下‘8’ else if(ucdata==0x5A)ucMotorStep=9;//按下‘9’ else if(ucdata==0x74)ucMotorStep=0;//按下‘0’
} void ck()interrupt 4 using 1 { if(RI==1){ d=SBUF;RI=0;} if(TI==1){
busy=0;TI=0;} } 智能快递柜
结 论
课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.
三周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。
过而能改,善莫大焉。在课程设计过程中,我们不断发现错误,不断改正,不断领悟,不断获取。最终的检验修改环节,本身就是在践行“过而能改,善莫大焉”的知行观。这次课程设计终于顺利完成了,在设计中遇到了很多问题,最后在不懈的努力下,终于迎刃而解。在今后社会的发展和学习实践过程中,一定要不懈努力,不能遇到问题就想到要退缩,一定要不厌其烦的发现问题所在,然后一一进行解决,只有这样,才能成功的做成想做的事,才能在今后的道路上劈荆斩棘,而不是知难而退,那样永远不可能收获成功,收获喜悦,也永远不可能得到社会及他人对你的认可!课程设计不仅是一门专业课,给我很多专业知识以及专业技能上的提升,同时又是一门讲道课,一门辩思课,给了我许多道,给了我很多思路,给了我莫大的空间。同时,设计让我感触很深。使我对抽象的理论有了具体的认识。通过这次课程设计,我掌握了单片机设计的基础原理。
何为课程设计?在我们的认识中,这便是理论与实践相结合的过程。在*老师的课堂中,我们学习了很多关于单片机设计的知识,这让我们脑中有着很多“模型”,如何将模型具体化,这便需要课程设计的“真金”磨练。在课程设计中,我们重新温习并应用了很多课堂知识。在理论与实际相结合的过程中,这让我们更加认识到课堂知识的重要性,这些都将是实际的公路设计的必备品。
总之,认真对待每一个学习的机会,珍惜过程中的每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在在本次单片机课程设计中学到的最重要的东西,以后也将受益匪浅的!通过这次的课程设计,我更深层次的认识到程序设计与生活的密切关系,对我们的学习有十分重要的意义。
智能快递柜
参考文献
[1] 丁向荣.单片微机原理与接口技术.北京:电子工业出版社,2014.12 [2] 于海生.微型计算机控制技术(第二版).北京:清华大学出版社,2009.9 [3] 余成波.传感器与自动检测技术.北京:高等教育出版社,2013.12 [4] 倪燃.C语言程序设计实验指导与实训.北京:中国水利水电出版社,2014.1 [5] 高敬鹏.原理图与PCB设计教程.北京:机械工业出版社,2013.7 [6] 谭浩强.C程序设计(第四版).北京:清华大学出版社,2010.6
智能快递柜