Professional Documents
Culture Documents
Dieu Khien He Thong Co Dien Tu Dung VDK PDF
Dieu Khien He Thong Co Dien Tu Dung VDK PDF
GIO TRNH
IU KHIN H THNG C IN T
S DNG VI IU KHIN
(Dng cho trnh Cao ng)
LI GII THIU
Gio trnh c nhm bin son t u da theo chng trnh khung v mn
hc iu khin h thng c in t s dng Vi iu khin ca khoa in
in t. Vi iu khin c s dng trong ti liu ny l h ATMEGA32 ca
hng ATMEL. y l mt trong nhng vi iu khin mnh v c s dng
rng ri hin nay.
MC LC
MC TRANG
Li gii thiu........................................................................................ 1
Mc lc ................................................................................................. 2
Bi m u: Khi qut chung........................................................................ 3
1. S tng qut h thng c in t
2. Cu trc phn cng
Bi 1: Ngn ng C cho AVR ......................................................................... 21
1. Gii thiu phn mm CodeVisionAVR
2. Ngn ng C cho Vi iu Khin AVR
Bi 2: Lp trnh v m phng mt s chng trnh ng dng ................. 41
1. Lp trnh giao tip vi 8 LED n.
2. Lp trnh giao tip vi 2 LED 7 on.
3. Lp trnh giao tip vi ma trn phm bm
4. Lp trnh giao tip vi LCD
5. Lp trnh giao tip vi ng c bc
6. Lp trnh giao tip iu khin van t, xi lanh..
7. Hng dn s dng phn mn m phng Proteus
8. Hng dn cch np chng trnh cho vi iu khin.
Bi 3: Th nghim v vn hnh h thng c in t ................................. 84
1. Lp rp mch iu khin
2. Lp cm bin, nt n v phn t chp hnh vi Port I/O
3. Chy th v sa li
Ti liu tham kho ........................................................................................ 113
3
Bi m u
KHI QUT CHUNG
Mc tiu:
- Trnh by ng s khi chc nng ca h thng c in t;
- Phn tch c cu trc bn trong ca vi iu khin.
- c ng tn tng chn ca vi mch.
bit, cho php ni hu ht cc ngoi vi vi tp thanh ghi. Bus d liu dng cho b
nh chng trnh c rng 16 bit v ch ni vi tp thanh ghi lnh.
B nh chng trnh l loi b nh flash. Dung lng chnh xc ca b nh
ny c s thay i khc nhau gia cc b vi x l cng h. B nh chng trnh
gm 1 phn l Application Flash Section (dng cho chng trnh ng dng) v
phn Boot Flash Section (phn khi ng). Boot section s c kho st
trong cc phn sau, trong bi ny khi ni v b nh chng trnh, chng ta t
hiu l Application section.
Hnh 3. Bn b nh ca AVR
Phn 2: phn ny nm ngay sau Register File, bao gm 64 thanh ghi
c gi l 64 thanh ghi nhp/xut (64 I/O register) hay cn gi l
vng nh I/O (I/O Memory). Vng nh I/O l ca ng giao tip gia CPU
v thit b ngoi vi. Tt c cc thanh ghi iu khin, trng thica thit
b ngoi vi u nm y. Vic iu khin cc PORT ca AVR s lin
quan n 3 thanh ghi DDRx, PORTx v PINx, tt c 3 thanh ghi ny u
nm trong vng nh I/O. Xa hn, nu mun truy xut cc thit b ngoi vi
khc nh Timer, chuyn i Analog/Digital, giao tip USARTu thc
hin thng qua vic iu khin cc thanh ghi trong vng nh ny.
9
Ta c th s dng lnh SBI hoc CBIU thay i trng thi cc bit trn thanh
ghi ny tr bit ACI. Bt ny sau khi c c cng s b xa (nu n c set).
Thit lp port u vo cho b so snh tng t: Hai chn PB2 v PB3 ny cn
c thit lp l u vo vo b in tr treo.
lp trnh cho AC ta bt u cc bc sau:
Bc 1: Thit lp cc chn u vo ADC.
Bc 2: Chn cc ch cho AC v nh dng ngt .
Bc 3: Khi ng AC bng cch xa bit ADC.
2.7.Giao din ngoi vi ni tip SPI
SPI l mt giao din thc hin vic trao i d liu gia cc thit b tng thch
vi khung gi liu 8bit v c truyn ng b. SPI cho php truyn d liu ni
tip ng b gia thit b ngoi vi v vi iu khin AVR hoc gia cc vi iu
khin AVR. SPI ca ATMEGA32 c cc c im:
- Ch song cng, truyn d liu ng b 3 dy.
- C th gi vai tr Master hoc Slave.
- Bit MSB hoc LSB c th c truyn trc ty vo ngi lp trnh.
- Bn tc truyn c th lp trnh thng qua hai bit.
- C ngt bo kt thc truyn.
- Vn hnh t trng thi ng (c nh thc t trng thi ng).
iu khin khi giao tip SPI th chng ta c 3 thanh ghi. l 1 thanh ghi
iu khin: SPCR(SPI control Register), mt thanh ghi trang thi SPSR (SPI
Status Register) v thanh ghi d liu SPDR (SPI Data Register).
Thanh ghi SPCR
y l thanh ghi 8 bit c a ch trong cc thanh I/O l 0x0D v trong SRAM l
0x2D. Cc bit trong thanh ghi ny u c th c hoc ghi
- Bit 7-SPIE: SPI interrupt enable. Bit ny cho php ngt ca b truyn tin
SPI (nu ngt ton cc v ngt ny c cho php th nu c SPIF c
bt th ngt s c phc v) .
- Bit 6-SPE: SPI Enable. Nu bit ny c set th khi SPI s c hot
ng v n phi c set trong sut qu trnh SPI hot ng.
- Bit 5-DORD: Data order. Khi m DORD c set th LSB ca byte d
liu s c truyn trc v ngc li.
- Bit 4-MSTR: Master/Slave select. y l bit dng la chn ch
master hay slave. Nu bit ny c set th b SPI ny c vai tr l Master
v ngc li. Nu nh SS c cu hnh l li vo v c t xung
18
n tc truyn, cho php ngt, cho php hot ng, mc logic trong trang thi
ng v pha kch hot xung nhp.
V d 1:
Thit lp giao din SPI vi vai tr Master tc truyn l Fcl/128 pha kch hot
xung nhp thp khng cho php ngt v cha cho php hot ng.
l c iu trc ht cc bn cn phi thit lp cc chn cho SPI. C th
SCK l chn PB7 l output ng ngha vi DDB7 c set.MISO(PB6) l chn
vo v vy DDB6 xa v kch hot in tr ko th PORTB6 phi c set
ln 1. MOSI(PB5) l chn ra do DDB5 cn phi set ln 1. SS(PB4) y l
chn la chon thit b Slave v vy c nh ngha l chn ra v mc tch cc
thp (xa DDB4 v PORTB4).
on chng trnh nh sau:
sbi 0x17,7 ;set bit DDBR7 - t SCK l chn ra.
cbi 0x17,6 ;xa bit DDBR6-t PB6 l cng vo.
sbi 0x18,6 ;set bit PORTB6-Kch hot in tr ko.
sbi 0x17,5 ;t PB5 l chn ra.sbi 0x17,4cbi 0x18,4
OUT 0x0d,0b00010111
thit lp cho n l Slave th hon ton tng t.
Thanh ghi SPSR
y l thanh ghi 8 bit (c a ch 0x0e/0x2e) lu gi trng thi ca b truyn
nhn SPI. Nhng n ch c hai bt c nh ngha c kh nng c v ghi. Cc
bit cn li khng c nh ngha v khi c chng th c gi tr zero.
- Bit 7 - SPIF (SPI Interrupt Flag) Khi truyn xong mt byte d liu th bit
ny c set v mt ngt c to ra. Nu bit cho php ngt SPIE trong
thanh ghi SPCR c set v ngt ton cc c cho php th ngt c
thi hnh. Nu khng n s b b qua. Khi m chn ss ca Master c
nh ngha l cng vo li c thit lp mc thp th c ny cng c
set. N c xa bi phn cng hi ngt c phc v.
- Bit 6 - WCOL (Write Collision Flag) C bo xung t khi ghi. C ny
c set ln 1 nu nh d liu c ghi ln thanh ghi d liu SPI khi
ang din ra mt cuc truyn. V n c xa cng vi c SPIF khi c
thanh ghi trng thi v truy nhp vo thanh ghi d liu. bt u mt
cuc truyn th cc bn cn cho php b truyn nhn hot ng. Khi
truyn bn ch cn ghi byte d liu cn truyn ln thanh ghi d liu v i
cho ti khi c c SPIF bt ln ri tip tc truyn byte mi. bt u
nhn d liu cng vy. SPI c khi ng, ch khi no c SPIF bt
ln. y l s ghp ni gia hai b SPI song cng (nh ca 2 vi iu
20
Bi 1
NGN NG C CHO AVR
Mc tiu:
- Phn tch, gii thch c cc chng trnh vit bng C cho AVR
- ng dng cc tp lnh vo gii quyt cc bi ton thc t t ra
- C thc t gic, tch cc trong hc tp.
Ta c hnh sau:
25
Bc tip theo chng ta to 1 file.c bng cch vo File / New v chn Source.
Mn hnh s ra nh sau:
Sau n Open:
Chn OK, sau n Shiflt+F9 bin dch chng trnh mn hnh s hin ra:
29
Chng trnh s c cc tab Chip, Pports, Timers Tu theo tng ng dng khc
nhau m s c nhng la chn ch tng tab khc nhau, v d ta chn chp l
ATMGA32, Clock 32MHz, Portb tt c l g ra chng ta s lm nh sau: tab
chip chn chp ATMEGA32, Clock l 32MHz. Tab Ports chn Port B tt c l
u ra:
30
Sau lu project :
Lu file .C:
31
Lu file.cwp:
32
Sau khi hon thnh cc bc trn chng trnh s to ra mt form chng trnh
t ch hot ng cho cc ngoi vi c trn chip. Cng vic cn li l vit
chng trnh tu theo thut ton v yu cu cng ngh.
Sau khi lp trnh song chng ta n F9 bin dch th hoc n Shift +F9 bin
dch chng trnh.
2. Ngn ng C cho Vi iu Khin AVR
2.1. Gii thiu
Ngn ng lp trnh thng chia lm 2 loi: Ngn ng bc thp (Assembler) v
Ngn ng bc cao (Pascal, Basic, C,). Ngn ng bc cao l cc ngn ng gn
vi ngn ng con ngi, do vic lp trnh bng cc ngn ng ny tr nn d
dng v n gin hn.
Khi s dng ngn ng C ngi lp trnh khng cn hiu su sc v cu trc ca
b vi iu khin. C ngha l vi mt ngi cha quen vi mt vi iu khin
cho trc s xy dng c chng trnh mt cch nhanh chng hn, do khng
phi mt thi gian tm hiu kin trc ca vi iu khin . V vic s dng li
cc chng trnh xy dng trc cng d dng hn, c th s dng ton
b hoc sa cha mt phn.
2.2. Cc kiu d liu c bn
Kiu d liu cho bit phm vi m 1 bin s dng trong chng trnh c th c.
Bin l ni dng cha s liu khi lp trnh.
Kiu S bit Khong gi tr
Char 8 -128 +127
Unsigned char 8 0 255
Int 16 -32768 - +32767
Unsigned int 16 0 - 65535
Long 32 -2147483648 - +2147483647
Unsigned long 32 0 4294697295
Bit 1 0-1
* Khai bo bin:
- C php: Kiu_d_liu Tn_bin;
V d:
Unsigned char x;
- Khi khai bo bin c th gn lun cho bin gi tr ban u.
33
V d:
Thay v: unsigned char x;
x = 0;
Ta ch cn: unsigned char x = 0;
- C th khai bo nhiu bin cng mt kiu mt lc.
V d: unsigned int x,y,z,t;
2.3. Mng
Mng l mt tp hp nhiu phn t cng mt kiu gi tr v chung mt tn.
Cc phn t ca mng phn bit vi nhau bi ch s hay s th t ca phn t
trong dy phn t. Mi phn t c vai tr nh mt bin v lu tr c mt gi
tr c lp vi cc phn t khc ca mng.
Mng c th l mng mt chiu hoc mng nhiu chiu
Khai bo: Tn_kiu Vng_nh Tn_mng[s_phn_t_mng];
Khi b trng s phn t mng ta s c mng c s phn t bt k.
V d:
Unsigned int data a[5],b[2] [3];
Vi khai bo trn ta s c: mng a l mng mt chiu 5 phn t. Mng b l mng
hai chiu, tng s phn t l 6.
Ch s ca mng bt u t s 0. Mng c bao nhiu chiu phi cung cp y
by nhiu ch s
V du: phn t mng b[0] [1] l ng
Khi vit b[0] l sai
2.4. Cc php ton trong ngn ng C
a. Php gn
Php gn k hiu: =.
C php: Bin_1 = Bin_2;
Trong Bin_2 c th l gi tr xc nh cng c th l bin.
V d: x = 3;
x = x + 1;
b. Php ton s hc
- Php tr x = a-b
34
e. Php ton kt hp
- Cu trc: if(dieu_kien)
{
// on chng trnh 1
}
else
{
// on chng trnh 2
}
Gii thch: nu dieu_kien ng th x l on chng trnh 1 bn trong cn
sai th x l on chng trnh 2
Cu lnh la chn:
Cu trc: switch (bien)
{
case gia_tri_1: {//cc cu lnh break;}
case gia_tri_2: {//cc cu lnh break;}
case gia_tri_3: {//cc cu lnh break;}
...
case gia_tri_n: {//cc cu lnh break;}
}
Gii thch: nu "bien" c gia_tri_1 th thc hin cc cu lnh tng ng ri sau
thot khi cu trc nh cu lnh break.
Bin c gia_tri_2 th thc hin cu lnh tng ng ri thot.
.
Bin c gia_tri_n th thc hin cc cu lnh tng ng ri thot.
Vng lp xc nh:
Cu trc: for(n=m;n<l;n++)
{
// cc cu lnh x l
}
Gii thch:
m, l l gi tr (m < l) , cn n l bin.
thc hin lp cc cu lnh (l-m) ln.
37
{
i=0;
While(so!=0)
{
np[i]=so%2; // s d ct vo mng np
so=so/2; //ly thng s
i++;
}
}
Vng lp khng xc nh do while:
Cu trc: do
{
// cc cu lnh
} while(dieu_kien);
Gii thch: thc hin lp cc cu lnh sau kim tra iu kin nu ng, nu
sai th thot khi vng lp.
2.6. Chng trnh con
Chng trnh con hay gi l hm (function) l on chng trnh c chc nng
nht nh c tch ra ring. Khi mun s dng hm, ngi s dng ch cn gi
tn hm. Nu hm yu cu cc tham s th ta phi cung cp y . Ch gi tr
tr v ca hm.
Vic s dng chng trnh con trong lp trnh s lm cho chng trnh chnh tr
nn sng sa v d hiu.
2.7. Cu trc chng trnh C
1. Cu trc chng trnh
* Cu trc
1. Khai bo ch th tin x l
2. Khai bo cc bin ton cc
3. Khai bo nguyn mu cc hm
4. Xy dng cc hm v chng trnh chnh
* V d:
#include<regx51.h>
Khai bo ch th tin x l
#include<string.h>
#define Led1 P1_0
39
Bi 2
LP TRNH V M PHNG MT S CHNG TRNH NG DNG
Mc tiu:
- Phn tch c yu cu ca thut ton t ra.
- Vit ng chng trnh theo yu cu thut ton
- M phng c mch in t bng phn mm Proteus v sa li chng trnh.
- Sng to trong hc tp
DDRA.2=1;
PORTA.2=1; //tt n nn mn hnh LCD
output_A(0xff); //tt ma trn LED
output_K(0xffff);
42
write8255(0X80,'W',PPI_1);
while(1)
{
//led xanh
write8255(0Xff,'A',PPI_1); //cho led xanh sng
write8255(0X00,'B',PPI_1); //led do tat
delay_ms(500);
write8255(0X00,'A',PPI_1); //tat led xanh
delay_ms(500);
// led
write8255(0Xff,'B',PPI_1);
write8255(0X00,'A',PPI_1);
delay_ms(500);
write8255(0X00,'B',PPI_1);
delay_ms(500);
}
}
................................................................................................................................
................................................................................................................................
b. Thay i chng trnh Led thay i mu m khng c khong thi gian
tt?
................................................................................................................................
................................................................................................................................
................................................................................................................................
c. Cho bit Led xanh ni n Port no ca IC 8225 th my?
................................................................................................................................
d. Cho bit Led ni n Port no ca IC 8225 th my?
................................................................................................................................
1.2. Bi thc hnh 2
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <matrix.h>
unsigned char a;
void insys(void);
//---------------------------------------------------
void main(void)
{
insys();
DDRA.2=1;
PORTA.2=1; //tat den nen man hinh LCD
write8255(0X80,'W',PPI_1);
while(1)
{
44
//led G
a=0x01;
write8255(0X00,'B',PPI_1); //led do tat
while(a!=0)
{
write8255(a,'A',PPI_1);
delay_ms(500);
a=a<<1;
}
a=0x80;
write8255(0X00,'A',PPI_1); //led xanh tat
while(a!=0)
{
write8255(a,'B',PPI_1);
delay_ms(500);
a=a>>1;
}
}
}
//-----khoi tao cac port
void insys(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
}
Cu hi Bi tp
45
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
2. Lp trnh giao tip vi 2 LED 7 on
Module ny gii thiu cch iu khin Led 7 on, c th l:
+ Gii thiu cch to m 7 on cho Led
+ Gii thiu phng php qut Led
Do y khng s dng IC gii m LED 7 on, nn khi ta mun Led sng 1
con s no th ta phi xut 1 gi tr tng ng iu khin cc on Led sng.
Ta gi gi tr l m 7 on ca s .
void initport();
void hienthi();
void main()
{
unsigned int i,t;
initport();
output_A(0xff); //tt ma trn tit kim in
output_K(0xffff);
PORTA.2=1; //tt n nn mn hnh LCD
while(1)
{
48
hienthi();
}
}
void hienthi()
{
write8255(0x80,'W',2);
//xut ln lt tng s ra tng led trong 1 khong thi gian
write8255(0x0e,'A',2); write8255(ma7doan[0],'B',2); delay_us(1000);
write8255(0x0d,'A',2); write8255(ma7doan[1],'B',2); delay_us(1000);
write8255(0x0b,'A',2); write8255(ma7doan[2],'B',2); delay_us(1000);
write8255(0x07,'A',2); write8255(ma7doan[3],'B',2); delay_us(1000);
}
void initport()
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
}
Cu hi Bi tp
a. Lu khong thi gian delay 1000us gia cc Led trong chng trnh hin th
l cn thit v khng c php thay i. Hy th cc gi tr 100ms, 50ms,
10ms, 1ms thy r phng php qut. Ghi ch
................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
b. Ti sao li xut cc gi tr 0x0e, 0x0d, 0x0b, 0x07 ra portA trong chng trnh
con hienthi()? Hy i cc gi tr ny sang s nh phn tm hiu!
49
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
c. Hy thay i chng trnh Led hin th cc s nm trong 1 mng cc s
cho trc!
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
2.2. Bi thc hnh 2
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : m hin th t 0000 - 9999
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <matrix.h>
void initport();
void giaima(unsigned int dat);
void hienthi();
void main()
{
unsigned int i,t;
50
initport();
i=0000;
while(1)
{
giaima(i);
for(t=0;t<100;t++) hienthi(); //chng trnh con hienthi() c
// gi 100 ln qut v delay
if(i<9999) i++;
else i= 0;
}
}
void hienthi()
{
write8255(0x80,'W',2);
//xut ln lt tng s ra tng led trong 1 khong thi gian
write8255(0x0e,'A',2); write8255(led[3],'B',2); delay_us(1000);
write8255(0x0d,'A',2); write8255(led[2],'B',2); delay_us(1000);
write8255(0x0b,'A',2); write8255(led[1],'B',2); delay_us(1000);
write8255(0x07,'A',2); write8255(led[0],'B',2); delay_us(1000);
}
void giaima(unsigned int dat)
{
if(dat>9999) {led[0] = led[1] = led[2] = led[3] = '-';}
else
{
led[0] = ma7doan[dat/1000]; //nghn
led[1] = ma7doan[(dat%1000)/100]; //trm
led[2] = ma7doan[((dat%1000)%100)/10]; //chc
51
..........................................................................................................................................
3. Lp trnh giao tip vi ma trn phm bm
3.1. Bi thc hnh 1
begin
St =1?
S St =2?
S St =3?
S St =4?
S
*
Gn St =2 Gn St =3 Gn St =4 Gn St =1
Chn ct 1 Chn ct 2 Chn ct 3 Chn ct 4
c port C (temp) c port C (temp) c port C (temp) c port C (temp)
S Hng 1 = 0? Hng 1 = 0?
S Hng 1 = 0?
S Hng 1 = 0?
M phm = 0 * M phm = 4 * M phm = 8 * M phm = 12 *
* M phm = 1 * M phm = 5 * M phm = 9 * M phm = 13
* M phm = 3 * M phm = 7 * M phm = 11 * M phm = 15
end * * * *
53
unsigned char
ledcode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void insys(void);
void keypress(void)
{
unsigned char temp;
write8255(0X81,'W',PPI_1);
if(st==1) //
{
st=2;
write8255(0b11101111,'C',PPI_1); //ghi m chn ct ra portC
temp = read8255('C',PPI_1); //c li portC
if((temp&0x01)==0) //tm xem phm no c n
{ fkey=1; //nu n phm th hng =0
}
else if((temp&0x02)==0)
{ fkey=2;
}
else if((temp&0x04)==0)
{ fkey=3;
}
else if((temp&0x08)==0)
{ fkey=4;
}
}
else if(st==2)
{
st=3;
write8255(0b11011111,'C',PPI_1);
temp = read8255('C',PPI_1);
if((temp&0x01)==0)
{ fkey=5;
55
}
else if((temp&0x02)==0)
{ fkey=6;
}
else if((temp&0x04)==0)
{ fkey=7;
}
else if((temp&0x08)==0)
{ fkey=8;
}
}
else if(st==3)
{
st=4;
write8255(0b10111111,'C',PPI_1);
temp = read8255('C',PPI_1);
if((temp&0x01)==0)
{ fkey=9;
}
else if((temp&0x02)==0)
{ fkey=10;
}
else if((temp&0x04)==0)
{ fkey=11;
}
else if((temp&0x08)==0)
{ fkey=12;
}
}
else if(st==4)
{
st=1;
write8255(0b01111111,'C',PPI_1);
56
temp = read8255('C',PPI_1);
if((temp&0x01)==0)
{ fkey=13;
}
else if((temp&0x02)==0)
{ fkey=14;
}
else if((temp&0x04)==0)
{ fkey=15;
}
else if((temp&0x08)==0)
{ fkey=16;
}
}
}
//---------------------------------------------------
void main(void)
{
unsigned char c,dv;
insys();
output_A(0xff);
output_K(0xffff);
PORTA.2=1;
while(1)
{
keypress(); //gi chng trnh qut phm
c=fkey/10;
dv=fkey%10;
write8255(0X80,'W',PPI_2); // PA=PB=PC=output
write8255(ledcode[dv],'B',PPI_2); //m led
write8255(0b11111110,'A',PPI_2); //chn led
delay_us(2000);
57
write8255(ledcode[c],'B',PPI_2);
write8255(0b11111101,'A',PPI_2);
delay_us(2000);
}
}
//------------------------------------------------------
void insys(void)
{
fkey=0; //ban u hin th s 0
st=1; //bin thng bo ang qut ct no
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
}
Cu hi Bi tp
a. Ghi cc m chn ct ra y.
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
b. Ghi ch thch v chng trnh y
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
58
...........................................................................................................................................
...........................................................................................................................................
3.2. Bi thc hnh 2
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : c bn phm ma trn v hin th ln 2 LED 7 on
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <matrix.h>
write8255(0X81,'W',PPI_1);
for(i=0;i<4;i++)
{
write8255(~quet,'C',PPI_1);
temp = read8255('C',PPI_1);
if((temp&0x0f)!=0x0f)
{
delay_ms(20);
if((temp&0x0f)!=0x0f)
{
if((temp&0x0f)==0x0e) mp=0+mh;
if((temp&0x0f)==0x0d) mp=1+mh;
if((temp&0x0f)==0x0b) mp=2+mh;
if((temp&0x0f)==0x07) mp=3+mh;
i=4;
59
do
{
temp = read8255('C',PPI_1);
}
while(temp&0x0f!=0x0f);
}
}
quet=quet<<1; mh=mh+4;
}
return mp;
}
//---------------------------------------------------
void main(void)
{
unsigned char c,dv;
insys();
output_A(0xff);
output_K(0xffff);
PORTA.2=1;
while(1)
{
fkey=keypress(); //gi chng trnh qut phm
if (fkey!=0xff)
{
c=fkey/10;
dv=fkey%10;
}
write8255(0X80,'W',PPI_2); // PA=PB=PC=output
write8255(ledcode[dv],'B',PPI_2); //m led
write8255(0b11111110,'A',PPI_2); //chn led
delay_us(2000);
write8255(ledcode[c],'B',PPI_2);
write8255(0b11111101,'A',PPI_2);
delay_us(2000);
60
}
}
//------------------------------------------------------
void insys(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
}
Cu hi Bi tp
a. Ghi ch thch v chng trnh y
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
b. Khi c phm nhn th bin fkey bng bao nhiu?
.................................................................................................................................
.................................................................................................................................
c. Nu u im ca chng trnh qut phm ny so vi chng trnh trc ?
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
.................................................................................................................................
61
.................................................................................................................................
d. To th vin mykey.h s dng ln sau.
.................................................................................................................................
3.3. Bi thc hnh 3
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : m 00-99 c nt Start v Stop
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <matrix.h>
#include <mykey.h> //s dng thm th vin mi to
void initport();
void giaima(unsigned int dat);
void hienthi();
void main()
{
unsigned int i,t,tt;
initport();
i=0000;
62
tt=0;
while(1)
{
giaima(i);
while (tt==0)
{
if (keypress()==00) tt=1; //nu c phm nhn th mi tip tc
hienthi();
}
for(t=0;t<100;t++)
{
if (keypress()==01) tt=0; //nu nhn phm th stop
hienthi();
}
if(i<9999) i++;
else i= 0;
}
}
void hienthi()
{
write8255(0x80,'W',2);
led[1] = ma7doan[(dat%1000)/100];
led[2] = ma7doan[((dat%1000)%100)/10];
led[3] = ma7doan[((dat%1000)%100)%10];
}
}
void initport()
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
}
Cu hi Bi tp
a. Cho bit phm no l Start v phm no l Stop? Hy thay i cc phm ny
theo thch ca bn!
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
b. Khi nhn nt Stop ti s ang hin th, chng trnh c dng ngay s ang
hin th hay khng? Hy khc phc.
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
c. Bin tt c chc nng g?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
d. Khi bin tt c gi tr 0 th chng trnh lm nhng vic g?
64
...........................................................................................................................................
...........................................................................................................................................
e. Vit chng trnh theo yu cu nh sau:
+ Ban u Led hin th s 00
+ Nhn phm UP ri th: Led tng 1 n v. Gi tr tng ti a l 99
+ Nhn phm DOWN ri th: Led gim 1 n v. Gi tr gim ti thiu l 00
+ Nhn phm AUTO ri th: Led t ng gim t s ang hin th v 00
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
4. Lp trnh giao tip vi LCD
Trong module ny trnh by cch iu khin mn hnh LCD v s dng th vin
vit trong phn trc mylcd.h
4.1. Bi thc hnh 1
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : iu khin LCD hin th 2 dng ch v nhp nhy n nn
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <mylcd.h>
#include <matrix.h>
65
//----------------------------------------------
unsigned char hang1[]={"TRUONG CD NGHE KTCN"};
unsigned char hang2[]={" KHOA DIEN-DIEN TU "};
//---------------------------------------------------
void main(void)
{ unsigned int t;
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
output_A(0xff);
output_K(0xffff);
led_LCD=1; delay_ms(1000);
};
}
Cu hi Bi tp
a. Sa li chng trnh bi tp mu v cho dng ch th 2 nhp nhy (n nn
mn hnh LCD vn sng). Cho bit tng vit chng trnh
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
b. Sa li chng trnh hin th tn v m s sinh vin ca bn
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
4.2. Bi thc hnh 2
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : m 00 - 99 hin th LCD
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <mylcd.h>
#include <matrix.h>
//----------------------------------------------
unsigned char hang1[]={" CHUONG TRINH DEM "};
//---------------------------------------------------
void main(void)
{ unsigned int t;
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
67
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
output_A(0xff);
output_K(0xffff);
for(t=0;hang1[t]!=0;t++)
Write_data_LCD(hang1[t]); //vit ra mn hnh
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
b. Vit chng trnh m gi - pht giy hin th mn hnh LCD
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
c. Ti sao dng lnh Write_command_LCD(0xC7); lun c lp trong vng
lp v tn?
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
d. Tm hiu ngha ca gi tr 0x30 trong lnh hin th trong vng lp?
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
e. Thay gi tr 0x30 bng 0. Nhn xt
..........................................................................................................................................
..........................................................................................................................................
f. B sung th vin mylcd.h bng 1 hm c chc nng nh sau: di chuyn con
tr ca mn hnh LCD i n dng x, ct y
- Tn hm: gotoxy
- Tham s truyn: gi tr dng x v gi tr ct y
- Gi tr tr v: k c
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
69
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
g. B sung th vin mylcd.h bng 1 hm c chc nng nh sau: ghi 1 chui ra
mn hnh LCD
- Tn hm: put_string
- Tham s truyn: a ch chui cn ghi
- Gi tr tr v: k c
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
4.3. Bi thc hnh 3
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : Chy ch trn mn hnh
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <8255.h>
#include <mylcd.h>
#include <matrix.h>
//--20 khong trng trc v sau DONG CHU CHAY---
unsigned char hang1[]={ DONG CHU CHAY };
unsigned char hang2[]={HAY CHU Y!!!}
//---------------------------------------------------
void main(void)
{ unsigned int x,y;
70
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0xF0;
PORTD=0x00;
DDRD=0x00;
output_A(0xff);
output_K(0xffff);
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
b. Hy th vit chng trnh chy ch m khng cn thm d liu khong trng
nh bi mu.
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
..........................................................................................................................................
5. Lp trnh giao tip vi ng c bc (Step motor)
ng c bc c chc nng iu khin cc thit b di chuyn vi khong cch
ngn v d nh iu khin di chuyn u c a. Tu thuc vo cng sut ca
ng c m s dng cc mch giao tip cho ph hp. Thng th cc ng c
bc lun i km vi mch iu khin v ch nhn lnh t vi x l hay vi iu
khin.
Hnh ng c bc
S cun dy trong ng c bc
72
A B A\ B\ Thun Nghch
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1
9 1 0 0 0
10 1 1 0 0
Mt thng s quan trng ca ng c bc l s bc cn quay 1
vng. Thng thng th gi tr l 200 bc, ngha l mi bc gc quay ca
ng c l 1,8 (1,8 x 200 bc = 360 = 1 vng)
Lu : thi gian delay cho mi bc nm trong khong 5ms 50ms. Nhanh hn
th ng c khng p ng c v chm qu th ng c quay git cc
#define CW1 0
#define CW2 1
for(i=0;i<st;i++)
{
Step1=0;Step2=1;Step3=1;Step4=1;delay_ms(T);
Step1=1;Step2=0;Step3=1;Step4=1;delay_ms(T);
Step1=1;Step2=1;Step3=0; Step4=1;delay_ms(T);
Step1=1;Step2=1;Step3=1; Step4=0;delay_ms(T);
}
}
else if(CW==CW2)
{
for(i=0;i<st;i++)
{
Step1=1;Step2=1;Step3=1;Step4=0;delay_ms(T);
Step1=1;Step2=1;Step3=0;Step4=1;delay_ms(T);
Step1=1;Step2=0;Step3=1; Step4=1;delay_ms(T);
Step1=0;Step2=1;Step3=1; Step4=1;delay_ms(T);
}
}
}
Cu hi Bi tp
a. Thay i chng trnh tng tc ng c? Gim tc ng c? Lu
vai tr ca gi tr delay_ms(T).
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
b. Thay i chng trnh ng c quay thun vng ri quay nghch vng
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
c. Vit chng trnh iu khin ng c theo kiu kch 2 cun dy?
...........................................................................................................................................
...........................................................................................................................................
76
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
d. Gii thch vic lm st=step/4?
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
5.2. Bi thc hnh 2
/*****************************************************
Chip : ATmega32
Tn s thch anh : 16 MHz
Chc nng : iu khin ng c bc bng bn phm
*****************************************************/
#include <mega32.h>
#include <delay.h>
#include <matrix.h>
#include <8255.h>
#include <mykey.h>
//----------------------------------------------
#define Step1 PORTD.2 //4 cu?n dy
#define Step2 PORTD.3
#define Step3 PORTD.5
#define Step4 PORTA.0
output_A(0xff);
output_K(0xffff);
//Io_step1=Io_step2=Io_step3=Io_step4=1;
while (1)
{
fkey=keypress(); //c bn phm
if (fkey!=0xff) //nu c phm nhn th tip tc
{
if (fkey==00)
{
write8255(0x80,'W',2);
write8255(0x0e,'A',2); write8255(0xbf,'B',2);
Stepmotor(200,10,CW1);
}
else if (fkey==01)
{
write8255(0x80,'W',2);
write8255(0x07,'A',2); write8255(0xbf,'B',2);
Stepmotor(200,10,CW2);
}
}
};
}
void Stepmotor(unsigned char step, unsigned int T, unsigned char CW)
{
unsigned char i, st;
Io_step1=Io_step2=Io_step3=Io_step4=1;
st=step/4;
if(CW==CW1)
{
for(i=0;i<st;i++)
{
Step1=0;Step2=1;Step3=1;Step4=1;delay_ms(T);
78
Step1=1;Step2=0;Step3=1;Step4=1;delay_ms(T);
Step1=1;Step2=1;Step3=0; Step4=1;delay_ms(T);
Step1=1;Step2=1;Step3=1; Step4=0;delay_ms(T);
}
}
else if(CW==CW2)
{
for(i=0;i<st;i++)
{
Step1=1;Step2=1;Step3=1;Step4=0;delay_ms(T);
Step1=1;Step2=1;Step3=0;Step4=1;delay_ms(T);
Step1=1;Step2=0;Step3=1; Step4=1;delay_ms(T);
Step1=0;Step2=1;Step3=1; Step4=1;delay_ms(T);
}
}
}
Cu hi Bi tp
a. Thay i chng trnh khi ng c ang quay m nhn 1 phm xc nh th
ng c dng quay
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
6. Lp trnh giao tip iu khin van t, xi lanh
Van t v xi lanh l cc thit b chp hnh trong mt h thng c in t. Tuy
nhin, khi m phng hoc thc hnh trn KIT ta c th s dng cc Led ch th
thay th. Trong phn ny, ngi hc hy vn dng cc bi tp lm gii
quyt cc yu cu c a ra. Hy vit cc chng trnh sau:
Bi 1: Hy vit chng trnh iu khin 4 xi-lanh bng 2 nt nhn Start/Stop
(bn phm ma trn). Bt u, cc xi lanh trng thi ng. Khi nhn nt Start,
tun t xi-lanh 1 m, cho n xi-lanh 4 m. Thi gian ch gia cc xi-lanh l 1
giy. Nu nhn nt Stop th tun t t xi-lanh 1 ng trc cho n xi-lanh 4
ng (thi gian ch l 1 giy).
...........................................................................................................................................
...........................................................................................................................................
79
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
Bi 2: Hy vit chng trnh iu khin m sn phm hin th Led 7 on: 2
Led tri dng ch s sn phm, 2 Led phi dng ch s thng. Khi s sn
phm t 20 th s thng tng ln 1. Khi s thng t 50 th h thng reset v gi
tr ban u. Mi khi s sn phm t 20, h thng ng gi hot ng:
Van t 1 ng trong vng 2 giy a thng i ra khi bng chuyn, h
thng tm ngng m
Van t 2 ng trong vng 1 giy, ri n van t 3 ng trong vng 2 giy
ng gi thng.
Van t 4 ng trong vng 1 giy a thng sn phm khc n. H
thng tip tc m sn phm.
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
80
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
...........................................................................................................................................
7. Hng dn s dng phn mm m phng Proteus
Phn ny gii thiu s lc v phn mm m phng Proteus (phin bn ln
ti version 7.10). y l 1 phn mm mnh, tch hp nh gn cho php ta v,
thit k mch nguyn l, thit k mch in. Nhng c l chc nng c s dng
ti nhiu nht l chc nng m phng. N c kh nng m phng cc dng
mch s, mch tng t hoc vi iu khin vi tnh nng tng tc trc quan rt
cao. B th vin ca phn mm ny cho php ta kho st c rt nhiu linh
kin dng o m nh thc trc khi bt tay vo lm mch.
Khi ng phn mm bng cch click chut vo biu tng ISIS Professional
trn mn hnh. Ta c giao din chng trnh nh sau:
81
Th vin m ra nh sau:
Nhn vo hnh con chip trn thanh cng c hoc Tool/Chip Programmer hoc
Shift+F4.
Bi 3
TH NGHIM V VN HNH H THNG C IN T
Mc tiu:
- Lp rp ng mch iu khin.
- Lp t ng v m bo thng s k thut cc cm bin, nt n ca h thng
c in t v kt ni vi cng vo/ra ca b vi iu khin;
- X l c li pht sinh trong h thng.
- Ch ng, sng to v an ton trong qu trnh hc tp.
1. Lp rp mch iu khin
M hnh h thng thang my 4 tng:
Cm bin tng
Nt nhn ln xung mi tng
Led hin th bo tng mi tng v trong thang my
3. Chy th v sa li
Vit chng trnh iu khin thang my hot ng theo cc nguyn l
chung a ra trong phn 1.
Sa cha mch giao tip v chng trnh nu c li
V lu hot ng ca chng trnh iu khin
88
Ph lc
Cc s mch in
a. Mch tng qut
89
b. Cc ng tn hiu t CPU
90
c. Ma trn LED
91
d. Vi mch 8255
92
f. ng c bc
94
g. ng c DC
95
h. Card PT100
96
i. Card ADDA
97
j. Relay
98
Cc th vin cn lu
99
Ni dung th vin
//cc bt iu khin
#define RD_8255 PORTC.4
#define RW_8255 PORTC.5
#define A0 PORTA.3
#define A1 PORTA.4
#define CS_8255_1 PORTC.7
#define CS_8255_2 PORTC.6
#define PPI_1 1
#define PPI_2 2
void write8255(unsigned char data, unsigned char ch, unsigned char csl)
{
// Port B OUPUT
DDRB=0xFF;
// cc chn tn hiu l ng ra
IO_A0 = 1;
IO_A1 = 1;
IO_CS_8255_1 = 1;
IO_CS_8255_2 = 1;
IO_RW_8255 = 1;
102
IO_RD_8255 = 1;
//la chn vi mch 8255
if(csl==PPI_1)
{
CS_8255_1 = 0;
CS_8255_2 = 1;
}
else
{
CS_8255_1 = 1;
CS_8255_2 = 0;
}
RD_8255 = 1;
//la chn Port
switch(ch)
{
case 'A': //PortA
A0 = 0;
A1 = 0;
break;
case 'B': //PortB
A0 = 1;
A1 = 0;
break;
case 'C': //PortC
A0 = 0;
A1 = 1;
break;
case 'W': //control word = thanh ghi dieu khien
A0 = 1;
A1 = 1;
}
PORTB = data; //xuat du lieu
//tao xung ghi
RW_8255 = 0; //delay_us(10);
RW_8255= 1;
if(csl==PPI_1)
{
CS_8255_1 = 0;
CS_8255_2 = 1;
}
else
{
CS_8255_1 = 1;
CS_8255_2 = 0;
}
RW_8255 = 1;
switch(ch)
{
case 'A': //PortA
A0 = 0;
A1 = 0;
break;
case 'B': //PortB
A0 = 1;
A1 = 0;
break;
case 'C': //PortC
A0 = 0;
A1 = 1;
break;
case 'W': //thanh ghi dieu khien
104
A0 = 1;
A1 = 1;
}
//to xung c
RD_8255=0; //delay_us(10);
RD_8255=1;
CS_8255_1 = 1;
CS_8255_2 = 1;
return data; //gi tr tr v
}
b. Th vin iu khin ma trn
Th vin ny (matrix.h) dng iu khin IC cht 74HC595 kt ni n ct v hng
ca ma trn Led. Lu l ma trn 2 mu nn s dng ti 3 vi mch 74HC595 (tham
kho thm phn s mch)
Gii thiu IC 74HC595
Vi mch 74HC595 l vi mch thanh ghi dch 8 bit vi ng ra cht (8 Bit Shift Register
with Output Latch) c chc nng bin d liu ni tip thnh song song.
105
Begin
a 1 bit n SER
To xung dch
Sai
Dch 8
bit?
ng
To xung cht
End
Ni dung th vin
//-------cc bit tn hiu--------
#define DATA PORTD.7 //ng vo
#define CLK PORTD.6 //xung dch
#define STK PORTC.3 //xung cht IC m dng
#define STA PORTC.2 //xung cht IC m ct
{
unsigned char buffer,j;
IO_DATA =1;
IO_CLK =1;
IO_STA =1;
IO_STK =1;
IO_DATA =1;
IO_CLK =1;
IO_STK =1;
IO_STA =1;
buffer=0x0001; //mt n bit
for(i=0;i<16;i++)
{
CLK=0;
if(x&buffer) DATA=1;
else DATA=0;
CLK=1;
108
buffer<<=1;
}
STK=0; //xung cht
delay_us(10);
STK=1;
}
c. Th vin mn hnh LCD
LCD1 LM044L
Th vin ny (mylcd.h) cha cc khai bo chn iu khin mn hnh LCD v 3
chng trnh con iu khin LCD
Gii thiu mn hnh LCD
VDD
VSS
VEE
RW
RS
D0
D1
D2
D3
D4
D5
D6
D7
E
1
2
3
4
5
6
7
8
9
10
11
12
13
14
LCD c rt nhiu dng phn bit theo kch thc t vi k t n hng chc k t, t 1
hng n vi chc hng. V d LCD 162 c ngha l c 2 hng, mi hng c 16 k t.
LCD 204 c ngha l c 4 hng, mi hng c 20 k t.
LCD c nhiu loi v s chn ca chng cng khc nhau nhng c 2 loi ph bin l
loi 14 chn v loi 16 chn, s khc nhau l cc chn ngun cung cp, cn cc chn
iu khin th khng thay i, khi s dng loi LCD no th phi tra datasheet ca
chng bit r cc chn. S chn ca LCD nh bng sau:
5 RW Input = 0: Ghi
= 1: c
6 E Input Cho php
11 D4 I/O D liu
12 D5 I/O D liu
13 D6 I/O D liu
IO_CS_8255_1=1;
IO_CS_8255_2=1;
CS_8255_1=1;
111
CS_8255_2=1;
IO_RS_LCD=1;
IO_RW_LCD=1;
IO_E_LCD =1;
IO_RS_LCD=1;
IO_RW_LCD=1;
IO_E_LCD =1;
DATAOUT = data;
RS_LCD =1; //chon thanh ghi data
RW_LCD =0;
E_LCD=1;
delay_us(100);
E_LCD=0;
delay_ms(1);
}
{
delay_ms(500);
Write_command_LCD(0x38);
delay_ms(10);
Write_command_LCD(0x38);
Write_command_LCD(0x06);
Write_command_LCD(0x0c);
Write_command_LCD(0x01);
delay_ms(100);
}
113
1. ng (b) Ch tch
2. ng (b) Ph ch tch
3. ng (b) Th k
4. ng (b) Thnh vin
5. ng (b) Thnh vin
6. ng (b) Thnh vin
7. ng (b) Thnh vin
8. ng (b) Thnh vin
9. ng (b) Thnh vin