如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
《单片机原理及应用》电梯楼层显示电路指导老师:指导老师:陈潮红姓名:李云学号:12009243755学院:物理电气信息学院班级:09级电子信息工程截稿日期:截稿日期:2011年12月26日电梯楼层显示电路一、实验目的:实验目的:1、掌握51单片机的基本结构及相关知识,并能熟练应用。2、熟悉用C语言在51单片机的编程方法及编程思想。3、掌握Keil和Protues软件的使用和两者的关系,并能更好的用两种软件来做单片机实验的仿真。4、了解电梯楼层显示电路的编程方法和相关知识。5、培养学生自主学习、正确分析和解决问题的能力二、实验原理:实验原理:电梯楼层显示电路是由单片机控制的,主要的部件有51单片机、开关控制和数码显示管组成。通过数码管显示楼层,开关控制。实验流程图:三、实验流程图:系统初始化等待用户上呼下呼内选指令并指示上行/下行上行下行并指示开门指示并复位上呼下呼内选指示延时关门并指示四、实验源程序:实验源程序:#include<reg51.h>#defineucharunsignedchar#defineuintunsignedintsbitled=P2;sbitsw1=P1^0;sbitsw2=P1^1;sbitsw3=P1^2;sbitsw4=P1^3;charcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};voiddelay(intn){inti;while(n--){for(i=0;i<10000;i++){;}}}voidmain(){intcount=1;P2=0x06;while(1){if(sw1==0){if(count==1){P2=table[count];delay(10);}else{do{count--;P2=table[count];delay(10);}while(count-1>0);}}if(sw2==0){if(count<2){do{count++;P2=table[count];delay(10);}while(2-count>0);}elseif(count>2){do{count--;P2=table[count];delay(10);}while(count-2>0);}else{P2=table[count];delay(10);}}if(sw3==0){if(count==3){P2=table[count];delay(10);}elseif(count>3){do{count--;P2=table[count];delay(10);}while(count-3>0);}else{do{count++;P2=table[count];delay(10);}while(3-count>0);}}if(sw4==0){if(count==4){P2=table[count];delay(10);}else{do{count++;P2=table[count];delay(10);}while(4-count>0);}}}}五、实验步骤:实验步骤:1、打开Protues软件,画出实验电路仿真图:如下然后保存。2、打开keil软件,project―newuvisionproject―输入工程名,保存。然后新建Text,输入上面的C语言程序,编译。保存成后缀名为.C的文件。然后左击左面栏里的sourcegroup1―Addfiletosourcegroup1,选择刚刚保存的.C文件,点确定。然都Flash―ConfigureFlashtools―output―Creathexfile―确定。系统提示hex文件创建成功。3、打开第一步画好的原理图,双击AT89c51―programfile,找到在Keil里面生成的hex文件,确定。4、点击仿真按钮进行仿真。六、实验结果:实验结果:数字就是显示的楼层,如图。七、实验心得:实验心得:通过这次课程设计,让我在学习单片机理论知识的基础上,增强了的实践动手能力。在参考了许多相关资料后,充分理解了四层电梯的设计要求,基本上完成了设计的功能要求,但本代码中可能仍存在一些不能解决的实际问题,许多工程实际问题不能完全用理论知识去解决,需要不断吸取现场经验,寻找解决问题方法。虽然能完成设计的基本功能,但仍有可拓展的空间,比如超载报警、多层电梯等,都是可以继续研究以满足更多的功能要求,但以我现在对单片机知识的了解,可能不太容易完成,希望以后有机会再深入地学习单片机,设计出更符合实际功能需求的代码。