Anda di halaman 1dari 11

Percobaan 1

I/O DASAR

Leonardo Depantri Sembiring (14S16053)


Tanggal Percobaan : 22/02/2019
[ELS3203][Praktikum Sistem Mikroprosesor]
Laboratoriun Dasar Teknik Elektro
Institut Teknologi Del

Abstract- In this module, the participants were given


several experiments which led to an understanding of the
use of input and output on the port, implementing it using II. LANDASAN TEORI
the C programming language that can be seen through the
Pengertian Mikrokontroler
LEDs that are installed. The experiments that will be
carried out are the use of Port A as input, delay settings,
use of Port A as Input and Port D as Output. This
experiment was carried out with a simulation using Sismin
ATMega8535 and settings with the C programming
language on WinAVR software. The expected results are
the LED lights in accordance with the specifications that
have been given where the settings can also be done with
switches that were in the last experiment. Keywords:
Input, Output, Delay.an experiment is conducted to access
input and output on the ATMega 8535 minimum system.
The first experiment is to access the output port, namely
PORTA represented in the LED on DT-51. The second
experiment is accessing delay facilities on the AVR. Then,
the last experiment is to combine PORTA as output and
PORTD as input. Gambar 1. Mikrokontroler AVR ATMega8535

Mikrokontroler adalah sistem mikroprosesor lengkap yang


Keywords: Input, Output, Delay, ATMega8535 terkandung di dalam sebuahchip. Mikrokontroler berbeda
dari mikroprosesor serba guna yang digunakan dalam
sebuah PC, karena sebuah mikrokontroler umumnya telah
I. PENDAHULUAN berisi komponen pendukung sistem minimal
mikroprosesor, yakni memori dan antarmuka I/O.
Pada percobaan ini praktikan akan menggunakan CV AVR
dan ATMEGA8535 untuk menghasilkan output dari LED Menurut Budiharto Mikrokontroler ialah chip yang berisi
yang menyala dengan berdasarkan input berupa berbagai unit penting untuk melakukan pemrosesan
program/perintah yang diberikan pada CV AVR. Adapun data (I/O, timer, memory, Arithmetic Logic Unit (ALU)
tujuan dari praktikun ini yaitu : dan lainnya) sehingga dapat berlaku sebagai pengendali
dan komputer sederhana. Mikrokontroler merupakan
 Praktikan memahami datasheet ATMega 8535. sistem komputer yang mempunyai satu atau beberapa
 Praktikan mampu membuat aplikasi input dan tugas yang sangat spesifik, berbeda dengan personal
output pada AVR dengan menggunakan bahasa compputer (PC) yang memiliki beragam fungsi.
pemprograman C pada CV AVR.
 Praktikan memahami pengesetan fuse yang
berkaitan dengan penggunaan besar dan jenis Mikrokontroller memiliki kemampuan manipulasi data
Kristal. (informasi) berdasarkan suatu urutan instruksi (program)
yang dibuat oleh programmer. Mikrokontroller adalah
piranti elektronik yang dikemas dalam bentuk sebuah IC
(Integrated Circuit) tunggal, sebagai bagian utama dan
beberapa peripheral lain yang harus ditambahkan, seperti
kristal dan kapasitor.
 Mikrokontroler AVR ATMega8535 Konfigurasi Pin ATMega8535
Kata AVR dapat berasal dari singkatan Alf and Vegard Mikrokontroler ATMega8535 mempunyai jumlah pin
RISC sesuai dengan nama penggagas pertama. Saat ini ada sebanyak 40 buah, dimana 32 pin digunakan untuk
yang mengunakan singkatan dari Advance Virtual keperluan port I/O yang dapat menjadi
RISC. Mikrokontroler AVR yang menggunakan pin input/output sesuaikonfigurasi. Pada 32 pin tersebut
teknologi RISC (Reduced Instruction Set Computer) dan terbagi atas 4 bagian (port), yang masing-masingnya
berasitekutr Harvard ini pertama kali dikembangkan pada terdiri atas 8 pin. Pin-pin lainnya digunakan untuk
tahun 1996 oleh dua orang mahasiswa Norwegian Institute keperluan rangkaian osilator, supplytegangan, reset, serta
of Technology yaitu Alf-Egil Bogen dan Veggard Wollan tegangan referensi untuk ADC. Untuk lebih jelasnya,
yang kemudian dikembangkan lebih lanjut oleh konfigurasi pin ATMega8535 dapat dilihat pada gambar 2.
Perusahaan Atmel.

ATMega8535 merupakan salah satu mikrokontroler 8


bit buatan Atmel untuk keluargaAVR yang diproduksi
secara masal pada tahun 2006. Karena merupakan
keluarga AVR, maka ATMega8535 juga menggunakan
arsitektur RISC (Reduced Instruction Set
Computing). AVR atau sebuah kependekan dari Alf and
Vegard’s Risc Processormerupakan chip mikrokontroler
yang diproduksi oleh Atmel.

Mikrokontroler ATMega 8535 merupakan


mikrokontroler 8-bit teknologi CMOS dengan konsumsi
daya rendah yang berbasis arsitektur enhanced RISC
AVR. Dengan eksekusi instruksi yang sebagian besar
hanya menggunakan satu siklus clock, ATMega8535
mencapai Throughput sekitar 1 MIPS per MHz yang
mengizinkan perancang sistem melakukan optimasi
konsumsi daya versus kecepatan pemroses.

Mikrokontroler ATMega8535 memiliki beberapa fitur


atau spesifikasi yang menjadikannya sebuah solusi
pengendali yang efektif untuk berbagai keperluan. Fitur- Gambar 2. Konfigurasi Pin ATMega8535
fitur tersebut antara lain:
Tabel 1 Deskripsi Pin AVR ATMega8535
1. Port I/O sebanyak 32 bit, yang terdiri atas Port A,
B, C dan D
2. ADC (Analog to Digital Converter) 10-bit sebanyak No. Nama Pin Keterangan
8 input Pin
3. Timer/Counter sebanyak 3 buah dengan 10 VCC Catu Daya
kemampuan perbandingan 11 GND Ground
4. CPU 8 bit yang terdiri atas 32 register
40 → Port A : Port I/O dua arah
5. Watchdog Timer dengan osilator internal
33 PA0 – PA7 dilengkapi internal pull-up
6. SRAM sebesar 512 byte
(ADC0 – resistor.Port ini juga
7. Memori Flash sebesar 8Kbyte dengan
ADC7 dimultipleks dengan masukan
kemampuan read while write
analog ke ADC 8 kanal
8. Unit Interupsi Internal maupun External
1→7 Port B : Port I/O dua arah
9. Port antarmuka SPI untuk men-download program
PB0 – PB7 dilengkapi internal pull-up
ke flash
resistor. Fungsi lain dari port ini
10. EEPROM sebesar 512 byte yang dapat diprogram
masing-masing adalah :
saat operasi
PB0 : T0 (timer/counter0
11. Antarmuka komparator analog
external counter input)
12. Port USART (Universal Shynchronous
PB1 : T1 (timer counter1
Ashynchronous Receiver Transmitter) untuk
external counter input
komunikasi serial dengan kecepatan maksimal 2,5
PB2 : AIN0 (analog comparator
Mbps
positive input)
13. Frekuensi clock maksimum 16 MHz\
PB3 : AIN1 (analog comparator
positive input)
PB4 : SS (SPI slave select input)
PB5 : MOSI (SPI Bus Master karena sudah memiliki referensi clock internal), referensi
Input/Slave output) ADC (Analog to digital konverter), tombol reset, serta
PB6 : MISO (SPI Bus Master port-port I/O.
Input/Slave Output)
PB7 : SCK (SPI Bus Serial Berikut adalah contoh sistem minimum yang meliputi catu
Clock) daya, oscillator eksternal (menggunakan XTAL), tombol
22 → Port C : Port I/O dua arah reset, dan port – port I/O expansion, dan port untuk
29 PC0 – PC7 dilengkapi internal pull-up downloader.
resistor. Dua pin yaitu PC6 dan
PC7 berfungsi sebagai osilator
eksternal untuk timer/counter2
14 → Port D : Port I/O dua arah
21 PD0 – PD7 dilengkapi internal pull-up
resistor. Fungsi lain dari port ini
masing-masing adalah :
PD0 : RXD (UART Input Line)
PD1 : TXD (UART Output Line)
PD2 : INT0 (External Interrupt 0
Input)
PD3 : INT1 (External interrupt 1
input)
PD4 : OC1B (Timer/Counter1
Output)
CompareB Match Output
PD5 : OC1A (Timer/Counter1
Output)
CompareA Match Output
PD6 : ICP (Timer/Counter1
Input Capture Pin)
PD7 : OC2 (Timer/Counter2
Output) Gambar 2 Skematik Sistem Minimum AVR
Compare Match Output ATMega8535
9 RESET Masukan Reset. Sebuah Reset
Gambar sistem minimum di atas dapat juga dan sangat
terjadi jika pin ini diberi
kompatibel untuk digunakan pada jenis mikrokontroler
logika low melebihi periode
lain yang setipe (jumlah kaki/pin sama dan konfigurasi
minimum yang diperlukan.
pin-nya juga sama), seperti ATmega16, dan ATmega32.
13 XTAL1 Masukan ke inverting oscillator
amplifier dan masukan
kerangkaian internal clock
12 XTAL2 Keluaran dari inverting oscillator
amplifier
30 AVCC Catu daya untuk Port A dan
ADC
31 AGND Analog Ground
32 AREF Referensi masukan analog untuk
ADC

 Sistem Minimum AVR ATMega8535


Sistem minimum Mikrokontroler
ATmega8535 merupakan rangkaian minimum yang dibuat
agar sistem ini (mikrokontroler ini) dapat bekerja dan
berfungsi dengan semestinya. Sistem minimum ini
meliputi catu daya mikrokontroller (vcc) yang berkisar
antara 2,7 V – 5,5 V, kristal oscillator (opsional) yang
berfungsi sebagai referensi kecepatan akses
mikrokontroller (kristal oscillator diperlukan jika
menginginkan referensi clock yang tinggi, tapi tanpa
kristal oscillator pun mikrokontroler masih dapat bekerja,
III. HASIL ANALISIS
Gambar 1.5 Output Percobaan 1B2
A. PORTA sebagai Output

Pre-processing

Main Program

Set DDRA to
0xFF (PORTA
as output) and
set PORTA to
0xFF (initially
turns every
LED ON)

Loop

Set PORTA to
0b00110011
(as seen on
Gambar 1.4) for
1B1 or
0b00111010
(as seen on
Gambar 1.5) for
1B2

LED will do as seen on Gambar 1.4

Insert 500 ms
delays

Flowchart 1.1 Percobaan 1A1 dan 1A2 Set PORTA to


0b11001100
Analisis: (as seen on
Gambar 1.4) for
Insert 500 ms
1B1 or
Dapat kita lihat bahwa LED menyala berselang- 0b00111011
delays

seling. Hal ini sesuai dengan nilai yang (as seen on


Gambar 1.5) for
diassign(dimasukkan) ke dalam PORTA yang mana 1B2
bernilai genap yang diberi nilai 1 yang artinya aktif
(high). Dapat dilihat pula bahygwa nilai DDRA diset Flowchart 1.2 Percobaan 1B1 dan 1B2
pada nilai 0b11111111 atau 0xFF yang artinya semua
PORTA baik dari bit ke-0 sampai bit ke-7 diset dalam
mode output.
Gambar 1.6 Output Percobaan 1B3
Kemudian, dengan cara yang hampir sama, pada
PORTA diassign nilai 1 untuk PA5, PA3, PA1, dan
PA0 yang berarti nilai PORTA diassign 0b00101011
atau sama dengan nilai 53 dalam basis desimal yang
merupakan kelompok kami. Hal tersebut bisa dilihat
dari LED yang menyala.
B. Fasilitas Delay pada AVR

Gambar 1.4 Output Percobaan 1B1


Pre-processing
Pre-processing
Main Program

Main Program Make variable i


(unsigned char)
then set it to
0xFE

Make variable i
(unsigned char)
Set DDRA to
then set it to 0xFF (PORTA
as output) and
0xFE set PORTA to i
(0xFE)

Set integer
counter variable
k
Set DDRA to
0xFF (PORTA Main Loop
as output) and
set PORTA to i
(0xFE) First loop

Loop

First loop will do until k = 6 (from k = 0)


Re-set PORTA
to i

Re-set PORTA
to i

Insert 120 ms Set i to


LED will do as seen on Gambar 1.6 Second loop breaks when k = 7 then enters first loop delays (i << 1) | (i >> 7)

First loop breaks when k = 7 then enters second loop

Second loop

Second loop will do until k = 6 (from k = 0)

Insert 120 ms Set i to


delays (i << 1) | (i >> 7)

Set i to
(i >> 1) | (i << 7)

Flowchart 1.3 Percobaan 1B3

Insert 120 ms Re-set PORTA


delays to i

Gambar 1.7 Output Percobaan 1B4

Flowchart 1.4 Percobaan 1B4

Analisis:
Dari library yang digunakan, terlihat bahwa
program menggunakan/mengakses library delay.
Selain itu, program juga menggunakan nilai clock 1
MHz. Terlihat pula bahwa PORTA dijadikan sebagai
output yang terlihat pada pengassignan DDRA pada
0xFF. Kemudian pada body program, terdapat tiga
kali pengassignan nilai PORTA yang mana untuk
kedua pengassignan PORTA diikuti dengan
perintah,
delay_ms(500);
Kodingan ini berarti bahwa untuk pengassignan Perintah ini merupakan perilaku yang akan LED-
pertama PORTA, PORTA akan aktif semua (LED LED nanti tampilkan yang dideskripsikan sebagai
menyala semua) sebelum memasuki loop. Kemudian berikut.
pada pengassignan PORTA yang terdapat pada loop
Pertama, i diassign nilai 0xFE atau 0b11111110,
while(1) terdapat pengesetan nilai delay yang
kemudian i ini akan memasuki loop yang diakhir
sesuai dengan perintah yang dituliskan sebelumnya.
loop akan diupdate dengan nilai i yang baru yaitu,
Delay yang digunakan adalah 500 ms. Sehingga jika
hasilnya sesuai dengan kodingan, maka LED akan
berkedip dengan selang 500 ms yang mana LED ( )
akan berkedip-kedip bergantian dari LED0, LED1,
LED4, dan LED5 menyala dan yang lain mati ke ( )
LED2, LED3, LED6, dan LED7 menyala dan yang ( )( )
lain mati. Kemudian, untuk perintah while(1)
merupakan perintah untuk melakukan loop tak-
dengan simbol | (or) merepresentasikan
hingga kali tanpa syarat tertentu untuk keluar dari
penjumlahan dalam domain biner. Nilai i ini akan
loop tersebut.
selalu diupdate oleh loop yang jika diteruskan maka
Untuk percobaan selanjutnya (1B2), dengan nilai bit 0 dalam nilai i seolah-olah akan berjalan ke
penjelasan yang sama, diperoleh LED berkedip kiri kemudian ketika nilai bit 0 ini mencapai bit ke-7,
dengan selang 500 ms yang mana LED akan maka otomatis bit 0 ini akan memosisikan diri pada
berkedip-kedip bergantian dari LED1, LED3, LED4, bit ke-0 yang kemudian akan berjalan ke kiri lagi,
dan LED5 menyala dan yang lain mati ke LED0, demikian nilai i ini dalam loop sehingga, LED (yang
LED1, LED3, LED4, dan LED5 menyala dan yang mati) akan terlihat seolah-olah berjalan dari kiri ke
lain mati. Nilai LED yang berkedip tersebut kanan kemudian langsung ke paling kiri setelah LED
merepresentasikan nilai biner dari tiga digit terakhir yang mati ini mencapai paling kanan (terlihat seperti
NIM kami yaitu 05810 dan 05910. memutar).
Percobaan berikutnya (1B3) menggunakan clock 8 Percobaan terakhir dari bagian B ini (1B4) adalah
MHz. Nilai clock ini diperoleh dengan menggunakan memodifikasi percobaan sebelumnya (1B3) sehingga
sumber clock eksternal yaitu kristal. Pengaksesan LED yang mati tadi akan melakukan bouncing back
sumber clock eksternal ini dilakukan dengan setelah mencapai bagian paling ujung (paling kiri
mengetikkan perintah, atau paling kanan). Pada percobaan ini, dalam loop
avrdude –c ponyser –p atmega8535 –P com1 –U utama terdapat 2 loop lain yang mana untuk loop
hfuse:w:0xD9:m –U lfuse:w:0xEF:m pertama menangani kasus ketika LED mati berjalan
pada command prompt MS Windows sebelum dari paling kiri ke paling kanan dan loop kedua
melakukan kodingan dan pendownloadan kodingan menangani kasus ketika LED mati berjalan dari
ke sismin. paling kanan ke paling kiri. Kedua loop ini
menggunakan counter integer k. Dari kombinasi
Pada percobaan ini, juga digunakan fasilitas delay kedua loop ini dalam loop utama while(1)
yang terlihat dari library yang digunakan diperoleh perilaku LED mati berjalan yang dimulai
(#include <util/delay.h>). Terlihat dalam dari paling kiri (LED0) ke paling kanan (LED7)
body program bahwa sebelum program memasuki kemudian bouncing back ke kiri dari paling kanan
loop, maka dibuat variabel unsigned char i yang (LED7) ke paling kiri (LED0) kemudian bouncing
diassign nilai 0b11111110 atau 0xFE. Setelah itu, back lagi ke kanan dan begitu seterusnya. Berikut
PORTA diset sebagai output dengan mengassign penjelasan untuk loop kedua dalam loop utama,
nilai 0xFF ke dalam DDRA. Kemudian nilai i ini
diassign ke dalam PORTA yang artinya, LED akan
menyala semua kecuali LED0. Berikutnya, dalam ( )
body loop dengan loop tak-hingga, dilakukan
( )
pengassignan PORTA dengan i sekali lagi yang
bertujuan agar nilai PORTA selalu terisi dengan nilai ( )( )
i yang baru. Lalu, digunakan delay sebesar 120 ms
untuk setiap perubahan nyala LED. Terakhir, diset Nilai bit 1 merepresentasikan LED menyala,
nilai i dengan perintah, sementara bit 0 merepresentasikan LED mati.
i=(i<<1)|(i>>7); Sehingga seolah-olah LED mati terlihat berjalan.
C. PORTA sebagai Output dan PORTD sebagai
Input

Pre-processing

Main Program

Make variable i
(unsigned char)
as storage
variable

Set DDRA to
0xFF (PORTA
as output) and
set DDRD to
0x00 (PORTD
as input, PIND)

Flowchart 1.6 Percobaan 1C2

Analisis:
Activate pull-up
internal resistor Disini DDRA digunakan sebagai output yg mengassign
and set PORTA nilai 0xFF hal ini juga terlihat dari program yang
to 0xFF
digunakan sementara DDRD diset sebagai input dengan
mengassign nilai 0x00 sehingga PORTDn akan dijadikan
Main Loop sebagai pin input. Pada body program, digunakan variabel
i yang bertipe unsigned char sebagai pengeset supaya
output akan sesuai dengan input.
Read PIND
value then store Pada body loop dapat dilihat bahwa nilai i diassign dengan
it to i
nilai PIND atau dengan kata lain, i menyimpan nilai PIND
yang kemudian nilai PIND yang telah disimpan pada
LEDn will light up for every active (ON) SWITCHn variabel i, oleh variabel i nilai PIND ini diassign ke dalam
as seen on Gambar 1.8
PORTA sehingga nilai PORTA nantinya akan sesuai
dengan nilai PIND sehingga apa yang ditampilkan oleh
PORTA takes i
value to its
LED akan sama dengan apa yang dimasukkan oleh switch
value input yang mana jika LED pada switch input menyala
artinya switch berada pada kondisi ON.
Flowchart 1.5 Percobaan 1C1 Percobaan selanjutnya (1C2), adalah memodifikasi
percoban sebelumnya (1C1) sehingga output akan
menghasilkan output dari percobaan 1B2 jika input switch
berada dalam keadaan NIM 05310 atau 0b00101011,
menghasilkan output dari percobaan 1B4 jika input switch
berada dalam keadaan 04510 atau 0b00101101, dan
menghasilkan output 1A2 untuk keadaan input selain
keadaan di atas.
Dapat dilihat dari kodingan yang digunakan bahwa
dilakukan pengubahan pada body program terutama pada
body loop. Digunakan variabel a sebagai penympan nilai
dari PIND untuk kemudian dibandingkan dengan nilai
seperti yang diminta spesifikasi. Untuk memenuhi ketiga
spesifikasi yang diminta, maka digunakan pula perintah
kondisional if yang mana jika nilai variabel a (yang berisi
PIND) sama dengan 0b00101011 (05310) maka output
LED akan bertingkah seperti percobaan 1B2 (berkedip
dengan representasi tiga digit terakhir NIM anggota
kelompok), sementara jika nilai variabel a (yang berisi
PIND) sama dengan 0b00101101 (04510) maka LED akan
bertingkah seperti percobaan 1B4 (berjalan dengan mode
bouncing back di setiap ujung), dan jika nilai variabel a
tidak sama dengan kondisi tersebut di atas, maka LED
akan bertingkah seperti percobaan 1A2 (menyala dengan
representasi nomor kelompok). Nilai PIND (8 bit biner)
merupakan representasi dari input switch yang mana jika
switch tertentu aktif (ON, yang mana terlihat dari LED
pada switch menyala) maka bit yang mewakili switch
tersebut bernilai 1. Contohnya, jika SW0, SW1, SW3,
SW4, dan SW5 ON, maka nilai PIND adalah 0b00101101
yang artinya keadaan ini memasuki kondisi 2. Nilai PIND
ini kemudian akan disimpan dalam variabel a untuk
kemudian nilai variabel a ini akan dibandingkan dalam
body loop sehingga diperoleh kondisi 2 dalam spesifikasi.
Output yang diperoleh dari kondisi ini adalah sama dengan
output yang diperoleh pada percobaan 1B4 (LED mati
berjalan dari kiri ke kanan kemudian saat mencapai ujung
bouncing back dan berjalan ke arah sebaliknya).

IV. KESIMPULAN
 Output pada ATMega 8535 dapat diset dengan
cara mengeset nilai register yang berkaitan
dengan output tersebut dengan nilai hex 0xFF.
 Untuk mengeset fuse bit, digunakan perintah:
avrdude –c ponyser –p atmega8535 –P com1 –U
hfuse:w:0xD9:m –U lfuse:w:0xEF:m
pada command prompt yang terdapat pada MS
Windows.
Dapat dilihat, untuk menggunakan clock dari
sumber eksternal, nilai low-fuse bitnya saja yang
diganti, yaitu dari yang bernilai 0xE1 atau
0b11100001 yang berarti masih menggunakan
clock internal menjadi 0xEF atau 0x11101111
yang berarti sudah menggunakan clock eksternal.
 Untuk mengeset PORTx sebagai input, maka
nilai DDRx harus diset dengan 0

REFERENSI

 Modul Praktikum Sistem Mikroprosesor Institut


Teknologi Del
 https://uranglaye.blogspot.com/2016/04/pengenal
an-mikrokontroler-atmega8535.html
 https://pemudaminangkabau.wordpress.com/2013
/02/28/pengertian-mikrokontroler-atmega8535/
{
LAMPIRAN DDRA = 0xFF;
PORTA = 0xFF;
TUGAS I.A.1 while (1)
# include <mega8535.h> {
void main () PORTA = 0b00110011;
{ delay_ms(500);
unsigned char i; PORTA = 0b11001100;
DDRA = 0xFF; delay_ms(500); }
DDRD = 0x00; }
SFIOR = 0<<PUD
}

TUGAS I.A.2
#include <mega8535.h>
void main()
{
DDRA = 0xFF;// inisialisasi Port
asebagai output
PORTA = 0b00001001;// nilai output
}

TUGAS I.B.2
#include <mega8535.h>
#define F_CPU 1000000UL
#include <delay.h>
void main()
{
DDRA = 0xFF;
PORTA = 0xFF;
while (1)
{
PORTA = 0b00110011;
delay_ms(1000);
PORTA = 0b11001100;
delay_ms(1000); }
}

TUGAS I.B.1
#include <mega8535.h>
#define F_CPU 1000000UL
#include <delay.h>
void main()
TUGAS I.B.4
# include <mega8535.h>
# define F_CPU 8000000UL
# include <delay.h>
void main()
{
TUGAS I.B.3 unsigned char i = 0xFE;
# include <mega8535.h> DDRA = 0xFF;
# define F_CPU 8000000UL
# include <delay.h> while (1)
void main() {
{ while (i != 0b01111111)
unsigned char i = 0xFE; {
DDRA = 0xFF; PORTA = i;
delay_ms (120);
PORTA = i; i = (i<<1) | (i>>7); }
while (1) while (i != 0b11111110)
{ {
PORTA = i; PORTA = i;
delay_ms (120); delay_ms (120);
i = (i<<1) | (i>>7); } i = (i>>1) | (i<<7); }
while (i != 0b01111110) }
{ }
PORTA = i;
delay_ms (120);
i = (i>>1) | (i<<7); }
}
TUGAS I.C.2
# include <mega8535.h>
void main()
{
unsigned char i;
DDRA = 0xFF;
DDRD = 0x00;
TUGAS I.C.1 SFIOR = 0<<PUD;
# include <mega8535.h> PORTA = 0xFF;
void main() while (1)
{ {
unsigned char i; i = PIND;
DDRA = 0xFF; PORTA = i;}
DDRD = 0x00; }
SFIOR = 0<<PUD;
PORTA = 0xFF;
while (1)
{
i = PIND;
PORTA = i;}
}

Anda mungkin juga menyukai