如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
#include<reg52.h>#include<intrins.h>//#defineDISPLAY#ifdefDISPLAY#defineALARM1000#else#defineALARM9000#endif#defineucharunsignedchar#defineuintunsignedint#defineBRIGHT0#defineDARK1ucharcodeFFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正转ucharcodeREV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反转sbitwela=P2^7;sbitdula=P2^6;sbitBEEP=P2^3;//蜂鸣器sbitwork=P1^0;//工作sbitinwater=P1^1;//进水sbitoutwater=P1^2;//放水sbitwashing=P1^3;//洗衣sbitclean=P1^4;//清洗sbitdryness=P1^5;//甩干sbitstop=P1^6;//结束unsignedcharkey=0;unsignedlongintt_cont=0;voiddelay(uintt){uintk;while(t--){for(k=0;k<125;k++);}}voiddelayB(ucharx)//x*0.14MS{uchari;while(x--){for(i=0;i<13;i++);}}voidmotor_ffw()//步进电机正转,转一圈{uchari;uintj;for(j=0;j<12;j++)//转1圈{for(i=0;i<8;i++)//一个周期转30度{P0=FFW[i];//取数据delay(10);//调节转速}}}voidmotor_rev()//反转,转一圈{uchari;uintj;for(j=0;j<12;j++)//转1圈{for(i=0;i<8;i++)//一个周期转30度{P0=REV[i];//取数据delay(10);//调节转速}}}voidbeep(void)//蜂鸣器{uchari;for(i=0;i<180;i++){delayB(5);BEEP=!BEEP;//BEEP取反}BEEP=1;//关闭蜂鸣器}voidbeep_high(void)//蜂鸣器{uchari;for(i=0;i<180;i++){delayB(3);BEEP=!BEEP;//BEEP取反}BEEP=1;//关闭蜂鸣器}voidCPU_51_init(void){P0=0xFF;wela=0;P0=0x00;//置P0口P0=0xFF;//置P0口P2=0xFF;//置P2口P0=0x00;dula=1;dula=0;P0=0xFF;wela=1;}voidTime0_Init(){TMOD=0x01;IE=0x82;TH0=0xD8;TL0=0xEF;//12MZ晶振,10msTR0=1;//开启定时器EA=1;//全局中断打开ET0=1;//定时器0中断打开}voidLED_init(void){work=1;inwater=1;outwater=1;washing=1;clean=1;dryness=1;stop=1;P1=0x80;//全亮delay(300);P1=0xff;//全灭delay(300);P1=0x80;//全亮delay(300);P1=0xff;//全灭delay(300);P1=0x80;//全亮delay(300);P1=0xff;//全灭}unsignedcharT_flag=0;voidmain(){unsignedchari=0,j=0;CPU_51_init();LED_init();Time0_Init();beep();delay(100);beep();delay(100);key=1;//测试while(1){if(1==key)//按键按下(模拟){T_