Deney-9

Transkript

Deney-9
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
DENEY 5
Deney 5
LCD Göstergeli Saat Tasarımı
Deneyin Amacı


LCD Göstergelerin çalıĢma prensiplerinin öğrenilmesi
Gerçek zaman saati, seri programlama ara birimi ve LCD sürme yetenekleri ile proje
geliĢtirme yetisinin kazandırılması
Deney Öncesi Yapılması Gerekenler
1. LCD göstergelerin çalıĢma ilkeleri araĢtırılmalıdır.
2. HY1602 tipinde gösterge katalog bilgileri incelenmelidir.
Gereken Malzemeler
1.
2.
3.
4.
CSM-12C32 Deney Kiti
C.A.D.E.T.
Ara bağlantı kablosu
1 x HY-1602 LCD Gösterge
Referans Belgeler
[R1]
[R2]
[R3]
[R4]
MC9S12C Family Datasheet
CSM12C32 Bağlantı ġeması (CSM12C32_SCH_B.pdf)
HY-1602 LCD Datasheet
SPLC780A Controller Datasheet
Notlar
C.A.D.E.T. ve/veya CSM-12C32 eğitim kitinde herhangi bir bağlantı yapmadan önce mutlaka
elektrik gücünü kapatınız. Kit üzerinden aktarma kablosu ile C.A.D.E.T. üzerine aldığınız
bacak bağlantılarından emin olmak için deney masalarındaki ölçü cihazlarını (multimeter)
kullanabilirsiniz. Ölçü cihazını kısa devre kontrol kipinde açtıkan sonra kit üzerindeki hangi
bacağın, C.A.D.E.T. üzerinde hangi bacağa karĢılık geldiğini kontrol ediniz. C.A.D.E.T. bağlantı
noktarından ölçüm almak için ölçüm cihazının probunu bağlantı noktalarına sokmayınız.
Bunun yerine ilgili bağlantı noktasına bir sokunuz ve probu bu tele bağlayınız.
LCD göstergeler çok hassas cihazlardır. Yanlış bağlantı
kurulması durumda kolayca bozulmaktadır. Yapmış
olduğunuz bağlantıları MUTLAKA en ince ayrıntısına kadar
kontrol ediniz. Yanlış bağlantılar sonucu doğabilecek
hasarlardan tüm grup olarak sorumlu olacaksınız.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 1
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
DENEY 5
Deney İçeriği
Bu deneyde, seri iletiĢim ile ayarlanabilen ve sorgulanabilen bir elektronik saat
gerçeklenecektir. Gerçek zaman saati kullanılarak saniye hassasiyetinde zaman ölçümü
yapılacaktır. Geçerli tarih ve saat, LCD göstergede iki satırda aĢağıdaki gibi gösterilecektir.
ġekil 1 – Saatin genel görünüĢü
Deneyde kullanılan HY-1602 tipi göstergeler HD44780 uyumlu 2x16 (2 satır x 16 karakter)
arka aydınlatmalı (backlight) göstergelerdir. Bu tip göstergelerin bacak bağlantıları aĢağıda
verilmiĢtir:
Pin
Sembol/AlternatifSembol
Tipik Değer
1
Vss
-
2
3
4
5
6
7
8
9
10
11
12
13
14
Vdd/Vcc
Vee/Vo
RS
R/W
E
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
0/1
0/1
1, 1-->0
0/1
0/1
0/1
0/1
0/1
0/1
0/1
0/1
Görevi
Power supply (GND)
Power supply (+5V)
Contrast adjust
0 = Instruction input / 1 = Data input
0 = Write to LCD module / 1 = Read from LCD module
Enable signal
Data pin 0
Data pin 1
Data pin 2
Data pin 3
Data pin 4
Data pin 5
Data pin 6
Data pin 7
Tablo 1 – Gösterge bacak bağlantılarının açıklamaları
Bunların haricindeki 15 (LEDA+) ve 16 (LEDK-) numaralı bacaklar, arka aydınlatma için
kullanılmaktadır.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 2
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
DENEY 5
DĠKKAT 1 : LCD göstergenin giriĢlerin numaralandırılması ARDIġIL DEĞĠLDĠR. Sıralama Ģu
Ģekildedir:
16 – 15 – 1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – 11 – 12 – 13 – 14
ġekil 2 – LCD göstergenin arka yüzü
Göstergenin çalıĢması için dıĢarıdan çeĢitli komutlarla programlanması gerekmektedir.
Komutlarla ilgili özet bir tbalo diğer sayfada verilmiĢtir. Tablodan da anlaĢılabileceği gibi
komutların gösterge tarafından anlaĢılabilmesi için belirli bir süre geçmelidir. Bunun için
LCD’ye gönderilen her komuttan sonra bir miktar bekleme yapan bir döngü alt programına
gidilmelidir:
delay
delayLoop
LDY #$01000
JSR delay2
DEY
BNE delayLoop
RTS
Bir diğer seçenek de LCD göstergenin MEġGUL (BUSY) bayrağını okumak ve buna göre ilgili
komutun bitlerini çıkıĢta bekletmektir.
LCD gösterge, veri hattındaki komutları E izin giriĢinin düĢen kenarında (1->0 geçiĢinde)
değerlendirir. Bu yüzden her komut gönderildiğinde aĢağıdaki iĢlemler yapılmalıdır:
1.
2.
3.
4.
5.
E->1 yap
Veri yoluna komut kodunu yerleĢtir
Bekleme alt programını çağır
E->0 yap
Bekleme alt programını çağır
Bu komutların ayrıntıları için lütfen SPLC780A.pdf isimli kaynağa baĢvurunuz.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 3
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
Instruction
Code
DB5 DB4
0
0
0
0
RS
0
0
R/W
0
0
DB7
0
0
DB6
0
0
DB3
0
0
DB2
0
0
DB1
0
1
DB0
1
*
mode
0
0
0
0
0
0
0
1
I/D
S
Display On/Off
control
0
0
0
0
0
0
1
D
C
B
Cursor/display
shift
0
0
0
0
0
1
S/C
R/L
*
*
Function set
0
0
0
0
1
DL
N
F
*
*
Set
CGRAM
address
Set
DDRAM
address
Read
busyflag
and
address
counter
0
0
0
1
0
0
1
DDRAM address
0
1
BF
CGRAM / DDRAM address
Write
CGRAM
DDRAM
Read
CGRAM
DDRAM
to
or
1
0
from
or
1
1
Clear display
Cursor home
Entry
set
CGRAM address
DENEY 5
Description
Execution
time**
Clears display and returns cursor to the home position (address 0).
Returns cursor to home position (address 0). Also returns display being shifted to the
original position. DDRAM contents remains unchanged.
Sets cursor move direction (I/D), specifies to shift the display (S). These operations are
performed during data read/write. I/D = 0 --> cursor is in decrement position. I/D = 1 -->
cursor is in increment position. S = 0 --> Shift is invisible. S = 1 --> Shift is visible
Sets On/Off of all display (D), cursor On/Off (C) and blink of cursor position character (B).
D = 0 --> Display off. D = 1 --> Displan on. C = 0 --> Cursor off. C = 1 --> Cursor on. B = 0
--> Cursor blink off. B = 1 --> Cursor blink on.
Sets cursor-move or display-shift (S/C), shift direction (R/L). DDRAM contents remains
unchanged. S/C = 0 --> Move cursor. S/C = 1 --> Shift display. R/L = 0 --> Shift left. R/L =
1 --> Shift right
Sets interface data length (DL), number of display line (N) and character font(F). DL = 0 -> 4 bit interface. DL = 1 --> 8 bit interface. N = 0 --> 1/8 or 1/11 Duty (1 line). N = 1 -->
1/16 Duty (2 lines). F = 0 --> 5x7 dots. F = 1 --> 5x10 dots.
Sets the CGRAM address. CGRAM data is sent and received after this setting.
1.64mS
1.64mS
Sets the DDRAM address. DDRAM data is sent and received after this setting.
40uS
40uS
40uS
40uS
40uS
40uS
write data
Reads Busy-flag (BF) indicating internal operation is being performed and reads CGRAM
or DDRAM address counter contents (depending on previous instruction). I used some
delay functions in my code which are ThreadSleep if you don't want to use these you can
check the Busy Flag and make your LCD speedy. BF = 0 --> Can accept instruction. BF =
1 --> Internal operation in progress no additional operation can be accepted.
Writes data to CGRAM or DDRAM.
40uS
read data
Reads data from CGRAM or DDRAM.
40uS
Tablo 2 – Gösterge komutları özet tablosu
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 4
0uS
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
DENEY 5
LCD ile Kit Bağlantısı
Deneye baĢlamadan önce LCD gösterge ile deney kitinin çıkıĢ portları arasında uygun
bağlantılar yapılmalıdır. LCD göstergenin veri yolu (DB7-DB0), kitin T PĠAsına (PT7-PT0), LCD
göstergenin izin giriĢi E, kitin M PĠAsının 0. bitine (PM0), LCD göstergenin kütük seçicisi RS,
kitin M PĠAsının 1. bitine (PM1) bağlanmalıdır.
Besleme gerilimlerinin tamamı CADET üzerinden kullanılacaktır.
ġekil 3 – Gösterge – Deney kiti bağlantı Ģeması
DĠKKAT : Vo giriĢini kesinlikle +5V’a BAĞLAMAYINIZ. Bunun yerine toprağa (0 V) bağlayınız.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 5
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
DENEY 5
Deneyde Yapılacaklar
Bölüm 1
Yalın Saat Yazılımı
Deneyin ilk adımı, yalın saatin gerçekleĢtirilmesidir. Yalın saat, gerçek zaman saati
kullanılmadan, yaklaĢık 1 saniye süren bir döngü ile gerçekleĢtirilecektir. Ayrıca tarih ve saat
alanlarının ilk değerleri değiĢtirilemeyecektir, yani seri iletiĢim kullanılmayacaktır.
Programınızın ana çatısı, aĢağıdaki gibi olabilir:
; tarih/saat bilgileri BCD tipinde saklanabilir
SANIYE
DC.B $10
DAKIKA
DC.B $58
SAAT
DC.B $23
GUN
DC.B $30
AY
DC.B $12
YIL
DC.B $7
anaDongu
…
JSR
JSR
JSR
JSR
BRA
…
ilkIslemler
birSaniyeGecik
birSaniyeArttir
goster
anaDongu
NOT : Deneyi gerçeklerken her ay için gün sayısını 30 olarak kabul edebilirsiniz.
Bölüm 2
Gerçek Saat Yazılımı
Bir önceki bölümde yaklaĢık 1 saniyelik bir döngü ile gerçeklediğiniz süre ölçme kısmını
gerçek zaman saatinden gelen kesmelerle çalıĢacak Ģekilde programınızı değiĢtiriniz.
ĠlkiĢlemler adımında gerçek zaman saatinin koĢullamasını da eklemeyi unutmayınız.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 6
DENEY 5
Mikrobilgisayar Laboratuvarı CSM-12C32 Deneyleri
Bölüm 3
Seri Haberleşme Arayüzü
Bu saatin programlanması için seri iletiĢim arabirimi üzerinden aĢağıdaki biçimde $00 ile
baĢlayan bir ayar verisi alınması gereklidir.
$00
1
sekizli
SANĠYE
DAKĠKA
(tamsayı) (tamsayı)
1
sekizli
1
sekizli
SAAT
GÜN
AY
YIL
(tamsayı) (tamsayı) (tamsayı) (tamsayı)
1
sekizli
1
sekizli
1
sekizli
1
sekizli
$0D
1
sekizli
Tablo 3 –Tarih/saat ayarlama paketi biçimi
Seri iletiĢim, 9600 bit/saniye hızda aktarılan 8 bitlik veriler ile tek eĢlik ve 1 dur biti ile
sağlanacaktır.
Seri iletiĢim ile aynı zamanda sistemde geçerli olan saat de sorgulanabilecektir. Sorgulama
için deney kitine $01 $0D sekizlileri gönderilmelidir. Deney kitinden bilgisayar dönecek cevap
paketinin biçimi ise aĢağıdaki gibi olacaktır:
$01
1
sekizli
SANĠYE
DAKĠKA
(tamsayı) (tamsayı)
1
sekizli
1
sekizli
SAAT
GÜN
AY
YIL
(tamsayı) (tamsayı) (tamsayı) (tamsayı)
1
sekizli
1
sekizli
1
sekizli
1
sekizli
$0D
1
sekizli
Tablo 4 – Sorgulama cevabı paket biçimi
Programınızın ana döngüsünde, seri haberleĢme kanalından bir veri gelip gelmediğini kontrol
ediniz. Tarih/saat ayarlama verisi seri iletiĢim arabiriminden okunarak değiĢken içerikleri
sırayla güncellenecek ve sayma kaldığı yerden devam edecektir. Sorgulama verisi gelmiĢse,
güncel değiĢkten içerikleri seri iletiĢim arabirimi üzerinden bilgisayara gönderilecektir.
ĠlkiĢlemler adımında seri iletiĢim arabirimini uygun Ģekilde koĢullamayı unutmayınız.
Raporda İstenenler



Gerçeklediğiniz yazılımlarının blok diyagramlarını ve akıĢ Ģemalarını veriniz.
Aya göre ayın gün sayısını döndüren bir altprogram yazınız.
Yukarıdaki altprogramı kullanarak programınızı doğru gün sayısında (artık yıllar dahil)
güncelleyiniz.
Son Değişiklik : 11.12.2007, Hazırlayan:Dr.A. Cüneyd TANTUĞ
Sayfa 7

Benzer belgeler

Vesbo

Vesbo 121.1G.604.AA0 121.1G.604.BA0 121.1G.604.BB0 121.1G.604.CA0 121.1G.604.CB0 121.1G.604.CC0 **221.1G.504.DA0 121.1G.604.DB0 121.1G.604.DC0 121.1G.604.DD0 **221.1G.504.EA0 **221.1G.504.EB0 121.1G.604....

Detaylı