CV. ZENTRONIC - Perusahaan Jasa Listrik dan Elektronika

Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan
Tampilkan postingan dengan label Microcontroller. Tampilkan semua postingan

Selasa, 01 Agustus 2023

LED Berkedip menggunakan Mikrokontroler 8051 dan Mide51– AT89S51

 


Mikrokontroler 8051 adalah perangkat yang dapat diprogram yang digunakan untuk tujuan pengendalian.

Pada dasarnya pengontrol 8051 adalah Mask programmable artinya akan diprogram pada saat pembuatan dan tidak akan diprogram lagi, ada turunan dari mikrokontroler 8051 yaitu mikrokontroler 89s51 yang dapat diprogram ulang.

AT89S51

89s51 adalah perangkat 8-bit artinya mampu melakukan operasi 8-bit. Ini memiliki 4 port yang digunakan sebagai input atau output sesuai dengan kebutuhan Anda.

Perangkat ini juga memiliki Timer, antarmuka Port Serial dan pengontrol Interupsi yang dapat Anda gunakan sesuai dengan kebutuhan Anda. 


 

8051 Ports Explained

 

 


 
Coding

Bahasa pemograman micropessor ini menggunakan bahasa assembler mcs51, yang dibuat di editor Mide51.


Code :

org 00h
start:
mov p0,#11110000B
acall delay
mov p0,#00001111B
acall delay
ajmp start
delay: mov r7,#01h
ulang2: mov r6,#8fh
ulang1: mov r5,#8fh
ulang: inc r5
cjne r5,#40h,ulang
inc r6
cjne r6,#40h,ulang1
inc r7
cjne r7,#40h,ulang2
ret
end

kemudian di-build/compiler ke dalam file. hex. Terus menggunakan downloader Atmel.


Shematic Diagram ;


AT89S51 membutuhkan osilator untuk pembangkitan jamnya, jadi kita harus menghubungkan osilator eksternal. Dua kapasitor 22pF digunakan untuk menstabilkan pengoperasian Crystal Oscillator. EA harus diikat ke VCC untuk eksekusi program internal. AT89S51 tidak memiliki Power On Reset internal, jadi kita harus melakukannya secara eksternal melalui pin RST menggunakan Kapasitor dan Resistor. Ketika daya dihidupkan, tegangan melintasi kapasitor akan menjadi nol, sehingga tegangan melintasi resistor akan menjadi 5V dan terjadi reset. Saat kapasitor mengisi tegangan melintasi resistor secara bertahap berkurang menjadi nol.

Pin ini juga menerima 12-volt programming enable voltage (VPP) selama pemrograman Flash, untuk bagian yang membutuhkan VPP 12 volt.

Video ;


 Minat ISP ATMEL Downloader, kami menjualnya :

Nama Produk      : ISP Atmel Downloader

Produksi              : CV. ZENTRONIC

Model                 : Z23s

Purpose              : IC Atmel AT89S51, AT89S52, AT89S53, dll.

Interface            : LPT1 (Pararel Port)

Software            :  SPI- Flash Programmer 3.7

O.S.                    : Windows Xp

Hubungi Tel./WA : +62-8211-856-7547

 

     

Rabu, 28 Juni 2023

LED Blinking dengan ATmega32 Microcontroller di CodevisionAVR

 

LED berkedip adalah langkah pertama yang ingin Anda lakukan untuk memulai dengan elektronik. Pada tutorial kali ini kita akan menghubungkan LED dengan ATmega32 yang merupakan mikrokontroler seri AVR. Kita akan mengedipkan LED dengan kecepatan 2 detik.

 

Components Required

 Hardware:

ATmega32A Microcontroller

Power supply (5v)

AVR-ISP Programmer

LED

100uF Capacitor

220 Ohm

Software

Codevision AVR

Progisp or flash magic

Circuit and Working Explanation

 


Seperti yang ditunjukkan pada diagram rangkaian di atas untuk menghubungkan LED dengan mikrokontroler AVR, tidak perlu menghubungkan kristal eksternal di sini. Karena ATMEGA bekerja pada osilator Resistor-Kapasitor internal 16 MHz secara default. Hanya ketika keakuratan jam diperlukan, sebagai penerapan penghitungan presisi tinggi, kristal eksternal dipasang. Saat pengontrol pertama kali dibeli, pengontrol ini menyatu untuk bekerja pada kristal internal secara default.

Resistor dihubungkan di sini untuk membatasi gambar arus dari LED. Ingat, pengontrol tidak dapat menyediakan lebih dari 30mA di terminal.

 


Programming

Program untuk mikrokontroler ATmega32 untuk berkedip LED ditunjukkan di bawah ini.menggunakan software CodevisionAVR.







Code

/*******************************************************

This program was created by the CodeWizardAVR V3.49

Automatic Program Generator

© Copyright 1998-2022 Pavel Haiduc, HP InfoTech S.R.L.

http://www.hpinfotech.ro

 

Project :

Version :

Date    : 6/28/2023

Author  :

Company :

Comments:

 

 

Chip type               : ATmega32A

Program type            : Application

AVR Core Clock frequency: 16.000000 MHz

Memory model            : Small

External RAM size       : 0

Data Stack size         : 512

*******************************************************/

 

// I/O Registers definitions

#include <mega32a.h>

#include <delay.h>

 

// Declare your global variables here

 

void main(void)

{

// Declare your local variables here

 

// Input/Output Ports initialization

// Port A initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);

 

// Port B initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (0<<DDB0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

 

// Port C initialization

// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);

// State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

 

// Port D initialization

// Function: Bit7=In Bit6=In Bit5=Out Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In

DDRD=(0<<DDD7) | (0<<DDD6) | (1<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);

// State: Bit7=T Bit6=T Bit5=0 Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T

PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

 

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);

TCNT0=0x00;

OCR0=0x00;

 

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: Timer1 Stopped

// Mode: Normal top=0xFFFF

// OC1A output: Disconnected

// OC1B output: Disconnected

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);

TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

 

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0<<AS2;

TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);

TCNT2=0x00;

OCR2=0x00;

 

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);

 

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);

MCUCSR=(0<<ISC2);

 

// USART initialization

// USART disabled

UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (0<<RXEN) | (0<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);

 

// Analog Comparator initialization

// Analog Comparator: Off

// The Analog Comparator's positive input is

// connected to the AIN0 pin

// The Analog Comparator's negative input is

// connected to the AIN1 pin

ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);

SFIOR=(0<<ACME);

 

// ADC initialization

// ADC disabled

ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);

 

// SPI initialization

// SPI disabled

SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);

 

// TWI initialization

// TWI disabled

TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);

 

while (1)

      {

      // Place your code here

      PORTD.5=0;

      delay_ms(1000);

      PORTD.5=1;

      delay_ms(1000);

      }

}


 

 

 

 

 

 

 

 

 

 

VIDEO


 

Arduino – LM35 Temperature Sensor

  Sensor Suhu seri LM35 adalah perangkat suhu sirkuit terpadu presisi dengan tegangan keluaran yang berbanding lurus dengan suhu Celcius. ...