欢迎来到工友文库! | 帮助中心 工友共享,造福你我!
工友文库
全部分类
  • 行业文库 >
    行业文库
    行业标准 农林牧渔 能源矿业 电力热力 水利环境 材料技术 地理测绘 建筑工程 机械工程 制造加工 交通物流 网络计算 电气机电 信息通讯 汽车行业 航空航天 船舶工程 光电工程 住宿餐饮 财会金融 房地产业 城建规划 装饰装修 家电维修 电商行业 租赁商务 批发零售 居民服务 教育服务 医药卫生 体育行业 公共管理 图书管理 外语翻译 休闲旅游 文艺传媒 其他行业
  • 商业文档 >
    商业文档
    企业计划 工程管理 广告经营 财务报表 物业管理 质控管理 企业文化 绩效管理 商务礼仪 创业孵化 市场营销 经营企划 销售管理 营销创新 资本运营 招商加盟 合同协议 信息管理 励志材料 人事档案 员工关系 薪酬管理 招聘面试 其它文档
  • 办公文书 >
    办公文书
    统计图表 总结报告 演讲致辞 心得体会 述职报告 工作计划 解决方案 调研报告 事务文书 经验事迹 往来文书 规章制度 申请范文 求职简历 活动策划 会议纪要 党建材料 软件教程 其他文书
  • PPT模板库 >
    PPT模板库
    扁平风格 创意新颖 动画效果 动态模板 简约风格 静态模板 环保绿色 卡通风格 立体风格 欧洲风格 手绘风格 创意黑板 相册风格 星空风格 炫酷科技 中国风格 医疗风格 高端商务 工作常用 总结报告 毕业答辩 节日庆典 公益风格 化妆美容 婚礼策划 餐饮美食 培训课件 融资路演 商业策划 英文模板 党政机关 述职竞聘
  • 小学初中 >
    小学初中
    幼儿教育 小学语文 小学数学 小学英语 初中语文 初中数学 初中英语 初中物理 初中化学 初中地理 初中生物 初中政治 初中历史 思想品德 小学竞赛 初中竞赛 其他学科
  • 高中教育 >
    高中教育
    高中语文 高中数学 高中英语 高中物理 高中化学 高中生物 高中地理 高中政治 高中历史 高考资料 高中竞赛 其他学科
  • 高等教育 >
    高等教育
    基础课 艺术类 哲学类 体育类 水利类 测绘类 法学类 历史学 社会学 心理学 教育学 政治学 统计学 房地产 语言文化 生物科学 医药卫生 天文气象 地理科学 环境科学 系统科学 材料科学 机械仪表 图书档案 土建工程 海洋工程 轻工纺织 工程力学 能源动力 光电工程 电力技术 市政工程 财会金融 工商管理 语言文学 广播影视 公安司法 汽车汽修 交通运输 水产加工 植物生产 森林资源 动物科学 食品加工 餐饮旅游 公共事业 新闻传播学 农林业工程 城镇规划管理 水文与水资源 地矿及资源勘查 航空航天与武器 管理科学与工程 农林业经济管理 机电设备及自动化 计算机与信息科学 大学生竞赛资料
  • 执业资格考试 >
    执业资格考试
    财会类考试 建筑类考试 外贸类考试 外语类考试 医药类考试 管理类考试 公务员类考试 司法法律考试 教师资格考试 计算机类考试 公共服务类考试 其他资格证考试
  • 一线采风 >
    一线采风
    一线新闻 事迹宣传 工友作品
  • 教育视频 >
    教育视频
    幼儿教育视频 小学教育视频 初中教育视频 高中教育视频 大学教育视频 C#自学视频教程 软件视频教程 英语视频教学 其他教学视频
  • 换一换
    首页 工友文库 > 资源分类 > DOCX文档下载
     

    基于 51 单片机的模拟电梯模型设计.docx

    • 资源ID:3390       资源大小:6.37MB        全文页数:21页
    • 资源格式: DOCX        下载权限:注册会员/VIP会员    下载费用:2金币 【人民币2元】
    下载资源需要2金币 【人民币2元】
    已注册用户请登录:
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,既可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰   

    基于 51 单片机的模拟电梯模型设计.docx

    第十二届智能控制设计大赛高级组之 基于 51 单片机的模拟电梯模型 队名 队长 队员 队员 专业高分子材料成型及控制工程 【简要说明】 电梯间竖井模型高度为45cm。电梯轿厢模型通过滑轮悬挂并由电动机牵引,可在电梯井竖井模型的空间上下运动。电梯间竖井模型自下而上分成3层,每层间隔均为12cm。 1、 设计要求 1. 1基本要求 (1) 利用超声波测距传感器进行测距,实现电梯轿厢模型定高控制。 (2) 当某层有呼叫时,显示呼叫信号,轿厢模型作相应的运动,并准确平层,平层误差小于等于1cm,平层结束时给出提示信号。 (3) 完成基础人工电梯楼层显示界面(显示轿厢当前楼层编号和目前运动方向)。 1.2拓展要求 (1)增设模拟轿厢内表示乘客目标层数的按钮,轿厢模型将按照电梯模型运行规则作相应的运动; (2) 当有多层呼叫时,轿厢模型将按运行规则作相应的运动,并依次在呼叫的楼层停留; (3)快、中、慢三种电梯运行速度并且不受载重影响; (4)其他创新功能。 二. 系统的硬件设计与实现 2.1电路设计原理图 1.单片机电路 2. 按键矩阵电路 2.2系统硬件概述 本电路是由 STC89C52 单片机为控制核心,具有操作简单的优点。步进电机,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响。超声波测距模块,超声波模块精度能到1cm。 显示屏LCD1602,蜂鸣器,矩阵按键。 2.3 主要单元电路的设计 2.3.1 单片机主控制模块的设计 STC89C52单片机为40引脚双列直插芯片,有四个I/O口P0、P1、P2、P3。MCS-51单片机共有4个 8 位的 I/O 口(P0、P1、P2、P3),每一条 I/O 线都能独立地作输出或输入。 单片机的最小系统如下图所示 ,18引脚和19引脚接时钟电路,XTAL1 接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入 ,XTAL2 接外部晶振和微调电容的另一端 , 在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。 2.3.2 显示模块的设计 在本计算器当中,1602液晶显示当前的输入的数据和计算得出的数据。 1602液晶具有如下的特性 显示质量高 由于液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不断刷新新亮点。因此,液晶显示器画质高且不会闪烁。 数字式接口 液晶显示器都是数字式的,和单片机系统的接口更加简单可靠,操作更加方便。 功耗低 相对而言,液晶显示器的功耗主要消耗在其内部的电极和驱动IC上,因而耗电量比其它显示器要少得多。 2.3.3 按键调整系统 矩阵按键与外部中断按键。我们在使用按键的时候有这样一种使用经验,当需要多个按键的时候,如果做成独立按键会大量占用IO口,因此我们引入了矩阵按键。 矩阵按键具有高效利用IO口的作用,在需要使用多个按键的场合十分地节省有限的单片机IO口资源。 我们使用2 X 4的矩阵按键,其中有外部1楼向上键,外部2楼向下键,外部2楼向上键,3楼向下键,速度变化键,内部1楼键,内部2楼键,内部3楼键。 键盘电路 3、 系统的软件设计 楼层显示电路 STC89C52 复位电路 电机控制电路 时钟电路 电机状态显示 四、作品功能实现 5、 设计总结 设计上,考虑到需要一个比较大的电梯模型,我们放弃的使用泡沫类模型材料,使用了质地比较好的木材,一方面可以提供负重,使绳子拉直且不随意抖动。另一方面,木材的质量会更加的好,能够支持起来,不容易损坏。我们将电路板等放置于模型的下方,让拉动电梯的绳子越过顶部的横条,通过电机的旋转带动电梯向上向下运行。我们还加入了,多层楼呼叫识别,使电梯能够相应多层楼,顺路停下。我们使用lcd1602液晶显示器来显示更多的电梯运行信息。 六、附录 附录 代码 include reg52.h include intrins.h define uchar unsigned char define uint unsigned int define key P3 uchar KeyValue; uchar keyboard; define motor_step P1 //P0 Uchar code motor_array0[]{0 x01,0 x03,0 x02,0 x06,0 x04,0 x0c,0 x08,0 x09};// uchar code motor_array1[]{0 x08,0 x0c,0 x04,0 x06,0 x02,0 x03,0 x01,0 x09}; uchar UP; uchar DOWN; uchar stop_1; uchar stop_2; uchar movement0; uchar moving0; uchar velocity_rank1; uchar velocity14; uchar position; uchar position_stop; uchar floor_1; uchar floor_2; uchar floor_21; uchar floor_22; uchar floor_3; sbit TXP20;//TRIG 16 sbit RXP21;//ECH0 17 uint time0; unsigned long distance; bit flag0; sbit led_1P25; sbit led_2P26; sbit led_3P27; sbit beeP04; uchar digit_up; uchar digit_down; uchar digit_bee; uchar digit_led0; uchar flag_led; /**********************LCD****************************/ uchar code lcd1[]PositionFloor 1; uchar code lcd2[]PositionFloor 2; uchar code lcd3[]PositionFloor 3; uchar code lcdup[] UP ; uchar code lcddown[] DOWN ; uchar code lcdstop[] STOP ; sbit RSP26; sbit RWP25; sbit EP27; uchar code smgduan[17]{0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71}; void delaymsuint del //1ms { uint i,j; fori0;idel;i forj0;j168;j; } void lcd_wcomuchar com { RS0; RW0; P0com; delayms2; E1; delayms2; E0; } void lcd_wdatuchar dat { RS1; RW0; P0dat; delayms2; E1; delayms2; E0; } void lcd_init { delayms15; lcd_wcom0 x38; delayms15; lcd_wcom0 x38; delayms15; lcd_wcom0 x38; lcd_wcom0 x08; lcd_wcom0 x0c; lcd_wcom0 x06; lcd_wcom0 x01; } void lcd_1uchar a[] { uchar m; lcd_wcom0 x80; form0;m16;m { lcd_wdata[m]; delayms1; } } void lcd_2uchar a[] { uchar n; lcd_wcom0 x800 x40; forn0;n16;n { lcd_wdata[n]; delayms1; } } void delay10ms //10ms { unsigned char a,b,c; forc1;c0;c-- forb38;b0;b-- fora130;a0;a--; } void delay40ms //40ms { unsigned char a,b,c; forc37;c0;c-- forb154;b0;b-- fora2;a0;a--; } void motor_Up{ uchar b; uchar x; x; ifxvelocity { motor_stepmotor_array0[b]0 x0f; b; if b8 b0; x0; } } void motor_Down { uchar b; uchar x; x; ifxvelocity { motor_stepmotor_array1[b]0 x0f; b; if b8 b0; x0; } } void Key2X4 { char a0; key0 x0f; ifkey0 x0f{ delay10ms; ifkey0 x0f{ key0X0F; switchkey { case0X07KeyValue0;keyboard0;break; case0X0bKeyValue1;keyboard1;break; case0X0d KeyValue2;keyboard2;break; case0X0eKeyValue3;keyboard3;break; } key0X30; switchkey { case0X20KeyValueKeyValue4;keyboardkeyboard4;break; case0X10KeyValueKeyValue;keyboardkeyboard;break; } whilea50key0 x30 { delay10ms; a; } switchkeyboard { case0{ floor_11;keyboard8;led_10;flag_led1; } break; case1{ floor_211;keyboard8;led_20;flag_led1; } break; case2{ floor_31;keyboard8;led_30;flag_led1; } break; case3{ floor_221;keyboard8;led_20;flag_led1; } break; case4{ floor_11;keyboard8;led_10;flag_led1; } break; case5{ floor_21;keyboard8;led_20;flag_led1; } break; case6{ floor_31;keyboard8;led_30;flag_led1; } break; case7 { velocity_rank; ifvelocity_rank3 velocity_rank1; keyboard8; } break; } switchvelocity_rank { case 1velocity14; case 2velocity10; case 3velocity6; } } } ifflag_led1 { digit_led; ifdigit_led30 { led_11; led_21; led_31; digit_led0; flag_led0; } } } void startmodule { TX1; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; _nop_; TX0; whileRX; TR11; whileRX; TR10; } void conut { timeTH1*256TL1; TH10; TL10; distancetime*1.72*10; ifdistance70000||flag1 { flag0; } delay40ms; } void TimeInit { TMOD0 x11; TH00 xff; TL00 x9c; ET01; TR01; TH10; TL10; ET11; EA1; } void position_{ ifdistance3000distance13000 { position1; lcd_1lcd1; } ifdistance13000distance23000 { position2; lcd_1lcd2; } ifdistance23000 { position3; lcd_1lcd3; } } void positionStop { ifdistance3000distance4500 position_stop1; else { ifdistance12000distance14000 position_stop2; else { ifdistance22000distance24000 position_stop3; else position_stop0; } } } void move { ifmovement0{ lcd_2lcdstop; ifposition1 { iffloor_211 { UP1; floor_210; movement1; moving1; stop_12; } iffloor_221 { UP1; floor_210; movement1; moving1; stop_12; } iffloor_31 { UP1; floor_30; movement1; moving2; stop_13; } } ifposition2 { iffloor_11 { DOWN1; floor_10; movement2; moving3; stop_11; } iffloor_31 { UP1; floor_30; movement1; moving4; stop_13; } } ifposition3 { iffloor_11 { DOWN1; floor_10; movement2; moving5; stop_11; } iffloor_221 { DOWN1; floor_220; movement2; moving6; stop_12; } } } ifmovement1 { lcd_2lcdup; ifmoving1 { iffloor_31 { stop_21; floor_30; } } ifmoving2 { iffloor_211 { stop_12; stop_23; floor_210; } iffloor_21 { stop_12; stop_23; floor_20; } } } ifmovement2 { lcd_2lcddown; ifmoving5 { iffloor_221 { stop_12; stop_21; floor_220; } iffloor_21 { stop_12; stop_21; floor_20; } } ifmoving6 { iffloor_11 { stop_21; floor_10; } } } } void main { while1 { lcd_init; TimeInit; while1 { Key2X4; startmodule; conut; position_; positionStop; move; } } } void motor interrupt 1 { ifUP1 { motor_Up; ifposition_stopstop_1 { UP0; movement0; stop_10; bee0; } } else { digit_bee; ifdigit_bee10000 { digit_bee0; bee1; } ifstop_20 { digit_up; ifdigit_up20000 { UP1; stop_1stop_2; stop_20; movement1; digit_up0; } } } ifDOWN1 { motor_Down; ifposition_stopstop_1 { DOWN0; movement0; stop_10; bee0; } } else { digit_bee; ifdigit_bee10000 { digit_bee0; bee1; } ifstop_20 { digit_down; ifdigit_down20000 { DOWN1; stop_1stop_2; stop_20; movement2; digit_down0; } } } TH0 0 xff; TL0 0 x9c; } void time0 interrupt 3 { flag1; }

    注意事项

    本文(基于 51 单片机的模拟电梯模型设计.docx)为本站会员(admin)主动上传,工友文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知工友文库(发送邮件至gydoc@qq.com或直接QQ联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    copyright@ 2019-2022 工友文库网站版权所有
    经营许可证编号:鲁ICP备19032292号-1


    1
    收起
    展开