Professional Documents
Culture Documents
8051 ve C
2006 Bahar Yarı yılı
http://www.8051turk.com
Başvuru Kaynakları
C ile 8051 Mikrodenetleyici Uygulamaları Türkçe
Dr. Ahmet Turan Özcerit, Murat Çakıroğlu, Cüneyt Bayılmış
Papatya yayıncılık – www.papatya.gen.tr
Mikroişlemciler ve 8051 Ailesi Türkçe
Haluk Gümüşkaya- Alfa
The 8051 Microcontroller
I. Scott MacKenzie
Akif Kutlu
Süleyman Demirel Üniversitesi
www.8051turk.com
www.8051ailesi.com
www.keil.com
www.8052.com
http://www.pjrc.com/tech/8051/
http://www.ume.tubitak.gov.tr/lablar/ozel_olcumler/index.html
Türkçe
http://chaokhun.kmitl.ac.th/~kswichit/ (örnek projeler)
http://instruct1.cit.cornell.edu/courses/ee476/FinalProjects/
Mikrodenetleyici İle Proje Hazırlama Aşamaları
Ne yapılacağına ve hangi mikrodenetleyicinin kullanılacağına
karar verilmeli
Keil µVision2
PROTEUS
http://www.8051turk.com
PROTEUS Nedir?
Devre çizimi, simülasyon, animasyon ve baskı devre
çizimi yapmaya imkan tanıyan paket programlardan
birisidir.
Menü Çubuğu
Araç
Çubukları
Tasarım
Alanı
Ön izleme
Tasarım
Alanı
Tasarım
Araç
Çubuğu
Eleman
Kutusu
KEIL µVision
http://www.8051turk.com
Keil µVision Yazılımının Temel Özellikleri
Edit Menüsü
En son yapılan işlemi geri al
En son geri alınan işlemi yinele
Seçili metni kes
Seçili metni kopyala
Kopyalanan ya da kesilen metni yapıştır
Seçili metne 1 tab sağa doğru girinti ver
Seçili metne 1 tab sola doğru girinti ver
Geçerli satıra işaret (bookmark) koy
Bir sonraki işaretli (bookmark) satıra git
Bir önceki işaretli (bookmark) satıra git
Aktif dosyadaki tüm işaretleri (bookmark) sil
Aktif dosyadaki bir metni bul (ara)
Belirli bir metni ya da ifadeyi başka bir metin veya
ifade ile değiştir
Birkaç dosyada bul (ara)
İki ayraç ({,}) arasını seç
View Menüsü
View Menüsü
Durum çubuğunu göster veya gizle
Dosya araç çubuğunu göster veya gizle
Derleme araç çubuğunu göster veya gizle
Debug araç çubuğunu göster veya gizle
Window Menüsü
Pencere menüsü
Pencereleri üst üste (hiyerarşik olarak) gösterir
Pencereleri alt alta yatay olarak döşe
Pencereleri yan yana dikey olarak döşe
Pencere altındaki ikonları düzenle
Pencereleri böl
Tüm açık pencereleri kapat
Aktif açık pencere
Tools Menüsü
LIB51,LIBx51
BL51,LX51
Eprom 8051
Görev2.c Görev2.obj Görev. Obj > hex Programlayıcı devresi
C51,CX51 Görev2.lst
rev2.lst Görev.cod
rev.cod Görev.m51 Görev.hex hex > bin Görev.bin
8051
*.h
*.h Görev2.I Görev2.src Emülatörü Harici
Donanım
Simülatörü
(Proteus)
Keil ile C Derleme Aşamaları
Öniş
nişlemci Linker
Yönlendiricileri Kontrol
Yönlendiricileri
Yönlendiricileri
void main(void) pT pT
{ void main(void) pT pT
{X_Init();
X_Init();
Kütüphane Mutlak nesne
while(1) Kütüphane Mutlak nesne
Referansları dosyası
{while(1)
{X(); C51.EXE Referansları
olan nesne
olan nesne
dosyası
} X();
} } CX51.EXE dosyası
dosyası
}
RAM
Keil C51 Derleyicisindeki Veri Tipleri
Örnek:
sbit Bayt
Adres
FF
Bit Adres
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
A8 AF
EA - - AC AB AA A9 A8 IE
Örnek: A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
90 97 96 95 94 93 92 91 90 P1
sbit EA=0xAF; /*EA değişkenin tanımlanması */
8D Bit Adreslenemez TH1
8C Bit Adreslenemez TH0
sbit EA=IE^7; /*EA değişkenin tanımlanması*/
8B Bit Adreslenemez TL1
8A Bit Adreslenemez TL0
89 Bit Adreslenemez TMOD
Not: sbit tanımlamaları main () öncesinde yapılır. 88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Bit Adreslenemez PCON
sfr Bayt
Adres
FF
Bit Adres
F0 F7 F6 F5 F4 F3 F2 F1 F0 B
B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
Yapı olarak diğer 8 bitlik veri tiplerine
benzemektedir. A8 AF - - AC AB AA A9 A8 IE
A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
80 E0 E7 E6 E5 E4 E3 E2 E1 E0 ACC
7F Data
GENEL AMAÇ
AMAÇLI D0 D7 D6 D5 D4 D3 D2 - D0 PSW
RAM
30 B8 - - - BC BB BA B9 B8 IP
2F 7F 7E 7D 7C 7B 7A 79 78 BData
77 76 75 74 73 72 71 70 B0 B7 B6 B5 B4 B3 B2 B1 B0 P3
6F 6E 6D 6C 6B 6A 69 68
67 66 65 64 63 62 61 60 A8 AF - - AC AB AA A9 A8 IE
5F 5E 5D 5C 5B 5A 59 58
57 56 55 54 53 52 51 50 A0 A7 A6 A5 A4 A3 A2 A1 A0 P2
4F 4E 4D 4C 4B 4A 49 48
Code
47 46 45 44 43 42 41 40 99 Bit Adreslenemez SBUF
3F 3E 3D 3C 3B 3A 39 38 98 9F 9E 9D 9C 9B 9A 99 98 SCON
37 36 35 34 33 32 31 30
2F 2E 2D 2C 2B 2A 29 28 90 97 96 95 94 93 92 91 90 P1 Dahili
27 26 25 24 23 22 21 20 ROM (2/4/8…
(2/4/8….K)
1F 1E 1D 1C 1B 1A 19 18 8D Bit Adreslenemez TH1
17 16 15 14 13 12 11 10 8C Bit Adreslenemez TH0
0F 0E 0D 0C 0B 0A 09 08 8B Bit Adreslenemez TL1
21
20 07 06 05 04 03 02 01 00 8A Bit Adreslenemez TL0
xData Code
89 Bit Adreslenemez TMOD
1F BANK 3
18 88 8F 8E 8D 8C 8B 8A 89 88 TCON
87 Bit Adreslenemez PCON Harici
17 BANK 2 RAM(64K)
10 Harici
83 Bit Adreslenemez DPH
0F ROM (64K)
BANK 1 82 Bit Adreslenemez DPL pData
08
81 Bit Adreslenemez SP 256 B
07 İlk Kayı
Kayıtçı Bankası
Bankası
00 R0-
R0-R7 80 87 86 85 84 83 82 81 80 P0
Küçük
KüçükModel
Model Orta
OrtaModel
Model Büyük
BüyükModel
Model
#Pragma small #Pragma compact #Pragma large
Değişkenlerin
Data Pdata Xdata
ilkleme yeri
Örnek Tanımlamalar
char text[]="merhaba"; d:0x08
void main ()
{ x:0x000000
}
x:0x00FF00
#pragma large
char text[]="merhaba";
void main ()
{
?
}
Pointer’lar
Haf ıza Belirte
Hafıza çli
Belirteçli Haf ızaya Ö
Hafızaya zel
Özel
Genel
Genel Pointer
Pointer Genel
Genel Pointer
Pointer Pointer
Pointer
unsigned char *z; unsigned char * xdata z; unsigned char xdata *z;
unsigned char c; unsigned char xdata c; unsigned char xdata c;
main () main () main ()
{ { {
while(1) while(1) while(1)
{ { {
c=16; c=16; c=16;
z=&c; z=&c; z=&c;
*z=123; *z=123; *z=123;
} } }
} } }
Pointer uzunluğu 3 byte’tır Pointer uzunluğu 3 byte’tır Pointer uzunluğu idata data
Pointer değişkeninin Pointer değişkeninin bdata ve pdata için 1, code
saklandığı yer dahili veri saklandığı yer belirtilen ve xdata için 2 byte’tır
alanıdır hafıza alanıdır Pointer değişkeninin
saklandığı yer dahili veri
alanıdır
Bit veri tipi pointer olarak tanımlanamaz
Bellek Erişimi
Fonksiyon/
Açıklama
Makro Adı
CBYTE Program belleğinin belirtilen adresinden bir bayt okuma
CWORD Program belleğinin belirtilen adresinden iki bayt (word) okuma
DBYTE Dahili veri belleğinin belirtilen adresine bir bayt yazma/okuma
DWORD Dahili veri belleğinin belirtilen adresine 2 bayt (word) yazma/okuma
Harici veri belleğinin bir sayfalık kısmının belirtilen adresine bir bayt
PBYTE
yazma/okuma
Harici veri belleğinin bir sayfalık kısmının belirtilen adresine iki bayt (word)
PWORD
yazma/okuma
Harici veri belleğinin 64 KB’lık alan içerisinde belirtilen adresine bir bayt
XBYTE
yazma/okuma
Harici veri belleğinin 64 KB’lık alan içerisinde belirtilen adresine iki bayt
XWORD
(word) yazma/okuma
http://www.8051turk.com
AT89C51RC2 Tabanlı Geliştirme Kartı
http://www.8051turk.com
FLIP Programının Genel Görünüşü
seri haberleş
haberleşme tü
türü seç
seçimi Hex kodun yolunu gö
göster
işlemci
seç
seçimi
Hatasız bağlantı
Hex kodu yüklemeye hazır
Erase: Sil
Blank Check: Silinmiş kontrolü
Program: Programla
Verify: Doğrula
Sorular