单片机课程设计报告电梯_第1页
单片机课程设计报告电梯_第2页
单片机课程设计报告电梯_第3页
单片机课程设计报告电梯_第4页
单片机课程设计报告电梯_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

-.z单片机课程设计一、设计名称:电梯控制系统设计二、设计人员:周海峰、柳、吴晶晶、邹敏三、指导教师:王宪菊四、设计要求:楼层:共六层设计名称:电梯控制系统设计六个按键:用来输入要去的楼层点阵1:显示当前楼层点阵2:显示"↑〞或"↓〞箭头例如:当前电梯停在三楼,当按下键1时,点阵1间隔一秒依次显示"2〞,"1〞,点阵2显示箭头↓;当按下键6时,点阵1间隔一秒依次显示"4〞,"5〞,"6〞,点阵2显示箭头↑。器件:89c51芯片、两个8*8点阵、6个按键五、器件介绍:89c51芯片:89C51是一种带4K字节闪烁可编程可擦除只读存储器〔FPEROM—FalshProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。构造特点:8位CPU;片振荡器和时钟电路;32根I/O线;外部存贮器寻址围ROM、RAM64K;2个16位的定时器/计数器;5个中断源,两个中断优先级;全双工串行口;布尔处理器;管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进展校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写"1〞时,其管脚被部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进展存取时,P2口输出地址的高八位。在给出地址"1〞时,它利用部上拉优势,当对外部八位地址数据存储器进展读写时,P2口输出其特殊功能存放器的容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入"1〞后,它们被部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流〔ILL〕这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0R*D〔串行输入口〕P3.1T*D〔串行输出口〕P3.2/INT0〔外部中断0〕P3.3/INT1〔外部中断1〕P3.4T0〔记时器0外部输入〕P3.5T1〔记时器1外部输入〕P3.6/WR〔外部数据存储器写选通〕P3.7/RD〔外部数据存储器读选通〕P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想制止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOV*,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE制止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器〔0000H-FFFFH〕,不管是否有部程序存储器。注意加密方式1时,/EA将部锁定为RESET;当/EA端保持高电平时,此间部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源〔VPP〕。*TAL1:反向振荡放大器的输入及部时钟工作电路的输入。*TAL2:来自反向振荡器的输出8*8点阵显示:8*8点阵LED构造如下列图所示

从图中可以看出,8*8点阵共需要64个发光二极管组成,且每个发光二极管是放置在行线和列线的穿插点上,当对应的*一列置1电平,*一行置0电平,则相应的二极管就亮;因此要实现一根柱形的亮法,如下图,对应的一列为一根竖柱,或者对应的一行为一根横柱,因此实现柱的亮的方法如下所述:

一根竖柱:对应的列置1,而行则采用扫描的方法来实现。

一根横柱:对应的行置0,而列则采用扫描的方法来实现。

硬件电路连线

(1).

把"单片机系统〞区域中的P1端口用8芯排芯连接到"点阵模块〞区域中的"DR1-DR8〞端口上;

(2).

把"单片机系统〞区域中的P3端口用8芯排芯连接到"点阵模块〞区域中的"DC1-DC8〞端口上;开场六、设计流程图:开场初始化,显示第3层是否按键.是否大于当前楼层.初始化,显示第3层是否按键.是否大于当前楼层.点阵1显示楼层;点阵2显示↑。点阵1显示楼层;点阵2显示↓。Y七、设计程序:Y*include<reg51.h>*defineucharunsignedchar*defineuintunsignedint*definen800//宏定义电梯暂留时间sbitk1=P2^0;//键盘位定义sbitk2=P2^1;sbitk3=P2^2;sbitk4=P2^3;sbitk5=P2^4;sbitk6=P2^5;ucharcodetab[]={0*00,0*10,0*30,0*10,0*10,0*10,0*10,0*38,//-1- 0*00,0*38,0*44,0*04,0*08,0*10,0*20,0*7C,//-2- 0*00,0*38,0*44,0*04,0*38,0*04,0*44,0*38,//-3- 0*00,0*08,0*18,0*28,0*48,0*7C,0*08,0*08,//-4- 0*00,0*7C,0*40,0*40,0*38,0*04,0*44,0*38,//-5- 0*00,0*38,0*44,0*40,0*78,0*44,0*44,0*38//-6-};ucharcodetab1[]={0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18,0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18, 0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18, 0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18, 0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18, 0*00,0*18,0*18,0*18,0*99,0*5A,0*3C,0*18 };ucharcodetab2[]={0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18, 0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18, 0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18, 0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18, 0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18, 0*00,0*18,0*3C,0*5A,0*99,0*18,0*18,0*18};//下ucharflag=16,aa;//flag滚屏位uchara,b,c,d,e,f,g,h;//a,b,c,d,e,g楼层按键标志位,f楼层号标志位,h电梯方向标志位;voidjianpan();//键盘检测函数voidinit()//定时器0初始化{ f=flag;//让电梯停在当前3楼 TMOD=0*01; TH0=0*3c; TL0=0*b0; EA=1; ET0=1; TR0=1;//定时器T0开关位}voiddelay(uinttime)//延时us{while(time)time--;}voiddelay1(uintz)//延时ms,且显示点阵且检测键盘;用于让电梯在*楼暂留等待人们出去{ uintj,i;for(j=z;j>0;j--) { for(i=110;i>0;i--); jianpan(); for(i=0;i<8;i++) { P3=i; {if(h==1||h==0) P0=tab2[i+flag]; if(h==2) P0=tab1[i+flag]; P1=tab[i+flag]; delay(20); } } }} voidmain(){uchari; init();//初始化T0 while(1) { for(i=0;i<8;i++)//显示点阵 { P3=i;//行扫描 { if(h==1||h==0)//检测电梯方向,上 P0=tab2[i+flag];//向上滚箭头 if(h==2)//检测电梯方向,下 P0=tab1[i+flag];//向下滚箭头 P1=tab[i+flag];//滚数字 delay(20);//延时us } }if(h==2)//检测电梯向下 { if(a==1&&flag==0)//检测楼层2键盘按下,是否到达楼1 { TR0=0;//关闭定时器 delay1(n);//延时让电梯暂留 TR0=1;//翻开T0 a=0;//重置键盘 } if(b==1&&flag==8)//检测楼层2键盘按下,是否到达楼1 { TR0=0;//关闭定时器 delay1(n);//延时让电梯暂留 TR0=1;//翻开T0 b=0;//重置键盘 } if(c==1&&flag==16) { TR0=0; delay1(n); TR0=1; c=0; } if(d==1&&flag==24) { TR0=0; delay1(n); TR0=1; d=0; } if(e==1&&flag==32) { TR0=0; delay1(n); TR0=1; e=0; } if(g==1&&flag==40) { TR0=0; delay1(n); TR0=1; g=0; } } if(h==1)//检测电梯向上 { if(a==1&&flag==0)//检测楼层1键盘按下,是否到达楼1 { TR0=0;//关闭定时器 delay1(n);//延时让电梯暂留; TR0=1;//翻开T0 a=0;//重置键盘 } if(b==1&&flag==8)//检测楼层1键盘按下,是否到达楼1 { TR0=0;//关闭定时器 delay1(n);//延时让电梯暂留; TR0=1;//翻开T0 b=0;//重置键盘 } if(c==1&&flag==16) { TR0=0; delay1(n); TR0=1; c=0; } if(d==1&&flag==24) { TR0=0; delay1(n); TR0=1; d=0; } if(e==1&&flag==32) { TR0=0; delay1(n); TR0=1; e=0; } if(g==1&&flag==40) { TR0=0; delay1(n); TR0=1; g=0; } }}} voidtime0()interrupt1{ TH0=0*3c; TL0=0*b0; jianpan();//键盘检测 aa++; if(aa==6) { aa=0; if(h==1)//检测电梯向上 flag++;//向上滚屏 if(h==2)//检测电梯向下 flag--;//向下滚屏 if(flag==f&&h==1)//到达最高 { h=0;//重置电梯方向位h if(g==1)f=40;//检测低楼层键 if(e==1)f=32; if(d==1)f=24; if(c==1)f=16; if(b==1)f=8; if(a==1)f=0; } if(flag==f&&h==2)//到达最低楼层 { h=0;//重置电梯方向位h if(a==1)f=0;//检测高楼层键 if(b==1)f=8; if(c==1)f=16; if(d==1)f=24; if(e==1)f=32; if(g==1)f=40; } } }voidjianpan(){ if(k1==0)//检测楼层1键盘 {a=1;f=0;}//赋楼层1键盘标志位a=1,楼层号标志位f=0 if(k2==0)//检测楼层2键盘 {b=1;f=8;}//赋楼层2键盘标志位b=1,楼层号标志位f=16 if(k3==0)//检测楼层3键盘 {c=1;f=16;}//赋楼层3键盘标志位c=1,楼层号标志位f=24 if(k4==0){d=1;f=24;} if(k5==0) {e=1;f=32;} if(k6==0) {g=1;f=40;} if(flag<f&&h==0)//检测电梯首次运行方向,向上 h=1;//向上标志位h=1 if(h==1)//检测最高楼层按键重新赋值f { if(b==1)f=8; if(c==1)f=16; if(d==1)f=24; if(e==1)f=32; if(g==1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论