با سلام وخسته نباشید خدمت اساتید و دوستان
دارم یه برنامه ای می نویسم به زبان سی که از LM35 دما رو میخونه و تو 2تاسون سگمنت تکی نمایش میده که هر کدوم از سون سگمنتا به یه پورت وصل شده
مشکلم تو برنامه نیست نمیدونم چرا تو پروتئوس رقم یکان رو به خوبی نمایش میده ولی رقم دهگان رو نشون نمیده میخوام اگه کسی میتونه کمک کنه
#include <mega16a.h>
#include <delay.h>
#include <stdio.h>
#include <alcd.h>
#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
}
void main(void)
{unsigned char seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F,0x63,0x39};
unsigned char A;
unsigned char B;
int Dama;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
lcd_init(16);
while (1)
{
Dama = read_adc(0)*0.49;
A=seg[Dama/10];
B=seg[Dama%10];
PORTB=A;
PORTD=B;
}
}
دارم یه برنامه ای می نویسم به زبان سی که از LM35 دما رو میخونه و تو 2تاسون سگمنت تکی نمایش میده که هر کدوم از سون سگمنتا به یه پورت وصل شده
مشکلم تو برنامه نیست نمیدونم چرا تو پروتئوس رقم یکان رو به خوبی نمایش میده ولی رقم دهگان رو نشون نمیده میخوام اگه کسی میتونه کمک کنه
#include <mega16a.h>
#include <delay.h>
#include <stdio.h>
#include <alcd.h>
#define ADC_VREF_TYPE 0x00
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
// Alphanumeric LCD initialization
// Connections are specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTD Bit 0
// RD - PORTD Bit 1
// EN - PORTD Bit 2
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
}
void main(void)
{unsigned char seg[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6 F,0x63,0x39};
unsigned char A;
unsigned char B;
int Dama;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
lcd_init(16);
while (1)
{
Dama = read_adc(0)*0.49;
A=seg[Dama/10];
B=seg[Dama%10];
PORTB=A;
PORTD=B;
}
}
دیدگاه