MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7...
-
Upload
phamnguyet -
Category
Documents
-
view
260 -
download
0
Transcript of MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7...
![Page 1: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/1.jpg)
MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR
(ADC DAN APLIKASI TERMOMETER)
D E P O K I N S T R U M E N T S dins
![Page 2: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/2.jpg)
ADC
Konsep Dasar ADC ADC = Analog to Digital Converter Pengubah sinyal analog menjadi sinyal digital (bit) Rumus dasar ADC:Data_ADC = (Vin/Vref)*(Maksimal_Data_Bit)
Vin = Tegangan analog input yang akan diubah ADC. Vref = Tegangan referensi yang dipakai oleh ADC sebagai
acuan pengubah.Maksimal_Data_Bit = Kemampuan maksimal data yang
dapat dihasilkan oleh ADC.
![Page 3: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/3.jpg)
Fitur ADC µC. ATmega16A
8 Kanal ADC: PORTA.0 = ADC(0); PORTA.1 = ADC(1); PORTA.2 = ADC(2); PORTA.3 = ADC(3); PORTA.4 = ADC(4); PORTA.5 = ADC(5); PORTA.6 = ADC(6); PORTA.7 = ADC(7);
Maksimal_Data_Bit = 10-bit = 0 – 1023 Vref ADC:
VCC ½ VCC Aref
Vin ADC = 0V – 5V
![Page 4: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/4.jpg)
DI-Smart AVR.16 System(Sistem Plus µC. ATmega16A)
Y111059200
C1
20pFC2
20pF
R1
1K
SW1RST
VCCX1
X2RST
RST
PB0PB1PB2PB3PB4PB5PB6PB7
PA0PA1PA2PA3PA4PA5PA6PA7
PD0PD1PD2PD3PD4PD5PD6PD7 PC0
PC1PC2PC3PC4PC5PC6PC7
X1X2
12345678910
P1PORTB
12345678910
P3PORTD
12345678910
P0PORTA
12345678910
P2PORTC
VCC
VCCVCC
VCC PB0PB1PB2PB3PB4PB5PB6PB7
PA0PA1PA2PA3PA4PA5PA6PA7
PC0PC1PC2PC3PC4PC5PC6PC7R1 IN13
R2 IN8T1 IN11
T2 IN10
GN
D15
V+
2
V-
6
VCC
16
R1 OUT 12R2 OUT 9T1 OUT 14
T2 OUT 7C1+1C1 -3 C2+ 4
C2 - 5
U2
MAX232CPE
+
C91uF
+
C131uF
+
C111uF
+
C101uF
VCC
162738495
DB1SERIAL
+C4470uF
Vin1
GN
D2
+5V 3U0 LM7805CT
+ C510uF
+ C6100nF
C7100nF
VCCD14002
C3
100nf
R3
2K2L10POWER
VCC
VCC
11
23
W 2
VR1
10K
AREF
AREF
VCC
PD0PD1PD2PD3PD4PD5PD6PD7
AGND 31X113 X212
RESET9
PD2 (INT0)16
PD3 (INT1)17PD4 (OC1B)18PD5 (OC1A)19
PB0 (T0)1
PB1 (T1)2PB2 (AIN0)3PB3 (AIN1)4
PB4 (SS)5
PB5 (MOSI)6PB6 (MISO)7
PB7 (SCK)8
PA0 (ADC0) 40
PA1 (ADC1) 39PA2 (ADC2) 38PA3 (ADC3) 37
PA4 (ADC4) 36
PA5 (ADC5) 35PA6 (ADC6) 34
PA7 (ADC7) 33
PC0 22PC1 23PC2 24PC3 25PC4 26PC5 27(TOSC1) PC6 28(TOSC2) PC7 29
PD7 (OC2)21 PD6 (ICP)20
AREF 32
AVCC 30
PD1 (TDX)15 PD0 (RXD)14
IC1 AT MEGA
PB5
PB6PB7
VCC
LEDRST
1 23 45 67 89 10
P4ISP PROG
S2
PD2
S3
PD3
PD2
PD3
L8PC0
VCC
L7PC1
L6PC2
L5PC3
L4PC4
L3PC5
L2PC6
L1PC7
PC0
PC1
PC2
PC3
PC4
PC5
PC6
PC7
C17100nF
D0D1D2D3D4
D6D5
D7
D0
D1
D2
D3
D4
D6
D5
D7
PD0 PD1TXD SERIAL
TXD ISP
RXD SERIAL
RXD ISP
+ C121uF
123
JP1123
JP2
123456789
RP1
12
JP3LED CONNECTED
TXD ISPRXD ISP
TXD SERIAL
RXD SERIAL
POWER9-12VDC
1
2 34
56
7
8
9
![Page 5: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/5.jpg)
DI-Smart AVR.16 System
1. ATmega16A2. Crystal3. Reset4. ISP5. Power6. Vref ADC7. RS2328. LED Array9. Push Button
1
2
34
56
8
7
9
PORTA=
ADC
Vref
![Page 6: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/6.jpg)
Pemrograman ADC pada CVAVR
Inisialisasi “Wizard”Pemilihan VrefVCC½ VCCV@Aref
Pemilihan ClockAktivasi ADC
![Page 7: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/7.jpg)
Pemrograman ADC Ditampilkan LCD (Setup “Wizard”)
1 3
4
2
![Page 8: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/8.jpg)
Pemrograman ADC Ditampilkan LCD (Subprogram Hasil “Wizard”)
read_adc(channel)adalah subprogram untuk membaca data dari kanal adc. Dengan channel adalah 0 – 7.
![Page 9: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/9.jpg)
Pemrograman ADC Ditampilkan LCD (Inisialisasi ADC Hasil “Wizard”)
Inisialisasi ADC sesuai dengan yang diinputkan saat Wizard.
![Page 10: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/10.jpg)
Pemrograman ADC Ditampilkan LCD (Membaca dan Menampilkan ADC) [1/2]
#include <mega16.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;
}
![Page 11: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/11.jpg)
Pemrograman ADC Ditampilkan LCD (Membaca dan Menampilkan ADC) [2/2]
unsigned char cstr[16];
unsigned int idata;
void main(void)
{
ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0xA6; SFIOR&=0x1F;
lcd_init(16);
while (1) {
lcd_clear();
idata = read_adc(0); sprintf(cstr,"Data ADC: %04d",idata);
lcd_puts(cstr);
delay_ms(250);
}
}
![Page 12: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/12.jpg)
Aplikasi ADC “Termometer berbasis Sensor LM35DZ”
LM35DZ adalah sensor temperatur analog ekonomis namun cukup baik dalam mengukur temperatur. Jangkauan: 0 – 100 oCSensitivitas: 10 mV/ oCOperasional: 4 – 30 V
![Page 13: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/13.jpg)
Fungsi Transfer Sensor LM35DZ
Tinjau-ulang dasar ADC:Data_ADC = (Vin/Vref)*(Maksimal_Data_Bit)Data_ADC = Hasil konversi ADC internal ATmega16AVin = Tegangan LM35Vref = Sesuai pengaturan di “Wizard” CVAVR = 5VMaksimal_Data_Bit = 10 Bit = 1023
Sensitivitas LM35 = 10 mV/ oC Temperatur terukur (T):
T = (Vin/10 mV) oC T = ((Data_ADC*5V/1023)/10 mV) oC
![Page 14: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/14.jpg)
“Termometer berbasis Sensor LM35DZ”(Skrip Program CVAVR) [1/3]
#include <mega16.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;
}
![Page 15: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/15.jpg)
“Termometer berbasis Sensor LM35DZ”(Skrip Program CVAVR) [2/3]
unsigned char cstr[16], T; //T = Temperatur
unsigned int idata;
float fdata; //Nilai pecahan agar perhitungan baik.
void main(void)
{
ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0xA6; SFIOR&=0x1F;
lcd_init(16);
while (1)
{
lcd_clear(); idata = read_adc(0);
sprintf(cstr,"Data ADC: %04d",idata);
lcd_puts(cstr);
![Page 16: MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR … · pb5 pb6 pb7 pa0 pa1 pa2 pa3 pa4 pa5 pa6 pa7 pc0 pc1 pc2 pc3 pc4 pc5 pc6 pc7 r1 in 13 r2 in 8 t1in 11 t2in 10 g n d 1 5 v + 2 v-6](https://reader030.fdocuments.net/reader030/viewer/2022021610/5cb5da6188c99357178c5727/html5/thumbnails/16.jpg)
“Termometer berbasis Sensor LM35DZ”(Skrip Program CVAVR) [3/3]
fdata = (((float)idata*5)/1023)/0.01;
T = (char)fdata;
sprintf(cstr,"Temperatur: %02d C",T);
lcd_gotoxy(0,1); lcd_puts(cstr);
delay_ms(250);
}
}