Professional Documents
Culture Documents
Mc lc
Gii thiu kit th nghim BK89IT ...................................................................................... 4
M hnh lp trnh C trong vi iu khin ............................................................................. 5
Bi 1 : Hng dn ci t Keil C v Flash Magic.......................................................... 6
1.1 Ci t Keil C ........................................................................................................... 6
1.2 Ci t Flash Magic ................................................................................................ 11
1.3 Cu hnh cho Flash Magic ...................................................................................... 16
Bi 2 : Truy xut Port I/O............................................................................................. 22
2.1 To project trn Keil C ........................................................................................... 22
2.2 Vit chng trnh n gin ..................................................................................... 32
2.2.1 Kt ni phn cng............................................................................................ 32
2.2.2 Vit chng trnh ............................................................................................. 33
2.2.3 Np chng trnh ............................................................................................. 34
2.2.4 Cc li xy ra khi np chng trnh................................................................. 35
Bi 3 : iu khin n gin Led 7 on....................................................................... 38
3.1 Kt ni phn cng:.................................................................................................. 38
3.2 Vit chng trnh .................................................................................................... 39
3.2.1 Hm init_main()............................................................................................... 39
3.2.2 Hm main() ...................................................................................................... 39
3.3 Mt s li lp trnh quan trng ............................................................................... 41
Bi 4 : Ngt Timer........................................................................................................ 42
4.1 Khai bo ngt timer................................................................................................. 42
4.2 Vit chng trnh .................................................................................................... 43
4.2.1 Hm init_timer1() ............................................................................................ 43
4.2.2 Hm start_timer1()........................................................................................... 43
4.2.3 Hm timer1_isr().............................................................................................. 43
4.2.4 Hm delay_ms(unsigned int duration)............................................................. 44
4.2.5 Hm stop_timer1()........................................................................................... 44
Bi 5 : Dng ngt timer vit ng dng LED RIVER ................................................... 45
5.1 Kt ni phn cng................................................................................................... 45
5.2 Vit chng trnh .................................................................................................... 45
Bi 6 : Chng rung cho phm ....................................................................................... 47
6.1 Nguyn l chng rung............................................................................................. 47
6.2 Kt ni phn cng................................................................................................... 48
6.3 Vit chng trnh .................................................................................................... 49
6.3.1 Hm initKey() .................................................................................................. 49
6.3.2 Hm getKey() .................................................................................................. 49
Bi 7 : Qut led iu khin Led 7 on ........................................................................ 51
7.1 Nguyn l qut led 7 on ...................................................................................... 51
7.2 Kt ni phn cng................................................................................................... 52
7.3 Vit chng trnh .................................................................................................... 52
7.3.1 Hm init_led7()................................................................................................ 52
7.3.2 Hm clear_led7() ............................................................................................. 53
7.3.3 Hm set_position(unsigned int pos) ................................................................ 53
7.3.4 Hm get_position() .......................................................................................... 53
BKIT HARDWARE CLUB
www.bkit4u.com
www.bkit4u.com
www.bkit4u.com
www.bkit4u.com
led7.h
timer.c
#include "timer.h"
int counter0;
int counter1;
void init_tim er0();
{
IE |= 0x20;
TR0 = 1;
..........................
}
void init_tim er1()
{
..........................
}
void private_function()
{
..........................
}
led7.c
#ifndef __LED7_H_
#define __LED7_H_
#include "led7.h"
unsigned char led7_buff[8];
void init_led7();
void scan_led7();
...............
void init_led7();
{
P0 = 0x00;
T2 = 0x00;
..........................
}
void scan_led7()
{
..........................
}
void private_function()
{
..........................
}
#endif
www.bkit4u.com
Bi 1 :
Mc ch :
Ci t Keil C son tho chng trnh.
Ci t Flash Magic np chng trnh.
Cu hnh cho Flash Magic.
1.1 Ci t Keil C
Keil C l chng trnh h tr kh y ngi dng son tho chng trnh
dnh cho cc vi iu khin thuc h 8051. ci t bn tin hnh theo cc bc nh
sau:
Bc 1 : Click vo file c51v815.exe trong CD i km, mn hnh sau s xut hin
www.bkit4u.com
www.bkit4u.com
www.bkit4u.com
www.bkit4u.com
www.bkit4u.com
10
Bc 2 : Chn Next
www.bkit4u.com
11
www.bkit4u.com
12
Bc 5 : mc nh v chn Next
www.bkit4u.com
13
Bc 6 : Chn Next.
www.bkit4u.com
14
www.bkit4u.com
15
www.bkit4u.com
16
www.bkit4u.com
17
Bc 3 : Chn menu Option v chn Advance Option, mn hnh sau s xut hin :
www.bkit4u.com
18
Bc 5 : Xem cng COM ang l cng no. Bn thu nh Flash Magic li, trn
mn hnh Desktop, t biu tng My Computer, click phi chut v chn Manage.
www.bkit4u.com
19
www.bkit4u.com
20
www.bkit4u.com
21
Bi 2 :
Mc ch:
To project n gin trong Keil C v cu hnh cho Keil C.
iu khin Port 1 v Port 3.
Np chng trnh bng Flash Magic.
Yu cu:
Vit chng trnh nhn nt 1 n th 1 sng, nt 2 n th 2 sng,.
www.bkit4u.com
22
www.bkit4u.com
23
www.bkit4u.com
24
Bc 6 : Project c to ra nh sau:
www.bkit4u.com
25
www.bkit4u.com
26
www.bkit4u.com
27
www.bkit4u.com
28
www.bkit4u.com
29
www.bkit4u.com
30
www.bkit4u.com
31
www.bkit4u.com
32
www.bkit4u.com
33
www.bkit4u.com
34
www.bkit4u.com
35
li ny, Flash Magic hin th thng bo yu cu bn nhn reset, nhng khi nhn
reset th thng bo trn xut hin, bn chnh li tc Baud l 9600.
www.bkit4u.com
36
li ny, Flash Magic cng chy c ti phn ch nhn nt Reset, sau khi n
nt Reset th thng bo ny xut hin.
Xung t Port 3
Li ny xut hin l do ngi lp trnh can thip n Port 3, nn Flash Magic
khng th giao tip c vi vi iu khin np chng trnh. Khi b li ny thng bo
sau y s xut hin (tng t nh thng bo chn sai cng COM) :
www.bkit4u.com
37
Bi 3 :
Mc ch:
Nm nguyn l iu khin led 7 on.
Yu cu:
Vit chng trnh nhn nt 1 s hin th s 0 led 7 on ngoi cng, nt 2 s
hin th s 1 led 7 on k tip, v.v
P0 : Data
P0.0 : a
P0.1 : b
P0.2 : c
P0.3 : d
P0.4 : e
P0.5 : f
P0.6 : g
P0.7 : dot
P2 : Select
P2.0 : Led 1
P2.0 : Led 2
P2.0 : Led 3
P2.0 : Led 4
P2.0 : Led 5
P2.0 : Led 6
P2.0 : Led 7
P2.0 : Led 8
www.bkit4u.com
38
3.2.2 Hm main()
Hm ny s gi init_main(), sau xt cc gi tr ca Port 3 v hin th ra led 7
on gi tr tng ng.
void main()
{
//P0 : Data
//P0.0 : a
//P0.1 : b
//P0.2 : c
//P0.3 : d
P2 : Select
P2.0 : Led 1
P2.0 : Led 2
P2.0 : Led 3
P2.0 : Led 4
www.bkit4u.com
39
P2.0 : Led 5
P2.0 : Led 6
P2.0 : Led 7
P2.0 : Led 8
init_main();
while(1)
{
if((P3 & 0x01) == 0) // P3 = 1111 1110
{
P0 = led7_data[0];
P2 = 0x01;
}
else if((P3 & 0x02) == 0)// P3 = 1111 1101
{
P0 = led7_data[1];
P2 = 0x02;
}
else if((P3 & 0x04) == 0)// P3 = 1111 1011
{
P0 = led7_data[2];
P2 = 0x04;
}
else if((P3 & 0x08) == 0) // P3 = 1111 0111
{
P0 = led7_data[3];
P2 = 0x08;
}
else if((P3 & 0x10) == 0) // P3 = 1110 1111
{
P0 = led7_data[4];
P2 = 0x10;
}
else if((P3 & 0x20) == 0) // P3 = 1101 1111
{
P0 = led7_data[5];
P2 = 0x20;
}
else if((P3 & 0x40) == 0) // P3 = 1011 1111
{
P0 = led7_data[6];
www.bkit4u.com
40
www.bkit4u.com
41
Bi 4 :
Ngt Timer
Mc ch:
Tm hiu ngt timer ca 89V51
Xy dng module dnh cho timer ca 89V51 c th dng li c.
Yu cu:
Vit chng trnh hin th t 0, sau 1 giy tng ln 1, khi tng n 9 th chuyn
sang hin th led k tip, hin th bt u li t 0.
www.bkit4u.com
42
void start_timer0();
void start_timer1();
void stop_timer0();
void stop_timer1();
void delay_ms(unsigned int duration);//using timer1 to delay in ms
4.2.1 Hm init_timer1()
Hm ny lm nhim v khi to ngt timer1 sau mi 1ms, khi khi to ngt
timer1 xong, ta phi hin thc hm phc v ngt qung cho n, nu khng chng trnh
s chy sai.
void init_timer1()
{
IE &= ~(0x08);// enable timer 1
IE |= 0x08;
TMOD &= ~(0x10);// setup mode for timer 1
TMOD |= 0x10;
TH1 = (-1000/256); //1 ms
TL1 = (-1000%256);
TR1 = 1; //start timer1
}
4.2.2 Hm start_timer1()
void start_timer1()
{
TR1 = 1;
}
4.2.3 Hm timer1_isr()
y l hm phc v ngt qung ca timer1, c khai bo v nh ngha nh sau:
www.bkit4u.com
43
4.2.5 Hm stop_timer1()
void stop_timer1()
{
TR1 = 0;
}
Phn hin thc cc bn xem trong project Bai 4 bit thm chi tit.
www.bkit4u.com
44
Bi 5 :
Mc ch:
Nm vng ngt timer.
S dng ngt timer vit ng dng LED RIVER.
Yu cu:
Vit chng trnh led river n gin, 1 led chy t P0.0 sang P1.1, n P0.7
chuyn sang P3.7, P3.6. Khi ti P3.0 th tr v P0.0. Thi gian chuyn qua trng thi mi
l 1s
www.bkit4u.com
45
www.bkit4u.com
46
Bi 6 :
Mc ch:
Nm vng k thut chng rung cho phm.
Yu cu:
Vit chng trnh xut s m ra led 7 on vi gi tr khi to l 0. Khi nhn nt
1 (c ni vi P3.0) th gi tr ny tng ln 1, tng n 9 th quay tr li 0.
www.bkit4u.com
47
www.bkit4u.com
48
6.3.1 Hm initKey()
void initKey()
{
KeyReg0 = 0x00;
KeyReg1 = 0x00;
KeyReg2 = 0x00;
KeyReg3 = 0x00;
}
Trong KeyReg0, KeyReg1, KeyReg2 dng lu 3 ln lin tip. Khi 3 bin
ny bng nhau, bin KeyReg3 mi c cp nht. Bin KeyReg3 l gi tr hp l ca
phm nhn.
6.3.2 Hm getKey()
Hm ny c chia lm 2 phn, phn u l chng rung phm dng 2 ln so
snh trng nhau. Phn th 2 x l khi 1 phm c , phi sau 1 khong thi gian
TimeOutForKeyPress mi c tnh cc.
www.bkit4u.com
49
www.bkit4u.com
50
Bi 7 :
Mc ch:
Nm vng k thut qut Led.
ng dng qut Led vo vic iu khin 8 led 7 on.
Yu cu:
Vit module iu khin Led 7 on c th dng li cho cc ng dng khc.
a ra hm xut gi tr s nguyn ra led 7 on ti bt k v tr no.
www.bkit4u.com
51
7.3.1 Hm init_led7()
void init_led7()
{
P0 = 0x00;
P2 = 0x00;
position = 0;
led7_index = 0;
is_valid_data = 1;
}
//data port
//selected port
//output index
//scan index
//flag to check if data is valid
P0 : Port xut d liu cho led 7 on, khi to 0x00 tc l khng c led no
trong led 7 on sng.
P2 : Port chn led 7 on no trong 8 led s nhn data t Port 0, tc cc mc 1,
P2 = 0x01 (0000 0001)tc l led 7 on ngoi cng bn tri s sng, P2 = 0x20 (0000
0010) tc l led th 2 tnh t tri s sng.
www.bkit4u.com
52
7.3.2 Hm clear_led7()
void clear_led7()
{
led7_buffer[0] = 0x00;
led7_buffer[1] = 0x00;
led7_buffer[2] = 0x00;
led7_buffer[3] = 0x00;
led7_buffer[4] = 0x00;
led7_buffer[5] = 0x00;
led7_buffer[6] = 0x00;
led7_buffer[7] = 0x00;
}
Hm ny ch n gin l xo buffer 8 phn t, lc ton b cc led s tt. Buffer
ny dng cha d liu ca 8 led 7 on, d liu ca tng led s c nh k a ra
led tng ng.
7.3.4 Hm get_position()
unsigned int get_position() //get current position
{
return position;
}
Hm ny tr v v tr ang xut d liu.
www.bkit4u.com
53
}
Hm ny dng ct tng ch s ca s num b vo buffer tng ng. Vng
lp for dng hin thc tc v ny, ch s hng n v ca num s c b vo buffer
v tr position.
7.3.7 Hm scan_led7
void scan_led7()
{
if(is_valid_data)
{
P2 = 0x00;
P0 = led7_buffer[led7_index];
P2 = 1 << led7_index;
led7_index++;
if(led7_index == 8)
BKIT HARDWARE CLUB
//remove noise
//data for the next led
//enable data
www.bkit4u.com
54
www.bkit4u.com
55
Bi 8 :
Mc ch:
ng dng qut Led iu khin Ma trn led 2 mu.
Yu cu:
Vit chng trnh nh k 1s xut cc ch ci in hoa t A-Z ra ma trn led.
www.bkit4u.com
56
8.3.2 Hm scan_led_matrix()
Hm ny c gi trong timer, c nhim v xut buffer hin th ra ma trn led,
nh k xut tng phn t ca buffer ra ct tng ng.
void scan_led_matrix()
{
P1 = 0; //remove noise
P0 = red_buff[index_led_matrix];
P2 = green_buff[index_led_matrix];
P1 = 1 << index_led_matrix;
index_led_matrix = (index_led_matrix + 1) % 8;
//next column
8.3.3 Hm update_display_led_matrix()
Hm ny dng thay i ni dung hin th, cc ng dng ca ngi dng ch
yu l thay i code hm ny.
void update_display_led_matrix()
{
char i;
for(i = 0; i < 8; i++)
{
red_buff[i]=alphabet_upcase_led_matrix[i+alphabet_index ];
green_buff[i]=alphabet_upcase_led_matrix[i+alphabet_index];
}
}
Hm main ch vic thay i alphabet_index (d liu ca ch ci k tip) ri gi
hm update_display_led_matrix(), nh k 1s sau thay i ch k tip:
www.bkit4u.com
57
www.bkit4u.com
58
Bi 9 :
Mc ch:
Nm vng nguyn l iu khin ma trn led. Xy dng ng dng trn ma trn led.
Yu cu:
Vit chng trnh ch chy trn ma trn led, cung cp interface gip ngi dng
c th thay i d dng.
www.bkit4u.com
59
www.bkit4u.com
60
9.3.2 Hm main()
void main()
{
init_main();
init_timer0();
//use for scan led
init_timer1();
//use for delay_ms() function
init_led_matrix();
//initiate led matrix
set_message("HELLO WORLD");
while(1)
{
delay_ms (300);
update_display_led_matrix();
}
}
Hm update_display_led_matrix() tng con tr alphabet_index ly d liu
trong data_buff b vo red_buff v green buff. Bin alphabet_index c khi to l -8
vi ngha trng thi u tin mn hnh led 7 on khng hin th g c. Khi hin thc
hm ny bn ch kim tra iu kin ca alphabet_index ly d liu cho ng. Chi
tit ca chng trnh cc bn tham kho ti th mc Bai 9.
www.bkit4u.com
61
Bi 10 : Ngt ngoi
Mc ch:
Nm vng k thut iu khin ngt ngoi.
Yu cu:
Vit chng trnh khi c ngt ngoi 0 th tng bin m ln 1, ngt ngoi 1 th
gim i 1, xut gi tr ra led 7 on.
10.3.1 Hm init_ext_int0()
void init_ext_int0()
{
IE &= ~(0x01);// enable external interrupt 0
IE |= 0x01;
IT0 = 1;
}
10.3.2 Hm init_ext_int1()
void init_ext_int1()
{
IE &= ~(0x04);// enable external interrupt 1
www.bkit4u.com
62
10.3.3 Hm ext0_isr()
y l hm phc v ngt ngoi 0.
void ext0_isr() interrupt 0
{
//Add your code here
if(count<9)
count++;
}
10.3.4 Hm ext1_isr()
y l hm phc v ngt ngoi 1.
void ext0_isr() interrupt 1
{
//Add your code here
if(count>0)
count--;
}
www.bkit4u.com
63
Bi 11 : iu khin encoder
Mc ch:
Hiu c nguyn l hot ng ca encoder. Nm vng k thut iu khin
encoder bng ngt ngoi.
Yu cu:
Xy dng chng trnh c s xung encoder v hin th gi tr ra led 7 on.
www.bkit4u.com
64
www.bkit4u.com
65
www.bkit4u.com
66
Ngoi ra trong frame truyn c th c thm bit odd parity (bit l) hoc even
parity (bit chn) kim tra li trong qu trnh truyn. Bit parity ny c c im nu
s dng odd parity th s cc bit 1 + odd parity bit s ra 1 s l cn nu s dng even
parity th s cc bit 1 + even parity bit s ra 1 s chn.
www.bkit4u.com
67
www.bkit4u.com
68
Bit
SCON.7
K hiu
SM0/FE
Chc nng
Cch dng ca bit ny c nh ngha bng gi tr ca bit
SMOD0 trong thanh ghi PCON, nu SMOD=0, bit ny c
c v vit l SM0, n vi bit SM1 nh ngha ch hot
ng ca cng ni tip. Nu SMOD0=1, bit ny c c v
vit l FE (khung li). FE c set trong qu trnh nhn khi
pht hin bit dng khng hp l, v n ch c xa bi phn
mm. (ch rng cc ch UART nn c lp trnh(thng
qua SM0 v SM1) khi SMOD0=0-ch mc nh sau cc
qu trnh RESET)
www.bkit4u.com
69
SCON.6
SM1
SM0,
SM1
00
01
10
11
SCON.5
SM2
SCON.4
REN
SCON.3
TB8
SCON.2
RB8
SCON.1
TI
SCON.0
RI
Ch UART
Cc ch truyn ni tip:
Ch 0: ch ny chn RxD s va lm nhim v thu v pht d liu
cn chn TxD lm nhim v pht xung dch bit(Shift Clock) vi tc sung
bng 1/12 tc xung ca XTAL.D liu truyn i gm 8 bit vi bit LSB
c truyn hoc nhn trc. ng dng ca ch ny l m rng ng ra
cho 8051 t 2 ng TxD,RxD s to ra 8 ng m rng.
8051
TxD(P3.1)
CLOCK
Data
Shift register
RxD(P3.0)
www.bkit4u.com
70
TH1 (Hexa)
9600
-3
ED
4800
-6
FA
2400
-12
F4
1200
-24
E8
www.bkit4u.com
71
}
Tc truyn nhn UART c quy nh nh sau :
Nu PCON.7 = 0 : TH1 = 256 - ((Crystal / 384) / Baud)
TH1 = (-48); // baudrate 600
TH1 = (-24); // baudrate 1200
TH1 = (-12); // baudrate 2400
TH1 = (-6); // baudrate 4800
TH1 = (-3); // baudrate 9600
Nu PCON.7 = 1, baud is double, TH1 = 256 - ((Crystal / 192) / Baud)
TH1 = (-96); // baudrate 600
TH1 = (-48); // baudrate 1200
TH1 = (-24); // baudrate 2400
TH1 = (-12); // baudrate 4800
TH1 = (-6); // baudrate 9600
TH1 = (-4); // baudrate 14400
TH1 = (-3); // baudrate 19200
TH1 = (-2); // baudrate 28800
v Hm initUart() s thit lp ch hot ng ca port ni tip
void initUart()
{
//IE = 0xb0;
//SCON: SM0 SM1 SM2 REN TB8 RB8 TI RI
ES = 1;
// enable UART
IP = 0x10;
// set priority for serial port
SCON = 0x50;
// Uart mode 1
}
v Hm sendChar(unsigned char c)
truyn d liu i, ta ch cn ghi gi tr cn truyn vo thanh ghi SBUF. Khi
qu trnh truyn kt thc, c ngt TI s bt ln. Ta s dng 1 bin c trans_busy nhn
bit khi no qu trnh truyn kt thc, v s xo bin c ny trong hm phc v ngt
truyn ni tip.
void sendChar(unsigned char c)
{
www.bkit4u.com
72
www.bkit4u.com
73
Cng vic cn li l cu hnh cho cng COM truyn nhn uart cho tng thch vi
giao thc truyn nhn ca board 89. Cc thng s thng thng l Baud rate 9600, Data
bit 8bit, khng c Parity (chn none) v 1 Stop bit. Nhn nt Connect kt ni. K t
y nu board 89 c gi d liu ln, d liu ny s nm trong phn Receive. Ngc li,
mun gi d liu xung board 89 ta g vo textbox v n Send.
www.bkit4u.com
74
Chn vo menu File, chn New Project nh hnh trn, mn hnh di y s hin ra.
www.bkit4u.com
75
www.bkit4u.com
76
www.bkit4u.com
77
Chn tab s
kin
Chn Form
Double Click ti y
to hm x l s
kin Form Load
www.bkit4u.com
78
www.bkit4u.com
79
12.5.3 Gi d liu
Chuyn qua li ca s thit k giao din bng cch double click vo Form1 trong
ca s project explore :
www.bkit4u.com
80
Hm ny c chc nng truyn 1 string gm nhiu k t qua cng UART, vic hin
thc hm ny nh sau :
private void btnSend_Click(object sender, EventArgs e)
{
serialPort.Write(txtSend.Text);
}
www.bkit4u.com
81
Double
Click
Hm s c to ra nh sau :
www.bkit4u.com
82
www.bkit4u.com
83
www.bkit4u.com
84
kb_Shield
VCC
VCC
R3
22K
J3
R4
22K
6
VCC
kb_Vcc
kb_Clock
kb_Ground
kb_Data
P3.3
4
2
P3.4
www.bkit4u.com
85
www.bkit4u.com
86
www.bkit4u.com
87
www.bkit4u.com
88
CCAP0H = 0xff;
CCAP1H = 0xff;
CCAP2H = 0xff;
CCAP3H = 0xff;
CCAP4H = 0xff;
CCON |= (1<<6);
www.bkit4u.com
89
Control
Operation
1
2
3
4
Th t
Tn
VSS
Vdd
Vee
RS
R/W
Mc Logic
0
1
0
1
0
1
T 1 xung 0
D0
D1
D2
D3
D4
D4
D6
D7
0|1
0|1
0|1
0|1
0|1
0|1
0|1
0|1
7
8
9
Data/Command 10
11
12
13
14
M t
0V
+5V
0-Vdd
D0-D7 l command
D0-D7 l Data
Write
Read
Disable
Normal
Truyn
Data
hoc
Command xung LCD
Bit 0 LSB
Bit 1
Bit 2
Bit 3
Bit 4
Bit 5
Bit 6
Bit 7 MSB
www.bkit4u.com
90
www.bkit4u.com
91
15.3.3 B nh CGROM
B nh dng lu tr cc k t hin th trn LCD. Cc gi tr lu trong b nh
ny nh sau:
www.bkit4u.com
92
www.bkit4u.com
93
Lnh
Clear display
Return home
Entry mode set
Display on/off
control
Cursor/Display
shift
Function set
Set CGRAM
address
Set DDRAM
address
Read BUSY flag
(BF)
Write to
DDRAM or
CGRAM
Read from
DDRAM or
CGRAM
RS
RW
D7
D6
D5
D4
D3
D2
D1
D0
Thi gian
thc thi
1.52ms
1.52ms
37s
S/
C
R/
L
37s
DL
37s
DDRAM address
37s
BF
DDRAM address
0s
D7
D6
D5
D4
D3
D2
D1
D0
43s
D7
D6
D5
D4
D3
D2
D1
D0
43s
I/D RL
CGRAM address
37s
37s
RL
1 = Shift right
0 = Shift left
S 1 = Display shift on
0 = Display shift off
DL 1 = 8-bit interface
0 = 4-bit interface
D 1 = Display on
0 = Display off
U 1 = Cursor on
0 = Cursor off
B 1 = Cursor blink on
0 = Cursor blink off
www.bkit4u.com
94
www.bkit4u.com
95
www.bkit4u.com
96
www.bkit4u.com
97
//1
//2
//3
//4
//5
//6
www.bkit4u.com
98
//7
//8
//9
//10
//11
}
ngha cc lnh trn nh sau:
v Lnh 1 : gi hm lcd_delay(15000) delay 15ms.
v Lnh 2 : ko chn RS (ni vi LCD_PORT ti bit 1) xung 0. Lnh ny c
nh ngha l 1 macro trong file lcd.h:
#define RS(x)
( (x) ? ( LCD_PORT |= 0x02 ) : ( LCD_PORT &= 0xFD ) )
CMD c define l 0 nn lnh RS(CMD) s c iu kin (x) l false v s thc
hin phn th 2 ca lnh trn : LCD_PORT & 0xFD (ko bit 1 xung 0 : 1111 1101).
v Lnh 3 : thc hin trng thi u tin sau khi ch 15ms, ghi D7 D6 D5 D4 =
0011. Cc chn ny c ni vi 4 bit cao ca vi iu khin nn ta phi dch tri gi tr
0x03 4 bit.
v Lnh 4 : delay khong 41ms.
v Lnh 5,6,7,8 : Thc hin cc trng thi 2,3 v 4. Sau lnh 7 th LCD
chuyn sang ch 4 bit, v gi 1 byte, ta s gi 2 ln 4 bit cao trc ri ti 4 bit thp.
v Lnh 9 : gi hm lcd_write_cmd ghi 4 bit 2 ln, gi tr 0x28 tng ng vi
N = 1 (hin th trn 2 hng ca LCD) v B = 0 (font nh dng 5x7 im).
v Lnh 10 : thc hin lnh display on (xem thm trong bng lnh), D = 1.
v Lnh 11 : thc hin lnh entry set mode, 0x06 tng ng vi ch dch phi
tng dn.
15.8.3 Xo mn hnh
Hm ny ch n gin l gi lnh clear mn hnh lcd (xem thm trong bng lnh
ca LCD).
void lcd_clear()
{
lcd_write_cmd(0x01);
lcd_goto_xy(0, 0);
}
www.bkit4u.com
99
15.8.5 In k t ra mn hnh
Hm ny nhn thng s l 1 k t v hin th k t ra mn hnh LCD. Vic hin
thc hm ny kh n gin, ta ch cn ko chn RS xung 0 l LCD s hiu cc bit D7D4 l d liu.
void lcd_print_char(unsigned char dat)
{
lcd_wait_busy();
//find next position
if(current_row == 0 && current_col == 16)
lcd_goto_xy(1,0);
if(current_row == 1 && current_col ==16)
lcd_goto_xy(0,0);
RS(DAT); //RS = 0
lcd_write_4bits(dat);
lcd_write_4bits(dat << 4);
current_col ++; //update new position
}
T nhng hm c bn ny, bn c th hin thc thm cc hm xut 1 string
hay 1 gi tr s ra mn hnh LCD. Code chi tit c th xem thm trong th mc Bi 15.
www.bkit4u.com
100
16.1 Cc c im ca DS1307
Real time clock m gi, pht, giy, thng, ngy ca
thng, ngy ca tun, nm k c nm nhun (n nm 2100).
56 byte Ram lu tr d liu, nhng d liu khng b
mt khi tt ngun.
S dng 2 dy tn hiu truyn d liu theo giao thc
I2C.
C th lp trnh c xut tn hiu xung vung.
T ng pht hin ra ngun cung cp b li (ngt ngun) v chuyn qua
mch bo v s dng ngun pin d tr.
www.bkit4u.com
101
www.bkit4u.com
102
www.bkit4u.com
103
www.bkit4u.com
104
www.bkit4u.com
105
www.bkit4u.com
106
www.bkit4u.com
107
www.bkit4u.com
108
c d liu t DS1307
// Second
// Minute
// hour
// Day
www.bkit4u.com
109
//second = 12
// minute = 55
// hour = 05 ,24-hour mode(bit 6=0)
// Day = 1 or sunday
// Date = 01
// month = August
// year = 05 or 2005
//out second to P3
// delay about 1 second
}
}
www.bkit4u.com
110