سلام
یه مشکل در راه اندازی سنسور دما ds18b20 بروی 7seg دارم
البته روی ال سی دی کاراکتری به نمایش در آوردم
ولی هرکاری می کنم روی نمایشگر 7 segment نمی تونم اجرا کنم ( مشکلش اینه که عدد دما رو نشون می ده ولی این سنسور اینقدر سرعت میکرو رو پایین میاره که باعت چشمک زدن نمایشگر 7segment میشه
از دوستان ..... کسی راه حل داره واسه این مشکل
برنامه به زبان c نوشتم
....
یه مشکل در راه اندازی سنسور دما ds18b20 بروی 7seg دارم
البته روی ال سی دی کاراکتری به نمایش در آوردم
ولی هرکاری می کنم روی نمایشگر 7 segment نمی تونم اجرا کنم ( مشکلش اینه که عدد دما رو نشون می ده ولی این سنسور اینقدر سرعت میکرو رو پایین میاره که باعت چشمک زدن نمایشگر 7segment میشه
از دوستان ..... کسی راه حل داره واسه این مشکل
برنامه به زبان c نوشتم
....
کد:
/***************************************************** Chip type : ATmega32 Program type : Application AVR Core Clock frequency: 16.000000 MHz Memory model : Small External RAM size : 0 Data Stack size : 256 *****************************************************/ #include <mega32.h> // 1 Wire Bus interface functions #include <1wire.h> #include <ds18b20.h> #include <delay.h> long int part1=0,part2=0,part3=0; flash long int c7seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; float temp; // Declare your global variables here void HEX_to_seg(long int k){ part3 = c7seg [k%10]; part2 = c7seg [k/10%10]; part1 = c7seg [k/10/10%10]; } void main(void) { // Declare your local variables here PORTB=0x8E; DDRB=0xF0; PORTC=0x00; DDRC=0xff; PORTD=0x00; DDRD=0xff; // TWI initialization // TWI disabled TWCR=0x00; // 1 Wire Bus initialization // 1 Wire Data port: PORTB // 1 Wire Data bit: 0 // Note: 1 Wire port settings must be specified in the // Project|Configure|C Compiler|Libraries|1 Wire IDE menu. w1_init(); while (1) { temp=ds18b20_temperature(0); HEX_to_seg(temp); PORTC=0b001; PORTD=part1; delay_ms(10); PORTC=0b010; PORTD=part2; delay_ms(10); PORTC=0b100; PORTD=part3; delay_ms(10); } }
دیدگاه