Tutorial Microcontroller MCS-51 ATMEL ISP
 

 

Super MCS51 Trainer

Standart MCS51 Trainer

Standart AVR Trainer

Programmer USBASP

Standart ARM Trainer

 

Super Trainer MCS51

Belajar mikrokontroller MCS51 akan terasa lebih mudah dan menyeluruh, apabila anda menggunakan modul super trainer MCS51. Modul ini menggunakan IC 89S52 sebagai chip utama, yang dapat diganti dengan chip series yang lain untuk tipe 40DIP.

Dengan menggunakan Super Trainer MCS51, anda akan mempelajari berbagai macam display: LED/7 Segmen/ LCD Character dan Display Dot Matriks. Berbagai macam jenis motor juga disertakan pada Trainer jenis ini antara lain: Motor Stepper, DC dan servo. Berbagai macam komunikasi serial al: RS232, Bluetooth dan FTDI (USB2Serial).

Pada panduan praktikum akan diberikan contoh pemrograman yang ampuh menggunakan bahasa Assembly.

Spesifikasi lebih lengkap

9.4. Digital Clock - Down Counting (60:60:60)

The next example implements interrupt Timer 0 as digital clock, in this example will display hours,minutes, and seconds at LCD Character 2 x 16 module, with counting down action.

Step 1st
Build the circuit as shown in figure 5.2.3. Remember, that all we want to do with this lesson displays digital clock with display on LCD Character 2 x 16.




Figure 5.2.4. Digital clock with timer 0 interrupt

 

Step 2nd
In this step, you must tipe the assembly program to make your Timer get action, we assume that you have already known the editor, we used MIDE-51 to edit the program. ( Download File : exp524.zip )

Note that in this mode, with a 12 MHz crystal frequency, the timer overflows every 65,536 microseconds.
In this experiment, to generate interruption every 1000 micro second, then :
65536 - 50000 = 15536 d or 3CB0h ( TL0 = B0h dan TH0 = 3Ch )
Interruption will come out every 50000 x 1 microsecond = 0.05 second.
R0 is implemented as a software counter, Register R0 is incremented every Timer 0 overflows. If Register R7 detected with value 20 then data will be incremented

Counter20  equ 70h
second equ 71h
minute equ 72h
hour equ 73h
secondOnes equ 74h
secondTens equ 75h
minuteOnes equ 76h
minuteTens equ 77h
hourOnes equ 78h
hourTens equ 79h
;
org 0h
ljmp start
;=============================
;vektor interrupt TF0 location
;=============================
org 0bh
Ljmp timerinterrupt
;
Start: mov counter20,#20
mov second,#60
mov minute,#60
mov hour,#60
call UpdateDisplay
mov TMOD,#00000001b
mov tl0,#0b0h
mov th0,#03ch
setb ET0
setb EA
setb TR0
call init_lcd
;
;========================================================
;This subroutine will display Digital Clock as HH:MM:SS
;as you have seen, this subroutine execute every time
;========================================================
scandisplay:
mov r1,#8ch
acall write_inst
mov r1,secondones
acall write_data
;
mov r1,#8bh
acall write_inst
mov r1,secondtens
acall write_data
;
mov r1,#89h
acall write_inst
mov r1,minuteones
acall write_data
;
mov r1,#88h
acall write_inst
mov r1,minutetens
acall write_data
;
mov r1,#86h
acall write_inst
mov r1,hourones
acall write_data
;
mov r1,#85h
acall write_inst
mov r1,hourtens
acall write_data
sjmp scandisplay
;
Init_lcd:
mov r1,#00000001b ;Display clear
acall write_inst ;
mov r1,#00111000b ;Function set,
;Data 8 bit,2 line font 5x7
acall write_inst ;
mov r1,#00001100b ;Display on,
;cursor off,cursor blink off
acall write_inst
mov r1,#00000110b ;Entry mode, Set increment
acall write_inst
ret
;
Write_inst:
clr P2.0 ; RS = P2.0 = 0, write mode instruction
mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P2.1 ; EN = 1 = P2.1
call delay; call delay time
clr P2.1 ; EN = 0 = P2.1
ret
;
Write_data:
setb P2.0 ; RS = P2.0 = 1, write mode data
mov P0,R1 ; D7 s/d D0 = P0 = R1
setb P2.1 ; EN = 1 = P2.1
call delay; call delay time
clr p2.1 ; EN = 0 = P2.1
ret
;
delay: mov R0,#0
delay1:mov R7,#0fh
djnz R7,$
djnz R0,delay1
ret
;
;===================================================
;this subroutine will execute every 0,05 second
;after 20 interruption, Digital clock will be updated
;===================================================
timerinterrupt:
mov tl0,#0B0h
mov th0,#03Ch
djnz counter20,EndInterrupt
mov counter20,#20
call DigitalClock
EndInterrupt:
reti
;
;===================================================
;This subroutine below, will process digital clock
;and updates value for second, minute, hour
;===================================================
DigitalClock:
OneSecond:
dec second
mov a,#00
cjne a,second,UpdateDisplay
mov second,#0
;
OneMinute:
dec minute
mov A,#00
cjne A,minute,UpdateDisplay
mov minute,#0
;
OneHour:
dec hour
mov A,#00
cjne A,hour,UpdateDisplay
mov hour,#0
mov minute,#0
mov second,#0
;
UpdateDisplay:
mov a,second
mov b,#10
div ab
mov secondOnes,b
mov secondTens,a
;
mov a,minute
mov b,#10
div ab
mov minuteOnes,b
mov minuteTens,a
;
mov a,hour
mov b,#10
div ab
mov hourOnes,b
mov hourTens,a
;
mov a,#30h
add a,secondOnes
mov secondOnes,a
;
mov a,#30h
add a,secondTens
mov secondTens,a
;
mov a,#30h
add a,minuteOnes
mov minuteOnes,a
;
mov a,#30h
add a,minuteTens
mov minuteTens,a
;
mov a,#30h
add a,hourOnes
mov hourOnes,a
;
mov a,#30h
add a,hourTens
mov hourTens,a
;
ret


End

Step 3rd
Safe your assembly program above, and name it with int4.asm (for example) Compile the program that you have been save by using MIDE-51, see the software instruction.

Step 4th
Download your hex file ( int4.hex ) into the microcontroller by using Microcontroller ATMEL ISP software, see the instruction.After download this hex file you'll see the action of Interruption( of course if your cable connection and your program are corrected ).

 

 

 

 

 

 
   

Super Trainer AVR

Belajar mikrokontroller AVR akan terasa lebih mudah dan menyeluruh, apabila anda menggunakan modul super trainer AVR. Modul ini menggunakan IC MEGA16 sebagai chip utama, yang dapat diganti dengan chip series yang lain untuk tipe 40DIP.

Dengan menggunakan Super Trainer AVR, anda akan mempelajari berbagai macam display: LED/7 Segmen/ LCD Character dan Display Dot Matriks. Berbagai macam jenis motor juga disertakan pada Trainer jenis ini antara lain: Motor Stepper, DC dan servo. Berbagai macam komunikasi serial al: RS232, Bluetooth dan FTDI (USB2Serial).

Pada panduan praktikum akan diberikan contoh pemrograman yang ampuh menggunakan bahasa C berbasis CodevisionAVR

Spesifikasi lebih lengkap

           
 

Standart Trainer ARMSTM32F407 Discovery

Mikrokontroller ARM merupakan salah satu mikrokontroller yang mempunyai lebar data 32 bit, sehingga proses pengelolahan data akan terasa lebih cepat apabila dibandingkan mikrokontroller pada umumnya. Mikrokontroller ARM pada trainer ini menggunakan board discovery STM32F407VG, yang telah dilengkapai dengan berbagai macam fitur yang sangat mengagumkan.

Pada standart trainer ARMSTM32 ini telah dilengkapi berbagaimacam antarmuka, sehingga akan memudahkan pengguna dalam melaksanakan percobaan, diantarnya: input analog dua channel untuk ADC, clock untuk timer, komunikasi serial yang dapat menggunakan RS232, bluetooth dan FTDI (USB2Serial ), DAC, LED, 7 Segmen dan SW untuk interaksi dengan mikrokontroller.

Pada panduan praktikum akan disertakan percobaan dengan menggunakan bahasa pemrograman C dengan compiler Free Coocox.

Spesifikasi lebih lengkap

   

Tutorial ARMSTM32 - Discovery board STM32F407VG

ARM merupakan salah satu mikrokontroller yang paling banyak dipakai untuk keperluan high end, karena memiliki lebar data yang cukup besar 32bit, RAM 192kB, clock 168 MHz, dan standart peripheral seperti ADC, timer, serial, I2C dan SPI yang sudah build in, didalam mikrokontroller ini, sehingga sangat cocok sekali apabila digunakan untuk keperluan system DSP yang tertanam didalam mikrokontroller.

Pada tutorial ini akan dijelaskan percobaan menggunakan modul discovery STM32F407VG, dengan menggunakan standart pemrograman bahasa C, dengan compiler yang dapat didownload secara gratis, Coocox. Modul dicovery ini sudah build in programmer ST-LINK yang menggunakan standart mini USB untuk proses download program.

Tutorial selengkapnya.....

 

Tutorial AVR - AT MEGA16

Mikrokontroller AVR yang digunakan pada tutorial ini adalah mikrokontroller 8 yang berbasis RISC, mikrokontroller ini sangat kompak apabila digunakan untuk membangun sebuah sistem. Mikrokontroller AVR muncul dengan banyak varian, mulai 8 pin, sampai 100 pin. Pada tutorial ini akan digunakan mikrokontroller ATMEGA16, yang merupakan standart mikrokontroller yang banyak digunakan ditingkat SMK maupun Perguruan Tinggi.

Mikrokontroller ini mempunyai berbagai macam peripheral yang cukup lengkap, diantaranya: ADC, Timer, serial, I/O, I2C, SPI dan PWM. Pada tutorial ini akan menggunakan pemrograman dalam standart bahasa C, dengan menggunakan kompiler CodevisionAVR.

Tutorial selengkapnya....

 

Tutorial MCS51 - AT 89S52

Mikrokontroller seri MCS51 merupakan generasi mikrokontroller yang paling tua diantara kelompok mikrokontroller, mikrokontroller ini terkenal sangat ampuh, apabila sudah terbangun dalam suatu sistem. Mikrokontroler ini terdiri dari standart peripheral: I/O, timer, serial, tanpa memiliki ADC, sehingga memerlukan ADC eksternal untuk menerjemahkan tegangan analog.

Pada tutorial ini akan menggunakan pemrograman dalam standart bahasa Assembly, dengan menggunakan compiler MIDE-51

Tutorial selengkapnya....

     
    PIC Tutorial