Tuesday, August 22, 2017

microcontroller Programming


The AVR 8-Bit RISC Microcontroller from Atmel is a very common Microcontroller It's a single integrated circuit with EEPROM, Ram, Analog to Digital converter, a lot of digital input and output lines, timers, UART for RS 232 communication and many other things.

The best is however that a complete programming environment is available under Linux: You can program this Microcontroller in C using GCC. In this article I will explain how to install and use GCC. I will as well explain how to load the software into the Microcontroller. All you need for this are an AT90S4433 Microcontroller, a 4Mhz crystal, some cable and a few other very cheap parts.

Sunday, April 9, 2017

ATmega8

A monitoring and protection circuit for 1-cell and 2-cell Li-ion applications that require high security and authentication, accurate monitoring, low cost, and high utilization of the cell energy. The microcontroller includes 8KB self-programming flash program memory, 512-Bytes SRAM, 256-Bytes EEPROM, 1 or 2 cells in series, over-current, high-current and short-circuit protection, 12-bit voltage A/D converter, 18-bit coulomb counter current A/D converter, and debugWire interface for on-chip debug. The device features autonomous battery protection during charging and discharging, and supports very accurate accumulated current measurements using an 18-bit ADC with a resolution of 0.84??V. It also supports up to 4 MIPS throughput at 4MHz. 1.8 - 9V operation. Parameter Name Value Program Memory Type Flash Program Memory (KB) 8 CPU Speed (MIPS) 16 RAM Bytes 1 Data EEPROM (bytes) 512 Digital Communication Peripherals 1-UART, 1-SPI, 1-I2C Capture/Compare/PWM Peripherals 11 CCP3 Comparators 1 Temperature Range (C) -40 to 85 Operating Voltage Range (V) 2.7 to 5.5 Pin Count 32 Cap Touch Channels 12

Saturday, February 25, 2017

Serial Program


                                org         0h
                nop
                call          masukserial
                mov       dptr,#MyCharacter
loop:                      clr           A
                Movc     A,@A+dptr
                cjne       A,#0,Next
                sjmp      loop1
Next:                     call          out
                inc          dptr
                sjmp      loop
loop1:                   call          input
                cjne       A,#'1',next1
                mov       P0,#30h
                mov       p1,#31h
               
next1:                   cjne       A,#'2',next2
                mov       P0,#31h
                mov       p1,#30h
next2:                   cjne       A,#'3',nextx
                mov       P0,#39h
                mov       p1,#34h
nextx:                   sjmp      loop1
;
masukserial:
                mov       scon,#52h ; Konfigurasi komunikasi serial mode 1
                mov       tmod,#20h ; Baud rate 2400 BPS
                                MOV     TH0,#81H
                                MOV     TL0,#4AH
                                MOV     TH1,#0f3h
                                MOV     TL1,#32H
                setb       tr1
                                SETB      PT1
                                SETB      ET1
                                SETB      EA
                                ret
;
input:
detecti:                jnb         ri,detecti ; Deteksi bit RI apakah data sudah diterima  atau belum
                clr           ri
                mov       a,sbuf
                ret
;
out:
detecto:               jnb         ti,detecto;
                clr           ti ;
                mov       sbuf,a ;
                ret
;
MyCharacter:
                DB ' Tekan Tombol 1, 2 atau 3',13,10,0
                End
      

Friday, February 24, 2017

The Program of Running Led

org         0h
                jmp        mulai
mulai:

cek1:     jb            p1.0,cek2                             ; cek penekanan tombol 2
             call          kanan                                   ; call label kanan
cek2:     jb            p1.1,cek3                             ; cek penekanan tombol 1
              call          kiri
cek3:     jb            p1.2,cek1
             call          mati                                       ; call label kiri
             sjmp      mulai                                     ; kembali ke label mulai
;--------------------------------------------
kanan:               mov       a,#01111111b                    ; isi data accu dengan     01111111b
kanan1:             mov       p0,a                                   ; isi data accu di p0
                         call          delay                                ; call delay
                         jb            p1.1,terus                        ;cek penekanan tombol pada kanan1
                         sjmp      kembali                             ; kembali ke label kembali
terus:                jb            p1.2,terus1                         ; cek penekanan tombol pada terus1
                        sjmp      kembali                                ; kembali ke kembali

terus1: 
                        rr             a                                   ; putar data accu ke kanan
                      cjne       a,#11111110b,kanan1    ;bandingkan data 11111110b dengan data di accu lalu ke label                     kanan1
                       sjmp      kanan1                            ; kembali ke label kanan1
kembali:               ret
                                                                                ; kembali ke program awal
kiri:         mov       a,#11111110b                    ; isi data accu dengan 11111110b
kiri1:      mov       p0,a                                       ; isi data accu di p0
                call          delay
                                                                ; call delay
                jb            p1.2,next                             ; cek penekanan tombol pada next
                sjmp      back                                       ; kembali ke label back
next:     jb            p1.0,next1                          ; cek penekanan tombol paada next1
                sjmp      back                                       ; kembali ke label back
next1:   rl             a                                              ; putar data accu ke kiri
                cjne    a,#011111111b,kiri1            ; bandingkan data 01111111b dengan data di accu lalu ke kiri1
                sjmp      kiri1                                        ; kembali ke label kiri1
back:     ret                                                          ; kembali ke program awal

mati:      mov       a,#11111111b
mati1:   mov       p0,a
                call          delay
                jb            p1.0,lanjut
                sjmp      kanan
lanjut:   jb            p1.1,lanjut1
                sjmp      kiri
               

lanjut1: jmp        mulai
                ret
;===========================================
;subroutine delay time
delay:    mov       r2,#180                                 ; isi data register 2 dangan 180h
delay1: mov       r3,#250                                 ; isi data register 3 dengan 250h
delay2: djnz       r3,delay2                             ; kurangi register 3 jika belum 0 jangan lompat ke delay2
                djnz       r2,delay1                             ; kurangi register 2 jika belum 0 jangan lompat ke delay1
                ret                                                          ; kembali ke program awal
                end                                                        ; program berakhir

Wednesday, March 2, 2016

IC 7486

This gateway uses type IC 7486. Operating gates: EX OR gates differ from OR gates. Output will be worth 0 if the inputs are both 1 or both 0 and 1 would be valuable if one of the input and output of value 0 or 1. Thus obtained the following equation: Y = AB + AB

Tuesday, March 1, 2016

IC 7400

By using type IC 7400, a NAND gate has two inputs and one output.

Gate operations:

NAND gates requires all inputs are 0 (connected to ground) or one of them is worth 1 in order to produce valuable output 1. Conversely, if Y = A B all inputs were priced 1 (input from Vcc), the output will be worth 0. This is the opposite of the AND gate operation.

Monday, February 29, 2016

IC 7408

Basic gates are already packed in an IC (Integrated Circuit), for gate use type IC 7408. Since in this case will use the input / input 3 pieces then by combining the two gates can be obtained 3 input meant (by connecting the output 3 feet to 4 feet or five inputs as shown in the image below. gate basic price only had 2 are 0 and 1. valuable 0 if the voltage is worth 0 to 0.8 volts and a valuable one if the voltage is worth 2-5 Volts. Operating gates : If all input is connected to the ground or everything apart then the output will be worth 0, so that the indicator lights are not on. Similarly, if only one apart and other inputs given input voltage of Vcc, the light still will not turn on. the lights will be lit if all inputs rated voltage of Vcc