Trường Đại Học Bách Khoa Hà Nội
Viện Điện Tử - Viễn Thông
TÀI LIỆU HƯỚNG DẪN SỬ
DỤNG KIT BKFET
Phụ Lục 1
1
LỜI MỞ ĐẦU
.Quá trình học tập, nghiên cứu của sinh viên đưa ra yêu cầu mới về tài liệu
học tập và thiết bị thực hành. Đối với thiết bị thực hành trên nền FPGA và các dòng
vi điều khiển, hiện tại có hai nhà sản xuất lớn cung cấp kit phát triển: Xilinx và
Altera, Atmel. Tuy nhiên, các kit phát triển có giá cả khá đắt và thực tế đối với quá
trình học tập, một số ứng dụng của kit không được dùng đến trong khi các ứng dụng
đơn giản phục phụ trực tiếp cho quá trình học của sinh viên lại thiếu. Như vậy, đặt
ra yêu cầu về một kit phát triển mới phù hợp với quá trình học tập cùng với thí
nghiệm mẫu được thực hiện trên kit.
Với mong muốn cung cấp kit phát triển về các dòng vi diều khiển, fpga và tài
liệu hướng dẫn phù hợp cho quá trình học tập, thực hành về hệ thống số trên nền
fpga. Nhóm em đã thực hiện đồ án với đề tài: "Thiết kế kit phát triển đa năng và xây
dựng các bài thí nghiệm trên kit".
Trong quá trình thực hiện đề tài, em đã nhận được sự giúp đỡ, chỉ bảo của
thầy TS.Nguyễn Hoàng Dũng. Với sự nỗ lực của bản thân, của các bạn cùng nhóm
đề tài và sự giúp đỡ của thầy, nhóm em đã hoàn thành đề tài theo đúng thời hạn. Do
còn nhiều thiếu sót về kiến thức nên đề tài không tránh khỏi thiếu sót, em rất mong
được sự góp ý của các thầy, các cô, các bạn để hoàn thiện đề tài hơn.
Em xin chân thành cảm ơn thầy TS.Nguyễn Hoàng Dũng, ThS Lê Quang
Thắng và các thầy, các cô thuộc Viện điện tử-viễn thông đã giúp đỡ em hoàn thành
đề tài.
2
MỤC LỤC
3
LAYOUT AND COMPONENTS
Hình 0-2 KIT BKFET
8
SƠ ĐỒ HỆ THỐNG VÀ CHỨC NĂNG TỪNG KHỐI
1 Khối hiển thị
Nhằm tạo sự khởi đầu thuận lợi cho người mới học, giúp các bạn học biến
những tín hiệu từ không nhìn thấy chuyển sang dạng tín hiệu có thể quan sát.
1 LED đơn
Sơ đồ khối
R 1 9 0 11 K
R 1 9 0 21 K
R 1 9 0 31 K
R 1 9 0 41 K
R 1 9 0 51 K
R 1 9 0 61 K
R 1 9 0 71 K
R 1 9 0 81 K
D 1 9 0 1
L E D
D 1 9 0 2
L E D
D 1 9 0 3
L E D
D 1 9 0 4
L E D
D 1 9 0 5
L E D
D 1 9 0 6
L E D
D 1 9 0 7
#$$%(&
*
!( *
#$$%*&
+
!(! +
#$$%+&
"
!(( "
#$$%"&
,
!(" ,
#$$%,&
-
!(, -
#$$%-&
Bảng 1-1 Gán chân LED đơn
Nguyên lý điều khiển
Mạch được mắc Anot chung (chung nguồn :3.3V). Để đèn LED sáng bạn cần
cấp mức logic “0” (0V) trên các chân LED0 – LED7 ngược lại để LED tắt bạn đặt
mức logic “1” (3.3V).
2 LED 7 thanh
Sơ đồ khối
U 2 0 0 2
R 4 7 1 S M D
1
1
2
2
3
1 k
Q 2 0 0 1
c 8 2 8
Q 2 0 0 2
c 8 2 8
Q 2 0 0 3
c 8 2 8
Q 2 0 0 4
c 8 2 8
L 1
L 3
L 0
L 2
U 2 0 0 1
l e d 7 t h a n h
L 1
1 2
L 2
9
L 3
8
L 4
6
a
1 1
b
7
c
4
d
1 k
3 . 3 V
Hình 1-4 Sơ đồ khối LED 7 thanh 4
10
LED 7 thanh thường được dùng để hiển thị các con số 0 – 9. Được ứng dụng
khá rộng rãi trên thị trường như đồng hồ hiển thị thời gian, ngày, tháng , năm, nhiệt
độ, trong ứng dụng đèn giao thông….vv
Khối mạch bao gồm :
1 LED 7 thanh 4 hiển thị.
1 băng trở 470ohm hạn dòng.
4 tranzitor được điều khiển dùng trong chế độ đóng, mở cấp nguồn cho
LED 7 thanh.
Ghép nối LED 7 thanh
!() +
!
!
!*( "
(
(
!** ,
*
*
!*+ -
+
!!"
.$/$
!
cấu tạo từ 7 con LED đơn và được điều khiển bởi các chân A,B,C,D,E,F,G và 1
LED nằm bên cạnh là LED thứ 8 cho phép bạn điều khiển dấu chấm (dp. Có 2 loại
LED 7 thanh đó là LED 7 thanh anode chung và LED 7 thanh cathode chung. Hình
bên tay phải phía trên cathode chung (các bạn có thể quan sát toàn bộ cực cathode
được nối chung trên 1 đường dây và ký hiệu tên đường dây là CC), còn lại hình
phía dưới là anode chung (cực anode của LED được nối với nhau ký hiệu CA).
Trong KIT phát triển đa năng BKFET sử dụng LED 7 thanh Anode chung nên mình
chỉ trình bày về loại này.
Phương pháp điều khiển LED 7 thanh đơn.
LED Anode chung (chung VCC : “3.3V”). Như đã nói phía trên để điều khiển
hiển thị chúng ta sẽ điều khiển tín hiệu trên các chân A,B,C,D,E,F,G,dp.
12
Ví dụ hiển thị số 1 lên LED 7 thanh :
• Cấp nguồn (mức logic "1”) tại chân CA trên LED 7 thanh.
• Điều khiển câc tín hiệu trên các chân A,B,C,…,G,dp
Bảng 1-3 Tín hiệu điều khiển hiển thị cho LED 7 thanh
Hàng 1 cho bạn biết tên chân điều khiển
Hàng 2 mức tín hiệu đặt tại chân đó ( “1” : 3.3V, “0” : 0V ).
Cấu tạo LED 7 thanh 4
Hình 1-6 Hình ảnh thực tế LED 7 thanh 4
Hình 1-7 Cấu tạo LED 7 thanh 4
13
Quan sát cấu tạo trên ta thấy LED 7 thanh 4 được đấu chung các cực Anode và
chúng được chia làm 4 khối tương ứng với 4 con LED, các cực Cathode của các
thanh được đấu chung với nhau : A – A, B- B, …., DP –DP.
Phương pháp điều khiển
Yêu cầu hiển thị 4 số khác nhau : 1234 lên LED 7 thanh 4
Hình 1-8 Kết quả hiển thị LED 7 thanh 4
• Lập bảng giải mã cho nội dung cần hiển thị
o LED3 = Digit 3, LED4 = Digit 4
o Data = Dp,G,F,E,D,C,B,A (Data : PORT 8 bit ghép nối với các
chân dữ liệu A,B,C,D,E,F,G,Dp)
- Chương trình :
o LED1 = “1”;LED2 = “0”, LED3 = “0”, LED4 = “0”
o Data = 0xC0;
o Delay_5ms;
o LED1 = “0”;LED2 = “1”, LED3 = “0”, LED4 = “0”
o Data = 0xF9;
o Delay_5ms;
o LED1 = “0”;LED2 = “0”, LED3 = “1”, LED4 = “0”
o Data = 0xA4;
o Delay_5ms;
o LED1 = “0”;LED2 = “0”, LED3 = “0”, LED4 = “1”
o Data = 0xB0;
o Delay_5ms;
Nếu ta coi thời gian thực hiện của 1 câu lệnh là 0 ms thì tổng đoạn chương trình
trên chỉ còn phụ thuộc vào thời gian của 4 câu lệnh Delay là 20ms nên nó phù hợp
với điều kiện đã đề cập bên trên.
LED1 = “1”, LED2 = “0”, LED3 = “0”, LED4 = “0”
Data = 0xC0
Delay_5ms
Với khối câu lệnh đầu tiên chỉ cho phép cấp nguồn cho LED1 vì vậy khi đưa giá
trị giả mã vào các thanh A,B,C, ,Dp thì chỉ có LED1 hiển thị nội dung thông tin
15
trong trường hợp này là Số 1. Tương tự sau khi thực hiện các câu lệnh còn lại thì
mỗi LED sẽ được hiển thị 1 số khác nhau. Cuối cùng ta cho phép cả đoạn chương
trình được lặp đi lặp lại thì sẽ hiển thị được số 1234.
3 LED Matrix
Sơ đồ khối
,
,
!(( ,
-
-
!(! -
'
!+
!
!
!! !
(
(
! *
*
*
)) +
+
+
)- "
"
"
), ,
,
,
)+ -
-
-
)* '
o Delay_2ms;
o Port_ctr = 1<<R1; // R1 = “1”, R còn lại bằng “0”
o Port_data = data1; // data2 = 0xE7
o Delay_2ms;
o Port_ctr = 1<<R2;
o Port_data = data2;
19
o Delay_2ms;
o Port_ctr = 1<<R3;
o Port_data = data3;
o Delay_2ms;
o Port_ctr = 1<<R4;
o Port_data = data4;
o Delay_2ms;
o Port_ctr = 1<<R5;
o Port_data = data5;
o Delay_2ms;
o Port_ctr = 1<<R6;
o Port_data = data6;
o Delay_2ms;
o Port_ctr = 1<<R7; // R7 = “1”
o Port_data = data7;
o Delay_2ms;
Như đã để cập phía trên phương pháp điều khiển LED Matrix giống với lại
LED 7 thanh 4. Quan sát vào hàng đầu tiên của LED Matrix cần hiển thị chữ “A” ta
thấy các LED đều tắt vì vậy data trong trường hợp này sẽ bằng 0xFF tương đương
với tất cả tín hiệu điều khiển trên cột = “1”, hàng thứ 2 LED C3,C4 sáng (“0”) vậy
để thực hiện chúng ta cho R1 = “1” , C3,C4 = “0” C còn lại = “1” (data = 0xE7).
Tương tự như vậy cho các trường hợp còn lại.
20
D B 4
1 1
D B 5
1 2
D B 6
1 3
D B 7
1 4
A
1 5
K
1 6
R 1 8 0 43 3 0
5 V
E N
R S
R W
L E D 6
L E D 5
L E D 4
L E D 7
L E D 1
L E D 0
L E D 3
L E D 2
Hình 1-12 Sơ đồ khối LCD
Text LCD là loại màn hình tinh thể lỏng được dùng để hiển thị các ký tự hoặc
số trong bảng mã ASCII. Khác với các loại LCD lớn, text LCD được chia sẵn các ô
và mỗi ô chỉ có thể hiển thị 1 ký tự trong mã ASCII. Vì lý do chỉ hiển thị được mã
ASCII nên nó được gọi là text LCD để phân biệt với graphic LCD có khả năng hiển
!(( ,
33,
-
!(! -
33-
.
!!( *
//39:33
;
!!* (
$39:;#$
!!+ !
3<=$
Bảng 1-7 Gán chân LCD
Nguyên lý điều khiển
Hình ảnh LCD 20x4
Hình 1-13 LCD 20x4 trên thực tế
Text LCD được điều khiển bởi chip HD44780U của hãng Hitachi, HD44780U
được coi là chuẩn chung cho các loại Text LCD.
HD44780U là bộ điều khiển cho các Text LCD theo dạng Ma trận điểm ảnh,
chip này có có thể dùng cho các LCD có 1 hoặc 2 dòng. HD44780U có 2 mode giao
tiếp là 4 bit và 8 bit. Nó chứa sẵn 208 ký tự có font 5x8 và 32 ký tự có kích thước
5x10.
22
Tính năng từng chân LCD
>? .6>@ #AB=?
#9 ! 55CD
E? ( 99CD "
FG1 * $$ 99
• DR cho phép ghi ký tự mã ASCII cần hiển thị lên màn hình, để sử dụng
thanh ghi này ta thiết lập chân RS = “1”.
R/W (Read or Write) : chân cho phép lựa chọn giữa việc đọc và ghi.
23
• R/W = “1” dữ liệu được đọc từ LCD ra ngoài. Nội dung đọc về bao gồm
cờ báo bận BF và địa chỉ của thanh ghi DDRAM.
• R/W = “0” dữ liệu sẽ được ghi từ bộ điều khiển ngoài vào LCD.
E (Enable) : chân cho phép LCD hoạt động. Để đọc hoặc ghi dữ liệu chúng ta
cần tạo 1 xung cạnh xuống trên chân E.
Tập lệnh LCD
.
;
- , " + * ( !
Q3
8R=S=
=$3#51=3T ! !U,+/5
#5#7/$ ! 8 !U,+/5
#T9$.$ !
:
. +5
51=3T:V
?#=
! 0 +5
#5#:51=3T
.W
!
• Mode 4 bit : là mode chỉ kết nối chân D4-D7, ưu điểm tiết kiệm được số
lượng chân điều khiển, nhược điểm : việc đọc ghi khó khăn hơn mode 8
bit, thời gian để ghi hoặc đọc 1 câu lệnh chậm hơn. Để sử dụng mode 4
bit cần set bit D5 = “1” các bit còn lại = “0” trong 1 khoảng thời gian
ngắn ở chế độ ghi lệnh.
Trình tự giao tiếp LCD
Hình 1-14 Trình tự giao tiếp Text LCD
Để sử dụng được LCD chúng ta cần khởi động nó thông qua 3 câu lệnh
Function set, Display control và Entry mode set. Quá trình khởi động chỉ cần thực
hiện 1 lần ngay sau khi cấp nguồn cho LCD, sau khi khởi động thành công LCD đã
sẵn sàng để có thể hiển thị nội dung.
• Funtion set : là lệnh xác lập chức năng LCD
. ; - , " + * ( !
Q3
8R=S=
?X.$ ! 8 8 +5
Bảng 1-10 Function Set
Lệnh Function Set cho phép thiết lập mode giao tiếp 4 bit hay 8 bit, thiết lập chế
độ hiển thị 1 hoặc 2 dòng và kích thước font chữ thông qua các bit :
25