Selamat datang di ForSa! Forum diskusi seputar sains, teknologi dan pendidikan Indonesia.

Welcome to Forum Sains Indonesia. Please login or sign up.

Desember 09, 2024, 07:09:50 AM

Login with username, password and session length

Topik Baru

Artikel Sains

Anggota
Stats
  • Total Tulisan: 139,653
  • Total Topik: 10,405
  • Online today: 47
  • Online ever: 1,582
  • (Desember 22, 2022, 06:39:12 AM)
Pengguna Online
Users: 0
Guests: 106
Total: 106

Aku Cinta ForSa

ForSa on FB ForSa on Twitter

Rancangan dasar Mikrokontroler MCS51

Dimulai oleh Farabi, Agustus 21, 2014, 09:29:10 AM

« sebelumnya - berikutnya »

0 Anggota dan 1 Pengunjung sedang melihat topik ini.

Farabi

Iseng iseng saja membuat sebuah rancangan dasar untuk MCS51 di proteus. Board untuk lampu misalkan lampu lalu lintas harganya kurang dari 100 rb.

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Saya merancang desain untuk mengunakan sebuah LCD untuk tampilannya, proyek ini sebetulnya untuk kunci motor menggunakan sidik jari tapi saya mentok. Ini datasheetnya



Dan ini adalah source codenya.

;====================================================================
; Main.asm file generated by New Project wizard
;
; Created:   Wed Aug 20 2014
; Processor: AT89C1051
; Compiler:  ASEM-51 (Proteus)
;====================================================================

$NOMOD51
$INCLUDE (89C1051.MCU)

;====================================================================
; DEFINITIONS
;====================================================================

;====================================================================
; VARIABLES
;====================================================================

;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================

      ; Reset Vector
      org   0000h
      jmp   Start

;====================================================================
; CODE SEGMENT
;====================================================================

      org   0100h
Start:
      ; Write your code here
  CLR P1.0
  CLR P1.1
  CLR P1.2
  CLR P1.3
  CLR P1.4
  CLR P1.5
  CLR P1.6
  CLR P1.7
  clr p3.0
  clr p3.1
  clr p3.2
  Call Delay
 
  CLR P1.0
  CLR P1.1
  SETB P1.2
  SETB P1.3
  SETB P1.4
  CLR P1.5
  CLR P1.6
  CLR P1.7
  Call Delay
  SETB p3.0
  CLR p3.0
  Call Delay
 
  CLR P1.0
  CLR P1.1
  CLR P1.2
  CLR P1.3
  SETB P1.4
  CLR P1.5
  CLR P1.6
  CLR P1.7
  Call Delay
  SETB p3.0
  CLR p3.0
  Call Delay
 
Loop:
      jmp Loop

  ret
Delay:
mov R0,#128
DJNZ R0, $
ret
;====================================================================
      END


Saya sudah memasukkan "magic byte" nya yaitu 0011100 dalam bit dan 0000100 dalam bit untuk mematikan display. Tapi display tidak mati dan sepertinya saya membuat kesalahan disuatu tempat, ada yang bisa membantu?
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Ah berhasil nih


;====================================================================
; Main.asm file generated by New Project wizard
;
; Created:   Wed Aug 20 2014
; Processor: AT89C1051
; Compiler:  ASEM-51 (Proteus)
;====================================================================

$NOMOD51
$INCLUDE (89C1051.MCU)

;====================================================================
; DEFINITIONS
;====================================================================


;====================================================================
; VARIABLES
;====================================================================

;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================

      ; Reset Vector
      org   0000h
      jmp   Start

;====================================================================
; CODE SEGMENT
;====================================================================

      org   0100h
Start:
      ; Write your code here
Call Delay
 
  mov P1,#38H
  clr P3.2
  clr P3.1
  setb p3.0
  clr p3.0
  call Delay
 
  mov P1,#0FH
  clr P3.2
  clr P3.1
  setb p3.0
  clr p3.0
  call Delay
 
  mov P1,#01H
  clr P3.2
  clr P3.1
  setb p3.0
  clr p3.0
  call Delay
 
  mov P1,#06H
  clr P3.2
  clr P3.1
  setb p3.0
  clr p3.0
  call Delay
 
Loop:
      jmp Loop

  ret
Delay:
mov R0,#128
DJNZ R0, $
ret
;====================================================================
      END
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi



Berhasil nih, ini kode lengkapnya


;====================================================================
; Main.asm file generated by New Project wizard
;
; Created:   Wed Aug 20 2014
; Processor: AT89C1051
; Compiler:  ASEM-51 (Proteus)
;====================================================================

$NOMOD51
$INCLUDE (89C1051.MCU)

;====================================================================
; DEFINITIONS
;====================================================================


;====================================================================
; VARIABLES
;====================================================================

;====================================================================
; RESET and INTERRUPT VECTORS
;====================================================================

      ; Reset Vector
      org   0000h
      jmp   Start

;====================================================================
; CODE SEGMENT
;====================================================================

      org   0100h
Start:
      ; Write your code here
Call Delay
 
  mov R1,#38H
  call LCD_Command_Init
  mov R1,#0FH
  call LCD_Command_Init
  mov R1,#01H
  call LCD_Command_Init
  mov R1,#06H
  call LCD_Command_Init
 
  mov R1,#83H
  call LCD_Command
 
  mov dptr,#MyString
  call SendString
 
Loop:
      jmp Loop
  ret

LCD_Command_Init:
mov P1,R1
clr P3.2
clr P3.1
setb p3.0
clr p3.0
call Delay
ret
LCD_Command:
mov P1,R1
setb P3.2
clr P3.1
setb p3.0
clr p3.0
call Delay
ret
SendString:
clr a
movc a,@a+dptr
jz exit
mov R1,a
call LCD_Command
inc dptr
sjmp SendString
exit:
ret
Delay:
mov R0,#128
DJNZ R0, $
ret

MyString:
db "Farabi OS 1.0",00h
;====================================================================
      END

Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.

Farabi

Ini desain dengan menggunakan 80C58. Mikrokontroler ini mempunyai 32 jalur port yang bisa digunakan. Karena menggunakan port ini secara paralel hanya ada maksimal 3 buah hardware yang bisa digunakan dengan desain yang bisa dibilang rumit, tapi kalau secara serial, bisa ada 24 alat yang bisa anda gunakan ,tapi saya tidak tahu apakah hal tersebut memungkinkan atau tidak. Kalau saya liat port P0 hanya berfungsi sebagai input, sedangkan ketiga sisanya berfungsi sebagai output, tidak ada yang bisa berfungsi sebagai Input/Output seperti pada ARM, sehingga sukar untuk memasukkan hardware tambahan misalkan sensor suhu. Tapi dibandingkan dengan ARM, mikrokontroler ini adalah yang termurah, harganya hanya 12 rb saja perkeping, dan anda tidak membutuhkan sebuah motherboard seperti prosesor intel karena mikrokontroler sudah mempunyai RAM dan Harddisk sendiri biarpun skalanya sangat kecil. Ini biasanya disebut sebagai System on Chip. Sebuah komputer jadi dalam ukuran kecil



Pemasangan pin port masih sama bedanya hanya terletak pada mikrokontrolernya saja yang mempunyai pin port lebih banyak. Jadi kode kode yang sebelumnya masih berfungsi.
Raffaaaaael, raffaaaaael, fiiii dunya la tadzikro. Rafaael. Fi dunya latadzikro bil hikmah, wa bil qiyad

Maa lahi bi robbi. Taaqi ilaa robbi. La taaqwa, in anfusakum minallaaahi.