![]() |
ask : kalkulator assembly sedikit mau nanya gan... ini kan ane lagi ada tugas bikin kalkulator pake bahasa assembly, lumayan udh jadi lah... :D:D:D
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... :p 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... :D:D:D mungkin agan2 dimari bisa bantu... :D:D:D di dalam spoiler di bawah dan post #2, gw kasih kodingan assembly-nya, thanks a lot gan... :D:D:D 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 </div> |
All times are GMT +7. The time now is 08:01 PM. |