|

7 Segment merupakan display yang banyak digunakan dalam aplikasi microcontroller. Selain murah, intensitas cahaya 7segment cukup kuat sehingga memudahkan seseorang untuk membaca tampilannya. Untuk menggunakan 7 segment kita harus memakai rangkaian driver, ada beberapa macam rangkaian driver 7segment yg umum digunakan, salah satunya seperti yg kami dapat dari MYTUTORIALCAFE.COM :

Dalam rangkaian diatas, kita membutuhkan 10 pin microcontroller untuk mengakses dua 7segment.
Pertanyaannya:
bagaimana jika kita masih memerlukan pin-pin microcontroller tersebut untuk membaca data sensor, komunikasi dengan PC dan menggerakkan motor??? tentu jumlah pin microcontroller tidak mencukupi.
Apa kita harus menggunakan dua micro??ini suatu pemborosan.
Jawabannya, kita harus menghemat penggunaan pin microcontroller untuk dispaly (akses 7segment)
Alternatif menarik dalam mengakses 7segment dapat kita lihat dalam rangkaian berikut:

download rangkaian dalam format PDF
Dengan bantuan IC 74LS164, kita hanya membutuhkan 2 pin microcontroller.
Berikut list code program dalam bahasa Assembly:
line1 bit p0.4 line2 bit p0.5 datata bit p0.6 clockta bit p0.7 clockcm bit p1.0 cnt1 data 12h cnt2 data 13h cnt3 data 14h cnt4 data 15h cnt5 data 16h cnt6 data 17h keyb data 18h disp1 data 19h disp2 data 1ah disp3 data 1bh disp4 data 1ch disp5 data 1dh disp6 data 1eh roth data 1fh rotl data 20h sev1 data 21h sev2 data 22h ;set1 data 23h ;set2 data 24h set3 data 25h set4 data 26h set5 data 27h set6 data 28h srtr data 29h dlo data 2ah dhi data 2bh dec1 data 2ch dec2 data 2dh dec3 data 2eh dec4 data 2fh dec5 data 30h dec6 data 31h mm1 data 32h mm2 data 33h mm3 data 34h mm4 data 35h step data 36h setup1 data 37h setup2 data 38h dpul1 data 39h dpul2 data 3ah dpul3 data 3bh awal1 data 3ch awal2 data 3dh pjg_l1 data 3eh pjg_l2 data 3fh pjg_l3 data 40h pjg_l4 data 41h pjg_b1 data 42h pjg_b2 data 43h pjg_b3 data 44h pjg_b4 data 45h tampung1 data 46h tampung2 data 47h pul1 data 48h pul2 data 49h cm10 data 4ah cm11 data 4bh cm1 data 4ch cm2 data 4dh cm3 data 4eh cm4 data 4fh kodecm data 23h org 0 ;50h jmp mulai mulai: mov pul1,#0h ;#58h mov pul2,#0h ; acall konversi ; mov cm10,#0 ; mov dptr,#129*1234 ; mov pul1,dpl ; mov pul2,dph ; acall konversi ; mov pul1,#0 ; mov pul2,#0 ; acall displaycm ; mov a,#100 ; mov b,#20 ; mul ab ; mov a,#10 ; mov b,#20 ; mul ab
; mov pul1,#0 ; mov pul2,#0 ; mov pul1,#15 ; acall konversi mov pul1,#0 mov pul2,#0 mov tampung1,#0 mov tampung2,#0 mov awal1,#0 mov awal2,#0 mov dptr,#1295 mov setup1,dpl mov setup2,dph mov dptr,#0 ; mov setup1,#21h ;#0d2h ; mov setup2,#5 ;#4h ; mov dery,#0 ; mov redus,#0 mov step,#0h mov srtr,#’U’ mov kodecm,#’U’ mov disp1,#12 mov disp2,#12 mov disp3,#10 mov disp4,#10 mov disp5,#10 mov disp6,#10 acall display ; setb EA ; mov TMOD,#20h ; mov TH1,#0FDH ; setb TR1 ; mov SCON,#50h ; mov adres,#1 ; mov cled_ind,#0 ; mov ccled_ind,#0 ; mov set1,#9 ; mov set2,#9 mov set3,#9 mov set4,#9 mov set5,#9 mov set6,#9 mov pjg_l1,#0 mov pjg_l2,#0 mov pjg_l3,#0 mov pjg_l4,#0 mov pjg_b1,#0 mov pjg_b2,#0 mov pjg_b3,#0 mov pjg_b4,#0 mov mm1,#0h mov mm2,#0h mov mm3,#0h mov mm4,#0h mov cnt1,#0h mov cnt2,#0h mov cnt3,#0h mov cnt4,#0h mov cnt5,#0h mov cnt6,#0h ; mov relay,#0ffh ; mov led,#0ffh setb line1 setb line2
cek_k: acall tamp mov a,tampung2 cjne a,#20,ulang11 mov tampung1,#0 mov tampung2,#0 acall display acall konversi acall displaycm ulang11: acall keypad mov a,keyb jz cek_k cjne a,#’*',cek_k1 acall key_in ajmp cek_k cek_k1: mov a,keyb cjne a,#’D',cek_k2 acall cont_res acall out_d mov disp1,#10 acall display ; acall displaycm ajmp cek_k cek_k2: mov a,keyb cjne a,#’B',cek_k3 ; acall cont_res ; acall out_d mov disp1,#1 ; acall display ; acall displaycm ; acall line1_on ; acall cont_res ; acall out_d ; mov disp1,#10 ; acall display ajmp cek_k cek_k3: mov a,keyb cjne a,#’C',cek_k4 ; acall cont_res ; acall out_d mov disp1,#2 ; acall display ; acall displaycm ; acall line2_on ; acall cont_res ; acall out_d ; mov disp1,#10 ; acall display ajmp cek_k cek_k4: mov a,keyb cjne a,#’A',cek_k5 acall cek_res_cm cek_k5: ajmp cek_k tamp: inc tampung1 mov a,tampung1 cjne a,#255,tampx inc tampung2 tampx: ret cek_res_cm: acall keypad mov a,keyb jz cek_res_cm mov a,keyb cjne a,#10,cek_res_cmx mov pul1,#0 ;kompensasi mov pul2,#0 ; mov pul1,#58h ; mov pul2,#2h acall konversi acall displaycm cek_res_cmx: ret
konversi: ; push dph ; push dpl mov dpl,pul1 mov dph,pul2
; mov r7,#11 ;kompensasi ;konv_pen: ; mov a,dpl ; cjne a,#0,konv3_p ; mov dpl,#255 ; dec dph ; ajmp konv1_p ;konv3_p: ; dec dpl ;konv1_p: ; djnz r7,konv_pen
mov a,dpl mov b,#10 ;0ah clr c mul ab mov dpl,a mov r7,b mov a,dph mov b,#10 ;0ah clr c mul ab add a,r7 mov dph,a
mov cm1,#0 mov cm2,#0 mov cm3,#0 mov cm4,#0 mov r7,#0 konv1: clr c mov a,dpl cjne a,#0,konv1n mov a,dph cjne a,#0,konv1n ajmp konv22 konv1n: ; add a,dph ; add a,dph ; jz konv22 inc r7 mov a,r7 cjne a,#128,konv4 ; cjne a,#13,konv4 acall cm_up mov r7,#0 konv4: mov a,dpl cjne a,#0,konv3 mov dpl,#255 dec dph ajmp konv1 konv3: dec dpl ajmp konv1 konv22: ; mov cm4,cm3 ; mov cm3,cm2 ; mov cm2,cm1 mov cm1,#10 mov a,cm4 cjne a,#0,kkv1 mov cm4,#10 kkv1: mov a,cm3 cjne a,#0,kkv2 mov cm3,#10 kkv2: mov a,cm2 cjne a,#0,kkv3 mov cm2,#10 kkv3: ; pop dpl ; pop dph ; mov r0,cm4 ; mov r1,cm3 ; mov r2,cm2 ; mov r3,cm1 ret
cm_up: ; inc cm1 ; mov a,cm1 ; cjne a,#10,cmx ; mov cm1,#0 inc cm2 mov a,cm2 cjne a,#10,cmx mov cm2,#0 inc cm3 mov a,cm3 cjne a,#10,cmx mov cm3,#0 inc cm4 cmx: ; mov r0,cm4 ; mov r2,cm3 ; mov r3,cm2
ret
pul_up: inc pul1 mov a,pul1 cjne a,#0,pul_upx inc pul2 pul_upx: ; acall konversi ret
pul_dn: mov a,pul1 jnz pul_dnx mov pul1,#255 dec pul2 ajmp pul_dnxx pul_dnx: dec pul1 pul_dnxx: ; acall konversi ret
;ulang: ; inc tampung ; mov a,tampung ; jz ulang11 ; acall display ; acall displaycm ;ulang11: ; acall cek_seven ;; acall rotary ;; acall cek_terima ; mov keyb,#0 ; acall keypad ; mov a,keyb ; jz ulang ; mov a,keyb ; cjne a,#’D',ula1 ; acall cont_res ; acall out_d ; mov disp1,#12 ; acall display ; acall displaycm ; ajmp ulang ;ula1: ; mov a,keyb ; cjne a,#’*',ula2 ; acall key_in ; ajmp ulang ;ula2: ; mov a,keyb ; cjne a,#’B',ula3 ; acall line1_on ; ajmp ulang ;ula3: ; mov a,keyb ; cjne a,#’C',ula4 ; acall line2_on ; ajmp ulang ;ula4: ; ajmp ulang
;line1_on: ; ;ll1: ; clr line1 ; acall keypad ; mov a,keyb ; cjne a,#’B',ll1 ; setb line1 ; acall delay ;; acall out_d ;; acall display ; ret hitung: mov pjg_b1,#0 mov pjg_b2,set4 mov pjg_b3,set5 mov pjg_b4,set6 mov dec1,set4 mov dec2,set5 mov dec3,set6 mov dec4,#0 acall decimal mov r7,dph mov r6,dpl mov r5,awal2 mov r4,awal1 acall selisih acall h_pulsa acall ratusan mov dec1,set4 mov dec2,set5 mov dec3,set6 mov dec4,#0 acall decimal mov awal2,dph mov awal1,dpl ; data di mm1 ret
h_pulsa: mov a,setup1 mov b,dpl acall kali mov dpul1,a mov dpul2,b ; 961E
mov a,setup2 mov b,dpl ; mul ab ; 4*b7 =2 dc acall kali
mov dpul3,b ; mov b,dpul2 ; 96 acall sum
mov dpul2,a
mov a,dpul3 ; mov dpul3,b ; mov b,dpul3 ; mov b,dpul3
acall sum
mov dpul3,a
; mov r0,dpul1 ; mov r1,dpul2 ; mov r2,dpul3 ; mov r3,dpul4
mov a,dph mov b,setup1 ; mul ab acall kali mov r6,b ; hasil mov r7,a ; sisa
mov a,dph mov b,setup2 ;mul ab acall kali
mov b,r6 acall sum ; a=4 mov r6,a ;4 = mov a,dpul2 mov b,r7 acall sum mov dpul2,a mov a,r6 acall sum mov b,dpul3 acall sum mov dpul3,a ; mov r0,dpul1 ; mov r1,dpul2 ; mov r2,dpul3 ; mov r3,dpul4
ret ratusan: mov mm1,#0 mov mm2,#0 mov mm3,#0 mov mm4,#0 mov dptr,#0 mov r7,#0 ; mov dpul1,#01eh ; mov dpul2,#044h ; mov dpul3,#8h rat1: mov a,dpul1 cjne a,#0,rat2 mov a,dpul2 cjne a,#0,rat3 mov a,dpul3 cjne a,#0,rat4 ajmp ratx rat2: dec dpul1 ajmp ratinc rat3: mov dpul1,#0ffh dec dpul2 ajmp ratinc rat4: dec dpul3 mov dpul2,#0ffh mov dpul1,#0ffh ratinc: inc r7 mov a,r7 cjne a,#100,rat_ul mov r7,#0 ; inc dptr inc mm1 mov a,mm1 cjne a,#10,rat_ul mov mm1,#0 inc mm2 mov a,mm2 cjne a,#10,rat_ul mov mm2,#0 inc mm3 mov a,mm3 cjne a,#10,rat_ul mov mm3,#0 inc mm4
; ajmp rat1 rat_ul: ajmp rat1 ratx: clr c mov a,mm1 add a,mm2 add a,mm3 add a,mm4 jz der_out mov r7,#11 ;kompensasi pulsa derr: mov a,mm1 cjne a,#0,derr1 mov mm1,#9 mov a,mm2 cjne a,#0,derr2 mov mm2,#9 mov a,mm3 cjne a,#0,derr3 mov mm3,#9 mov a,mm4 cjne a,#0,derr4 mov mm4,#9 derr1: dec mm1 ajmp derrx derr2: dec mm2 ajmp derrx derr3: dec mm3 ajmp derrx derr4: dec mm1 ajmp derrx derrx: djnz r7,derr der_out: acall out_d acall display ; acall displaycm ret
line2_on: ; mov disp1,#12 ; mov disp2,#12 ; mov disp3,#10 ; mov disp4,#10 ; mov disp5,#10 ; mov disp6,#10 ; acall display ll2: clr line2 acall keypad mov a,keyb cjne a,#’C',ll2 setb line2 acall delay ; acall out_d ; acall display ret ;reduksi: ; mov dec1,set5 ; mov dec2,set6 ; mov dec3,#0 ; mov dec4,#0 ; acall decimal ;reduks: ; mov a,dpl ; mov b,#5 ; div ab ; mov b,#2 ; mul ab ; mov b,#10 ; mul ab ; ; ret
key_in: ; mov disp1,#12 mov disp2,#12 mov disp3,#12 mov disp4,#10 mov disp5,#10 mov disp6,#10 acall display ; acall displaycm key_in1: acall keypad mov a,keyb jz key_in1 mov a,keyb cjne a,#’#',key_in2 mov kodecm,#’M’ ;acall hitung acall oper_sts acall hitung acall go_scan mov pjg_l1,pjg_b1 mov pjg_l2,pjg_b2 mov pjg_l3,pjg_b3 mov pjg_l4,pjg_b4 acall out_digit acall display ; acall displaycm ajmp key_inx key_in2: mov a,keyb clr c subb a,#11 jnc key_in1 mov a,keyb mov b,disp5 mov disp6,b mov b,disp4 mov disp5,b mov b,disp3 mov disp4,a ;b ; mov b,disp2 ; mov disp3,a ;b ; mov b,disp1 ; mov disp2,b ; mov disp1,a acall display ; acall displaycm ajmp key_in1 key_inx: ; mov a,cnt1 ; mov disp1,a ; cjne a,#0,kout_d1 ; mov disp1,#10 ;kout_d1: ; acall out_d ; acall display ret
oper_sts: ; mov a,disp1 ; mov set1,a ; cjne a,#10,oper_s1 ; mov set1,#0 oper_s1: ; mov a,disp2 ; mov set2,a ; cjne a,#10,oper_s2 ; mov set2,#0 oper_s2: mov a,disp3 mov set3,a cjne a,#10,oper_s3 mov set3,#0 oper_s3: mov a,disp4 mov set4,a cjne a,#10,oper_s4 mov set4,#0 oper_s4: mov a,disp5 mov set5,a cjne a,#10,oper_s5 mov set5,#0 oper_s5: mov a,disp6 mov set6,a cjne a,#10,oper_s6 mov set6,#0 oper_s6: ; acall out_d acall display ; acall displaycm
ret
;test: ; mov a,redus ; cjne a,#0,redus1 ; mov dec1,set5 ; mov dec2,set6 ; mov dec3,#0 ; mov dec4,#0 ; acall decimal ; mov redus,dpl ; mov dph,#0 ; acall reduks ; mov dery,a ; ajmp redus2 ;redus1: ; mov dec1,set5 ; mov dec2,set6 ; mov dec3,#0 ; mov dec4,#0 ; acall decimal ; mov dph,#0 ; mov b,redus ; mov a,dpl ; clr c ; subb a,b ; mov dpl,a ; acall reduks ; mov dery,a ;redus2: ; acall compare ; mov febri,srtr ;test1: ; acall keypad ; mov a,keyb ; cjne a,#’*',atest ; ajmp testx ;atest: ; acall compare ; mov a,srtr ; cjne a,#’U',lamp_d ; clr line1 ; ; ajmp lam_x ;lamp_d: ; clr line2 ; mov dery,#0 ;mundur ; clr c ; mov a,mm1 ; add a,mm2 ; add a,mm3 ; add a,mm4 ; jz testx ;lam_x: ; mov a,srtr ; cjne a,febri,testx ; acall rotary ; ajmp test1 ;testx: ; setb line1 ; setb line2 ; mov mm1,#0 ; mov mm2,set4 ; mov mm3,set5 ; mov mm4,set6 ; acall out_d ; acall display ; ret
decimal: mov a,dec5 mov dptr,#0 cjne a,#1,hitn1 mov dptr,#2710h hitn1: mov dec5,dpl mov dec6,dph mov dptr,#0 mov b,dec4 mov a,#10 mul ab mov b,#100 mul ab mov dph,b mov dpl,a
mov b,dec3 clr c mov a,#100 mul ab add a,dpl jnc hit1 inc dph hit1: mov dpl,a mov a,b add a,dph mov dph,a mov b,dec2 mov a,#10 mul ab add a,dec1 clr c add a,dpl jnc hit2 inc dph hit2: mov dpl,a
clr c mov a,dec5 add a,dpl jnc hit3 inc dph hit3: mov dpl,a mov a,dec6 add a,dph mov dph,a
ret
;compare:
; ;acall reduksi ; mov dec1,#0 ; mov dec2,set4 ; mov dec3,set5 ; mov dec4,set6 ; acall decimal ; ;______ ; mov dery,#0 ; mov r4,dery ; mov a,r4 ; jz dery3 ;dery_yes: ; mov a,dpl ; jnz dery1 ; mov dpl,#0ffh ; dec dph ; ajmp dery2 ;dery1: ; dec dpl ;dery2: ; djnz r4,dery_yes ;dery3: ; mov a,dpl ; mov dlo,a ; mov a,dph ; mov dhi,a ; ; ; ; mov dec1,mm1 ; mov dec2,mm2 ; mov dec3,mm3 ; mov dec4,mm4 ; acall decimal ; acall kurang ; mov srtr,r7 ; ret
selisih: selis: mov a,r6 cjne a,#0,r66 mov a,r7 cjne a,#0,r77 ajmp sel_u r66: dec r6 ajmp seli1 r77: mov r6,#0ffh dec r7 seli1: mov a,r4 cjne a,#0,r44 mov a,r5 cjne a,#0,r55 ajmp sel_d r44: dec r4 ajmp selis r55: mov r4,#0ffh dec r5 ajmp selis sel_d: mov srtr,#’U’ mov disp1,#1 mov dpl,r6 mov dph,r7 inc dptr ajmp selix sel_u: mov srtr,#’D’ mov disp1,#2 mov dpl,r4 mov dph,r5 selix: ret
;kurang: ; mov a,dpl ; mov b,dlo ; clr c ; subb a,b ; jnc kurnxt1 ;dpl >dlo ; mov a,dph ; jnz kur1 ; mov srtr,#’U' ;#1 ; ajmp kurnxt ;kurnxt1: ; mov a,dph ; mov b,dhi ; clr c ; subb a,b ; jnc kur2 ;dph > dlo ; mov srtr,#’U' ;#2 ; ajmp kurnxt ;kur1: ; dec dph ; mov a,dph ; mov b,dhi ; clr c ; subb a,b ; jnc kur2 ;dph>dhi ; mov srtr,#’U' ;#3 ; ajmp kurnxt ;kur2: ; mov srtr,#’D' ;#4 ; ;kurnxt: ; ;kurangx: ; mov r7,srtr ; ret
display: mov r0,#disp1 mov r2,#6 displayu: mov a,@r0 mov b,a cjne a,#10,display1 mov dptr,#s0 ajmp display3 display1: mov dptr,#s0 mov r1,a display2: inc dptr djnz r1,display2 display3: acall segmen ; acall segmencm inc r0 djnz r2,displayu ret
displaycm: MOV CM10,#10 mov r0,#cm10 ;#disp1 mov r2,#6 displayucm: mov a,@r0 mov b,a cjne a,#10,display1cm ; cjne a,#0,display1cm mov dptr,#s0 ajmp display3cm display1cm: mov dptr,#s0 mov r1,a display2cm: inc dptr djnz r1,display2cm display3cm: acall segmencm inc r0 djnz r2,displayucm ret
empat: setb p0.0 clr p0.1 clr p0.2 clr p0.3 ret tiga: clr p0.0 setb p0.1 clr p0.2 clr p0.3 ret dua: clr p0.0 clr p0.1 setb p0.2 clr p0.3 ret satu: clr p0.0 clr p0.1 clr p0.2 setb p0.3 ret keypad: mov keyb,#0 acall satu mov a,p2 anl a,#0fh jz tombol1 jb p2.0,tt1 ajmp xtt1 tt1: mov keyb,#1 ajmp ttk1 xtt1: jb p2.1,tt2 ajmp xtt2 tt2: mov keyb,#4
ajmp ttk1 xtt2: jb p2.2,tt3 ajmp xtt4 tt3: mov keyb,#7
ajmp ttk1 xtt4: jb p2.3,tt4 ajmp tombol1 tt4: mov keyb,#’*’
ttk1: mov a,p2 anl a,#0fh jnz ttk1
tombol1: acall dua mov a,p2 anl a,#0fh jz tombol2 jb p2.0,tt1A ajmp xtt1A tt1A: mov keyb,#2 ; ajmp ttk1A ajmp t_ok xtt1A: jb p2.1,tt2A ajmp xtt2A tt2A: mov keyb,#5
; ajmp ttk1A ajmp t_ok xtt2A: jb p2.2,tt3A ajmp xtt4A tt3A: mov keyb,#8
; ajmp ttk1A ajmp t_ok xtt4A: jb p2.3,tt4A ajmp tombol2 tt4A: mov keyb,#10 ajmp t_ok
;ttk1A: ; mov a,p2 ; anl a,#0fh ; jnz ttk1A tombol2: acall tiga mov a,p2 anl a,#0fh jz tombol3 jb p2.0,tt1B ajmp xtt1B tt1B: mov keyb,#3 ; ajmp ttk1B ajmp t_ok xtt1B: jb p2.1,tt2B ajmp xtt2B tt2B: mov keyb,#6
; ajmp ttk1B ajmp t_ok xtt2B: jb p2.2,tt3B ajmp xtt4B tt3B: mov keyb,#9
; ajmp ttk1B ajmp t_ok xtt4B: jb p2.3,tt4B ajmp tombol3 tt4B: mov keyb,#’#’ ajmp t_ok
;ttk1B: ; mov a,p2 ; anl a,#0fh ; jnz ttk1B tombol3: acall empat mov a,p2 anl a,#0fh jz tombol4 jb p2.0,tt1C ajmp xtt1C tt1c: mov keyb,#’A’ ; ajmp ttk1c ajmp t_ok xtt1c: jb p2.1,tt2c ajmp xtt2c tt2c: mov keyb,#’B’
; ajmp ttk1c ajmp t_ok xtt2c: jb p2.2,tt3c ajmp xtt4c tt3c: mov keyb,#’C’
; ajmp ttk1c ajmp t_ok xtt4c: jb p2.3,tt4c ajmp tombol4 tt4c: mov keyb,#’D’ t_ok:
ttk1c: mov a,keyb cjne a,#’B',putL mov kodecm,#’U’ clr line1 acall rotary ajmp putR putL: mov a,keyb cjne a,#’C',putR mov kodecm,#’D’ clr line2 acall rotary putR: ACALL ROTARY
; mov cm4,#8 ; mov cm3,#8 ; mov cm2,#8 ; mov cm1,#8 ; acall displaycm mov a,p2 anl a,#0fh jnz PUTr ;ttk1c setb line1 setb line2 acall konversi acall displaycm tombol4: ret
segmen: clr a movc a,@a+dptr cpl a mov r7,a mov b,#80h ukl: mov a,b rl a mov b,a anl a,r7 jnz high_ clr datata clr clockta setb clockta clr clockta ajmp low_ high_: setb datata clr clockta setb clockta clr clockta low_: mov a,b cjne a,#80h,ukl ret
segmencm: clr a movc a,@a+dptr cpl a mov r7,a mov b,#80h uklcm: mov a,b rl a mov b,a anl a,r7 jnz high_cm clr datata clr clockcm setb clockcm clr clockcm ajmp low_cm high_cm: setb datata clr clockcm setb clockcm clr clockcm low_cm: mov a,b cjne a,#80h,uklcm ret
;cek_terima: ; acall terima ; clr c ; jz cek_terima_x ; cjne a,#0ffh,cek_terima ; mov r0,#tampung ;coba1_: ; acall terima ; clr c ; jz coba1_ ; mov @r0,a ; clr c ; subb a,#0feh ; jz coba2_ ; dec r0 ; ajmp coba1_ ;coba2_: ; mov r0,#tampung ; mov a,@r0 ; cjne a,adres,cek_terima_x ; dec r0 ; mov a,@r0 ; cjne a,#’X',send_dt ; mov disp1,#10 ; mov disp2,#10 ; mov disp3,#10 ; mov disp4,#10 ; acall display ; ajmp cek_terima_x ;send_dt: ; clr c ; mov a,#’$’ ; acall kirim ; mov a,adres ; acall kirim ; mov a,#’#’ ; acall kirim ; clr c ;; mov a,dtest ;; add a,#30h ; mov a,disp1 ; acall kirim ; mov a,disp2 ; acall kirim ; mov a,disp3 ; acall kirim ; mov a,disp4 ; acall kirim ; mov a,#’Y’ ; acall kirim ; mov a,#’E’ ; acall kirim ; mov a,#’S’ ; acall kirim ; ;cek_terima_x: ; ret
rotary: jb p2.7,rot1 mov roth,#0 ajmp rotx rot1: inc roth mov a,roth cjne a,#5,rot2 clr clockcm setb clockcm clr clockcm
; mov a,srtr ; cjne a,#’U',rdown ; acall cont_up ; ajmp rstop ;rdown: mov a,kodecm cjne a,#’M',rot2_ acall cont_down mov a,srtr cjne a,#’U',tarikya acall pul_up ajmp yaya tarikya: acall pul_dn yaya:
;rstop: ;acall out_dx acall out_digit acall display ; acall displaycm ajmp rot2 rot2_: mov a,kodecm cjne a,#’U',rot3_ acall pul_up ajmp rot2 rot3_: mov a,kodecm cjne a,#’D',rot3_ acall pul_dn ajmp rot2
rot2: mov a,roth cjne a,#200,rotx mov roth,#50 rotx: ret
cek_seven: mov a,sev1 inc sev1 mov a,sev1 cjne a,#255,cek_sevenx ; mov a,sev2 ; cjne a,#0,cek_sv1 ; mov a,cnt1 ; mov disp1,a ; cjne a,#0,cek_sv1 ; mov disp1,#10 ;cek_sv1: inc sev2 mov a,sev2 cjne a,#50,cek_sevenx mov sev2,#0 acall display cek_sevenx: ret out_d: ; mov disp1,#12 ; mov disp2,#12 mov a,mm1 mov disp3,a cjne a,#0,mil1 mov disp3,#10 mil1: mov a,mm2 mov disp4,a cjne a,#0,mil2 mov disp4,#10 mil2: mov a,mm3 mov disp5,a cjne a,#0,mil3 mov disp5,#10 mil3: mov a,mm4 mov disp6,a cjne a,#0,mil4 mov disp6,#10 mil4: ret out_digit: mov a,pjg_l1 mov disp3,a cjne a,#0,dout_d3 mov disp3,#10 dout_d3: mov a,pjg_l2 mov disp4,a cjne a,#0,dout_d4 mov disp4,#10 dout_d4: mov a,pjg_l3 mov disp5,a cjne a,#0,dout_d5 mov disp5,#10 dout_d5: mov a,pjg_l4 mov disp6,a cjne a,#0,dout_d6 mov disp6,#10 dout_d6: ret
out_dx: ; mov a,cnt2 ; mov disp2,a ; cjne a,#0,out_d2 ; mov disp2,#10 ;out_d2: mov a,cnt1 mov disp3,a cjne a,#0,out_d3 mov disp3,#10 out_d3: mov a,cnt2 mov disp4,a cjne a,#0,out_d4 mov disp4,#10 out_d4: mov a,cnt3 mov disp5,a cjne a,#0,out_d5 mov disp5,#10 out_d5: mov a,cnt4 mov disp6,a cjne a,#0,out_d6 mov disp6,#10 out_d6: ret
;cont_up: ; inc cnt1 ; mov a,cnt1 ; cjne a,#10,cont_upx ;; mov disp1,#11 ; mov cnt1,#0 ; mov sev1,#254 ; mov sev2,#49 ; inc cnt2 ; mov a,cnt2 ; cjne a,#10,cont_upx ; mov cnt2,#0 ; inc cnt3 ; mov a,cnt3 ; cjne a,#10,cont_upx ; mov cnt3,#0 ; inc cnt4 ; mov a,cnt4 ; cjne a,#10,cont_upx ; mov cnt4,#0 ; inc cnt5 ; mov a,cnt5 ; cjne a,#10,cont_upx ; mov cnt5,#0 ; inc cnt6 ; mov a,cnt6 ; cjne a,#10,cont_upx ; acall cont_res ;cont_upx: ; inc step ; inc mm1 ; mov a,step ;; cjne a,#2,stepx ;; mov step,#0 ; mov a,mm1 ;; add a,#5 ;; mov mm1,a ; cjne a,#12,stepx ; mov mm1,#0 ; inc mm2 ; mov a,mm2 ; cjne a,#10,stepx ; mov mm2,#0 ; inc mm3 ; mov a,mm3 ; cjne a,#10,stepx ; mov mm3,#0 ; inc mm4 ; mov a,mm4 ; cjne a,#10,stepx ; mov mm1,#0 ; mov mm2,#0 ; mov mm3,#0 ; mov mm4,#0 ; ;stepx: ; ret
go_scan: mov cnt1,mm1 mov cnt2,mm2 mov cnt3,mm3 mov cnt4,mm4 mov cnt5,#0 mov cnt6,#0 go_scan1: acall rotary clr c mov a,cnt1 add a,cnt2 add a,cnt3 add a,cnt4 jz go_x mov a,srtr cjne a,#’U',tarik clr line1 ajmp dorong tarik: clr line2 dorong: ; clr c ; mov a,cnt1 ; add a,cnt2 ; add a,cnt3 ; add a,cnt4 ; jz go_x acall keypad mov a,keyb cjne a,#’*',go_scan1 acall cont_res acall display ; acall displaycm ajmp go_x go_x: setb line1 setb line2 acall konversi acall displaycm ret
cont_down: mov a,cnt1 cjne a,#0,down1 mov cnt1,#9 mov a,cnt2 cjne a,#0,down2 mov cnt2,#9 mov a,cnt3 cjne a,#0,down3 mov cnt3,#9 mov a,cnt4 cjne a,#0,down4 mov cnt4,#9 mov a,cnt5 cjne a,#0,down5 mov cnt5,#9 mov a,cnt6 cjne a,#0,down6 mov cnt6,#9 ajmp cont_downx down1: dec cnt1 ajmp cont_downx down2: dec cnt2 ajmp cont_downx down3: dec cnt3 ajmp cont_downx down4: dec cnt4 ajmp cont_downx down5: dec cnt5 ajmp cont_downx down6: dec cnt6 ajmp cont_downx cont_downx: mov pjg_l1,cnt1 inc step mov a,step cjne a,#12,stepdwnx ;buat bujuk’i display data ada di cnt mov a,srtr cjne a,#’D',rot_naik ; acall pul_dn mov step,#0 mov a,pjg_l2 cjne a,#0,mmd1 mov pjg_l2,#9 mov a,pjg_l3 cjne a,#0,mmd2 mov pjg_l3,#9 mov a,pjg_l4 cjne a,#0,mmd3 mov pjg_l4,#9 ajmp stepdwnx mmd1: dec pjg_l2 ajmp stepdwnx mmd2: dec pjg_l3 ajmp stepdwnx mmd3: dec pjg_l4 ajmp stepdwnx rot_naik: ; acall pul_up mov step,#0 inc pjg_l2 mov a,pjg_l2 cjne a,#10,rot_n1 mov pjg_l2,#0 inc pjg_l3 mov a,pjg_l3 cjne a,#10,rot_n1 mov pjg_l3,#0 inc pjg_l4 rot_n1: stepdwnx: ret
cont_res: mov awal1,#0 mov awal2,#0 mov dptr,#0 ; mov redus,#0 mov mm1,#0 mov mm2,#0 mov mm3,#0 mov mm4,#0 mov cnt1,#0 mov cnt2,#0 mov cnt3,#0 mov cnt4,#0 mov cnt5,#0 mov cnt6,#0 mov pjg_l1,#0 mov pjg_l2,#0 mov pjg_l3,#0 mov pjg_l4,#0 mov pjg_b1,#0 mov pjg_b2,#0 mov pjg_b3,#0 mov pjg_b4,#0
ret
;p_164: ; clr enb_ic ;data= p3.2 clock =p3.3 ; mov r1,#1h ; mov r0,#8 ;p_164_led: ; mov a,relay ; anl a,r1 ; cjne a,#0,p_164_1 ; acall clock0 ; ajmp p_164_2 ;p_164_1: ; acall clock1 ;p_164_2: ; mov a,r1 ; rl a ; MOV R1,A ; djnz r0,p_164_led ; mov r1,#1h ; mov r0,#8 ;pp_164_led: ; mov a,led ; anl a,r1 ; cjne a,#0,pp_164_1 ; acall clock0 ; ajmp pp_164_2 ;pp_164_1: ; acall clock1 ;pp_164_2: ; mov a,r1 ; rl a ; MOV R1,A ; djnz r0,pp_164_led ; setb enb_ic ; clr enb_ic ; ret
;p_out: ; anl led,#11011111b ; mov a,led_ind ; cjne a,#0,p_out1 ; orl led,#00100000b ;p_out1: ; anl led,#11101111b ; mov a,leda ; cjne a,#0,p_out3 ; orl led,#00010000b ;p_out3: ; anl led,#11110111b ; mov a,ledb ; cjne a,#0,p_out5 ; orl led,#00001000b ;p_out5: ; anl led,#11111011b ; mov a,ledc ;952 ; cjne a,#0,p_out7 ; orl led,#00000100b ;p_out7: ; anl led,#11111101b ; mov a,ledd ; cjne a,#0,p_out9 ; orl led,#00000010b ;p_out9: ; anl led,#11111110b ; mov a,lede ; cjne a,#0,p_out11 ; orl led,#00000001b ;p_out11: ; anl relay,#11101111b ; mov a,rel1 ; cjne a,#0,p_out13 ; orl relay,#00010000b ;p_out13: ; anl relay,#11110111b ; mov a,rel2 ; cjne a,#0,p_out15 ; orl relay,#00001000b ;p_out15: ; anl relay,#11111011b ; mov a,rel3 ; cjne a,#0,p_out17 ; orl relay,#00000100b ;p_out17: ; anl relay,#11111101b ; mov a,rel4 ; cjne a,#0,p_out19 ; orl relay,#00000010b ;p_out19: ; anl relay,#11111110b ; mov a,rel5 ; cjne a,#0,p_out21 ; orl relay,#00000001b ;p_out21: ; acall p_164 ; ret
kali: mov r5,a mov r4,b mul ab mov a,b jnz kali1 mov a,r5 mov b,r4 mul ab ; mov a,b ; mov b,#0
; mov b,r5 ; mov a,#0 ajmp kalix kali1: mov a,r5 mov b,r4 mul ab ; mov r5,a ; mov a,b ; mov b,r5 ; mov b,a ; mov a,r5
kalix: ret sum: clr c add a,b jnc sum1 mov b,#1 ajmp sumx sum1: MOV B,#0 sumx: ret ;terima: ; jnb ri,no_terima ; mov A,sbuf ; clr ri ; ajmp terima_x ;no_terima: ; mov a,#0 ;terima_x: ; ret ;kirim: ; mov sbuf,a ; jnb ti,$ ; clr ti ; ret delay: mov R7,#0 ld2: mov r6,#0 Ld1: djnz R6,ld1 djnz R7,Ld2 ret s0: db 11111100b ;abcdefgxb s1: db 10000100b s2: db 01101110b S3: DB 11001110b S4: DB 10010110b S5: DB 11011010b S6: DB 11111010b S7: DB 10001100b S8: DB 11111110b S9: DB 11011110b sz: db 0ffh sz1: db 0ffh sx: db 0 end
Selamat Mencoba!!!! |