Giáo trình Lập trình C cho họ vi điều khiển 8051 - Chương 4: Ứng dụng ngôn ngữ C cho họ vi điều khiển 8051 lập trình điều khiển

- 8 Led sáng tắt từtrái qua phải với port 3

- 8 Led sáng tắt từphải qua trái với port 1

- 16 Led sáng tắt từtrái qua phải với port 0, port 1

- 32 Led sáng tắt từphải qua trái với 4 port.

- Led sáng dần từtrái qua phải với port 3

- 8 Led sáng dần từphải qua trái với port 0

- 16 Led sáng dần từtrái qua phải với port 0, port 1

- 32 Led sáng dần từtrái qua phải với 4 port

- Led sáng dần từtrái qua phải và tắt dần từtrái qua phải với port 3

- 8 Led sáng dần từphải qua trái và tắt dần từtrái qua phải với port 0

- 16 Led sáng dần từtrái qua phải và tắt dần từphải qua trái với port 0, port 1

- 32 Led sáng dần từtrái qua phải và tắt dần từphải qua trái với 4 port

pdf37 trang | Chuyên mục: C/C++ | Chia sẻ: dkS00TYs | Lượt xem: 3293 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Lập trình C cho họ vi điều khiển 8051 - Chương 4: Ứng dụng ngôn ngữ C cho họ vi điều khiển 8051 lập trình điều khiển, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
ộng gia công lỗ bằng phương pháp khoan – khóet và lã lỗ. Quy trình được thực 
hiện như sau: 
1. Pistông A và C có nhiệm vụ cản chuyển động của phôi cũng như của chi tiết đã gia 
công. 
2. Pistông B và D có nhiệm vụ đưa phôi cũng như chi tiết đã gia công vào và ra khỏi hệ 
thống. 
3. Pistông E có nhiệm vụ quay tròn bàn máy chứa chi tiết. 
4. Pistông F và G đưa hai đầu khoan 1 và 2 ra khoan chi tiết và quay về. 
5. Pistông H và I đưa hai đầu khoét 1 và 2 ra khoét chi tiết và quay về. 
6. Pistông J và K đưa hai đầu lã lỗ 1 và 2 đi ra lã miện lỗ và quay về. 
BIỂU DIỄN BIỂU ĐỒ TRẠNG THÁI QUI TRÌNH: 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 29 of 37 
III. ĐIỀU KHIỂN LED MA TRẬN 
Giao tiếp Led ma trận 
Sơ đồ nguyên lý: 
Q13A
H2
M5
VCC
D5
VCC
Q10A
D1
X3
R9
12
Q12A
H6
X4
M4
D7
D1
VCC
Q15A
H1
GND
R8
12
H7
H2
GND
D6
M7
X4
D2
R3
R
12
Q11A
H5
X5
M5
U4 ULN2804
10
9
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
GND
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
M3
D2
D8
GND
VCC_12V
J4
COLUMN DO
1
2
3
4
5
6
7
8
H8
H3
J2
COLUMN XANH
1
2
3
4
5
6
7
8
D7
R4
12
D3
X5
Q14A
M1
M1
X6
X1
VCC
M6
R6
12
X1
H4
H4
U1
MATRAN 8X8
24
21
18
15
1
4
7
10
23
20
17
14
2
5
8
11
22
19
16
13
3
6
9
12
X1
X2
X3
X4
X5
X6
X7
X8
D1
D2
D3
D4
D5
D6
D7
D8
H1
H2
H3
H4
H5
H6
H7
H8
D8
D3
M8
X6
D4
M4
J3
ROW
1
2
3
4
5
6
7
8
Q16A
U3
ULN2804
10
9
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
GND
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
M7
M2
H3
X7
H8
X2
H5
GND
D4
D5
X7
X8
X2
Q17A
D468
U2
ULN2804
10
9
1
2
3
4
5
6
7
8
18
17
16
15
14
13
12
11
COM
GND
IN1
IN2
IN3
IN4
IN5
IN6
IN7
IN8
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7
OUT8
R7
12
VCC
R5
12
R2
1K
12
M8
M3
M6
H7
X3
H6
M2
H1
J5
12VDC
1
2
X8
D6
Các hàng và được đưa qua IC đệm 2803. Led ma trận có hai màu xanh và đỏ. 
Có 8 đường điều khiển hàng, 8 đường điều khiển cột màu xanh và 8 đường điều khiển 
cột màu đỏ. Tổng cộng có 24 đường được kết nối với vi điều khiển. 
Với phần cứng đã thiết ở trên sử dụng led ma trận 8x8 có 2 màu xanh và đỏ, để 
điều khiển led ma trận sáng ta tiến hành gửi dữ liệu ra cột và mã quét ra hàng. Trong 4 
port của vi điều khiển ta sử dụng 1 port để quét hàng và 2 port để điều khiển màu xanh 
và đỏ. 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 30 of 37 
Mã các ký tự của Led ma trận. 
7 
6 X 
5 X X 
4 X X 
3 X X 
2 X X X X X 
1 X X 
0 X X 
 E0 DB BB DB E0
Mẫu chữ A: 
7 
6 X X X X 
5 X X 
4 X X 
3 X X X X 
2 X X 
1 X X 
0 X X X X 
 80 B6 B6 B6 C9 
Mẫu chữ B: 
7 
6 X X X 
5 X X 
4 X 
3 X 
2 X 
1 X X 
0 X X X 
 C1 BE BE BE DD
Mẫu chữ C: 
7 
6 X X X X 
5 X X 
4 X X 
3 X X 
2 X X 
1 X X 
0 X X X X 
 80 BE BE BE C1 
Mẫu chữ D: 
7 
6 X X X X X 
5 X 
4 X 
3 X X X X 
2 X 
1 X 
0 X X X X X 
 80 B6 B6 B6 BE 
Mẫu chữ E: 
7 
6 X X X X X 
5 X 
4 X 
3 X X X X 
2 X 
1 X 
0 X 
 80 B7 B7 B7 BF 
Mẫu chữ F: 
7 
6 X X X 
5 X X 
4 X 
3 X X X X 
2 X X 
1 X X 
0 X X X 
 C1 BE B6 B6 D1 
Mẫu chữ G: 
7 
6 X X 
5 X X 
4 X X 
3 X X X X X 
2 X X 
1 X X 
0 X X 
 80 F7 F7 F7 80 
Mẫu chữ H: 
7 
6 X X X X X 
5 X 
4 X 
3 X 
2 X 
1 X 
0 X X X X X 
 BE BE 80 BE BE 
Mẫu chữ I: 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 31 of 37 
7 
6 X X 
5 X X 
4 X X 
3 X X 
2 X X 
1 X X 
0 X X 
 80 E7 DB BD FE 
Mẫu chữ K: 
7 
6 X 
5 X 
4 X 
3 X 
2 X 
1 X X 
0 X X X X 
 80 FE FE FE FD 
Mẫu chữ L: 
7 
6 X X 
5 X X X X 
4 X X X 
3 X X 
2 X X 
1 X X 
0 X X 
 80 DF EF DF 80 
Mẫu chữ M: 
7 
6 X X 
5 X X X 
4 X X X 
3 X X X 
2 X X 
1 X X 
0 X X 
 80 DF EF F7 80 
Mẫu chữ N: 
7 
6 X X X 
5 X X 
4 X X 
3 X X 
2 X X 
1 X X 
0 X X X 
 C1 BE BE BE C1 
Mẫu chữ O: 
7 
6 X X X X 
5 X X 
4 X X 
3 X X X X 
2 X 
1 X 
0 X 
 80 B7 B7 B7 CF 
Mẫu chữ P: 
7 
6 X X X 
5 X X 
4 X X 
3 X X 
2 X X X 
1 X X X 
0 X X X X 
 C1 BE BA BC C0
Mẫu chữ Q: 
7 
6 X X X X 
5 X X 
4 X X 
3 X X X X 
2 X X 
1 X X 
0 X X 
 80 B7 B3 B5 CE 
Mẫu chữ R: 
7 
6 X X X 
5 X X 
4 X 
3 X X X 
2 X 
1 X X 
0 X X X 
 CD B6 B6 B6 D9 
Mẫu chữ S: 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 32 of 37 
7 
6 X X X X X 
5 X 
4 X 
3 X 
2 X 
1 X 
0 X 
 BF BF 80 BF BF 
Mẫu chữ T: 
7 
6 X X 
5 X X 
4 X X 
3 X X 
2 X X 
1 X X 
0 X X X 
 81 FE FE FE 81 
Mẫu chữ U: 
7 
6 X X 
5 X X 
4 X X 
3 X X 
2 X X 
1 X X 
0 X 
 83 FD FE FD 83 
Mẫu chữ V: 
7 
6 X X 
5 X X 
4 X 
3 X 
2 X 
1 X X 
0 X X 
 BE DD E3 DD BE 
Mẫu chữ X: 
7 
6 X X 
5 X X 
4 X X 
3 X X X 
2 X 
1 X 
0 X 
 8F F7 F0 F7 8F 
Mẫu chữ Y: 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 33 of 37 
Chương trình hiển thị ký tự A trên led ma trận 
#include 
#define Hang P0 
#define Cot P1 
void delay() 
{ 
 TMOD=0x01; 
 TH0=0xFB; 
 TL0=0x00; 
 TR0=1; 
 while(1){ 
 if(TF0==1) break; 
 } 
 TR0=0; 
 TF0=0; 
} 
main() 
{ 
 while(1) 
 { 
 Hang=0xE0; 
 Cot=0x02; 
 delay(); 
 Hang=0xDB; 
 Cot=0x04; 
 delay(); 
 Hang=0xBB; 
 Cot=0x08; 
 delay(); 
 Hang=0xDB; 
 Cot=0x10; 
 delay(); 
 Hang=0xE0; 
 Cot=0x20; 
 delay(); 
 } 
} 
Bài tập ứng dụng về nhà 
- Chương trình chớp tắt ký tự A trên Led ma trận 
- Chương trình chớp tắt ký tự A hiển thị hai màu xanh và đỏ trên Led ma trận 
- Chương trình chạy chuỗi ABCD từ trái sang phải trên Led ma trận 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 34 of 37 
IV. ĐIỀU KHIỂN LCD. 
Giao tiếp với LCD 
Sơ đồ nguyên lý. 
D1
A2
C2
CAP
A2
C3
CAP
R3
R
1
2
D3
VCC_CIRCLE
D6D6
Q1
CRYSTAL
R1
RESISTOR VAR
1 3
2
D7
D4
J1
CON2
1
2
D3
C1
CAP
1
2
VCC_CIRCLE
VCC_CIRCLE
SW1
SW PUSHBUTTON
1
2
D5
D0
D4
A3
D7
VCC_CIRCLE
U1
AT89C51
9
1819
20
29
30
31
40
1
2
3
4
5
6
7
8
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
39
38
37
36
35
34
33
32
RST
XT
AL
2
XT
AL
1
GND
PSEN
ALE/PROG
EA/VPP
VC
C
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
D5
A3
D2
D0
A1
U2
LCD 5X7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GND
VCC
VR
RS
R/W
EN
DB0
DB1
DB2
DB3
DB4
DB5
DB6
DB7
A
K
D1
D2
A1
DIỄN GIẢI CHI TIẾT. 
Mô tả chân LCD: 
Chân Ký hiệu I/O Mô tả 
1 GND - Đất 
2 VCC - Nguồn 5V 
3 VR - Nguồn điều khiển tương phản 
4 RS I RS=0 chọn thanh ghi lệnh RS=1 chọn thanh ghi dữ liệu 
5 R/W I RW=1 đọc dữ liệu RW=0 ghi dữ liệu 
6 EN I Cho phép hoạt động 
7 DB0 I/O Bus dữ liệu 8 bit 
8 DB1 I/O Bus dữ liệu 8 bit 
9 DB2 I/O Bus dữ liệu 8 bit 
10 DB3 I/O Bus dữ liệu 8 bit 
11 DB4 I/O Bus dữ liệu 8 bit 
12 DB5 I/O Bus dữ liệu 8 bit 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 35 of 37 
13 DB6 I/O Bus dữ liệu 8 bit 
14 DB7 I/O Bus dữ liệu 8 bit 
15 A - Nguồn 5V 
16 K - Đất 
Mã lệnh LCD: 
Mã (Hex) Lệnh thanh ghi LCD 
1 Xóa màn hình hiển thị 
2 Trở về đầu dòng 
4 Dịch con trỏ sang trái 
6 Dịch con trỏ sang phải 
5 Dịch hiển thị sang phải 
7 Dịch hiển thị sang trái 
8 Tắt con trỏ, tắt hiển thị 
A Tắt hiển thị, bật con trỏ 
C Bật hiển thị, tắt con trỏ 
E Bật hiển thị, nhấp nháy con trỏ 
F Tắt con trỏ, nhấp nháy con trỏ 
10 Dịch vị trí con trỏ sang trái 
14 Dịch vị trí con trỏ sang phải 
18 Dịch toàn bộ hiển thị sang trái 
1C Dịch toàn bộ hiển thị sang phải 
80 Đưa con trỏ về đầu dòng thứ nhất 
C0 Đưa con trỏ về đầu dòng thứ hai 
38 Hai dòng ma trận 5x7 
Bài tập ứng dụng. 
Viết chương trình cho Vi Điều Khiển điều khiển LCD hiển thị dòng chữ thứ 
nhất “A, B, C, D” và dòng chữ thứ hai “BAI TAP UNG DUNG LCD”. 
#include 
#define RS P3_0 
#define RW P3_1 //RW=0 => ghi 
#define EN P3_2 //RW=1 => doc 
 //RS=0 => code 
 //RS=1 => data 
#define LCD_PORT P1 
void delay_5ms() 
{ 
int i,j; 
for(i=0;i<250;i++) 
 for(j=0;j<4;j++){} 
} 
void delay_15ms() 
{ 
int i,j; 
for(i=0;i<250;i++) 
 for(j=0;j<100;j++){} 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 36 of 37 
} 
void LCDWriteCmd(unsigned char c) 
{ 
 RS=0; 
 RW=0; 
 LCD_PORT=c; 
 EN=1; 
 EN=0; 
 delay_5ms(); 
} 
void LCDWriteData(unsigned char c) 
{ 
 RS=1; 
 RW=0; 
 LCD_PORT=c; 
 EN=1; 
 EN=0; 
 delay_5ms(); 
} 
void LCD_init() 
{ 
 delay_15ms(); 
 LCDWriteCmd(0x30); 
 LCDWriteCmd(0x30); 
 LCDWriteCmd(0x30); 
 LCDWriteCmd(0x38); 
 LCDWriteCmd(0x0C); 
// LCDWriteCmd(0x06); 
 LCDWriteCmd(0x01); // Xoa man hinh LCD 
} 
void LCD_clear() 
{ 
 LCDWriteCmd(0x01); 
} 
void LCD_home() 
{ 
 LCDWriteCmd(0x80); 
} 
void LCD_putstr(unsigned char *s) 
{ 
 while (*s) 
 { 
 LCDWriteData(*s); 
 s++; 
 } 
 } 
ĐẠI HỌC LẠC HỒNG GIÁO TRÌNH LẬP TRÌNH C CHO HỌ VI ĐIỀU KHIỂN 8051
Biên soạn: Nguyễn Bá Thuận Page 37 of 37 
void main() 
{ 
LCD_init(); 
LCDWriteCmd(0x01); 
LCDWriteCmd(0x80); 
LCDWriteData('A'); 
LCDWriteData('B'); 
LCDWriteData('C'); 
LCDWriteData('D'); 
LCDWriteCmd(0xC0); 
LCD_putstr("BAI TAP UNG DUNG LCD "); 
while (1) {} 
} 
Bài tập ứng dụng về nhà. 
- Viết chương trình cho Vi Điều Khiển điều khiển LCD hiển thị dòng chữ thứ 
nhất “DAI HOC LAC HONG” và dòng chữ thứ hai “KHOA CO DIEN”. Dịch qua trái 

File đính kèm:

  • pdfGiáo trình Lập trình C cho họ vi điều khiển 8051 - Chương 4 Ứng dụng ngôn ngữ C cho họ vi điều khiển 8051 lập trình điều khiển.pdf