概述
我用的at89c51和adc0832,想对光敏电阻的电压采样和判断,但在判断的时候,判断语句就判断了一个,其他的判断情况怎么都不进入。是为什么呢?程序是:#include#include
我用的at89c51和adc0832,想对光敏电阻的电压采样和判断,但在判断的时候,判断语句就判断了一个,其他的判断情况怎么都不进入。是为什么呢?程序是:#include #include#define uchar unsigned char #define uint unsigned int sbit key1=P3^5; sbit key2=P3^7; sbit key3=P3^6; sbit LED1=P1^1; sbitLED2=P1^2; sbit LED3=P1^3; sbit LED4=P1^4; sbit LED5=P1^5; bit HOLD_SET=0;uchar NO_NUM_FLOG=0; sbit CS=P0^7; sbit CLK=P0^6; sbit DIO=P0^5; unsigned char A_D() { unsigned char i,dat; CS=1; CLK=0; CS=0; DIO=1; CLK=1; CLK=0; DIO=1; CLK=1; CLK=0; DIO=0; CLK=1; CLK=0;DIO=1; CLK=1; for(i=0;i<8;i++) { CLK=1; CLK=0; dat<<=1; dat|=(unsigned char)DIO; } CS=1; return dat; }void Delay_1ms(uint xms) {uint i,j; for(i=xms;i>0;i--) for(j=122;j>0;j--); } void key() {if(key1==0) {Delay_1ms(5);if(key1==0){ HOLD_SET=~HOLD_SET; while(!key1); } } if(HOLD_SET==1) {if(key2==0) { Delay_1ms(5);if(key2==0){ NO_NUM_FLOG++; if(NO_NUM_FLOG==3)NO_NUM_FLOG=1; while(!key2);}}if(key3==0){Delay_1ms(5);if(key3==0){NO_NUM_FLOG=0;while(!key3);}}} } void main() {unsigned int AD_val;Delay_1ms(50);key1=1; key2=1;key3=1;LED1=1; LED2=1; LED3=1; LED4=1; LED5=1;TMOD=0x01; TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1; ET0=1;TR0=1; while(1){key();if(HOLD_SET) {LED4=1; LED5=0;LED1=1;LED2=1;LED3=1;if(NO_NUM_FLOG==1) P2=0x33; if(NO_NUM_FLOG==2)P2=0x00; if(NO_NUM_FLOG==0) P2=0xff;}else{ LED4=0;LED5=1;AD_val=A_D();if(AD_val>230){LED1=1; LED2=1; LED3=0;P2=0x00;}else if(AD_val<80){ LED1=0; LED2=1; LED3=1;P2=0xff;}else if(80
展开
最后
以上就是友好鸡翅为你收集整理的adc0832对光电二极管进行数据采集_我用的at89c51和adc0832,想对光敏电阻的电压采样和判断,但无法实现。...的全部内容,希望文章能够帮你解决adc0832对光电二极管进行数据采集_我用的at89c51和adc0832,想对光敏电阻的电压采样和判断,但无法实现。...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复