Ceriwis  

Go Back   Ceriwis > HOBI > Komputer & Teknologi > Programming

Programming Share, tanya jawab, saling bantu antar programmer dengan berbagai macam bahasa pemrograman.

Reply
 
Thread Tools
  #1  
Old 20th November 2011
Darkc0der Darkc0der is offline
Ceriwiser
 
Join Date: Nov 2011
Posts: 598
Rep Power: 14
Darkc0der mempunyai hidup yang Normal
Default ask : kalkulator assembly

sedikit mau nanya gan... ini kan ane lagi ada tugas bikin kalkulator pake bahasa assembly, lumayan udh jadi lah...



programnya udh coba ane simulasiin pake proteus dan lumayan lancar.

1. perhitungan (+-*\) udah jalan semua, yah paling yang masih ngaco kalo ada bilangan negatif (-) dan perhitungan lebih dari 3 digit...

2. tombol-tombol di keypad juga udh jalan semua



cek dan ricek, ga' ada yang error, tapi kok ya outputnya sedikit di luar prediksi gw... setelah kelar perhitungan, selain ada bilangan hasil yang ditampilin di LCD, di belakangnya ikutan nongol tanda sama dengan (=). gimana cara ngilanginnya gan yak? coba cek satu2 kodingannya, malah binun dewe...



mungkin agan2 dimari bisa bantu...

di dalam spoiler di bawah dan post #2, gw kasih kodingan assembly-nya, thanks a lot gan...




Spoiler for assembly:





Code:

;DRIVER KEYPAD MATRIX 4X4 HITAM

awal:
data_Key EQU P1
Col1 Bit data_Key.0
Col2 Bit data_Key.1
Col3 Bit data_Key.2
Col4 Bit data_Key.3
Row1 Bit data_Key.4
Row2 Bit data_Key.5
Row3 Bit data_Key.6
Row4 Bit data_Key.7

Res Bit P3.0
En Bit P3.2
RW Bit P3.1

Data_LCD Equ P2

mem1 equ 30h
mem2 equ 31h
hasil equ 32h
hasil2 equ 33h
hasil3 equ 34h
tambah bit 00h
kurang bit 01h
kali bit 02h
bagi bit 03h

mov mem1,#0
mov mem2,#0
mov hasil,#0
mov hasil2,#0
mov hasil3,#0
mov 20h,#0

Acall Delay_LCD
Acall Init_LCD
Acall Delay_LCD
Mov A,#0fh
Acall TulisPerintah
Mov A,#0Fh
Acall TulisAlamatCur
Mov A,#7h
Acall TulisPerintah


Check_Keypad:
Mov Data_Key,#0FFH
Mov P1,#0FFh
Clr Col1
Clr Col2
Clr Col3
Clr Col4
Acall Delay
Mov A,Data_Key
Anl A,#11110000b
Cjne A,#11110000b,Check_Column_1
Jmp Check_Keypad

Check_Column_1:
Clr Col1
Setb Col2
Setb Col3
Setb Col4
Mov A,Data_Key
Anl A,#11111110b
Cjne A,#11111110b,Column_1_Line_1
Jmp Check_Column_2

Column_1_Line_1:
Jb Row1,Column_1_Line_2
Mov A, #37h
Acall Tulis
Jnb Row1,$
Acall Long_delay
Mov Data_Key,#0FFH
mov a,20h
cjne a,#0,lompat1
mov a,mem1
mov b,#0ah
mul ab
add a,#7
mov mem1,a
jmp Check_Keypad
lompat1:
mov a,mem2
mov b,#0ah
mul ab
add a,#7
mov mem2,a
Jmp Check_Keypad

Column_1_Line_2:
Jb Row2,Column_1_Line_3
Mov A, #34h
Acall Tulis
Jnb Row2,$
Acall Long_delay
Mov Data_Key,#0FFH
mov a,20h
cjne a,#0,lompat2
mov a,mem1
mov b,#0ah
mul ab
add a,#4
mov mem1,a
jmp Check_Keypad
lompat2:
mov a,mem2
mov b,#0ah
mul ab
add a,#4
mov mem2,a
Jmp Check_Keypad

Column_1_Line_3:
Jb Row3,Column_1_Line_4
Mov A, #31h
Acall Tulis
Jnb Row3,$
Acall Long_delay
Mov Data_Key,#0FFH
mov a,20h
cjne a,#0,lompat3
mov a,mem1
mov b,#0ah
mul ab
add a,#1
mov mem1,a
jmp Check_Keypad
lompat3:
mov a,mem2
mov b,#0ah
mul ab
add a,#1
mov mem2,a
Jmp Check_Keypad

Column_1_Line_4:
Jb Row4,Back
Mov A,#01h
Call TulisPerintah
Mov A,#02h
Call TulisPerintah
Mov A,#0Fh
Acall TulisAlamatCur
Jnb Row4,$
Acall Long_delay
Mov Data_Key,#0FFH
Call awal
Jmp Check_Keypad











Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


 


All times are GMT +7. The time now is 04:30 AM.


no new posts