Mình dùng atmega 8 và ir sensor hàn theo hình sau
IR sensor mình đọc = arduino vẫn bình thường, nhưng đọc bằng atmega8 qua lcd thì chỉ hiện ra giá trị 1023. (Code này mình đọc giá trị biến trở qua Proteus thì vẫn ok)
![](http://www.pages.drexel.edu/~pyc23/IR_proximity_sensor.jpg)
![](http://data:image/jpeg;base64,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)
IR sensor mình đọc = arduino vẫn bình thường, nhưng đọc bằng atmega8 qua lcd thì chỉ hiện ra giá trị 1023. (Code này mình đọc giá trị biến trở qua Proteus thì vẫn ok)
![](http://www.pages.drexel.edu/~pyc23/IR_proximity_sensor.jpg)
/************************************************** ***
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
HP InfoTech - CodeVisionAVR C Compiler
Project :
Version :
Date : 8/15/2014
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega8.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
int adc = 0;
void lcd_putnum(unsigned int z)
{
unsigned int nghin, tram, chuc, dv;
nghin = z/1000;
tram = (z%1000)/100;
chuc = (z%100)/10;
dv = z%10;
lcd_putchar(nghin+48);
lcd_putchar(tram+48);
lcd_putchar(chuc+48);
lcd_putchar(dv+48);
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 1
// RD - PORTC Bit 2
// EN - PORTC Bit 3
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
while (1)
{
adc = read_adc(0);
lcd_gotoxy(0,0);
lcd_putnum(adc);
delay_ms(100);
}
}
This program was produced by the
CodeWizardAVR V2.05.0 Professional
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
HP InfoTech - CodeVisionAVR C Compiler
Project :
Version :
Date : 8/15/2014
Author : NeVaDa
Company :
Comments:
Chip type : ATmega8
Program type : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model : Small
External RAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega8.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#include <alcd.h>
#define ADC_VREF_TYPE 0x00
// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
// Declare your global variables here
int adc = 0;
void lcd_putnum(unsigned int z)
{
unsigned int nghin, tram, chuc, dv;
nghin = z/1000;
tram = (z%1000)/100;
chuc = (z%100)/10;
dv = z%10;
lcd_putchar(nghin+48);
lcd_putchar(tram+48);
lcd_putchar(chuc+48);
lcd_putchar(dv+48);
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
TCCR0=0x00;
TCNT0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=0xFF
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
MCUCR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// USART disabled
UCSRB=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x86;
// SPI initialization
// SPI disabled
SPCR=0x00;
// TWI initialization
// TWI disabled
TWCR=0x00;
// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTB Bit 1
// RD - PORTC Bit 2
// EN - PORTC Bit 3
// D4 - PORTD Bit 4
// D5 - PORTD Bit 5
// D6 - PORTD Bit 6
// D7 - PORTD Bit 7
// Characters/line: 16
lcd_init(16);
while (1)
{
adc = read_adc(0);
lcd_gotoxy(0,0);
lcd_putnum(adc);
delay_ms(100);
}
}
Comment