Bảng quang báo chạy text với font tiếng Việt và tiếng Anh, chạy từ trái sang
phải, từ phải sang trái, chạy từ trên xuống dưới, từ dưới lên trên.
Tạo font chữ và giải mã.
Vi điều khiển lưu vào vùng nhớ trong ROM sau đó vi điều khiển lấy dữ liệu
điều khiển hiển thị ra màn hình led ma trận thông qua mạch công suất và mạch hiển
thị.
70 trang |
Chia sẻ: lylyngoc | Lượt xem: 10638 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Quang báo hiển thị bằng LED ma trận, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép ngắt hoạt động (GIE và
PEIE).
PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer1 (TMR1IF).
PIE1( địa chỉ 8Ch): cho phép ngắt Timer1 (TMR1IE).
TMR1L (địa chỉ 0Eh): chứa giá trị 8 bit thấp của bộ đếm Timer1.
TMR1H (địa chỉ 0Eh): chứa giá trị 8 bit cao của bộ đếm Timer1.
T1CON (địa chỉ 10h): xác lập các thông số cho Timer1.
11.TIMER_2
Timer2 là bộ định thời 8 bit và được hỗ trợ bởi hai bộ chia tần số
prescaler va postscaler. Thanh ghi chứa giá trị đếm của Timer2 là TMR2. Bit
cho phép ngắt Timer2 tác động là TMR2ON (T2CON). Cờ ngắt của Timer2
là bit TMR2IF (PIR1). Xung ngõ vào (tần số bằng ¼ tần số oscillator) được
đưa qua bộ chia tần số prescaler 4 bit (với các tỉ số chia tần số là 1:1, 1:4 hoặc
1:16 và được điều khiển bởi các bit T2CKPS1:T2CKPS0 (T2CON)).
Timer2 còn được hỗ trợ bởi thanh ghi PR2. Giá trị đếm trong thanh
ghi TMR2 sẽ tăng từ 00h đến giá trị chứa trong thanh ghi PR2, sau đó được reset
về 00h. Kh I reset thanh ghi PR2 được nhận giá trị mặc định FFh. Ngõ ra của
Timer2 được đưa qua bộ chia tần số postscaler với các mức chia từ 1:1 đến 1:16.
Postscaler được điều khiển bởi 4 bit T2OUTPS3:T2OUTPS0. Ngõ ra của
postscaler đóng vai trò quyết định trong việc điều khiển cờ ngắt.
Ngoài ra ngõ ra của Timer2 còn được kết nối với khối SSP, do đó
Timer2 còn đóng vai trò tạo ra xung clock đồng bộ cho khối giao tiếp SSP.
Các thanh ghi liên quan đến Timer2 bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép toàn bộ các ngắt (GIE và
PEIE).
PIR1 (địa chỉ 0Ch): chứa cờ ngắt Timer2 (TMR2IF).
PIE1 (địa chị 8Ch): chứa bit điều khiển Timer2 (TMR2IE).
TMR2 (địa chỉ 11h): chứa giá trị đếm của Timer2.
T2CON (địa chỉ 12h): xác lập các thông số cho Timer2. PR2 (địa chỉ 92h):
thanh ghi hỗ trợ cho Timer2.
Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.
Ta có một vài nhận xét về Timer0, Timer1 và Timer2 như sau:
Timer0 và Timer2 là bộ đếm 8 bit (giá trị đếm tối đa là FFh), trong
khi Timer1 là bộ đếm 16 bit (giá trị đếm tối đa là FFFFh). Timer0, Timer1 và
Timer2 đều có hai chế độ hoạt động là timer và counter. Xung clock có tần số
bằng ¼ tần số của oscillator. Xung tác động lên Timer0 được hỗ trợ bởi prescaler
và có thể được thiết lập ở nhiều chế độ khác nhau (tần số tác động, cạnh tác
động) trong khi các thông số của xung tác động lên Timer1 là cố định. Timer2
được hỗ trợ bởi hai bộ chia tần số prescaler và postcaler độc lập, tuy nhiên cạnh
tác động vẫn được cố định là cạnh lên. Timer1 có quan hệ với khối CCP, trong
khi Timer2 được kết nối với khối SSP. Một vài so sánh sẽ giúp ta dễ dàng lựa
chọn được Timer thích hợp cho ứng dụng.
12 ADC
ADC (Analog to Digital Converter) là bộ chuyển đổi tín hiệu giữa hai
dạng tương tự và số. PIC16F877A có 8 ngõ vào analog (RA4:RA0 và RE2:RE0).
Hiệu điện thế chuẩn VREF có thể được lựa chọn là VDD, VSS hay hiệu điện thể
chuẩn được xác lập trên hai chân RA2 và RA3. Kết quả chuyển đổi từ tín tiệu
tương tự sang tín hiệu số là 10 bit số tương ứng và được lưu trong hai thanh ghi
ADRESH:ADRESL. Khi không sử dụng bộ chuyển đổi ADC, các thanh ghi này
có thể được sử dụng như các thanh ghi thông thường khác. Khi quá trình chuyển
đổi hoàn tất, kết quả sẽ được lưu vào hai thanh ghi ADRESH:ADRESL, bit
(ADCON0) được xóa về 0 và cờ ngắt ADIF được set.
Qui trình chuyển đổi từ tương tự sang số bao gồm các bước sau:
1. Thiết lập các thông số cho bộ chuyển đổi ADC:
Chọn ngõ vào analog, chọn điện áp mẫu (dựa trên các thông số của thanh ghi
ADCON1)
Chọnh kênh chuyển đổi AD (thanh ghi ADCON0).
Chọnh xung clock cho kênh chuyển đổi AD (thanh ghi ADCON0).
Cho phép bộ chuyển đổi AD hoạt động (thanh ghi ADCON0).
2. Thiết lập các cờ ngắt cho bộ AD
Clear bit ADIF.
Set bit ADIE.
Set bit PEIE.
Set bit GIE.
3. Đợi cho tới khi quá trình lấy mẫu hoàn tất.
4. Bắt đầu quá trình chuyển đổi (set bit ).
5. Đợi cho tới khi quá trình chuyển đổi hoàn tất bằng cách:
Kiểm tra bit . Nếu =0, quá trình chuyển đổi đã hoàn tất.
Kiểm tra cờ ngắt.
6. Đọc kết quả chuyển đổi và xóa cờ ngắt, set bit (nếu cần tiếp tục chuyển đổi).
7. Tiếp tục thực hiện các bước 1 & 2 cho quá trình chuyển đổi tiếp theo
Cần chú ý là có hai cách lưu kết quả chuyển đổi AD, việc lựa chọn
cách lưu được điều khiển bởi bit ADFM và được minh họa cụ thể trong hình sau:
Các thanh ghi liên quan đến bộ chuyển đổi ADC bao gồm:
INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): cho phép các ngắt (các bit GIE, PEIE).
PIR1 (địa chỉ 0Ch): chứa cờ ngắt AD (bit ADIF).
PIE1 (địa chỉ 8Ch): chứa bit điều khiển AD (ADIE).
ADRESH (địa chỉ 1Eh) và ADRESL (địa chỉ 9Eh): các thanh ghi chứa kết quả
chuyển đổi AD.
ADCON0 (địa chỉ 1Fh) và ADCON1 (địa chỉ 9Fh): xác lập các thông số cho bộ
chuyển đổi AD.
PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): liên quan đến các ngõ vào analog
ở PORTA. PORTE (địa chỉ 09h) và TRISE (địa chỉ 89h): liên quan đến các ngõ
vào analog ở PORTE.
13 COMPARATOR
Bộ so sánh bao gồm hai bộ so so sánh tín hiệu analog và được đặt ở
PORTA. gõ vào bộ so sánh là các chân RA3:RA0, ngõ ra là hai chân RA4 và
RA5. Thanh ghi điều khiển bộ so sánh là CMCON. Các bit CM2:CM0 trong
thanh ghi CMCON đóng vai trò chọn lựa các chế độ hoạt động cho bộ
Comparator (hình 2.10).
Cơ chế hoạt động của bộ
Comparator như sau:
Tín hiệu analog ở chân
VIN + sẽ được só sánh với điện áp
chuẩn ở chân VIN- và tín hiệu ở ngõ ra
bộ so sánh sẽ thay đổi tương ứng như
hình vẽ. Khi điện áp ở chân VIN+ lớn
hơn điện áp ở chân VIN+ ngõ ra sẽ ở
mức 1 và ngược lại.
Dựa vào hình vẽ ta thấy
đáp ứng tại ngõ ra không phải là tức thời
so với thay đổi tại ngõ vào mà cần có
một khoảng thời gian nhất định để ngõ ra thay đổi trạng thái (tối đa là 10us). Cần
chú ý đến khoảng thời gian đáp ứng này khi sử dụng bộ so sánh.
Cực tính của các bộ so sánh có thể thay đổi dựa vào các giá trị đặt
vào các bit C2INV và C1INV (CMCON).
Các chế độ hoạt động của bộ comparator.
Các bit C2OUT và C1OUT (CMCON) đóng vai trò ghi nhận sự thay đổi tín
hiệu analog so với điện áp đặt trước. Các bit này cần được xử lí thích hợp bằng
chương trình để ghi nhận sự thay đổi của tín hiệu ngõ vào. Cờ ngắt của bộ so
sánh là bit CMIF (thanh ghi PIR1). Cờ ngắt này phải được reset về 0. Bit điều
khiển bộ so sánh là bit CMIE (Tranh ghi PIE).
Các thanh ghi liên quan đến bộ so sánh bao gồm:
CMCON (địa chỉ 9Ch) và CVRCON (địa chỉ 9Dh): xác lập các thông số cho bộ
so sánh.
Thanh ghi INTCON (địa chỉ 0Bh, 8Bh, 10Bh, 18Bh): chứa các bit cho phép các
ngắt
(GIE và PEIE).
Thanh ghi PIR2 (địa chỉ 0Dh): chứa cờ ngắt của bộ so sánh (CMIF).
Thanh ghi PIE2 (địa chỉ 8Dh): chứa bit cho phép bộ so sánh (CNIE).
Thanh ghi PORTA (địa chỉ 05h) và TRISA (địa chỉ 85h): các thanh ghi điều
khiển PORTA. Chi tiết về các thanh ghi sẽ được trình bày cụ thể trong phụ lục 2.
14 BỘ TẠO ĐIỆN ÁP SO SÁNH
Bộ so sánh này chỉ hoạt động khi bộ Comparator đựơc định dạng hoạt
động ở chế độ ‘110’. Khi đó các pin RA0/AN0 và RA1/AN1 (khi CIS = 0) hoặc
pin RA3/AN3 và RA2/AN2 (khi CIS = 1) sẽ là ngõ vào analog của điện áp cần so
sánh đưa vào ngõ VIN- của 2 bộ so sánh C1 và C2 (xem chi tiết ở hình 2.10).
Trong khi đó điện áp đưa vào ngõ VIN+ sẽ được lấy từ một bộ tạo điện áp so
sánh.
Sơ đồ khối của bộ tạo điện áp so sánh đựơc trình bày trong hình vẽ sau:
Bộ tạo điện áp so sánh này bao gồm một thang điện trở 16 mức
đóng vai trò là cầu phân áp chia nhỏ điện áp VDD thành nhiều mức khác nhau
(16 mức). Mỗi mức có giá trị điện áp khác nhau tùy thuộc vào bit điều khiển
CVRR (CVRCON). Nếu CVRR ở mức logic 1, điện trở 8R sẽ không có tác
dụng như một thành phần của cầu phân áp (BJT dẫn mạnh và dòng điện không đi
qua điện trở 8R), khi đó 1 mức điện áp có giá trị VDD/24. Ngược lại khi CVRR ở
mức logic 0, dòng điện sẽ qua điện trở 8R và1 mức điện áp có giá trị VDD/32.
Các mức điện áp này được đưa qua bộ MUX cho phép ta chọn được điện áp đưa
ra pin RA2/AN2/VREF-/CVREF để đưa vào ngõ VIN+ của bộ so sánh bằng cách
đưa các giá trị thích hợp vào các bit CVR3:CVR0.
Bộ tạo điện áp so sánh này có thể xem như một bộ chuyển đổi D/A
đơn giản. Giá trị điện áp cần so sánh ở ngõ vào Analog sẽ được so sánh với các
mức điện áp do bộ tạo điện áp tạo ra cho tới khi hai điện áp này đạt được giá trị
xấp xỉ bằng nhau. Khi đó kết quả chuyển đổi xem như được chứa trong các bit
CVR3:CVR0.
Các thanh ghi liên quan đến bộ tạo điện áp so sánh này bao gồm:
Thanh ghi CVRCON (địa chỉ 9Dh): thanh ghi trực tiếp điều khiển bộ so sánh
điện áp.
Thanh ghi CMCON (địa chỉ 9Ch): thanh ghi điều khiển bộ Comparator.
Chi tiết về các thanh ghi sẽ được trình bày cụ thể ở phụ lục 2.
3.2. CÁC LINH KIỆN KHÁC TRONG MẠCH QUANG BÁO
IC 74HC573:
74HC573 là mạch chốt tín hiệu tốc độ cao được chế tạo theo cơng nghệ
CMOS. IC 74HC573 sử dụng để giải mã khi kết nối vi xử lý với bộ nhớ ngồi. IC
74HC573 gồm 8 mạch chốt là các Flip-Flop cùng với 8 bộ đệm ngõ ra 3 trạng thái.
IC này cĩ hai chân điều khiển: chân cho phép nhập dữ liệu (LE) vào IC, chân cịn
lại (/OE) quyết định việc xuất dữ liệu của IC, cả hai chân này làm việc độc lập với
nhau.
16
1 2 3 4 5 6 7 8
15 14 13 12 11
9 10
VCC
GND /OE D2 D1
O1 O2 O3
D3
O8
D8 D7
O7 O6
D6 D5
74573
20 19 17 18
D4
O4 O5 LE
Chức năng các chân của IC như sau:
VCC, GND: hai chân này dùng để cấp nguồn nuơi cho IC, VCC nối
với +5V, GND được nối mass.
LE: Latch Enable, chân cho phép chốt dữ liệu. Khi chân này ở mức
logic cao thì dữ liệu mới được phép nhập vào IC, khi nĩ ở mức logic thấp thì dữ
liệu mới khơng được phép nhập vào và dữ liệu cũ (đã được đưa vào trước đĩ) vẫn
cịn ở ngõ ra của nĩ.
/OE: Output Enable, chân cho phép xuất dữ liệu. Khi chân này ở
mức logic thấp thì dữ liệu ở ngõ ra của Flip-Flop (bên trong IC) được đưa ra
ngồi. Ngược lại, khi chân này ở mức logic cao thì dữ liệu khơng được phép đưa
ra ngồi và tất cả cá ngõ ra đều ở trạng thái tổng trở cao.
D1 – D8: Data Inputs, các ngõ vào của IC. Dữ liệu được đưa vào IC
thơng qua các ngõ này.
O1 – O8: Out Puts, các ngõ ra tương ứng với các ngõ vào trên. Cụ
thể là ngõ ra O1 tương ứng với ngõ vào D1, O2 tương ứng với D2,… O8 tương
ứng với D8.
Sơ đồ khối:
Hình 3.6: Sơ đồ khối 74HC573
LATCH
ENABLE
LE
D
G
D
D1
D
G G
O O O
D2 D8
O1 O2 O8
OUTPUT
ENABLE
OE
Đặc điểm của vi mạch:
Tốc độ truyền tín hiệu từ đầu vào sang đầu ra chỉ cĩ 18ns.
Phạm vi điện áp hoạt động: 2 – 5.5V.
Dịng điện đầu vào thấp nhất: 1uA.
Nguyên tắc hoạt động của IC 74573:
Dựa vào bảng trạng thái ta nhận thấy dữ liệu mới chỉ được phép truyền qua
IC khi cả hai chân điều khiển (LE và OE) ở mức logic thích hợp: LE ở mức logic
cao, OE ở mức logic thấp. Khi cả hai chân điều khiển ở trạng thái này thì dữ liệu ở
ngõ vào sẽ được đưa vào bên trong IC (truyền qua các Flip-Flop) và đưa thẳng ra
ngồi thơng qua các cổng đệm ngõ ra 3 trạng thái.
Khi chân OE ở mức logic thấp (cho phép) mà chân LE cũng ở mức logic
thấp (cấm) thì dữ liệu ở ngõ ra của IC là dữ liệu cũ (vừa mới được truyền qua IC).
Lúc này dữ liệu mới ở ngõ vào sẽ khơng được phép nhập vào IC.
Ngược lại, khi chân OE ở mức logic cao thì ngõ ra của IC sẽ ở trạng thái
tổng trở cao, bất chấp trạng thái logic của các ngõ vào cịn lại. Mặc dù ngõ ra ở
trạng thái tổng trở cao nhưng dữ liệu ở ngõ vào (nếu cĩ) vẫn được phép đưa vào
IC (đưa đến ngõ ra của các Flip-Flop ở bên trong IC). Dữ liệu này sẽ được phép
truyền đến ngõ ra khi chân OE về lại mức logic thấp.
Khi cả hai chân điều khiển đều ở trạng thái cấm (chân OE ở mức logic cao,
chân LE ở mức logic thấp) thì ngõ ra sẽ ở trạng thái tổng trở cao và ngõ vào sẽ
khơng được phép nhập dữ liệu mớivào. Như vậy, ở trạng thái này thì IC hồn tồn
khơng giao tiếp với bất kỳ linh kiện nào khác ở cả ngõ vào và ngõ ra.
Output Enable
(OE)
Latch Enable
(LE)
D
Output Q
L
L
L
H
H
L
H
L
X
H
L
Q0
H X X Z
Bảng 3.13:Trạng thái hoạt động74HC573
L:Trạng thái thấp Z: Trở kháng mức cao
H:Trạng thái cao Q0: Điều kiện trước
LED MA TRẬN:
Led ma trận dùng để chỉ thị, hiển thị, làm nguồn sáng trong các máy in
lazer, ngồi ra cịn được sử dụng trong các hệ thống thơng tin dựa vào quang sợi.
Led ma trận được coi là một trong nguồn quang điện phổ biến nhất.
Về cấu tạo led ma trận gồm nhiều led đơn ghép lại. Cĩ hai loại: Anode
chung ( cột Anode, hàng Catode) và Catode chung (cột Catode, hàng Anode), đa
dạng về màu sắc…..
Hình 3.17 : Hình dạng thực tế
Hình 3.18: Cấu trúc bên trong của led ma trận 8x8
Dịng làm việc khoảng 10mA, và Điện áp làm việc khoảng 2,6V.
Điều quan trọng khi sử dụng led là luơn mắc nối tiếp với một điện trở.
RT =
V V
I
B D
F
VB : Điện thế nguồn
VD : Điện thế ngưỡng của led
IF : Dịng điện qua led
Điện áp ngưỡng của led cĩ các trị số sau :
đỏ 1,6 ... 2V
cam 2,2 ... 3V
xanh lá cây 2,7 ... 3,2V
vàng 2,4 ... 3,2V
xang da trời 3,0 ... 5V
CHƯƠNG 4
CÁC PHƯƠNG PHÁP
HIỂN THỊ LED MA TRẬN
Led ma trận được coi là một trong các nguồn quang điện tử phổ biến nhất. Nĩ
khơng đắt, tiêu thụ ít cơng suất, và dễ dàng thích hợp cho các mạch điện tử.
Led ma trận hiển thị bao gồm nhiều led ma trận nhỏ kết hợp lại tạo thành một
ma trận gồm m cột và n hàng (led ma trận m×n). Led ma trận 8×8 là led ma trận gồm
cĩ 8 cột và 8 hàng. Led ma trận này cĩ hai loại: loại thứ nhất là cathode chung (cột
cathode, hàng anode), loại thứ hai là anode chung (cột anode, hàng cathode). Sau đây
là các phương pháp hiển thị ma trận led.
4.1 PHƯƠNG PHÁP HIỂN THỊ SỬ DỤNG IC CHỐT:
Hiển thị led ma trận bằng phương pháp chốt giúp cho người lập trình thay đổi
cách thức quét và hiển thị một cách linh hoạt và nhanh chĩng.
matrix_3mau
12 9 6 3 13 16 19 22
11852141720231074115182124
c1 c2 c3 c4 c5 c6 c7 c8
hx
1
hx
2
hx
3
hx
4
hx
5
hx
6
hx
7
hx
8
hd
1
hd
2
hd
3
hd
4
hd
5
hd
6
hd
7
hd
8
DM74LS573
2 3 4 5 6 7 8 9 11 1
19 18 17 16 15 14 13 12
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
LE O
E
Q
0
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
DM74LS573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
U7
DM74LS573
23456789111
1918171615141312
D
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
LEO
E
Q
0
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
Hình 4.1: Giao tiếp led ma trận dùng phương pháp chốt.
4.1.1. CHỐT HÀNG:
Chốt hàng là phương pháp trong một khoảng thời gian xác định chỉ cĩ một cột
được tích cực, dữ liệu được đưa ra 8 hàng rồi chốt lại, dữ liệu được hiển thị trên màn
hình led ma trận. Sau đĩ dữ liệu kế tiếp được đưa ra 8 hàng và được chốt lại bởi một
IC chốt khác, trong khi đĩ dữ liệu trước đĩ vẫn hiện diện tại ngõ ra của IC chốt. Như
vậy dữ liệu của hàng nào được đưa ra đúng địa chỉ của hàng đĩ trong khi các dữ liệu
của các hàng khác vẫn hiện diện trên hàng mà khơng bị mất đi. Việc thực hiện chốt
hàng được thể hiện ở lưu đồ như sau:
Hình 4.2: Qui trình hiển thị chốt hàng.
4.1.2 CHỐT CỘT:
Chốt cột là phương pháp trong một khoảng thời gian xác định chỉ cĩ một hàng
được tích cực, dữ liệu được đưa ra 8 cột rồi chốt lại, dữ liệu được hiển thị trên màn
hình led ma trận. Sau đĩ dữ liệu được đưa ra 8 cột kế tiếp và được chốt lại bởi một IC
chốt khác, trong khi đĩ dữ liệu trước đĩ vẫn hiện diện tại ngõ ra của IC chốt (dữ liệu
vẫn hiện diện tại các cột). Như vậy dữ liệu của cột nào được đưa ra đúng địa chỉ của
cột đĩ trong khi các dữ liệu của các cột khác vẫn hiện diện trên cột mà khơng bị mất
đi. Việc thực hiện chốt cột được thể hiện ở lưu đồ như sau:
Hình 4.3: Qui trình hiển thị chốt cột..
Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng IC chốt:
Ưu điểm:
Mở rộng số hàng, số cột của bảng quang báo.
Dữ liệu được truyền đi nhanh.
Chuyển đổi cách quét hàng, cột một cách linh hoạt.
Nhược điểm:
Tạo bảng mã khĩ khăn.
Khĩ khăn trong việc lập trình xuất dữ liệu ra.
4.2 PHƯƠNG PHÁP HIỂN THỊ SỬ DỤNG THANH GHI DỊCH:
4.2.1 QUÉT HÀNG:
a) Giới thiệu chung về phương pháp quét hàng.
Quét hàng là phương pháp mà trong một khoảng thời gian xác định chỉ cho một
hàng được tích cực hiển thị trong khi các hàng khác đều tắt, các hàng được quét (tích
cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ >
24hình /1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.
Vcc
Vcc
H7
R26
27
H
8
Vcc
R42 3K3
R16
1K
R2
27
R15
3K3
Q8
TIP42
CTRL_B15
R35
27Q7
C1815
R28
1K
R7
1K
R41
27
R1
1K
H
5
Q28
TIP42
CTRL_B7
R47
27
R19
1K
H15
R44
27
R27 3K3
Q23
C1815
R24 3K3
Q18
TIP42
H4
R20
27
R22
1K
H
6
H
3
CTRL_B8
R18 3K3
R17
27
H6
H
2
Q21
C1815
R6
3K3
Q32
TIP42
R21 3K3
CTRL_B12
CTRL_B14
CTRL_B9
Q10
TIP42
Vcc
U7
matrix_3mau
12 9 6 3 13 16 19 22
11852141720231074115182124
c1 c2 c3 c4 c5 c6 c7 c8
hx
1
hx
2
hx
3
hx
4
hx
5
hx
6
hx
7
hx
8
hd
1
hd
2
hd
3
hd
4
hd
5
hd
6
hd
7
hd
8
Q17
C1815
R46
1K
U1
TPIC6B595/SO
3
18
121398
456714151617
S
D
I
S
D
O
R
C
LK
S
R
C
LK
GS
R
C
LR
D
R
A
IN
0
D
R
A
IN
1
D
R
A
IN
2
D
R
A
IN
3
D
R
A
IN
4
D
R
A
IN
5
D
R
A
IN
6
D
R
A
IN
7
R13
1K
R34
1K
CTRL_B3
H9
H3
Q31
C1815
Q11
C1815
CTRL_B13
Q26
TIP42
H14
Q4
TIP42
Vcc
Vcc
Vcc
Q9
C1815
R9
3K3
H1
Q16
TIP42
Q27
C1815
H10
Q25
C1815
Q22
TIP42
R23
27
R14
27
R45 3K3
Vcc
R11
27
Q29
C1815
H
1
Q5
C1815
Vcc
CTRL_B6
R30 3K3
Vcc
R36 3K3
Vcc
Q13
C1815
Q6
TIP42
R32
27
R37
1K
R8
27
U2TPIC6B595/SO
3
18
12 13 9 8
4 5 6 7 14 15 16 17
S
D
I
S
D
O
R
C
LK
S
R
C
LK
G S
R
C
LR
D
R
A
IN
0
D
R
A
IN
1
D
R
A
IN
2
D
R
A
IN
3
D
R
A
IN
4
D
R
A
IN
5
D
R
A
IN
6
D
R
A
IN
7
Q15
C1815
R33 3K3
Vcc
H2
Q30
TIP42
R39 3K3
H
7
Q20
TIP42
CTRL_B11
R29
27
R12
3K3
R38
27
R31
1K
Vcc
Q19
C1815
H16
H13
Q1
C1815
CTRL_B2
H5
R4
1K
Q24
TIP42
R48 3K3
Q2
TIP42
R40
1K
CTRL_B5
R5
27
Vcc
H
4
H12
R3
3K3
Q14
TIP42
Vcc
Q3
C1815
R25
1K
CTRL_B4
CTRL_B1
Vcc
R10
1K
Q12
TIP42
H11
R43
1K
CTRL_B10
CTRL_B16
Hình 4.4: Sơ đồ mạch thanh ghi.
b) Quá trình thực hiện quét hàng:
Quét hàng sử dụng thanh ghi dịch là tương đối phức tạp cho người lập trình
trong việc đưa dữ liệu ra cột. Dữ liệu lần lượt được đưa vào chân Datain của thanh ghi
dịch sau đĩ tác động xung clock dữ liệu đươc dịch đi.
VD: Đưa dữ liệu ra 8 cột được diễn ra như sau:
Hình 4.5: Qui trình đưa dữ liệu ra 8 cột cho led ma trận.
Dữ liệu của hàng thứ nhất được đưa ra cột sau đĩ tích cực hàng thứ nhất như
vây dữ liệu của hàng thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu
của hàng thứ hai được đưa ra cột sau đĩ tích cực hàng thứ hai lúc này dữ liệu của hàng
thứ hai được hiển thị trên màn hình led ma trận, cứ như vậy cho đến dữ liệu của hàng
cuối cùng được đưa ra cột sau đĩ tích cực hàng cuối cùng. Cứ như thế quá trình trên
được lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục
hiển thị trên màn hình led ma trận.
Ví dụ:
Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức 1, cột được
tích cực ở mức 0).
Hình 4.6: Hiển thị chữ B trên led ma trận dùng phương pháp quét hàng.
Hàng 1
Hàng 8
Cột 8
Cột 1
Dữ liệu thứ nhất cĩ giá trị: 11111111 được đưa ra cột tích cực hàng thứ nhất
(điều khiển hàng thứ nhất cho ra giá trị là 1); dữ liệu thứ hai cĩ giá trị: 00001111 đưa
ra cột, tích cực hàng thứ hai; dữ liệu thứ 3 cĩ giá trị: 01110111 đưa ra cột, tích cực
hàng thứ 3; dữ liệu thứ 4 cĩ giá trị: 01110111 đưa ra cột, tích cực hàng thứ 4; tiếp tục
đữ liệu hàng thứ 5 cĩ giá trị: 00001111 đưa ra cột, tích cực hàng thứ 5; kế tiếp là dữ
liệu của hàng thứ 6 cĩ giá trị: 01110111 được đưa ra cột, tích cực hàng thứ 6 ; dữ liệu
của hàng thứ 7 cĩ giá trị: 01110111 đưa ra cột, tích cực hàng thứ 7; dữ liệu thứ 8 cĩ
giá trị: 00001111 đưa ra cột, tích cực hàng thứ 8. Như vậy tồn bộ dữ liệu của chữ B
đã được đưa ra hiển thị trên màn hình led ma trận. Quá trình trên được diễn ra rất
nhanh > 24lần/ 1s nên chúng ta cĩ cảm giác nĩ diễn ra một cách đồng thời nhờ đĩ mà
chúng ta quan sát được trên màn hình led ma trậnlà một chữ B liên tục.
4.2.2 Quét cột:
a) Giới thiệu chung về phương pháp quét cột.
Phương pháp quét cột là phương pháp mà trong một khoảng thời gian xác định
chỉ cho một cột được tích cực hiển thị trong khi các cột khác đều tắt, các cột được quét
(tích cực) tuần tự ở các khoảng thời gian kế tiếp nhau được lặp lại nhiều lần với tốc độ
> 24 hình/1s sẽ cho ta một hình ảnh liên tục cần hiển thị lên trên màn hình led ma trận.
b) Quá trình thực hiện quét cột.
Dữ liệu của cột thứ nhất được đưa ra hàng sau đĩ tích cực cột thứ nhất như vây
dữ liệu của cột thứ nhất được hiển thị trên màn hình led ma trận, tiếp tục dữ liệu của
cột thứ hai được đưa ra hàng sau đĩ tích cực cột thứ hai lúc này dữ liệu của hàng thứ
hai được hiển thị trên man hình led ma trận, cứ như vậy cho đến dữ liệu của cột cuối
cùng được đưa ra hàng sau đĩ tích cực cột cuối cùng. Cứ như thế quá trình trên được
lặp đi lặp lại > 24lần/1s, đến đây chúng ta quan sát được một hình ảnh liên tục hiển thị
trên màn hình led ma trận.
Ví dụ:
Hiển thị chữ B lên màn hình led ma trận (hàng được tích cực ở mức1, cột được
tích cực ở mức 0).
Hình 4.7: Hiển thị chữ B trên led ma trận dùng phương pháp quét cột.
Hàng 1
Hàng 8
Cột 8
Cột 1
Dữ liệu thứ nhất cĩ gía trị: 11111110 được đưa ra hàng, tích cực cột thứ nhất
(điều khiển cột thứ nhất cho ra giá trị là 0); dữ liệu thứ hai cĩ giá trị: 10010010 đưa ra
hàng, tích cực cột thứ hai; dữ liệu thứ 3 cĩ giá trị:10010010 đưa ra hàng, tích cực cột
thứ 3; dữ liệu thứ 4 cĩ giá trị: 10010010 đưa ra hàng, tích cực cột thứ 4; tiếp tục đữ
liệu hàng thứ 5 cĩ giá trị: 01101100 đưa ra hàng, tích cực cột thứ 5; kế tiếp là dữ liệu
của cột thứ 6 cĩ giá trị: 00000000 được đưa ra hang, tích cực cơt thứ 6 ; dữ liệu của cột
thứ 7 cĩ giá trị: 00000000 đưa ra hàng, tích cực cột thứ 7; dữ liệu thứ 8 cĩ giá trị:
00000000 đưa ra hàng, tích cực cột thứ 8. Như vậy tồn bộ dữ liệu của chữ B đã được
đưa ra hiển thị trên màn hình led ma trận. Quá trình trên được diễn ra rất nhanh >
24lần/ 1s nên chúng ta cĩ cảm giác nĩ diễn ra một cách đồng thời, nhờ đĩ chúng ta
quan sát được trên màn hình led ma trận là một chữ B liên tục.
Ưu, nhược điểm của phương pháp hiền thị led ma trận sử dụng thanh ghi dịch:
Ưu điểm:
Tiết kiệm đường truyền, hiệu quả kinh tế.
Tiết kiệm chân PORT.
Truyền dữ liệu đi xa hơn.
Mở rộng bảng ma trận lên một cách dễ dàng.
Lập trình dễ dàng trong phương pháp quét cột.
Nhược điểm:
Tốn thời gian để thực hiện việc truyền dữ liệu đến các cột.
Chuyển đổi khơng linh hoạt bằng sử dụng phương pháp chốt.
Lập trình khĩ khăn hơn khi sử dụng phương pháp quét hàng.
CHƯƠNG 5
SƠ ĐỒ KHỐI VÀ CHỨC NĂNG
TỪNG KHỐI
5.1 SƠ ĐỒ KHỐI HỆ THỐNG:
Hình 5.1: Sơ đồ khối của hệ thống.
5.2 Ý NGHĨA TỪNG KHỐI:
5.2.1 Khối điều khiển:
Khối điều khiển: Được thiết kế bởi PIC 16F877A cĩ nhiệm vụ xử lý tất cả các
dữ liệu của chương trình. Điều khiển dữ liệu hiển thị. Điều khiển xuất nhập dữ liệu.
Điều khiển truy xuất dữ liệu và xử lý sau đĩ truyền đến các khối: cơng suất, chốt và
đệm để hiển thị trên Led ma trận.
VCC
b6
D8
DIODE
SW1
SW_PB_SPST
b8
P1
5
9
4
8
3
7
2
6
1
R3
R
C14
33P
Y1
12MHz
RXV
b1
RXMAX
VCC
C12
CAP
RXMAX
0
TXMAX
0
b5
C13
33P
b3
R10
1k
TXV
C8
CAP
b7
0
J13
CON9
1
2
3
4
5
6
7
8
9
C5
CAP
b4
RXV
TXV
VCC
U14
MAX232
1
3
4
5
16
15
2
6
12
9
11
10
13
8
14
7
C1+
C1-
C2+
C2-
VC
C
G
N
DV+
V-
R1OUT
R2OUT
T1IN
T2IN
R1IN
R2IN
T1OUT
T2OUT
b2
C7
CAP
VCC
C6
CAP
C4
104
TXMAX
U13
PIC16F877A
11
12
14
32
13
31
2
3
1
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
Vd
d
G
N
DOSC2/CLKOUT
M
C
LR
/V
PP
OSC1/CLK
GND
RA0/ANO
RA1/AN1
VDD/MCLR
RA2/AN2
RA3/AN3
RA4/TOCK/C1OUT
RA5/AN4
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6/BGC
RB7/BGD
RC0/T1OSO/
RC1/T1OSI
RC2/CCP1
RC3/SCK/SCL
RC4/SDA/SDI
RC5/SD0
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
Hình 5.3: Sơ đồ kết nối mạch VĐK.
5.2.2 Khối cơng suất:
Nâng cơng suất đủ lớn để cung cấp cho khối hiển thị.
Nếu ta dùng các IC để thúc cơng suất thì ta sẽ cĩ dịng ngõ ra cố định, khi muốn
dùng tải cơng suất lớn hơn thì ta khĩ cĩ thể sửa đổi lại mạch cơng suất được. Và một
điều nữa là theo tính tốn, dịng điện ở mỗi hàng cĩ thể lên tới vài trăm mA , giá trị
này cao hơn nhiều so với dịng ngõ cực đại của IC .Do đĩ cần phải thiết kế mạch để
thúc cơng suất cho tải.
Cịn nhiều cách khác nữa để thúc tải như dùng SCR, Triac, Opto, Relay...Các
cách này thường được dùng cho các tải cĩ cơng suất lớn ở ngồi trời.
Do tải ở đây là bảng cơng suất khơng lớn lắm nên ta chỉ cần dùng Transistor
cơng suất trung bình.
Về phương diện cơng suất chính là việc nâng dịng cho dữ liệu hàng và cột
nhằm đảm bảo yêu cầu về dịng qua led ma trận, vì phần cứng bao gồm 6 led ma trận,
mỗi led ma trận là một khối bao gồm 64 led đơn nên ta chỉ sử dụng C1815, đảm bảo
tính ổn định và cung cấp đủ dịng cho tải.
Như vậy, cứ mỗi cột ta phải dung một mạch đệm dịng.
D1
LED
Q1
1R1001
R3
R
VCC
R4
R
Hình 5.4: Sơ đồ nguyên lý mạch đệm dịng.
5.2.3 Khối hiển thị:
Cĩ nhiệm vụ dịch chuyển dữ liệu ra các cột, đệm tăng dịng đủ lớn để điều
khiển hiển thị các yêu cầu của người sử dụng.
Khối hiển thị làm nhiệm vụ dịch dữ liệu từ vi điều khiển, chốt dữ liệu, đệm dữ
liệu đủ dịng và hiển thị trên Led ma trận .
b8
p5
p21
U9
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
p6
p18
p3
LED 5
b8
b6
b6
U7
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
p17
p2
p22
p20
LED 2
b7
b6
p13
p10
b1
p7
p14
p1
RN3
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
RN1
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
b3
b4
b3 p11
p8
p24
RN2
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
p12
U8
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
p16
p15
b5
b7
b2
LED 3
p19
b1
b8
b4
b3
b1
b7
b4
LED 6
b2
b2
b5
p9
p4 LED 1
LED 4
p23
b5
Hình 5.5: Sơ đồ mạch các IC chốt và hiển thị.
Do nhĩm thực hiện đồ án quyết định chọn phương pháp hiển thị bằng IC chốt và
quét hàng nên trong khoảng thời gian xác định một cột chỉ phải chịu dịng của một
điểm ảnh, dịng ra cực đại tại một ngõ ra là 500mA, với những tính năng trên nhĩm
thực hiện quyết định chọn IC 74HC573 để làm thanh ghi dịch và dung BJT C1815
đệm dịng ở cột
5.2.4 Khối nguồn:
Trong một mạch điện tử thì bộ nguồn cĩ vai trị rất quan trọng, nĩ quyết định
sự hoạt động hay ngưng hoạt động của mạch. Một bộ nguồn khơng tốt sẽ làm cho
mạch hoạt động kém ổn định và dể làm hỏng linh kiện. Vì vậy bộ nguồn ổn áp tốt sẽ
rất cần thiết cho các mạch điện tử ( mạch dùng các IC số).
Chức năng của mọi ổn áp DC là biến đổi điện áp vào DC chưa ổn định thành
điện áp ra DC ổn định và giá trị điện áp này phải đúng với giá trị khi tính tốn lý
thuyết. Điện áp này phải được duy trì liên tục và khơng thay đổi khi điện áp ngõ vào
hoặc dịng tải thay đổi (ở một giới hạn cho phép của mạch). Để thực hiện điều này thì
một nguồn ổn áp thường gồm các phần sau:
Hình 5.6: Sơ đồ khối của khối nguồn.
Khối chỉnh lưu và lọc: cĩ nhiệm vụ đổi điện áp xoay chiều thành điện áp một
chiều và lọc.
Khối cơng suất: cung cấp dịng chính cho tải.
Khối lấy mẫu: lấy một điện áp từ ngõ ra đưa về so sánh với Vref để điều khiển ổn
định điện áp.
CHƯƠNG 6
TÍNH TỐN
6.1 NGUỒN ĐIỀU KHIỂN:
Sơ đồ mạch:
C4
10uf /25V
VCC
C2
10uF/25V
VCC
D2
C3
104
C1
1000uf /25V
J5
CON2
1
2
R2
1K
- +
D1
RS403L
2
1
3
4
U1 LM7805
1 3
2
IN OUT
G
N
D
Hình 6.1: Sơ đồ mạch nguồn ổn áp 5V
Thiết kế:
Để an tồn IC 7805 cung cấp dịng cho tải là: 100mA - 1A
Điện áp ngõ vào tối thiểu phải cao hơn điện áp ngõ ra 2V để mạch hoạt động
tốt. Trong đĩ C1, C2 dùng để lọc (nguồn DC chưa ổn định) để ổn định điện áp ngõ
vào, C3 dùng để lọc nhiễu cao tần, C4 làm cho áp được phẳng hơn.
6.2. MẠCH NGUỒN RESET:
Mạch dùng để thiết lập lại trạng thái ban đầu cho hệ thống, gọi tắt là reset hệ
thống. 16f877A được reset bằng cách giữ chân MCLR ở mức thấp. MCLR cĩ thể được
tác động bằng tay hoặc được tác động khi cấp nguồn (reset máy). Dưới đây là 2 dạng
mạch reset:
Sơ đồ mạch:
R2
R
MCLR
R1
R
VCC
C2
C
SW1
D1
DIODE
R2
R
MCLR
R1
R
VCC
C2
C
Hình 6.2: mach reset tự động -- mạch reset bằng tay
Giải thích mạch: Khi vừa cấp nguồn, điện áp trên tụ là 0V ngõ ra đưa đến chân
reset ở mức cao, PIC bắt đầu hoạt động ở chế độ này. Sau đĩ tụ nạp điện do đĩ chân
reset của PIC luơn ở mức cao, PIC được phép hoạt động. Hoặc khi mạch đang hoạt
động mà nhấn nút SW làm IC ngưng hoạt động (do tụ phĩng điện), PIC chỉ hoạt động
trở lại khi nút nhấn SW được thả ra và tụ nạp đến một giá trị nào đĩ. để chân reset của
PIC khơng cịn bị tác động.
Tính tốn: nguồn cung cấp cho mạch là 5V nên các IC thuộc họ CMOS sẽ hiểu
mức logic cao khi điện áp các chân ngõ vào là 3.5V, mức thấp là 1V. Do đĩ, để IC
thốt khỏi trạng thái reset (mức thấp) thì điện áp ở chân reset (điện áp trên R2) phải ≤
1V
Ta cĩ: VCC = 5V mà Vcc= VC + VR = VC + 1V
VC = 4V ; ( chọn VR=1V khi IC thốt khỏi trạng thái Reset )
Giả sử lúc chưa cĩ điện áp cung cấp, Vcc = 0V, Vc = 0V.
Khi cĩ điện áp Vcc =5V, tụ được nạp điện với phương trình nạp:
)1( RC
t
CCC eVV
với: = RC: thời hằng nạp của tụ.
t: thời gian tụ nạp đầy.
)1(54 RC
t
e
eRC
t
= 1 -
5
4 = 0.2
RC
t = 1,6
Chọn t = 0.13 s RC = 0.0812 s
Chọn C = 10 uF R =
C
= 8.12 K
Vậy, ta chọn R2 = 8.2 K .
Tính R1: Nhấn nút SW , tụ bắt đầu xã điện: VCC = 5V, (3V>VRESET =VR2)
Ta cĩ: VRESET = (VCC /(R1 + R2) x R1
R1 = (VCC .R2 – VRESET .R2)/VRESET = 10K
6.3. MẠCH ĐỆM DỊNG:
Sơ đồ mạch:
R1
R
R2
R
VCC
Q1
C1815
5V
D1
LED
Hình 6.3: Mạch đệm dịng
Về phương diện cơng suất chính là việc nâng dịng cho dữ liệu hàng và cột
nhằm đảm bảo yêu cầu về dịng qua led ma trận.
Đồ án dùng quang báo 8x48 ( tức 8 hàng, 48 cột), nguồn dương đưa vào cột nên
cĩ 48 mạch kéo dịng.
Tính tốn:
Tính R2
Khi Q1 dẫn bão hịa ta cĩ: Ib = k min
1I c ;( mà Ic1 Ib2)
Vì mach đệm dịng được thiết kế trên cột và quét theo hàng nên khi quét mỗi
cột chỉ sang một led.
Để mỗi led đơn của led ma trận sáng bình thường trong quá trình quét led ta
phân cực như sau:
Ic = 20mA
VLed = 2V
Trong đĩ: IR: dịng qua led ma trận
VLed : áp định mức đặt lên mỗi led
Ib = 3x(20/80) = 0.75(mA)
R2 = (Vcc – Vbe –Vled)/Ib= (5 – 0,8 – 2 )/0.75 =3 kΩ
Tính R1:
Khi Transistor C1815 dẫn bão hịa thì:
R1 = (Vcc – Vce – Vled )/Ic
= (5 – 0,2 – 2)/20
= 140 Ω
Chọn: R1 = 220 Ω, R2 = 3,3kΩ
CHƯƠNG 7
SƠ ĐỒ MẠCH VÀ NGUYÊN LÝ
HOẠT ĐỘNG
7.1 SƠ ĐỒ NGUYÊN LÝ
7.2 NGUYÊN LÝ HOẠT ĐỘNG
Khi khởi động nguồn quang báo, đầu tiên vi điều khiển sẽ cập nhật cấu hình
của quang báo trong đĩ cĩ font chữ, dữ liệu phơng hình, dữ liệu hiển thị trạng thái
điều khiển, trạng thái của phần lưu giữ liệu, cấu hình chạy chữ
Do khởi động mặc định là chữ chạy trước nên sau khi cập nhật cấu hình quang
báo xong, chương trình sẽ dựa vào cấu hình chạy chữ mà thực hiện.
Nếu khơng cĩ sự kiện nào phát sinh thì quang báo sẽ chạy vịng lặp hiển thị là
vơ tận.
Việc hiển thị trên bảng led là động. Tức là trong một thời điểm chỉ cĩ một
hàng được sáng. Nhưng khi quét nhanh ở tần số 50Hz trở lên thì mắt thường coi như
là sáng liên tục trên tồn bảng.
Kỹ thuật quét led :
Là cấp tín hiệu điều khiển theo dạng xung theo kiểu quét cho các hàng cần
hiển thị tần số quét nhỏ nhất cho mỗi chu kỳ cần khoảng 25Hz (40ms) nhằm bảo đảm
cho mắt thấy các led sáng đều khơng nhấp nháy.
Dữ liệu phơng chữ, hình được đổ qua cột.
Khi quét hết 48 cột thì được một hình.
Khi chạy chữ chỉ cần hiển thị một hình khác đã được dịch đi một cột (hoặc
hàng).
CHƯƠNG 8
LƯU ĐỒ GIẢI THUẬT VÀ
CHƯƠNG TRÌNH HOẠT ĐỘNG
Ý TƯỞNG THIẾT KẾ PHẦN MỀM:
Bảng quang báo chạy text với font tiếng Việt và tiếng Anh, chạy từ trái sang
phải, từ phải sang trái, chạy từ trên xuống dưới, từ dưới lên trên.
Tạo font chữ và giải mã.
Vi điều khiển lưu vào vùng nhớ trong ROM sau đĩ vi điều khiển lấy dữ liệu
điều khiển hiển thị ra màn hình led ma trận thơng qua mạch cơng suất và mạch hiển
thị.
8.1. LƯU ĐỒ GIẢI THUẬT.
1 .Quy trình hoạt động của hệ thống:
Hình 8.1 Quy trình hoạt động của hệ thống
2.Lưu đồ chương trình chính:
Hình 8.2: Lưu đồ chương trình chính.
3. Lưu đồ chương trình: chạy_chữ.
Hình 8.5: Lưu đồ chương trình chạy_chữ.
8.2. CHƯƠNG TRÌNH HOẠT ĐỘNG.
#include
#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,
NOLVP, NOCPD, NOWRT
#use delay(clock=12000000)
//khai bao mang
int const
quet[]={0b11111110,0b11111101,0b11111011,0b11110111,0b11101111,0b11011
111,0b10111111,0b01111111};
int const mang0[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,128,190,72,72,72,72,136,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,156,162,130,186,34,28,
0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,145,81,95,81,81,145,
0,0,0,0,152,164,132,152,160,36,24,
0,0,0,0,0,2,2,2,2,2,94,
0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,0,0,0
};
int const mang1[]={0,0,0,0,0,0,0,0,
0,128,142,82,87,82,82,142,
0,0,0,17,10,251,36,36,36,36,35,
0,0,0,0,206,81,65,225,65,81,206,
0,0,0,0,0,40,40,232,40,37,34,
0,0,0,0,0,147,148,144,151,148,99,
0,0,0,0,0,147,180,212,148,148,147,
0,0,0,0,232,136,136,136,136,133,130,
0,0,0,0,0,145,83,85,89,81,145,
0,0,0,0,0,195,36,32,39,36,203,
0,0,0,0,0,0,0,0
};
int const mang2[]={0,0,0,0,0,0,0,0,
5,10,131,68,68,196,68,67,
0,0,0,0,0,68,76,84,100,68,68,
0,0,0,0,243,20,20,125,20,20,243,
0,0,0,0,0,122,138,139,138,138,122,
0,0,0,0,0,162,162,156,136,136,136,
0,0,0,0,0,28,34,2,58,34,28,
0,0,0,0,139,136,136,248,136,136,136,
0,0,0,0,0,227,20,16,23,20,227,
0,0,0,0,0,137,138,248,136,138,137,
0,0,0,0,0,0,0,0
};
int const mang3[]={0,0,0,0,0,0,0,0,
4,2,137,154,170,203,138,138,
0,0,0,0,0,78,81,193,89,81,78,
0,0,0,0,62,9,9,9,9,9,8,
0,0,0,0,0,0,2,0,0,2,0 ,
0,0,0,0,0,151,176,211,144,144,151,
0,0,0,0,0,78,209,81,95,81,81,
0,0,0,0,0,4,0,0,0,4,0,
0,0,0,0,0,56,69,5,5,69,56,
0,0,0,0,0,242,66,66,66,66,66,
0,0,0,0,0,0,0,0
};
int const mang4[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,64,160,234,42,235,42,42,234,64,
0,0,0,28,162,162,162,162,162,28,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,124,16,16,16,16,16,
0,0,0,0,0,20,20,245,22,20,20,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,34,162,190,162,162,162,
0,0,0,0,0,157,162,162,190,162,162,
0,0,0,0,0,0,0,0
};
int const mang5[]={0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,
0,0,0,0,0,29,36,36,28,4,5,
0,0,0,0,7,8,0,7,8,8,7,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,81,81,95,81,81,81,
0,0,0,0,0,1,1,1,1,1,1 ,
0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,147,180,212,151,148,148 ,
0,0,0,0,0,8,13,10,8,8,8 ,
0,0,0,0,0,0,0,0
};
void chot0()
{
output_high(pin_c0);
output_low(pin_c0);
}
void chot1()
{
output_high(pin_c1);
output_low(pin_c1);
}
void chot2()
{
output_high(pin_c2);
output_low(pin_c2);
}
void chot3()
{
output_high(pin_c3);
output_low(pin_c3);
}
void chot4()
{
output_high(pin_c4);
output_low(pin_c4);
}
void chot5()
{
output_high(pin_c5);
output_low(pin_c5);
}
void main(void)
{
int m,i,a;
set_tris_b(0x00);
set_tris_c(0x00);
set_tris_d(0x00);
output_b(0x00);
output_c(0x00);
output_d(0x00);
while(1)
{
for(m=0;m<=20;m++)
{
for(i=0;i<=7;i++)
{
output_b(mang0[a+i]);
chot0();
output_b(mang1[a+i]);
chot1();
output_b(mang2[a+i]);
chot2();
output_b(mang3[a+i]);
chot3();
output_b(mang4[a+i]);
chot4();
output_b(mang5[a+i]);
chot5();
output_d(quet[i]);
delay_ms(2);
output_b(0x00);
chot0();
chot1();
chot2();
chot3();
chot4();
chot5();
output_d(0xff);
delay_us(2);
}
}
a++;
if(a==104)
a=0;
}
}
CHƯƠNG 9
TỔNG KẾT
Sau 4 tuần nghiên cứu và thực hiện với nhiều nỗ lực và cố gắng của nhĩm thực
hiện đề tài cùng với sự hướng dẫn tận tình của cơ Bùi Thị Kim Chi, quyển đồ án này
đã hồn thành với những nội dung như sau:
9.1. CÁC VẤN ĐỀ ĐÃ ĐƯỢC GIẢI QUYẾT TRONG ĐỒ ÁN:
Các vấn đề đã nghiên cứu:
Nghiên cứu vi điều khiển PIC 16F877A
Nghiên cứu cách quét led ma trận.
Thiết kế và thi cơng mơ hình một bảng quang báo.
Nghiên cứu ngơn ngữ lập trình C.
Các vấn đề đã thực hiện:
Lập trình điều khiển vi điều khiển PIC 16F877A bằng ngơn ngữ C.
Lập trình điều khiển led ma trận theo cách quét hàng.
Kết quả thực nghiệm và đánh giá mơ hình:
Thời gian nghiên cứu và thi cơng khơng nhiều nên phần thiết kế vẫn chưa tối ưu
về tính thẩm mỹ và hiệu quả kinh tế nhưng vẫn đảm bảo mơ hình họat động tốt. Độ
sáng của quang báo là cĩ thể chấp nhận được, nội dung cần hiển thị và cĩ khả năng
thay đổi được .
Hình 9.8: Bảng quang báo 8x48 điểm ảnh.
8.2. ƯU VÀ NHƯỢC ĐIỂM CỦA THI CƠNG MẠCH:
Ưu Điểm:
Chữ hiển thị rõ ràng, tốc độ di chuyển vừa phải.
Mạch hoạt động ổn định trong thời gian dài.
Nhược Điểm:
Khi muốn thay đổi kiểu hiển thị cần phải nạp lại chương trình tức tác
động trực tiếp trên board.
Các phương hướng phát triển đề tài:
Tăng kích thước của mạch quang báo cho phù hợp với thực tế sử dụng.
Sử dụng nhiều font chữ để làm phong phú hơn bảng quang báo.
Giao tiếp với máy tính .
Tạo bảng led ma trận bằng led out door để đáp ứng nhu cầu sử dụng.
KẾT LUẬN:
Đề tài: “QUANG BÁO HIỂN THỊ LED MA TRẬN”. Đề tài đã trình bày được
nguyên tắc hoạt động cơ bản của một mạch quang báo, giới thiệu về cách sử dụng
cũng như sơ đồ chân, sơ đồ nội bộ của các IC số dùng trong mạch.
Nhĩm thực hiện đề tài xin chân thành cảm ơn quý thầy cơ cùng các bạn sinh
viên, đã đĩng gĩp rất nhiều ý kiến, cơng sức quý báu trong quá trình nhĩm thực hiện
đề tài này.
Đặc biệt là cơ NGUYỄN THỊ HỒNG ÁNH, đã nhiệt tình hướng dẫn, chỉ bảo
những kinh nghiệm, kiến thức thực tế để đề tài được hồn thành nhanh chĩng.
Tuy nhiên, do cịn hạn chế về thời gian và trình độ nên đề tài khơng tránh khỏi
nhiều sai sĩt, nhĩm rất mong nhận được sự đĩng gĩp ý kiến chân tình của quý thầy cơ
và các bạn để đề tài được hồn chỉnh hơn.
PHẦN II
PHỤ LỤC
GIỚI THIỆU VỀ LẬP TRÌNH C CHO PIC 16F877A
I.Giới thiệu
C là một ngơn ngữ khá mạnh và rất nhiều ngưịi dùng.C là một ngơn ngữ lập trình
đa dụng,cấp cao cĩ những khả năng thực hiện những thao tác khá sâu như hợp ngữ
(Assembly language).Chính nhờ tính tổng quát và linh hoạt đĩ mà C được xem là ngơn
ngữ lập trình chuỵên nghiệp rất hiệu quả và tiện lợi,lập trình C cho vxl chúng ta chỉ
cần biết số lượng lệnh khơng nhiều .
Đầu tiên bạn phải làm quen với
Các kiểu tốn tử ở C
Các kiểu dữ liệu
Cẩu trúc cơ bản của một chương trình
Các cấu trúc điều khiển (chính các tập lệnh )
Cấu trúc điều kiện : if và else
Các cấu trúc lặp
Vịng lặp while
Vịng lặp do while
Vịng lặp for
Lệnh break.
Cấu trúc lựa chọn: switch. case
Biết sử dụng các hàm và chương trình con .
II.Cơ bản C
1. Các chỉ thị trước xử lý của C
// chu thich
/********** chu thich******************
*************************************** */
Đây là dịng chú thích. Tất cả các dịng bắt đầu bằng hai dấu sổ (//) được coi là chú
thích
chúng khơng cĩ bất kì một ảnh hưởng nào đến hoạt động của chương trình. Chúng cĩ
thể
được các lập trình viên dùng để giải thích hay bình phẩm bên trong mã nguồn của
chương
trình. Trong trường hợp này, dịng chú thích là một giải thích ngắn gọn những gì mà
chương
trình chúng ta làm. Cịn trong dấu (/* */) bạn cĩ thể chú thích bao nhiêu dịng tuỳ thích
#include
hoặc
#include "16F877A.H"
trình biên dịch sẽ gọi file thư viện của 16F877A ra
#include ;// khai báo cho tốn học
#include ;// khai báo cho chương trình dịch hỗ trợ cho PIC
#include ;// khai báo cổng ra,vào
#define bien_thay_the bien
2. Các tốn tử :
->Tốn tử gán (=).
Ex: b = 5;
a = 2 + b;
a = 2 + (b = 5);
a = b = c = 5;
->Các tốn tử số học ( +, -, *, /, % )
+ cộng
- trừ
* nhân
/ chia
% lấy phần dư (trong phép chia)
->Các tốn tử gán phức hợp (+=, -=, *=, /=, %=, >>=, <<=, &=, ^=, |=)
value += increase; tương đương với value = value + increase;
a -= 5; tương đương với a = a - 5;
a /= b; tương đương với a = a / b;
price *= units + 1; tương đương với price = price * (units + 1);
Tăng và giảm ++ - -
a++; a+=1; a=a+1;
tính chất tiền tố hoặc hậu tố (++a) # (a++)
Ex:
B=3;
B=3;A=++B;
// A is 4, B is 4
B=3;
A=B++;
// A is 3, B is 4
-> Các tốn tử quan hệ ( ==, !=, >, =, <= )
== Bằng
!= Khác
> Lớn hơn
< Nhỏ hơn
> = Lớn hơn hoặc bằng
< = Nhỏ hơn hoặc bằng
3. Các kiểu dữ liệu
Các kiểu biến.chuẩn
type bits byte phạm vi
char 8 1 -127 to 128
unsigned char 8 1 0 to 255
int 16 2 -32,768 to 32,767
unsigned int 16 2 0 to 65,535
Kiểu dữ liệu trong Keil C
type bits byte phạm vi
bit 1 0 0 to1
sbit 1 0 0 to1
sfr 8 1 0 to 255
sf16 16 2 0 to 65,535
4. Cấu trúc cơ bản của 1 chương trình C
Cac cấu trúc lệnh
_while (expr) stmt : xét điều kiện trước rồi thực thi biểu thức sau .
_ do stmt while (expr) : thực thi biểu thức trước rồi xét điều kiện sau .
_Return : dùng cho hàm cĩ trả về trị, hoặc khơng trả về trị cũng được, khi đĩ chỉ cần dùng :
return ; ( nghĩa là thốt khỏi hàm tại đĩ).
_Break : ngắt ngang (thốt khỏi) vịng lặp while. _Continue : quay trở về đầu vịng lặp while .
Các chỉ thị tiền định
#include //Gọi thư viện cĩ sẵn cách viết khác "*.h"
#define led1 PORTA.0 //dùng định nghĩa các biến
char bien1,bien2; //cac bien can dung
int a,b;
void chuongtrinhcon(unsigned int b) // chuong trinh con
{
…
}
int ham(void) // chuong trinh con dang ham
{
….
Return(a);
}
{
int a; // khai bao bien dang so nguyen
chuongtrinhcon();
a = ham();
}
Khai báo ngắt
void main // chuong trinh chinh
{
...
while(1) //vong lap vo tan sau khi thuc hien xong cong viec
}
void ngat0(void) interrupt 0 // chuong trinh ngat
{
Khai báo Timer
void delay(unsigned char time)
{
while(time--)
{
TMOD=0x01;
TR0=0;
TH0 = 0xFF;// nạp giá trị cho timer
TL0 = 0xFF; nạp giá trị cho timer
TF0=0;
TR0 = 1; // Chạy bộ định thời
while(!TF0); // chờ khi nào cờ TF0 =1
}
TÀI LIỆU THAM KHẢO
[1] Hồ Trung Mỹ – Giáo trình Quang điện tử.Đại học Bách khoa Tp.Hồ Chí
Minh.
[2] Ngơ Diên Tập – Vi điều khiển với lập trình - Nhà xuất bản Khoa học và
Kỹ thuật Hà Nội
[3] W.Buchanan – C for Electronic Engineering
[4] Tài liệu PIC 16F877A_Nguyễn Văn Xuân
[5] Báo Cáo PIC 16F877A_Nguyễn Chí Linh
[6] www.Microchip.com
[7] www.diendandientu.net
[8] www.datasheet.com
[9] www.picvietnam.com
q45
d4
Q27
Q47
VCC
VCC
q17
d1
VCC
p24
d7
Q5
VCC
p17
R9
VCC
d2
b1
VCC
q4 q2
2
q4
0
b7
q41
d4
b7
d3
VCC
p4
q3
d5
d4
d3
q6
p20
Q12
VCC
d5
R16
Q50
VCC
q33
p31
b5
R23
VCC
p48
p30
d2
d6
SO DO NGUYEN LI
p35
p13
q1
3
q2
4
VCC
p11
p35
d1
p27
q6
q34
q9
U11
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
VC
C
D8
DIODE
VCC
p34
p5
b8
Q45
VCC
p48
q27
d2
b6
C3
104
VCC
VCC
q36
q4
5
d1
VCC
VCC
p3
q1
9
b3
p15
b2
b3
Q16
R27
b3
p41
q39
q2
9
q4
2
U15 LM7805
1 3
2
IN OUT
G
N
D
p42
d1
b6
d1
b8
b8
U12
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
VC
C
p38
p11
q2
8
Q49
q9
d2
R44
VCC
VCC
p44
d1
Q39
R18
p9
d6
Q38
KHOI CONG SUAT
VCC
q7
d4
SW1
SW_PB_SPST
q30
q10
q14
d6d7
VCC
d6
p29
VCC
p23
p26
R8
R15
VCC
p14
p3
q1
4
q3
6
d7
d1
R19
U3
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
RN2
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
q20
q21
b4
Q34
q3
9
b4
b7
b2
Q19
p12
U1
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
p13
d4
Q4
U5
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
R4
470
VCC
VCC
p15
q44
b6
Q3
C1815
R34
VCC
p22
q2
0
q3
3
b7
Q8
R42
R36
VCC
q3
7
d7 d8 d2d6
R37
U13
PIC16F877A
11
12
14
32
13
31
2
3
1
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
Vd
d
G
N
DOSC2/CLKOUT
M
C
LR
/V
P
P
OSC1/CLK
GND
RA0/ANO
RA1/AN1
VDD/MCLR
RA2/AN2
RA3/AN3
RA4/TOCK/C1OUT
RA5/AN4
RB0/INT
RB1
RB2
RB3
RB4
RB5
RB6/BGC
RB7/BGD
RC0/T1OSO/
RC1/T1OSI
RC2/CCP1
RC3/SCK/SCL
RC4/SDA/SDI
RC5/SD0
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD/AN5
RE1/WR/AN6
RE2/CS/AN7
q11
p22
p16
p39
q2
1
d5
b7
b4
b8
Q15
VCC
q28
q18
q1
6
d7
R17
Q35
KHOI NGUON
p21
p9
q37
R10
Y1
12MHz
RXV
R51
RN3
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
VCC
VCC
q2
3
d4
Q17
U2
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
Q42
p33
q32
q3
2
d6
R39
RN6
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
VCC
VCC
q29
b4
d3
p40
p45
p45
q4
4
R29
VCC
p21
p26
d7
Q41
VCC
q3
0
b3
b2
d5
R25
R43
p40
p18
VCC
q15
d5
Q31
U9
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
V
C
C
q2
q1
TXV
D2
b6
d8
b5
b6
VCC
b1
d3
R10
1k
q42
p10
d3
b4
R21
C13
33P
R45
VCC
p32
b6
C4
104
KHOI DIEU KHIEN
p43
p44
q4
1
R20
R38
VCC
Q28
U6
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
p42
d5d8
R7
q26
b2
b6
Q37
U7
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
VC
C
R6
VCC
p28
q5
R33
R3
R
VCC
q2
5
d3
q1
2
b2
Q36
KHOI HIEN THI
p36
q12
U8
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
VC
C
Q11
R50
R46
p1
p2
d3
d8
R49
R28
VCC
p18
b8
d4
R30
VCC
q4
p4
p19
Q21
Q26
Q48
q47
q8
p6
b8
b3
Q24
VCC
q5 q2
7
Q30
R13
R14
p7
p12
p36
q2
b5
Q25
q3
d5
p17
p31
p37
q23
d3
R12
p33
q4
7
d8
b1
R40
Q44
q46
q13
q35
d7
b5
b5
p29
d1
p28
p7
q1
0
d4
U4
Matrix
1215
2
8
11
105
1 6 13
16
4
93
147
1215
2
8
11
105
1 6 13
16
4
93
147
p37
p32
b3
d2
J15
CON2
1
2
C14
33P
U10
74HC573
2
3
4
5
6
7
8
9
11
1
19
18
17
16
15
14
13
12
10
20
D0
D1
D2
D3
D4
D5
D6
D7
LE
OE
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7
G
N
D
V
C
C
q31
q1
R5
RN5
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
VCC
q16
p47
d8
Q7
VCC
p8
q4
8
b5
b4
b4
b8
Q18
p19
q2
6
VCC
p38
R41
q25
p47
q1
1
d8
b2
d6
R26
R22
q4
6
d5
R47
b1
d7
Q43
Q10 R35
q48
p1
p27
q3
1
p10
p46
q3
5
Q33
RN1
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
Q14 Q22
p8
q1
8
b1
Q23
- +
D1
RS403L
2
1
3
4
VCC
q8
R31
R48
p43
p23
b7
C4
10uf /25V
VCC
p5
p20
q1
7
Q13
VCC
p46
b1
VCC
p2
q3
8
R11
Q46
C1
1000uf /25V
VCC
p24
q40
p39
d8
RN4
R-PACK
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
q3
4
d2
Q6
R24
p41
p6
q1
5
d2
Q20
C2
10uF/25V
Q40
Q9
p30
q19
q4
3
b2
VCC
b3
b1
R32
VCC
p16
p25
b7 q43
q38
p34
b5
Q29
q22
p25
q7
p14
q24
d6
R3
1K
Các file đính kèm theo tài liệu này:
- tt_3953.pdf