Pages

Showing posts with label Microkontroller. Show all posts
Showing posts with label Microkontroller. Show all posts

Friday, October 07, 2011

Writing First C in Keil Compiler

lets we do with keil compiler. Keil C is not much different from a normal C program. If you know assembly, writing a C program is not a problem, only thing you have to keep in mind is forget your controller has general purpose registers, accumulators or whatever. But do not forget about Ports and other on chip peripherals and related registers to them.

In basic C, all programs have atleast one function which is entry point for your application that function is named as "main" function. Similarly in keil, we will have a main function, in which all your application specific work will be defined. Lets move further deep into the working of applications and programs.

When you run your C programs in your PC or computer, you run them as a child program or process to your Operating System so when you exit your programs (exits main function of program) you come back to operating system. Whereas in case of embedded C, you do not have any operating system running in there. So you have to make sure that your program or main file should never exit. This can be done with the help of simple while(1) or for(;;) loop as they are going to run infinitely. Following layout provides a skeleton of Basic C program.

CODE:
void main(){
//Your one time initialization code will come here
        while(1){
                //while 1 loop
                //This loop will have all your application code
                //which will run infinitely
        }
}

and, for add , just right click, and choose insert include REGx51.h. Its very simple and easy,,,

lets do with practice
we try to make Blink LED on PORT1, Pin 1

CODE:
#include //header file for 89C51
void main(){
        //main function starts
        unsigned int i;
        //Initializing Port1 pin1
        P1_1 = 0; //Make Pin1 o/p
        while(1){
                //Infinite loop main application
                //comes here
                for(i=0;i<1000;i++)
                        ; //delay loop
                P1_1 = ~P1_1;
                //complement Port1.1
                //this will blink LED connected on Port1.1
        }
}
 
and then, build it to Hex first, and then download to your microcontroller. and look what happen with Port1 pin1. if your it not blink, check your circuit and your code.

HAVE FUN with MICROCONTROLLER... ^_^

Sunday, September 25, 2011

Belajar Keil Compiler - Part 1

Selamat Malam kawan kawan Blog semua...
Untuk mengawali tulisan ini, saya mengucap Alhamdulillah, karena beberapa hari kemarin telah selesai dengan sidang akhir saya...  hehe...
Kebetulan sidang saya menggunakan Microkontroler,, jadi, pengen bahas lebih jauh tentang Microcontroller dan seluruh isinya. (*kayak apa gitu... :p)
nah,, kebetulan saya sudah menjadi member dari http://8051projects.net , teman2 bisa juga bergabung dengan mereka,,, banyak banget ilmu yang bisa diambil dari sana.... Semoga kita bisa mengambil ilmu bermanfaat dari sana.. :D

Nah, Belajar keil Compiler,,, susah ga? menurut saya belajar pada dasarnya adalah diawali dengan membaca,,, betul tidak? apakah membaca itu sulit?
pasti jawabannya .. "MUDAH" bener kan? hehheh...
yap,,, membaca itu mudah, tapi memahami dan mempraktekannya itu sulit... jadi, apabila kita mw merubah paradigma (ciee,, paradigma... hahahha :p)

Tentu kita sudah tak asing lagi dengan yang namanya Compiler C seperti AVR Studio 4, Codevision, winavr, dll. nah, Keil Compiler juga merupakan compiler C yang juga memiliki library yang cukup lengkap. Untuk sidang kemarin sih, library AT89S yang di Codevision sudah tidak ada, disini masih ada. Jadi, saya mulai menggelutinya.. :D

Pada dasarnya semua Compiler C itu sama, yang bedanya adalah librari yang disediakan. Sebut saja library delay_ms pada Codevision, di Keil itu berbeda penulisannya, tapi fungsinya sama apabila nanti digunakan.

untuk awal - awal , mari kita berkenalan dengan KEIL COMPILER ( bagi master master Keil yang sudah Expert ,, mohon koreksi apabila ada kesalahan dalam penulisan dan penjelasan.. )
menurut web resminya keil
The Keil products from ARM include C/C++ compilers, debuggers, integrated environments, RTOS, simulation models, and evaluation boards for ARM, Cortex-M, Cortex-R, 8051, C166, and 251 processor families.
Saya coba terjemahkan.... :D
Keil dari ARM dapat digunakan sebagai C/C++ compilers, Debuggers, terintegrasi environment, RTOS, model simulasi, dan bisa digunakan sebagai papan ARM Evaluasi, Cortex-M, Cortex-R, 8051, C166, dan  Keluarga Procesor 250.

Kita dapat menggunakan Keil C51 secara gratis namun kode hasil kompilasi hanya akan dibatasi sampai 2KB saja. Mengapa simulator itu penting? Simulasi merupakan suatu hal yang cukup penting ketika kita hendak memverifikasi hasil kode program kita bagaimana berjalannya di mikrokontroler sebelum benar-benar kita tuliskan (download) ke dalam mikrokontroler. Simulasi juga akan sangat membantu ketika kita hendak mencoba hal-hal baru sebelum diterapkan di mikrokontrolernya.
Interface Keil Compiler
Untuk Teman - teman yang ingin mencoba, silakan download filenya disini :