Em chào các anh. em đang giao tiếp với ADC0809 e lập trình nó chạy rồi nhưng hiển thị ko đúng giá trị .
Các anh xem code và chỉnh giúp e với!
Còn đây là mô phỏng
New folder.rar
các anh xem giúp e với nha. em cảm ơn!
Các anh xem code và chỉnh giúp e với!
Code:
// CHUONG TRINH HIEN THI NHIET DO LEN LED 7 DOAN #include<reg52.h> #include<stdio.h> #include<intrins.h> #define adc_port P1 //====================================== sbit doc = P3^0; sbit viet = P3^1; sbit NGAT = P3^2; sbit CS = P3^3; sbit led1 = P3^4; sbit led2 = P3^5; sbit led3 = P3^6; sbit led4 = P3^7; unsigned char M[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90}; unsigned char donvi,chuc,tram,nghin ,adc_val; long num,j; void tre(void) { TMOD=0x10; TH1=0xD8; TL1=0xEF; TR1=1; while(!TF1) ; TF1=0; TR1=0; } void hienthi(void) { chuc=((adc_val%1000)%100)/10; donvi=((adc_val%1000)%100)%10; led1=1; P2=M[chuc]; tre(); led1=0; P2=0xFF; led2=1; P2=M[donvi]; tre(); led2=0; P2=0xFF; led3=1; P2=0x9C; tre(); led3=0; P2=0xFF; led4=1; P2=0xC6; tre(); led4=0; P2=0xFF; } // ham chuyen doi gia trij ADC void conv(){ CS = 0; //Make CS low viet = 0; //Make WR low viet= 1; //Make WR high CS = 1; //Make CS high while(NGAT); //Wait for INTR to go low } void read(){ CS = 0; //Make CS low doc = 0; //Make RD low adc_val = adc_port; //Read ADC port doc = 1; //Make RD high CS = 1; //Make CS high } // ham tao tre void main(void) { while(1) { conv(); read() ; hienthi(); } }
New folder.rar
các anh xem giúp e với nha. em cảm ơn!
Comment