Tutorial Microcontroller MCS-51 ATMEL ISP
 

 

Super MCS51 Trainer

Standart MCS51 Trainer

Standart AVR Trainer

Programmer USBASP

Standart ARM Trainer

 

 

Continue:

 

          cek2:
           cek30lagi: cjne r6,#30d,cek31lagi
           mov dataSetSuhu2,#101d
           ret
           ;
           cek31lagi: cjne r6,#31d,cek32lagi
           mov dataSetSuhu2,#112d
           ret
           ;
           cek32lagi: cjne r6,#32d,cek33lagi
           mov dataSetSuhu2,#122d
           ret
           ;
           cek33lagi: cjne r6,#33d,cek34lagi
           mov dataSetSuhu2,#132d
           ret
           ;
           cek34lagi: cjne r6,#34d,cek35lagi
           mov dataSetSuhu2,#142d
           ret
           ;
           cek35lagi: cjne r6,#35d,cek36lagi
           mov dataSetSuhu2,#152d
           ret
           ;
           cek36lagi: cjne r6,#36d,cek37lagi
           mov dataSetSuhu2,#163d
           ret
           ;
           cek37lagi: cjne r6,#37d,cek38lagi
           mov dataSetSuhu2,#173d
           ret
           ;
           cek38lagi: cjne r6,#38d,cek39lagi
           mov dataSetSuhu2,#183d
           ret
           ;
           cek39lagi: cjne r6,#39d,cek40lagi
           mov dataSetSuhu2,#193d
           ret
           ;
           cek40lagi: cjne r6,#40d,cek30lagi
           mov dataSetSuhu2,#203d 
           ret
           ;=============================================
           ; Setting Waktu
           ;==============================================
setingwaktu:
           mov R7,#1 
           Setupwaktu: 
           mov a,R7 
           acall bin2dectimer
           acall displaysetingtimer
           acall displaysetingsuhu
           acall displaysetingtimer
           acall displaysetingsuhu
           acall displaysetingtimer
           jnb p1.2,getoutwaktu1
           jb P1.0,SetDnwaktu 
           jnb p1.0,$
           acall buzz
           inc R7 
           cjne R7,#16d,setupwaktu
           mov R7,#15d 
           sjmp Setupwaktu
           ;
SetDnwaktu: 
           Mov a,R7 
           acall bin2dectimer
           acall displaysetingtimer
           acall displaysetingsuhu
           acall displaysetingtimer
           acall displaysetingsuhu
           acall displaysetingtimer
           jnb P1.2,getoutwaktu1
           jb p1.1,Setupwaktu 
           jnb p1.1,$
           acall buzz
           dec R7 
           cjne R7,#0d,setDnwaktu
           mov R7,#1d
           sjmp Setdnwaktu
           ret
           ;
           ;================================================
getoutwaktu1: 
           ljmp getoutwaktu
           ;==========================================
           InitTimer:
           clr controlbit2
           mov counter20,#20
           acall Update
           anl TMOD,#11110000b
           orl TMOD,#00000001b
           mov tl0,#0b0h
           mov th0,#03ch
           setb ET0
           setb EA
           setb TR0
           ret
           ;
           ;===========================================
timerinterrupt:
           mov tl0,#0b0h
           mov th0,#03ch
           djnz Counter20, EndInterrupt
           mov Counter20,#20
           acall DoClock
           EndInterrupt:
           reti
           ;
           ;===========================================
           ; jam digital
           ;===========================================
DoClock:
           mov A,#0
           cjne a,detik,mulai
           ljmp next
           ;
mulai:
           dec detik
           mov A,#60
           cjne A,detik,Update
           ; 
           cjne A,menit,next
           mov A,#0
           cjne A,menit,lanjut2
           cjne A,detik,lanjut2
           ljmp endproses
           ; 
           lanjut2:
           sjmp Update
           next:
           mov detik,#59
           ;
           satumenit:
           dec menit
           mov A,#0
           cjne A,menit,Update
           mov menit,#0
           ;
           Update:
           mov A,detik
           mov B,#10
           DIV AB
           mov detiksatuan,B
           mov detikpuluhan,A 
           ;
           mov a,menit
           mov b,#10
           div ab
           mov menitsatuan,B
           mov menitpuluhan,A
           ;
           mov A,#0
           cjne A,menit,lanjut
           cjne A,detik,lanjut
           ljmp endproses
           lanjut:
           ret
           ;
           ;=================================================
           ; Display suhu
           ;=================================================
Display2SevenSegmen:
           mov DPTR,#Satuan
           mov A,DataADC
           movc A,@A+DPTR
           mov DPTR,#decoder7segmen
           movc A,@A+DPTR
           mov P0,A
           Clr P2.5; y4 aktif
           clr P2.6
           setb P2.7
           acall delay
           ;
           mov DPTR,#puluhan 
           mov A,DataADC 
           movc A,@A+DPTR 
           mov DPTR,#Decoder7segmen 
           movc A,@A+DPTR
           mov P0,A
           Setb P2.5; y5 aktif
           Clr P2.6
           setb P2.7
           acall delay
           ret
           ;==========================================
           ; Display Waktu
           ;==========================================
ClockDisplay:
           Mov DPTR,#Decoder7Segmen
           mov A,detiksatuan
           Movc A,@A+DPTR
           mov P0,A
           clr P2.5; yo aktif
           clr P2.6
           clr P2.7
           acall delay
           ; 
           Mov DPTR,#Decoder7Segmen
           mov A,detikpuluhan
           Movc A,@A+DPTR
           mov P0,A
           setb P2.5; y1 aktif
           clr P2.6
           clr P2.7
           acall delay
           ;
           Mov DPTR,#Decoder7Segmen
           mov A,menitsatuan
           Movc A,@A+DPTR
           mov P0,A
           clr P2.5; y2 aktif
           setb P2.6
           clr P2.7
           acall delay
           ; 
           Mov DPTR,#Decoder7Segmen
           mov A,menitpuluhan
           Movc A,@A+DPTR
           mov P0,A
           setb P2.5; y3 aktif
           setb P2.6
           clr P2.7
           acall delay
           ret
           ;
           ;========================================
           ; Display Setting Suhu
           ;========================================
Displaysetingsuhu:
           mov A,setingsuhusatuan
           mov DPTR,#Decoder7segmen
           movc A,@A+DPTR
           mov P0,A
           clr P2.5; y4 aktif
           clr P2.6
           setb P2.7
           acall delay
           ;
           mov A,setingsuhupuluhan
           mov DPTR,#Decoder7segmen
           movc A,@A+DPTR
           mov P0,A
           setb p2.5; y5 aktif
           clr P2.6
           setb P2.7
           acall delay
           ret
           ;
           Bin2Decsuhu:
           mov b,#100d
           div ab
           mov setingsuhuratusan,a
           mov a,b
           mov b,#10d
           div ab
           mov setingsuhupuluhan,a
           mov setingsuhusatuan,b
           ret
           ;
           ;================================================
           ; Display Setting Waktu
           ;================================================
Displaysetingtimer:
           mov A,setingtimersatuan
           mov DPTR,#Decoder7segmen
           movc A,@A+DPTR
           mov P0,A
           clr P2.5; y2 aktif
           setb P2.6
           clr P2.7
           acall delay
           ;
           mov A,setingtimerpuluhan
           mov DPTR,#Decoder7segmen
           movc A,@A+DPTR
           mov P0,A
           setb p2.5; y3 aktif
           setb P2.6
           clr P2.7
           acall delay
           ;
           setb P2.5; y1 aktif 
           Clr P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay
           ; 
           clr P2.5; y0 aktif
           clr P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay 
           ret
           ;
           Bin2Dectimer:
           mov b,#100d
           div ab
           mov setingtimerratusan,a
           mov a,b
           mov b,#10d
           div ab
           mov setingtimerpuluhan,a
           mov setingtimersatuan,b
           ret
           ;=================================================
           ; Tampilan error display
           ;=================================================
errorA:
           mov B,DataADC
           mov A,#251
           subb A,B
           jnz terus
           clr tanda
           ret
           ; 
           terus: 
           jc errordisplay
           clr tanda
           ret
           ;
           errorB:
           mov A,DataADC
           mov B,#5
           subb A,B
           jnz terus2
           clr tanda
           ret
           ;
           terus2: 
           jc errordisplay
           clr tanda
           ret
           ;========================================
           ; Bunyi tombol
           ;========================================
buzz:
           clr p2.1; Driver buzzer aktif
           acall Ldelay
           acall Ldelay
           acall Ldelay
           acall Ldelay
           acall Ldelay
           acall Ldelay
           acall Ldelay
           setb p2.1; Driver buzzer non aktif
           ret
           ;
           ;============================================
           ; Tampilan awal Display
           ;============================================
           set1:
           clr P2.5; y4 aktif
           clr P2.6 
           setb P2.7 
           mov p0,#10111111b
           acall delay
           ;
           setb P2.5; y5 aktif
           clr P2.6 
           setb P2.7 
           mov p0,#10111111b
           acall delay
           ret 
           ;
           set2:
           clr P2.5; y0 aktif 
           clr P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay
           ;
           setb P2.5; y1 aktif 
           clr P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay
           ret
           ;
           set3:
           clr P2.5; y2 aktif
           setb P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay 
           ;
           setb P2.5; y3 aktif
           setb P2.6 
           clr P2.7 
           mov p0,#10111111b
           acall delay
           ret 
           ;
           ;========================================
           ; error display
           ;========================================
errordisplay: 
           setb tanda
           ;
           clr P2.5; y0 aktif
           clr P2.6 
           clr P2.7 
           mov p0,#10000110b
           acall delay
           ;
           setb P2.5; y1 aktif
           clr P2.6 
           clr P2.7 
           mov p0,#10000110b
           acall delay
           ; 
           clr P2.5; y2 aktif 
           setb P2.6 
           clr P2.7 
           mov p0,#10000110b
           acall delay
           ;
           setb P2.5; y3 aktif 
           setb P2.6 
           clr P2.7 
           mov p0,#10000110b
           acall delay
           ;
           clr P2.5; y4 aktif
           clr P2.6 
           setb P2.7 
           mov p0,#10000110b
           acall delay
           ;
           setb P2.5; y5 aktif 
           clr P2.6 
           setb P2.7 
           mov p0,#10000110b
           acall delay
           ret
           ;========================================
           ; Waktu Tunda
           ;========================================
delay:     mov R0,#0
           delay1: mov R2,#03h
           djnz R2,$
           djnz R0,delay1
           ret
           ;
Ldelay:    mov R3,#02h
           Ld1: acall delay
           djnz R3,Ld1
           ret
           ;
           ;========================================
           ; L O O K U P T A B L E
           ; Decode to Seven Segmen -> g f e d c b a
           ;========================================
Decoder7Segmen:
           DB 11000000b,11111001b,10100100b,10110000b,10011001b
           DB 10010010b,10000010b,11111000b,10000000b,10010000b
           ;
           ;============================================================
           ; L O O K U P T A B L E
           ; Suhu = DataADC*100/255
           ;=============================================================
satuan:
db 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
db 3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4 db 5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7
db 8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9 db 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
db 3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4 db 5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7
db 8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9 db 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2
db 3,3,3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5
db 5
puluhan:
db 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
db 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 db 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
db 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 db 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
db 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 db 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
db 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3 db 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
db 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
db 4 ; End