Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
Deney 4
Amaç:
Bu deneyin amacı, öğrencilere
i) PROTEUS ISIS programında COMPIM aracının kullanımını,
ii) PIC mikrodenetleyicinin seri iletişim modülünün kullanımı,
iii) Sanal İletişim Portu kullanımını öğretmektir.
Yöntem:
1. Şekil 1'deki devreyi kurun.
Şekil 1. Deney tasarımı
2. COMPIM elemanının üzerine çift tılayarak, açılan pencereyi Şekil-2'deki gibi doldurun.
Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
Şekil 2. COMPIM ayarları
3. VSPE programını kurun ve çalıştırın.
4. Şekil 3'te görüldüğü gibi, VSPE penceresinde “Device” menüsünden “Create” seçeneğini
seçin.
5. Açılan ekranda, Şekil 4'te görüldüğü gibi “Pair” seçineğini seçin “Next” tuşuna ve açılan
ekranda “End” tuşuna tıklayın.
6. Terminal programını çalıştırın. “File” menüsünden “New session” seçeneğini seçin ve açılan
pencereyi Şekil 5'teki gibi doldurun.
7. Bir MikroC projesini açın ve aşağıdaki kodu yazın.
unsigned int i,a,l,x;
char *text1;
//karakter tipinde işaretçi tanımlanıyor.
char *isim ;
char veri;
bit control;
char kar_say=1;
sbit LCD_RS at RB2_bit;
sbit LCD_EN at RB3_bit;
Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
sbit LCD_D4 at RB4_bit;
sbit LCD_D5 at RB5_bit;
sbit LCD_D6 at RB6_bit;
sbit LCD_D7 at RB7_bit;
sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
**************************************************************************
***/
/
**************************************************************************
***/
void ayarlar(){
PORTB=0;
TRISB=0x00;
//seri port
INTCON.GIE = 1;
INTCON.PEIE = 1;
PIE1.RCIE = 1; //enable interrupt.
Uart1_Init(2400);
Delay_ms(1000);
//
Lcd_Init();
// Lcd_Init PORTB LCD için hazırlandı
LCD_Cmd(_LCD_BLINK_CURSOR_ON);
// LCD kursör yanıp sönecek
LCD_Cmd(_LCD_CLEAR);
// LCD de rastgele karekter oluşmaması için
silindi
}
void yaz(char a)
{
UART1_Write(a);
while (!UART1_Tx_Idle())
{}
}
void interrupt()
{
veri=UART1_READ();
control=1;
PIR1.RCIF=0;
GIE_bit=1;
}
/
**************************************************************************
***/
Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
void main() {
ayarlar();
text1="
MERHABA ";
for(i=0; i<23; i++)
{
text1++;
Lcd_out(1,1,text1);
delay_ms(20);
}
LCD_Cmd(_LCD_CLEAR);
delay_ms(50);
while (1)
{
if (control==1)
{
if (kar_say==17)
{
Lcd_Cmd(_LCD_SECOND_ROW);
}
if (kar_say==33)
{
//Lcd_Cmd(_LCD_RETURN_HOME);
Lcd_Cmd(_LCD_CLEAR);
kar_say=0;
}
Lcd_Chr_CP(veri);
control=0;
kar_say++;
}
}
}
Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
Şekil 3. VSPE ekranı
Şekil 4. VSPE, port kurma ekranı
Abant İzzet Baysal Üniversitesi
Elek.-Elekt. Müh. Bölümü
Mikroişlemciler Laboratuvarı II
Şekil 5. Terminal ayar ekranı
Deney
1. PIC'in, terminal programından gelen verilere aşağıdaki tabloya göre karşılık vermesini
sağlayın.
Alınan
Gönderilen
“A”
1
“B”
2
“C”
3
“X”
“Alınan: X”
X: “A”, “B” ve “C” dışında alınan herhangi bir karakter.
Download

4. deney föyü - Alper BAYRAK - Abant İzzet Baysal Üniversitesi