Zero☞L Duole_Zhang
Memory
关注数: 33 粉丝数: 35 发帖数: 1,829 关注贴吧数: 5
求大神帮我看看这个程序哪不合适,小弟感激不尽。 #include<reg52.h> #include<intrins.h> #define uint unsigned int void main(void) { char num; uint adc1=0; uint adc2=0; Init_Timer1(); Coil_OFF; while(1) { num=KeyScan(); //循环调用按键扫描 if(num==1) { StopFlag=0; } else if (num == 2) { Coil_OFF; StopFlag=1; } adc1 = AD_1543(0x00); adc2= AD_1543(0X02); if (adc1 > adc2) flag = 0; else if(adc1 < adc2) flag = 1; else Coil_OFF; } } void Init_Timer1(void) { TMOD |= 0x10; TH1=0; TL1=0; EA=1; ET1=1; TR1=1; PT1=1; } void DelayUs2x(unsigned char t) { while(--t); } void DelayMs(unsigned char t) { while(t--) { DelayUs2x(245); DelayUs2x(245); } } unsigned char KeyScan(void) { Unsigned char keyvalue; if(KeyPort!=0xff) { DelayMs(10); if(KeyPort!=0xff) { keyvalue=KeyPort; while(KeyPort!=0xff); switch(keyvalue) { case 0xfe:return 1;break; case 0xfd:return 2;break; default:return 0;break; } } } return 0; } void Timer1_isr(void) interrupt 3 using 1 { static unsigned char i,j; TH1=0; TL1=0; if(!StopFlag) { if(flag)//正转 { switch(i) { case 0:Coil_A1;i++;break; case 1:Coil_AB1;i++;break; case 2:Coil_B1;i++;break; case 3:Coil_BC1;i++;break; case 4:Coil_C1;i++;break; case 5:Coil_CD1;i++;break; case 6:Coil_D1;i++;break; case 7:Coil_DA1;i++;break; case 8:i=0;break; default:break; } } else//反转 { switch(j) { case 0:Coil_DA1;j++;break; case 1:Coil_D1;j++;break; case 2:Coil_CD1;j++;break; case 3:Coil_C1;j++;break; case 4:Coil_BC1;j++;break; case 5:Coil_B1;j++;break; case 6:Coil_AB1;j++;break; case 7:Coil_A1;j++;break; case 8:j=0;break; default:break; } } } } int AD_1543(uchar n) { data uchar i,j; idata union { uchar ch[2]; uint m; }u; clk43 = 0; ad43_cs = 0; ab = n << 4; for(j = 0;j < 10; j++); for(i = 0;i < 8; i++) { addr43 = abit7; ab <<=1; abit0 = dout43; clk43 = 1; clk43 = 0; for(j = 0;j < 10; j++); } u.ch[0] = ab; ab = 0; for(i = 0;i < 2;i++) { ab <<= 1; abit0 = dout43; //1543数据输出放入ab的第0位 clk43 = 1; for(j = 0;j < 10; j++);//延时 clk43 = 0; for(j = 0;j < 10; j++);//延时 } u.ch[1] = ab << 6; u.m >>= 6; ad43_cs = 1; return u.m; }
1 下一页