6 LAMPIRAN A RANGKAIAN ELEKTRONIKA LENGKAP. Rangkaian biopotential amplifier dan low-pass filter J RL RL R buffer 3 vcc+ vcc- J5 3 supply J6 3 ke PS J RA LA LA LA C 3.9K J4 vcc- 3 4 INA4 R 655.555 8 7 6 5 vcc+ out bio + C u C9 out bio + u R6 3.3M out HPF + u R4 J3 RA RA buffer + J7 vcc- 3 4 C3 buffer u 8 7 6 5 + vcc+ C4 u R3 0k + vcc- 390k C6 u J8 3 4 drl 8 7 6 5 vcc+ + C5 u R5 390k RL C0 56n R9 R8 k R7 3.3M 63k out HPF vcc- + C7 u J9 3 4 LPF 8 7 6 5 Title + vcc+ C8 u output Title = ECG output J0 out Size Document Number Rev A <Doc> <R ev C o Date: Tuesday, May 08, 0 Sheet of
6. Rangkaian notch filter dan high-pass filter vcc+ vcc- J 3 C8 u supply C0 u C6 u R R J.M.M J3 R4 J5 in C7 u 8 7 6 5 vcc+ C.5n C3.7n C.5n R3 M 3 vcc- 4 LF 3 4 vcc- LF 8 7 6 5 vcc+ C9 u J6 cek notch 5k C4 u C5 u R5 J4 3 4 vcc- LF356 8 7 6 5 vcc+ C u 0k J7 Title Title = HPF&NOTCH out Size Document Number Rev A <Doc> <Rev Code> Date: Tuesday, May 08, 0 Sheet of
63 3. Rangkaian sistem minimum mikrokontroler dan RS-3 JP input VCC VCC J3 Tx_Rx JP_Supply 390 R3 D3 RESET ind downloadsck MISO J Tx-Rx JP5 3 4 5 6 7 8 9 0 Header Downloader VCC R K J_Kristal VCC J 8 7 3 6 4 5 5 4 6 3 7 8 9 0 0 9 8 7 3 6 4 5 ATmega8 R 330 L 0uH C 00nF JP sisa ADC VCC MOSI BTN RESET C3 33pF C4 33pF C RESET 00nF VCC 3 SCK MISO MOSI 4 5 VCC VCC D4 ind supply C5 0uF C6 0uF VCC C7 0uF C8 3 8 0 3 4 5 6 0uF U RIN RIN TIN TIN C+ C- C+ C- V+ V- MAX3 6 VCC GND 5 ROUT ROUT TOUT TOUT 9 4 7 VCC C9 0uF JDRA 5 9 4 8 3 7 6 CONN DSUB 9-R/9-R_0 Title Title = ATMEGA 8 & MAX3 Size Document Number Rev A <Doc> <Rev Code> Date: Tuesday, May 08, 0 Sheet of
64 LAMPIRAN B LISTING PROGRAM. Listing program mikrokontroler #include <mega8.h> #include <stdio.h> #include <delay.h> #define ADC_VREF_TYPE 0x60 unsigned char 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(0); // Start the AD conversion ADCSRA =0x40; // Wait for the AD conversion to complete while ((ADCSRA & 0x0)==0); ADCSRA =0x0; return ADCH; } int ecg; float y[3]; float x[3]; float z; void main(void)
65 { // USART initialization // Communication Parameters: 8 Data, Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x8; UCSRC=0x86; UBRRH=0x00; UBRRL=0x67; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter : Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC Clock frequency: 50,000 khz // ADC Voltage Reference: AVCC pin // Only the 8 most significant bits of // the AD conversion result are used ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0x86; while () {
{awal} ecg = read_adc(0); putchar(ecg); delay_us(7750); {akhir} // Place your code here }; }. Listing program Form A (BORLAND DELPHI) unit Unit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, jpeg, ExtCtrls, MPlayer; type TForm = class(tform) Label: TLabel; Image: TImage; Label: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Image: TImage; Image3: TImage; Image4: TImage; Label7: TLabel; Label8: TLabel; Label9: TLabel; Button: TButton; Button: TButton; Timer: TTimer; Label0: TLabel; procedure ButtonClick(Sender: TObject); procedure ButtonClick(Sender: TObject); procedure TimerTimer(Sender: TObject); procedure FormCreate(Sender: TObject); private 66
67 { Private declarations } public { Public declarations } var Form: TForm; implementation uses Unit, Unit3; {$R *.dfm} procedure TForm.ButtonClick(Sender: TObject); close; procedure TForm.ButtonClick(Sender: TObject); Form.Show; procedure TForm.TimerTimer(Sender: TObject); Label0.Caption:=formatdatetime('"Tanggal : "dd/mm/yyyy',now)+chr(3)+formatdatetime('"pu kul : "hh:nn:ss',now); procedure TForm.FormCreate(Sender: TObject); end. 3. Listing program Form B (BORLAND DELPHI) unit Unit; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CPort, CPortCtl, ExtCtrls, TeEngine, Series, TeeProcs, Chart, jpeg, MMSystem; type
68 TForm = class(tform) Button: TButton; Button: TButton; Button3: TButton; Button4: TButton; Chart: TChart; Series: TFastLineSeries; ComPort: TComPort; Image: TImage; Image: TImage; Image3: TImage; Image4: TImage; Image5: TImage; Image6: TImage; Image7: TImage; Image8: TImage; Image9: TImage; Image0: TImage; Timer: TTimer; Image3: TImage; Image9: TImage; Image0: TImage; Timer: TTimer; Timer3: TTimer; Timer4: TTimer; Edit: TEdit; Edit: TEdit; Label: TLabel; Label: TLabel; procedure ButtonClick(Sender: TObject); procedure Button3Click(Sender: TObject); procedure ButtonClick(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure ComPortRxChar(Sender: TObject; Count: Integer); procedure TimerTimer(Sender: TObject); procedure TimerTimer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure Timer4Timer(Sender: TObject); private
{ Private declarations } public { Public declarations } var Form: TForm; x : integer; y : integer; z : integer; risingedge : boolean; implementation uses Unit3; {$R *.dfm} {$R cut.res} procedure TForm.ButtonClick(Sender: TObject); Comport.Close; close; procedure TForm.Button3Click(Sender: TObject); Comport.ShowSetupDialog; procedure TForm.ButtonClick(Sender: TObject); comport.open; x := 0; series.clear; end ; procedure TForm.Button4Click(Sender: TObject); //timer.enabled := false; Comport.Close; procedure TForm.Button5Click(Sender: TObject); //timer4.enabled := true; 69
procedure TForm.ComPortRxChar(Sender: TObject; Count: Integer); var dataterima,index,m,datakedua,idx : integer; for index:= to Count do comport.read(dataterima,); x := x+; if (x>500) then for idx:= to 499 do chart.series[0].yvalue[idx-] := chart.series[0].yvalue[idx]; 70 chart.series[0].yvalue[499] := dataterima; x := 500; end else with chart do with series do addxy(x,dataterima); {} m := datakedua - dataterima; datakedua := dataterima + ; if ((m = 0) AND ( dataterima = 0 ) AND ( dataterima = 0 )) then image.visible := true; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := false;
7 image6.visible := false; image7.visible := false; image8.visible := false; image9.visible := false; image0.visible := false; risingedge := true; end else if ((m > 0) AND ( dataterima >= 0 ) AND ( dataterima <= 3 ))then image.visible := false; image.visible := true; image3.visible := false; image4.visible := false; image5.visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.visible := false; image0.visible := false; risingedge := true; end else if ((m > 0) AND( dataterima >= 3 ) AND ( dataterima <= 5 ))then if (risingedge =True) then z := z+; risingedge := False; timer.enabled := true; end else if ( (m > 0) AND ( dataterima >= 5 ) AND ( dataterima <= 8 ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := true; image5.visible := false; image6.visible := false; image7.visible := false;
7 image8.visible := false; image9.visible := false; image0.visible := false; end else if ( (m > 0) AND ( dataterima >= 8 ) AND ( dataterima <= ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := true; image6.visible := false; image7.visible := false; image8.visible := false; image9.visible := false; image0.visible := false; end else if ( (m > 0) AND ( dataterima >= ) AND ( dataterima <= 6 ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := false; image6.visible := true; image7.visible := false; image8.visible := false; image9.visible := false; image0.visible := false; risingedge := true; end else if ( (m > 0) AND ( dataterima >= 6 ) AND ( dataterima <= 8 ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := false; image6.visible := false;
image7.visible := true; image8.visible := false; image9.visible := false; image0.visible := false; risingedge := true; end else if ( (m < 0) AND ( dataterima >= 8 ) AND ( dataterima <= 5 ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := false; image6.visible := false; image7.visible := false; image8.visible := true; image9.visible := false; image0.visible := false; risingedge := true; end else if ( (m < 0) AND ( dataterima >= 6 ) AND ( dataterima <= 4 ))then image.visible := false; image.visible := false; image3.visible := false; image4.visible := false; image5.visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.visible := true; image0.visible := false; risingedge := True; end else if ( (m < 0) AND ( dataterima >= 4 ) AND ( dataterima <= 0 ))then image.visible := false; image.visible := false; image3.visible := false; 73
74 image4.visible := false; image5.visible := false; image6.visible := false; image7.visible := false; image8.visible := false; image9.visible := false; image0.visible := true; risingedge := true; end ; //for procedure TForm.TimerTimer(Sender: TObject); timer.enabled :=false ; image3.visible := true ; image9.visible := false; image0.visible := false; timer.enabled := true; edit.text := inttostr(z); timer4.enabled := true; PlaySound(PChar(),HInstance, snd_async or snd_memory or snd_resource); procedure TForm.TimerTimer(Sender: TObject); timer.enabled := false ; image3.visible := false; image9.visible := true; image0.visible := false; timer3.enabled := true; procedure TForm.Timer3Timer(Sender: TObject); timer3.enabled := false ; image3.visible := false; image9.visible := false; image0.visible := true; sndplaysound(nil, 0); // Stops the sound
procedure TForm.Timer4Timer(Sender: TObject); edit.text := inttostr(z); z := 0; end. 75
76 LAMPIRAN C PENGATURAN SETTING ADC DAN UART Berikut adalah langkah dalam melakukan pengaturan mikrokontroler dengan menggunakan software bantu code vision:. Buka software code vision. Pilih file New Project
77 3. Pilih Project 4. Masuk ke Tools Code wizardavr
5. Setelah itu, atur chip pada ATMEGA 8 dan clock pada 6MHZ 78 6. Pilih tab ADC pada menu bar yang tersedia
7. Aktifkan check bar ADC enabled, use 8 bits, dan atur clock pada 500KHZ 79 8. Pilih tab UART dan pilih check box transmitter dan receiver
9. Pilih pada menu bar : file save, generate, and exit 80
8 LAMPIRAN D GAMBAR ANIMASI animasi: Berikut adalah gambar gambar yang digunakan dalam pembuatan Gambar : Gambar : Gambar 3: \
8 Gambar 4: Gambar 5: Gambar 6:
83 Gambar 7: Gambar 8: Gambar 9:
84 Gambar 0: Gambar :
85 Gambar : Gambar 3:
86 BIODATA PENULIS Nama : Caresa Juwana NRP : 503008003 Tempat, tgl.lahir : Surabaya, 3 Oktober 989 Agama : Katolik Alamat : Manyar Jaya 7/8 Surabaya 606 Riwayat Pendidikan : Tahun 00, Lulus SD YPPI I, Surabaya Tahun 003, Lulus SMP YPPI II, Surabaya Tahun 006, Lulus SMA YPPI I, Surabaya
9