Rangkaian ADC 0804 dan 0808
ADC 0804
ADC 0808
Sesuai dengan namanya ADC berfungsi sebagai konversi data analog ke data digital, dalam aplikasi ini digunakan ADC tipe ADC0804 yang mempunyai satu line input analog dengan tegangan referensi +5 Volt. Rangkaian ditunjukkan pada lampiran dengan perhitungan konversi sebagai berikut : Data digital 8 bit maksimal (Dmax) adalah 11111111 dalam biner atau FF dalam Hex dan 255 dalam desimal. Apabila tegangan referensi = 5 Volt maka data maksimal dari 8 bit 255D = 5 Volt. Misalkan ADC menerima input analog, terus dikonversi oleh ADC sehingga ADC mengeluarkan data digital dan dibaca oleh mikrokontroler (Dout) = 10000000B atau 80H dan dalam desimal 128D, berarti ADC membaca input tegangan analog (Vin) : Tegangan yang dibaca ADC (Vin) = ( Data digital dari ADC yang dibaca mikrokontroler dibagi Data digital maksimal ) dikalikan Tegangan Referensi. Vin = (Dout / Dmax) x Vref. Vin = (128 / 255) x 5 Volt = 0,5 x 5 Volt Vin = 2,5 Volt
ADC_CS bit P2.0 ADC_RD bit P2.1 ADC_WR bit P2.2 ADC_INT bit P2.3 ; org 0h next_sampling: clr ADC_CS ; aktifkan ADC0804 clr ADC_WR ; start of conversion setb ADC_WR not_EOC: jb ADC_INT,not_EOC delay: djnz R2,$ djnz R3,delay clr ADC_RD ; Baca Data melalui P3 djnz R3,$ mov A,P3 setb ADC_RD setb ADC_CS cpl A mov P1,A sjmp next_sampling end
ADC_A bit P2.7 ADC_B bit P2.6 ADC_C bit P2.5 ADC_OE bit P2.4 ADC_START bit P2.3 ADC_EOC bit P2.2 ; org 0h ; ADC channel 0 ABC = 000 / input 1 clr ADC_A clr ADC_B clr ADC_C ; kondisi awal clr ADC_OE clr ADC_START next_sampling: setb ADC_START ; start of conversion nop not_EOC: jnb ADC_EOC,not_EOC delay: djnz R2,$ djnz R3,delay setb ADC_OE ; Baca Data melalui P3 djnz R3,$ mov A,P0 cpl A mov P1,A sjmp next_sampling end
Prosedur merubah hexa ke desimal Mov B,#100 Div AB Mov Dptr,#Angka Movc A,@A+Dptr Mov rat,A Mov A,B Mov B,#10 Mov pul,A Mov sat,A Ret Angka: DB 7Eh,18h,6dh,03dh,1Bh,37H,73H,1CH,7fH,3fH,00H End
Konversi ke Volt Puluhan: Mov Dptr,#Portb Display: Mov A,71h Movx @Dptr,A Mov Dptr,#PortC Mov A,#20h Ret Ratusan: Mov A,72h Mov Dptr,#Angka Movc A,@A+Dptr Mov A,#40h Display: Acall Satuan Lcall Delay Acall Puluhan Acall Ratusan Ret Satuan: Mov Dptr,#Portb Mov A,70h Movx @Dptr,A Mov Dptr,#PortC Mov A,#10h
Olah: Mov A,74h Mov B,#51 Div AB Mov 72h,A Mov 30h,B Mov A,B Mov B,#50 Jz gs Inc 72h Clr A ajmp ga gs: Mov A,30h ga: Mov B,#5 Mov Dptr,#Koma Movc A,@A+Dptr Mov 71h,A Mov 70h,A Ret