《8×8-LED点阵屏模仿电梯运行的楼层显示(共19页).doc》由会员分享,可在线阅读,更多相关《8×8-LED点阵屏模仿电梯运行的楼层显示(共19页).doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上信息工程学院课程设计报告书题目: 88 LED点阵屏模仿电梯运行的楼层显示 专 业: 电子信息科学与技术班 级: 三年级 学 号: * 学生姓名: * 指导教师: 2013年5月2日信息工程学院课程设计任务书学 号*学生姓名*专业(班级)电子信息科学与技术设计题目88 LED点阵屏模仿电梯运行的楼层显示设计技术参数设计要求工作量工作计划参考资料指导教师签字教研室主任签字 年 月 日 学生姓名: * 学号: * 专业(班级): 电子信息科学与技术 课程设计题目: 88 LED点阵屏模仿电梯运行的楼层显示 指导教师评语: 成绩: 指导教师: 年 月 日信息工程学院课程设计
2、成绩评定表摘要本文介绍了一种采用单片AT89S52芯片进行电梯控制系统的设计方法,主要阐述如何使用单片机进行编程来实现电子设计的方法,利用单片机编程实现功能,简洁而又多变的设计方法,缩短了研发周期,同时使电梯控制系统体积更小功能更强大。本设计实现了电梯控制系统所需的一些基本功能,能通过数字按键选择楼层,数码管显示实时楼层数。原理图采用proteus专业软件来设计。关键词:AT89C52;电梯控制系统;C语言目录1 任务提出与方案论证1.1设计任务及要求1、 设计采用单片机控制8*8 LED点阵屏来模仿电梯运行的楼层显示装置。2、 单片机的Pl口的8只引脚接有8只按键开关KlK8,这8只按键开关
3、K1K8分别代表l楼8楼。如果某一楼层的按键按下,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。3、 在上述功能的基础上,向电路中添加LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。4、 如果在待去的楼层的数字中,有的在当前运行的反方向,则数字先在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。1.2方案论证本次设计的基本思想是采用AT89C51单片机作为核心,利用其丰富的I/O接口与外围电路配合进行控制。按题目要求采用8*8点阵来实时显示电梯所在楼层。由于是8层楼,采用8个独立键盘
4、。当电梯到达目的楼层时,LED灯亮起,蜂鸣器响,此时即可进、出乘客,然后电梯根据乘客的选择判断去哪一层,继续运行。电梯的正常运行通过单片机的控制来实现。2 总体设计2.1设计原理及方法根据层次化设计理论,该设计问题自顶向下可分为单片机最小系统模块、显示模块、开关控制模块、电机驱动模块、稳压模块,其系统框图如图2.1所示。单片机AT89S52单片机AT89S52单片机AT89S52显示模块键盘控制响应模块响应模块键盘控制图2.1 电梯控制系统框图本次设计是采用键盘控制实现上下到指定楼层,通过稳压模块使电机转动带动电梯箱上下运动,到达指定楼层。显示模块是显示此时的楼层以及要求到达的楼层。电梯初始显
5、示0。单片机的Pl口的8只引脚接有8只按键开关K1K8,这8只按键开关K1K8分别代表l楼8楼。如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置。在上述功能的基础上,向电路中添加LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。例如,当前位置在l层时,用户依次按下6、5时,则数字分别向上滚动到5、6时暂停且LED闪烁片刻,同时蜂鸣器发出提示音。如果在待去的楼层的数字中,有的在当前运行的反方向,则数字先在当前方向运行完毕后,再依次按顺序前往反方向的数字位置。用P2口做8
6、*8点阵的行选通,Pl口完 成按键的读取及确认。3 详细设计3.1单片机最小系统模块图3.1.1单片机最小系统单片机最小系统包括主芯片,复位电路和晶振脉冲产生电路。X1为12MHz晶振,与30Pf电容并联,产生1us的脉冲信号作为单片机的“心脏”部分。复位电路是开关与10uf电容并联组成的上电自动复位电路,在RST端为高电平时单片机清零,也即开关按下会产生清零信号。RP1为排阻,作为P0端的上拉电阻,接此原因是P0端口是由OC门组成。U1为数据输入端口,通过电脑编程能将程序通过此接口烧录入单片机中。8位CPU4kbytes,(ROM) (52为8K),128bytes的数据(RAM) (52有
7、256bytes的RAM),32条I/O口线111条指令,大部分为单字节指令,21个专用寄存器,2个可编程定时/计数器,5个源,2个优先级(52有6个),一个全双工口,外部数据为64kB,外部寻址空间为64kB,逻辑操作功能,双列直插40PinDIP封装,单一+5V电源供电。CPU:由运算和控制逻辑组成,同时还包括和部分外部;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出;T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;一个全双工UART(通用
8、异步接收发送器)的I/O口,用于实现单片机之间或单片机与微机之间的;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率为12M。3.2开关控制模块图3.1.2 开关控制模块单片机的Pl口的8只引脚接有8只按键开关K1K8,这8只按键开关K1K8分别代表l楼8楼。如果按下代表某一楼层的按键,单片机控制的点阵屏将从当前位置向上或向下平滑滚动显示到指定楼层的位置,系统检测按键低电平识别依次按下的多个按键。3.3显示模块图3.2.4显示模块8X8点阵,它共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;p
9、2进行列扫描,p0输入数据.3.4声光模块P3.0、P3.1口分别控制电路中LED指示灯和蜂呜器,使系统可以同时识别依次按下的多个按键,在到达指定位置后蜂鸣器发出短暂声音且LED闪烁片刻,数字继续滚动显示。3.5按键中断检测模块按键中断检测模块,由于单片机检测低电平,有8个按键需要检测,采用2个四输入端与门和一个二输入端与门搭配,使之达到检测是否有按键按下目的。3.6电路总图图3.2.6 电路总图4 总结通过此次电梯控制系统的设计,我收获颇丰。设计的核心内容就是利用单片机C51的编程来实现控制外围各电路的运行。通过本次设计,我熟练掌握了程控系统设计的一般步骤,熟悉了编程软件的用法,并对编程能力
10、起到了一定的提高作用。本系统具有硬件少,结构简单,容易实现,性能稳定可靠,成本低等特点。在此次设计中,我们得到以下体会:一、在这次点阵设计的过程让我进一步熟悉KEIL及Proteus的使用。二、通过这次点阵设计,重新复习并进一步学习了MCS-52优点,明确了研究目标。三、在后的设计中,既要想到电路器件的联合使用,又要灵活变通,举一反三。参考文献1 李朝青单片机通讯技术与工程实践北京:航空航天大学出版,2007.22 李群芳单片机原理接口与应用北京:清华大学出版社,2005.63 朱清慧,张凤蕊,翟天嵩,王志奎.Proteus教程电子线路设计、制作与仿真M. 北京:清华大学出版社,2008.4
11、马忠梅单片机C语言应用程序设计.北京:航空航天大学出版社,1997.105 谢自美电子线路设计.武汉:华中科技大学出版社,2000.56康华光,陈大钦. 电子技术基础模拟部分(第五版)M. 北京:高等教育出版社,20057郭天祥.51单片机C语言教程M.北京:电子工业出版社.2008.8 刘欣铭,张广斌.LED显示屏技术综述J.黑龙江电力,2003, 25(4):294-296.#include#include#define uchar unsigned char#define uint unsigned intuchar code Table_of_Digits=0x00,0x3e,0x41
12、,0x41,0x41,0x3e,0x00,0x00,/00x00,0x00,0x00,0x21,0x7f,0x01,0x00,0x00,/10x00,0x27,0x45,0x45,0x45,0x39,0x00,0x00,/20x00,0x22,0x49,0x49,0x49,0x36,0x00,0x00,/30x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,/40x00,0x72,0x51,0x51,0x51,0x4e,0x00,0x00,/50x00,0x3e,0x49,0x49,0x49,0x26,0x00,0x00,/60x00,0x40,0x40,0x40,
13、0x4f,0x70,0x00,0x00,/70x00,0x36,0x49,0x49,0x49,0x36,0x00,0x00,/8;uchar i=0,t=0,j=0,a=0;static int Current_floor=0,Pressed_key_up=0,Pressed_key_down=0,b=0,c=0,max=0,min=0; int flag;int floor_up8=9,9,9,9,9,9,9,9;int floor_down8=0,0,0,0,0,0,0,0;sbit KEY1=P10;sbit KEY2=P11;sbit KEY3=P12;sbit KEY4=P13;sb
14、it KEY5=P14;sbit KEY6=P15;sbit KEY7=P16;sbit KEY8=P17;sbit LED=P30;sbit SPEAK=P31;void Key_up_comparison();void Key_down_comparison();void max_min_comparison();void main()P2=0x80;LED=0;SPEAK=0;TMOD=0x01;TH0=(65536-6000)/256;TL0=(65536-6000)%256;IT0=1;IE=0x83;TR0=1;ET0=1;Pressed_key_up=floor_up0;whil
15、e(1)Key_up_comparison();Key_down_comparison();max_min_comparison();void LED_Screen_Display() interrupt 1TH0=(65536-6000)/256;/6ms定时TL0=(65536-6000)%256;P0=0xff;Pressed_key_up=floor_up0;Pressed_key_down=floor_down0;if(flag=1) if(Pressed_key_up!=9) if(Pressed_key_upCurrent_floor)P0=Table_of_DigitsCurr
16、ent_floor*8+i;P2=_crol_(P2,1);if(+i=8) i=0;P2=0x80;if(+t=250)t=0;+Current_floor; else if(Pressed_key_upCurrent_floor);else if(Pressed_key_downCurrent_floor)if(floor_down0=0)flag=1;floor_upb+=j;if(b=8) b=0;else if(jCurrent_floor)if(floor_up0=9)flag=0;floor_downc+=j;if(c=8) c=0;else if(j=Current_floor
17、);void Key_up_comparison()int a1,a2,a3=0;for(a2=0;a27;a2+)for(a1=0;a1floor_upa1+1)a3=floor_upa1;floor_upa1=floor_upa1+1;floor_upa1+1=a3;if(floor_upa1=floor_upa1+1)floor_upa1+1=9;void Key_down_comparison()int a1,a2,a3=0;for(a2=0;a27;a2+)for(a1=0;a17;+a1)if(floor_downa1floor_downa1+1)a3=floor_downa1;f
18、loor_downa1=floor_downa1+1;floor_downa1+1=a3;if(floor_downa1=floor_downa1+1)floor_downa1+1=0;void max_min_comparison()int j;for(j=1;jfloor_downj+1)min=floor_downj+1;else min=floor_downj;for(j=1;j=7;j+)if(floor_upj=9);else if(floor_upj+1=9)max=floor_upj;else if(floor_upjfloor_upj+1)max=floor_upj+1;else max=floor_upj;专心-专注-专业