![]() |
||||||
| Best Seller Kits and Trainer Simple
Mikrokontroller 89s51 Trainer
|
Full Listing Program:
org 00h
sjmp start
org 03h
ljmp Xternal_interupsi_0
ret
org 0bh
ljmp Timer_interupsi_0
reti
start:
nop
acall init_lcd
acall tekan_enter
JB enter,$
acall init_dataF_DB
aCall Init_interupsi_Xternal_timer
acall proses_pengukuran
;
mov dataFreq,#0
mov tampil,#0
mov counterTombol,#0
mov counterDfreq,#40h
mov CounterDDb,#50h
;
clr A
Mov DPTR,#dataDecibel
movc A,@A+DPTR
mov DataDB,a
setb TR0
Forever:
Mov MUX,DataFreq
mov DAC,DataDb
SJMP Forever
;
Xternal_interupsi_0:
mov DAC,#0
inc CounterTombol
;
Bounch:
jnb P3.2,bounch
acall simpan_dataDBdanDataFreq
mov count200,#200
acall inc_freq
reti
inc_DB_Fr_Xternal:
clr A
inc DPTR
movc A,@A+DPTR
cjne A,#'s',sendDB
acall inc_freq
sendDB:
mov DataDB,A
ret
inc_freq:
INC DataFreq
mov A,dataFreq
cjne A,#7,go_inc
clr TR0
clr EA
acall tekan_buka
acall convert_dataDbdandataFreq
stop: sjmp stop
;
go_inc:
clr A
mov DPTR,#datadecibel
movc A,@A+DPTR
mov dataDB,A
ret
;
Timer_interupsi_0:
mov TL0,#0b0h
mov th0,#03ch
djnz Count200,Endintr
mov count200,#200
acall inc_DB_Fr_Xternal
endintr:
reti
;
INit_interupsi_XTernal_Timer:
mov count200,#200
;
mov tl0,#0b0h
mov th0,#03ch
mov TMOD,#00000001b
setb ET0
;
setb IT0
SETB EX0
Setb EA
Setb PX0
ret
;
Simpan_dataDBdanDataFreq:
mov R0,CounterDfreq
mov R1,counterDDB
mov @R0,dataFreq
mov @R1,dataDb
inc CounterDfreq
inc counterDDb
ret
;
convert_dataDbdanDataFreq:
mov R2,CounterTombol
mov R0,#40h
mov R1,#50h
;
ulang: jNb P3.0,ulang
jB P3.0,$
call cetakDB
call cetakHZ
;
Print_dataFconvert:
mov datafreq,@R0
mov A,datafreq
mov DPTR,#dataPrintoutFr
movc A,@A+DPTR
acall convert_hexToBCD
;
mov R4,#080h
acall write_inst
mov A,Ratusan
add A,#30h
mov R4,A
acall write_data
;
mov R4,#081h
acall write_inst
mov A,puluhan
add A,#30h
mov R4,A
acall write_data
;
mov R4,#082h
acall write_inst
mov A,satuan
add A,#30h
mov R4,A
call write_data
;
Print_dataDBconvert:
mov dataDb,@R1
mov A,dataDb
mov tampil,a
mov DPTR,#dataPrintoutDb
movc A,@A+DPTR
acall convert_hexToBCD
call banding
;
mov R4,#088h
acall write_inst
mov A,Ratusan
add A,#30h
mov R4,A
acall write_data
;
mov R4,#089h
acall write_inst
mov A,puluhan
add A,#30h
mov R4,A
acall write_data
;
mov R4,#08ah
acall write_inst
mov A,satuan
add A,#30h
mov R4,A
acall write_data
;
call delay
inc R0
inc R1
djnz R2,ulang
ret
;
convert_hexToBCD:
mov B,#100
div AB
Mov ratusan,A
mov A,B
mov B,#10
div Ab
mov Puluhan,A
mov Satuan,B
ret
;
banding:
clr c
mov A,tampil
SUBB A,#97d
jnc trus1
acall text_normal
ret
;
trus1:
clr c
mov a,tampil
subb A,#114d
jnc trus2
acall text_tuli_ringan
ret
;
trus2:
clr c
mov a,tampil
subb A,#136d
jnc trus3
acall text_tuli_sedang
ret
;
trus3: clr c
mov a,tampil
subb A,#179d
jnc trus4
acall text_tuli_berat
ret
;
trus4: clr c
mov a,tampil
subb A,#216d
jnc trus5
acall text_tuli_sgt_tuli
ret
;
trus5: ret
;
tekan_enter:
acall init_LCD
acall write_char_enter
;
write_char_enter:
mov DPTR,#word1
mov R3,#16
mov R4,#82h
acall write_inst
;
writeenter:
clr A
movc a,@a+DPTR
mov R4,a
inc DPTR
acall write_data
djnz r3,writeenter
ret
;
|
Free
Download |
||||
|
Download
Programmer USBasp AVR-MCS51 Download
Programmer
USBasp AVR-MCS51
Download Download Download Introduction KEIL IDE Programmer MCS51 USBasp PCB Layout |
||||||