如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
利用废旧打印机的两种电子创新制作#include<reg52.h>#defineuintunsignedint#defineucharunsignedchar#defineMAX_f3ucharcodetable1[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};ucharcodetable2[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};ucharcodetable3[]={0x3f,0x06,0x5b,0x4f};ucharcodetable4[]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90};ucharcodetable5[]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10};uchargf,nf;//表示目的层,当前层uintup_call[MAX_f],down_call[MAX_f],in_call[MAX_f];//存放呼叫事件sbitF1=P0^0;//按键sbitF2=P0^1;sbitF3=P0^2;sbitF1u=P0^3;sbitF2u=P0^4;sbitF2d=P0^5;sbitF3d=P0^6;sbitA=P0^7;//数码管位先控制端sbitC=P3^0;//传感器输出1脚sbitD=P3^1;//传感器输出2脚sbitE=P3^2;//传感器输出3脚sbitF=P3^5;//指示灯控制1脚sbitG=P3^6;//指示灯控制1脚sbitH=P3^7;//指示灯控制1脚voiddelay(intz)//1ms延时程序{intx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidinit(){P0=0xff;P2=0;P1=0;nf=0;A=0;G=0;F=0;H=0;}voidkeyscan()//键盘扫描{if(F1==0){in_call[0]=1;}elseif(F2==0){in_call[1]=1;}elseif(F3==0){in_call[2]=1;}elseif(F1u==0){up_call[0]=1;}elseif(F2u==0){up_call[1]=1;}elseif(F2d==0){down_call[1]=1;}elseif(F3d==0){down_call[2]=1;}}voidcheck()//传感器信号{if(C==1)nf=1;if(D==1)nf=2;if(E==1)nf=3;}voidfanzhuan()//上升下降电机{uintj;F=0;G=0;H=0;for(j=0;j<8;j++){P1=table1[j];delay(5);}}voidzhengzhuan(){uintj;F=0;G=0;H=0;for(j=0;j<8;j++){P1=table2[j];delay(5);}}voidopen(){uintj,i;for(i=100;i>0;i--)for(j=0;j<8;j++){keyscan();P1=table4[j];delay(5);}}voidclose(){uintj,i;for(i=100;i>0;i--)for(j=0;j<8;j++){keyscan();P1=table5[j];delay(5);}}voiddisplay()//数码管显示{A=1;P2=table3[nf];delay(1);}voidtime()//延时、{intl;TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;TR0=1;for(l=0;l<60;l++){keyscan();TH0=(65536-50000)/256;TL0=(65536-50000)%256;while(!TF0);TF0=0;}}voidfloor()//电梯运行程序{if(nf==1){F=1;G=0;H=0;display();if(up_call[0]==1){open