Tài liệu Đề tài Quang báo nhập từ bàn phím ma trận: NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Chữ ký của giáo viên
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Chữ ký của giáo viên
Trong đời sống hiện đại ngày nay, quảng cáo là một phần không thể thiếu trong nhịp sống bùng nổ công nghệ thông tin như hiện nay. Ở bất cứ nơi đâu ta cũng bắt gặp những biển quảng cáo từ đơn giản, thủ công cho đến những biển quảng cáo điện tử hiện đại, thẩm mỹ. Đó là những bảng quảng cáo điện tử mà chúng ta gọi là những bảng đèn quang báo. Công nghệ điện tử này còn được sử dụng trong nhiều lĩnh vực như những biển báo giao thông, những bảng điểm trên những sàn giao dịch chứng khoán,hay tại các sân bay, siêu thị... Những bảng quang báo này góp phần làm cho thành phố chúng ta có được một bộ mặt của một thành phố hiện đại và văn minh. Tác dụng của bảng quang báo là khá to lớn. Chính điều đó đã thôi thúc chúng tôi thực hiện được đề tài tìm hiểu về quang báo “ Điều khiển 1 dòng quang báo bằng bàn phím matrix ”.
A....
60 trang |
Chia sẻ: haohao | Lượt xem: 1418 | Lượt tải: 3
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Quang báo nhập từ bàn phím ma trận, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Chữ ký của giáo viên
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Chữ ký của giáo viên
Trong đời sống hiện đại ngày nay, quảng cáo là một phần không thể thiếu trong nhịp sống bùng nổ công nghệ thông tin như hiện nay. Ở bất cứ nơi đâu ta cũng bắt gặp những biển quảng cáo từ đơn giản, thủ công cho đến những biển quảng cáo điện tử hiện đại, thẩm mỹ. Đó là những bảng quảng cáo điện tử mà chúng ta gọi là những bảng đèn quang báo. Công nghệ điện tử này còn được sử dụng trong nhiều lĩnh vực như những biển báo giao thông, những bảng điểm trên những sàn giao dịch chứng khoán,hay tại các sân bay, siêu thị... Những bảng quang báo này góp phần làm cho thành phố chúng ta có được một bộ mặt của một thành phố hiện đại và văn minh. Tác dụng của bảng quang báo là khá to lớn. Chính điều đó đã thôi thúc chúng tôi thực hiện được đề tài tìm hiểu về quang báo “ Điều khiển 1 dòng quang báo bằng bàn phím matrix ”.
A. Giới thiệu phần cứng:
Khối điều khiển trung tâm ( CPU ) :
Vi điều khiển 89V51RB2. Với 4 Port điều khiển.
1.Sơ đồ khối của một hệ vi xử lý:
Định nghĩa hệ vi xử lý:
Khả năng được lập trình để thao tác trên các dữ liệu mà không cần sự can thiệp của con người.
Khả năng lưu trữ và phục hồi dữ liệu.
Tổng quát hệ vi xử lý gồm:
Phần cứng (hardware): các thiết bị ngoại vi để giao tiếp với con người.
Phần mềm (software):chương trình để xử lý dữ liệu.
CPU (Central Processing Unit): đơn vị xử lý trung tâm.
RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên.
Rom (Read Only Memory): bộ nhớ chỉ đọc.
Interface Circuitry: mạch điện giao tiếp.
Peripheral Devices (Input): các thiết bị ngoại vi (thiết bị nhập)
Peripheral Devices (Output): các thiết bị ngoại vi (thiết bị xuất).
Addressbus: bus địa chỉ.
Data bus: bus dữ liệu.
Control bus: bus điều khiển.
2.Đơn vị xử lý trung tâm:
CPU đóng vai trò chủ đạo trong hệ vi xử lý, nó quảnlý tất cả các hoạt động của hệ và thựchiện tất cả các thao tác trên dữ liệu.
CPU là một vi mạch điện tử có độ tích hợp ca. Khi hoạt động CPU đọc mã lệnh được ghi dưới dạng cácbit 0 và bit 1 từ bộ nhớ, sau đó nó sẽ thực hiện giải mã các lệnh này thành các dãy xung điều khiển tương ứng với các thao táctrong lệnhđể điều khiển cáckhối khác thực hiện từng bước các thao tác đóvà từ đó tạo ra các xung điều khiển cho toàn hệ.
IR/IP (Instruction Register/Intruction Pointer): thanh ghi lệnh/con trỏ lệnh.
PC (Program Counter): bộ đếm chươngtrình.
Instruction decode and control unit: đơn vị giải mã lệnh và điều khiển.
ALU (arithmetic and Logic Unit): đơn vị số học và logic.
Registers: Các thanh ghi.
Khi hoạt động CPU sẽ thực hiện liên tục 2 thao tác: tìm nạp lệnh và giãi mã - thực hiện lệnh.
Thao tác tìm nạp lệnh:
Nội dung của thanh ghi PC đượcCPU đưa lên bus địa chỉ.
Tín hiệu điều khiển đọc (Read) chuyển sang trạng thái tích cực.
Mã lệnh (Opcode) từ bộ nhớ được đưa lên bus dữ liệu.
Nội dung của thanh ghi PC tăng lên một đơn vị để chuẩn bị tìm nạp lệnh kế tiếp từ bộ nhớ.
Thao tác giải mã - thực hiện lệnh:
Mã lệnh từ thanh ghi IR được đưa vào đơn vị giải mã lệnh và điều khiển.
Đơn vị giải mã lệnh và điều khiển sẽ thực hiện giải mã opcode và tạo ra các tín hiệu để điều khhiển việc xuất nhập dữ liệu giữ ALU và cácthanh ghi.
Căn cứ trên các tín hiệu điều khiển này, ALU thực hịên các thao tác đã được xác định.
Một chuỗi các lệnh (Opcode) kết hợp lại với nhau để thực hiện một công việc có nghĩa được gọi là chương trình (Program) hay phần mềm.
Bộ nhớ bán dẫn là một khác rất quan trọng của hệ vi xử lý, các chương trình và dữ liệu đều được lưu giữ trong bộ nhớ.
Bộ nhớ bán dẫn trong hệ vi xử lý gồm:
ROM: bộ nhớ chương trình _ lưu giữ chương trình điều khiển hoạt động của toàn hệ thống.
RAM: bộ nhớ dữ liệu _ lưu giữ dữ liệu, một phần chương trình điều khiển hệ thống, các ứng dụng và kết quả tính toán.
Sơ lược về cấu trúc và phân loại ROM – RAM:
ROM (Read Only Memory): bộ nhớ chỉ đọc
RAM (Random Access Memory): bộ nhớ truy xuất ngẫu nhiên (bộ nhớ ghi đọc)
3.Các chân của chip 89V51RB2:
3.1. Sơ đồ khối và chức năng các khối của chip 89V51RB2
CPU (Central Processing Unit): Đơn vị xử lý trung tâm tính toán và điều khiển quá trình hoạt động của hệ thống.
OSC (Oscillator): Mạch dao động _ tạo tín hiệu xung clock cung cấp cho các khối trong chip hoạt động.
Interrupt control: Điều khiển ngắt _ nhận tín hiệu ngắt từ bean ngoài (INT0\, INT1\), từ bộ định thời (TIMER0, TIMER1) và từ cổng nối tiếp (SERIAL PORT), lần lượt đưa các tín hiệu ngắt này đến CPU để xử lý.
Other registers: Các thanh ghi khác _ lưu trữ dữ liệu của các port xuất/nhập, trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống.
RAM (Random Access Memory): Bộ nhớ dữ liệu trong chip lưu trữ các dữ liệu.
ROM (Read Only Memory): Bộ nhớ chương trình trong chip lưu trữ chương trình hoạt động của chip.
I/O ports (In/Out ports): Các port xuất/nhập _ điều khiển việc xuất nhập dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3.
Serial port: Port nối tiếp _ điều khiển việc xuất nhập dữ liệu dưới dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD.
Timer 0, Timer 1: Bộ định thời 0, 1 _ dùng để định thời gian hoặc đếm sự kiện (đếm xung) thông qua các chân T0, T1.
Bus control: Điều khiển bus _ điều khiển hoạt động của hệ thống bus và việc di chuyển thông tin trên hệ thống bus.
Bus system: Hệ thống bus _ liên kết các khối trong chip lại với nhau.
3.2. Chức năng các chân của chip 8051
Chip 89V51 :gồm 40 chân
2 chân nguồn cấp điện (VCC, VSS)
32 chân xuất/nhập
6 chân chức năng (EA, ALE, PSEN, XTAL1, XTAL2, RST)
Port xuất/nhập 8 bit (P0.0 – P0.7)
Port xuất/nhập 8 bit (P1.0 – P1.7)
Port xuất/nhập 8 bit (P2.0 – P2.7)
Port xuất/nhập 8 bit (P3.0 – P3.7)
Sơ đồ chân của chip 89V51RB2
Port 0:
- Port 0 (P0.0 – P0.7) có số chân từ 32 – 39.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P0.0 - P0.7) không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7) có sử dụng bộ nhớ ngoài.
+ Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử dụng các điện trở kéo lên bên ngoài.
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vào của dữ liệu (D0 -> D7)
Port 1:
- Port 1 (P1.0 – P1.7) có số chân từ 1 – 8.
- Port 1 có một chức năng:
• Port xuất nhập dữ liệu (P1.0 – P1.7) _ sử dụng hoặc không sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte thấp (A0 – A7)
Port 2:
- Port 2 (P2.0 – P2.7) có số chân từ 21 – 28.
- Port 2 có hai chức năng:
• Port xuất nhập dữ liệu (P2.0 – P2.7) _ không sử dụng bộ nhớ ngoài.
• Bus địa chỉ byte cao (A8 – A15) _ có sử dụng bộ nhớ ngoài.
- Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vào của địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển
Port 3:
- Port 3 (P3.0 – P3.7) có số chân từ 10 – 17.
- Port 0 có hai chức năng:
• Port xuất nhập dữ liệu (P3.0 – P3.7) _ không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
• Các tín hiệu điều khiển _ có sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt.
- Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vào của các tín hiệu điều khiển
Chức năng của các chân Port3:
Bit
Tên
Địa chỉ bit
Chức năng
P3.0
RxD
B0H
Chân nhận dữ liệu của port nối tiếp
P3.1
TxD
B1H
Chân phát dữ liệu của port nối tiếp
P3.2
INT0\
B2H
Ngõ vào ngắt ngoài 0
P3.3
INT1\
B3H
Ngõ vào ngắt ngoài 1
P3.4
T0
B4H
Ngõ vào của bộ định thời đếm 0
P3.5
T1
B5H
Ngõ vào của bộ định thời đếm 1
P3.6
WR\
B6H
Điều khiển ghi bộ nhớ dữ liệu Ram ngoài
P3.7
RD\
B7H
Điều khiển đọc bộ nhớ dữ liệu Ram ngoài
Chân PSEN\:
- PSEN (Program Store Enable): cho phép bộ nhớ chương trình, chân số 29.
- Chức năng:
• Là tín hiệu cho phép truy xuất (đọc) bộ nhớ chương trình (ROM) ngoài.
• Là tín hiệu xuất, tích cực mức thấp.
PSEN\ = 0 _ trong thời gian CPU tìm-nạp lệnh từ ROM ngoài.
PSEN\ = 1 _ CPU sử dụng ROM trong (không sử dụng ROM ngoài).
- Khi sử dụng bộ nhớ chương trình bên ngoài, chân PSEN\ thường được nối với chân OE\ của ROM ngoài để cho phép CPU đọc mã lệnh từ ROM ngoài.
Chân ALE:
- ALE (Address Latch Enable): cho phép chốt địa chỉ, chân số 30.
- Chức năng:
• Là tín hiệu cho phép chốt địa chỉ để thực hiện việc giải đa hợp cho bus địa chỉ byte thấp và bus dữ liệu đa hợp
(AD0 – AD7).
• Là tín hiệu xuất, tích cực mức cao.
ALE = 0 _ trong thời gian bus AD0 – AD7 đóng vai trò là bus D0 – D7.
ALE = 1 _ trong thời gian bus AD0 – AD7 đóng vai trò là bus A0 – A7.
- Khi lập trình cho ROM trong chip thì chân ALE đóng vai trò là ngõ vào của xung lập trình (PGM\)
Khi lệnh lấy dữ liệu từ RAM ngoài (MOVX) được thực hiện thì 1 xung ALE bị bỏ qua
Chân EA\:
- EA (External Access): truy xuất ngoài, chân số 31.
- Chức năng:
• Là tín hiệu cho phép truy xuất (sử dụng) bộ nhớ chương trình (ROM) ngoài.
• Là tín hiệu nhập, tích cực mức thấp.
EA\ = 0 _ Chip 8051 sử dụng chương trình của ROM ngoài.
EA\ = 1 _ Chip 8051 sử dụng chương trình của ROM trong.
- Khi lập trình cho ROM trong chip thì chân EA đóng vai trò là ngõ vào của điện áp lập trình (Vpp = 12V/89xx, 21V/80xx,87xx)
+ Lưu ý: Chân EA\ luôn luôn phải được nối lên Vcc (sử dụng chương trình của ROM trong) hoặc xuống Vss (sử dụng chương trình của ROM ngoài).
Chân XTAL1, XTAL2:
- XTAL (Crystal): tinh thể thạch anh, chân số 18-19.
- Chức năng:
• Dùng để nối với thạch anh hoặc mạch dao động tạo xung clock bên ngoài, cung cấp tín hiệu xung clock cho chip hoạt động.
• XTAL1 _ ngõ vào mạch tạo xung clock trong chip.
• XTAL2 _ ngõ ra mạch tạo xung clock trong chip.
Chân RST:
- RST (Reset): thiết lập lại, chân số 9.
- Chức năng:
• Là tín hiệu cho phép thiết lặp (đặt) lại trạng thái ban đầu cho hệ thống.
• Là tín hiệu nhập, tích cực mức cao.
RST = 0 _ Chip 8051 hoạt động bình thường.
RST = 1 _ Chip 8051 được thiết lặp lại trạng thái ban đầu.
Chân Vcc, GND:
- Vcc, GND: nguồn cấp điện, chân số 40-20.
- Chức năng:
• Cung cấp nguồn điện cho chip 89V51 hoạt động.
• Vcc = +5V ± 10%.
• GND = 0V.
Tổ chức bộ nhớ
- Bộ vi xử lý có không gian bộ nhớ chung cho dữ liệu vàchương trình
- Chương trình và dữ liệu nằm chung trên RAM.
- Bộ vi điều khiển có không gian bộ nhớ riêng cho dữ liệu vàchương trình.
- Chương trình và dữ liệu nằm riêng trên ROM và RAM.
Tổ chức bộ nhớ của chip 89V51RB2:
Không gian bộ nhớ của chip 89V51RB2
IC74LS154:
IC 74LS154 là loại IC dùng để giải mã ,giải đa hợp (Decoder/Demultiplexer)
SƠ ĐỒ CHÂN IC74LS154
Chức năng các chân của IC 74ls154:
Chân 24,12(VCC,GND):dùng cấp nguuồn cho IC hoạt động .
Chân 18,19(G1,G2):các ngõ vào cho phép IC hoạt động,trong một thời điểm chỉ có 1 ic hoạt động,ic bị cấm hoạt động thì tất cả ngõ ra đều ở mức logic cao (bất chấp ngõ vào ở trạng thái nào).
Chân 23,22,21,20(A,B,C,D):các ngõ vào quy định trạng thái ngõ ra
Chân 1-11,13-15(O0-O15):các ngõ ra của ic
Tuỳ thuộc vào trạng thái của các đường địa chỉ mà ta có ngõ ra t ương ứng,khi cả hai ngõ vào G1,G2 ở mức logic thấp thì ic hoạt động bình thường ,tại một thời điểm chỉ có một ngõ ra ở mức logíc thấp ,tất cả các ngõ còn lại đều ở mức logic cao.
Sơ đồ bên trong ic 74ls154
Bảng trạng thái IC74LS154
H: HIGH Voltage Level.
L: LOW Voltage Level.
x: Don’t care.
Nguyên tắc hoạt động của IC 74ls154:
Dựa vào bảng trạng thái ta th ấy :chỉ cần ch ân G1,G2 ỏ trạng thái cấm (kh ông cho phép IC hoạt động)thì tất cả ngõ ra của Ic 74ls154 đều ở mức logic cao bất chấp trạng thái ở các chân địa ch ỉ (A,B,C,D).Chẳng hạn như khi chân G1 ở mức logic cao thì tất cả các ngõ ra của IC đều ở mức logic cao bất chấp trạng thái của các ch ân còn lại như G2,A,B,C,D.
Khi các đương địa chỉ vào từ 01H_08H thì mức logic thấp duy nhất ở ngõ ra sẽ di chuyển từ ngõ ra(O0_O7).
IC74LS00:
Ch ân 1,2,4,5,9,10,12,13:ngõ vào
Ch ân 3,6,8,11: ngõ ra
Ch ân 7,14:GND,VCC
Sơ đồ chân IC 74LS00:
Bảng trạng thái IC74LS00:
IC 7805(IC ổn áp):
VI
0,33µ F
0,1µF
7805
VO
1
2
3
7805
1
3
2
SƠ ĐỒ CHÂN
IC 7805
Ic 7805 là Ic ổn áp dương ,hai số sau chỉ điện áp ra cố định của nó ,ví dụ như 7805: ổn áp dưong có điện áp ngõ ra là 5V,7812:có điện áp ra là 12V…Tuỳ theo dòng điện ở ngõ ra ,người ta thêm chữ để chỉ :
78LXX:dòng điện danh định 100mA(L:Low)
78XX: dòng điện danh định là 1A
78HXX:dòng điện danh định là 5A(h:High)
B. Sơ đồ khối của mạch quang báo :
KHỐI VI ĐIỀU KHIỂN
KHỐI NGUỒN
KHỐI BÀN PHÍM
KHỐI HIỂN THỊ
BẢNG LED MA TRẬN
KHỐI PHÂN KÊNH
C. Chức năng của từng khối :
I. Khối vi điều khiển:
IC 89V51RB2 là khối điều khiển trung tâm ,khối này nhận tín hiệu điều khiển từ bàn phím thông qua Port 0 đồng thời cũng xuất dữ liệu cho khối phân kênh thông qua Port 2 để quét hàng và xuất dữ liệu hiển thị ra cột thông qua Port 1.
II. Khối phân kênh :
P2
Khối phân kênh dùng 2 IC 74LS154 dùng điều khiển hoạt động của 4 led ma trận. Việc dùng IC 74LS154 làm giảm bớt việc phải tốn Port ở khối CPU do IC này phân kênh 4 è 16 ( 2 IC sẽ được 32 đường điều khiển ).
III. Khối Led Matrix :
Khối led matrix với 4 led dùng để hiện được 4 ký tự.
Các Led ma được thiết kế theo kiểu cột nối chung(cột hiển thị màu đỏ riêng ,cột hiển thị màu xanh riêng) được nối với Port 1 để hiển thị ký tự,còn các hàng đuợc nối riêng theo từng Led để cấp tín hiệu quét.
IV. Khối phím Matrix:
Khối bàn phím này được thiết kế dựa vào cấu trúc hàng và cột của ma trận. Bàn phím gồm 16 phím được sắp xếp theo ma trận 4x4 (4 hàng x 4 cột). Các hàng và cột của ma trận phím này được kết nối với vi điều khiển thông qua đầu nối jack 8. R0-R3 các hàng của ma trận phím. C0-C3 các cột của ma trận phím.
V. Khối nguồn:
VI
0,33µ F
0,1µF
7805
VO
1
2
3
7805
1
3
2
SƠ ĐỒ CHÂN
IC 7805
Mạch ổn áp có điện áp ngõ ra cố định 5V sử dụng IC ổn áp 7805(ổn áp dương có điện áp ngõ ra là 5V,dòng điện ngõ ra đến 1A)
Các tụ 0,33 và 0,1uF dùng chống nhiễu .Phần tử điện trở công suất chủ yếu của mạch này là bảng đèn .Ic ổn áp 7805 chịu đựoc dòng đển 1A nên bảo đảm cung cấp dòng cho toàn mạch mà bản thân nó không bị quá dòng .Tuy nhiên ta cũng cần gắn tản nhiệt cho IC để nó hoạt đông ở điều kiện tốt nhất.
D. NGUYÊN LÝ HOẠT ĐỘNG:
I. Khối Led Matrix:
Loại Led ma trận sử dụng là Led 24 chân gồm 8 hàng và 8 cột.Ma trận Led có 2 màu chính là xanh và đỏ,ngoài ra còn có 1 màu phụ là màu cam khi kết hợp 2 màu trên lại.Mõi điểm Led trên ma trận có cấu tạo gồm 2 Led xanh và đỏ ghép lại theo nguyên tắc Anode chung còn Cathode để riêng.Ma trận Led 8 hàng x 8 cột gồm 24 chân được chia làm 3 nhóm chân : 8 hàng từ R0-R7( là các anode chung của các Led trên cùng 1 hàng, 8 cột đỏ C0R-C7R ( là các Cathode chung của các led màu đỏ trên cùng 1 cột) , 8 cột xanh C0X-C7X ( là các Cathode chung của các led màu xanh trên cùng 1 cột).Sự kết hợp các mức logic cao/thấp thích hợp trên các hàng và cột theo một quy luật nhất định mà ta sẽ có hình ảnh như mong muốn.
Phương pháp điều khiển: đầu tiên ta cấp tín hiệu sao cho hàng 1 sáng có nguồn rồi đưa ra mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra các cột.Kế tiếp ta cấp tín hiệu cho hàng 2 có nguồn rồi đưa mã nhị phân tương ứng của hình ảnh cần hiển thị tại hàng đó ra cột.Quá trình cứ diễn ra một cách tuần tự và liên tục như vậy và do hiện tượng lưu ảnh của mắt mà ta thấy được các Led dường như sáng như cùng một lúc để tạo ra hình ảnh mong muốn trên Led ma trận
- Các ngõ vào điều khiển hàng và cột đều sử dụng mức thấp để điều khiển.
II. Khối vi điều khiển:
Ở đây ta dùng con 89V51RB2, có 40 chân,gồm 4 Port dùng xuất nhập dữ liệu,mõi Port 8 chân; 2 chân nguồn 20 mass và 40 Vcc; 2 chân gắn thạch anh (chân 18,19);1 chân reset chân 9;chân 29 là chân cho phép bộ nhớ chương trình;chân 30 là chân chốt địa chỉ và cuối cùng chân 31 là chân cho phép truy xuất ngoài.
Để reset chíp ta dùng nút nhấn . Trong mạch,chúng ta có thể reset tự động bằng tụ hoặc reset bằng tay bởi nút nhấn.
III. Khối phím ma trận:
- Được thiết kế dựa trên cấu trúc hàng và cột của ma trận.Bàn phím gồm 16 phím được sắp xếp theo ma trận 4 x 4 (tức 4 hàng 4 cột).Các hàng và cột của ma trân phím này được kết nối với vi điều khiển thông qua Port 0.R0-R3 : các hàng của ma trận phím,C0-C3 : các cột của ma trận phím
Để điều khiển bàn phím ma trận nhày ta sử dụng phương pháp quét phím. Để điều khiển quét phím này ta xuất 1 dữ liệu 4 bit( trong đó 1 bit ở mức logic thấp và 3 bit ở mức logic cao) ra các cột của ma trận phím, đọc 4 bit dữ liệu các hàng của ma trận phím vào để kiểm tra xem có phím nào được ấn không.Nếu có phím ấn thì trong 4 bit đọc vào sẽ có một bit ở mức logic thấp và dựa trên cơ sở đó để thiết lập mã ấn phím.Nếu không có phím
ấn thì 4 bit đọc vào đều ở mức logic cao,khi đó ta chuyển mức logic thấp sang cột kế tiếp để dò tìm phím khác.
IV. Khối phân kênh:
P2
Khối phân kênh dùng 2 IC 74LS154 dùng điều khiển hoạt động của 4 led ma trận. Việc dùng IC 74LS154 làm giảm bớt việc phải tốn Port ở khối CPU do IC này phân kênh 4 è 16 ( 2 IC sẽ được 32 đường điều khiển ).
Nguyên lý hoạt động của khối phân kênh : Dùng 5 bit ở Port 2 để điều khiển. Trong đó, 4 bit dùng để điều khiển ngõ vào của cả hai IC 74LS154. Còn bit thứ 5 điều khiển cho phép trong một thời điểm chỉ có một IC hoạt động. Điều này thực hiện được nhờ vào IC cổng đảo 74LS00. Ngõ vào của cổng đảo sẽ được nối với bit thứ 5 và chân số 18,19 của IC thứ nhất. Ngõ ra được nối với chân số 18,19 con thứ 2của IC thứ hai.Khi bit thứ 5 ở mức 0 thì IC1 sẽ hoạt động điều khiển Led ma trận 1 và 2. Khi bit 5 ở mức 1 thì IC2 sẽ hoạt động điều khiển Led ma trận 3 và 4.
Bảng trạng thái IC74LS154
H: High Voltage Level
L: Low Voltage Level
X: Don’t Care
E. LƯU ĐỒ GIẢI THUẬT CHƯƠNG TRÌNH
I. Chương trình chính:
II. Chương trình hiển thị con trỏ:
III. Chương trình con quét phím :
Sơ đồ giải thuật quét phím , mỗi phím tương đương với 2 chữ cái trong bảng chữ cái
SCANKEYPAD
A = 01H
NEXT11
22Hß0, 23Hß0, 24Hß0, 25Hß0, 26Hß0, 27Hß0, 28Hß0, 29Hß0, 2AHß0, 2BHß0, 2CHß0, 2DHß0, 2EHß0, 2FHß0, 30Hß0
R7 ß 21H
INC R7
R7 = 1
CHUB
CHU_A
Đ9
Đ9
S
S
RET
21H ß R7
Phím A và B
SCANKEYPAD
A = 0DH
NEXT131
21Hß0,22Hß0, 23Hß0, 24Hß0, 25Hß0, 26Hß0, 27Hß0, 28Hß0, 29Hß0, 2AHß0, 2BHß0, 2CHß0, 2EHß0, 2FHß0, 30Hß0
R7 ß 2DH
CHUZ
CHU_Y
Đ9
Đ
S
S
INC R7
2DH ß R7
RET
NEXT131
A=00H
LCALL CHAY
Đ
S
R7=1
NEXT141
Phím Y và Z (tương tự cho các chữ cái khác)
Phím Enter
Hiển thị từng chữ cái lần lượt trên 4 vị trí con trỏ: )
VT_A2
TROVE
Đ9
S
VT_A3
32H ß 00
R2 = 1
TROVE
31H ß 00
Đ9
VT_A2
S
VT_A3
R2 = 2
33H ß 00
VT_A4
S
Đ9
R2 = 0
TROVE
34H ß 00
TROVE
VT_A4
Các chữ cái khác tương tự nhưng cơ sỡ dữ liệu sẽ lấy giống trong bảng chữ cái lưu trong ROM.Ví dụ,chữ B ,ta vẫn so sánh R2 nhưng khi nhập dữ liệu vào các ô nhớ 31H,32H,33H,34H lúc này sẽ được nạp vào giá trị là 08,hay chữ C là giá trị 16.
IV. GIẢI THÍCH HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH:
Trước tiên khi bước vào gọi chương trình chính của chương trình hiển thị con trỏ trên con Led thứ nhất.Tiếp tục gọi chương trình chính 1 để thực hiện các bước lấy và lưu dữ liệu vào RAM,tại cuối bước này ta thực hiện việc tăng R2 ( R2 là biến đếm để dịch chuyển vị trí con trỏ sang vị trí con Led kế tiếp).Thời gian để chuyển từ con Led này sang con Led kế tiếp được xác định bởi biến đếm R4 (R4 là biến đếm quy định thời gian để qua con Led kế tiếp).
Trong chương trình kiểm tra phím,sau khi dùng chương trình quét phím ma trận để coi có phím nào được nhấn hay không.Trong chương trình này,mõi phím trên bàn phím ma trận đều được lưu bằng 1 ô nhớ từ 21H đến 2DH trong bộ nhớ RAM nội con 89V51RB2.Mõi phím được dùng cho ra 2 chữ cái,thứ tự các chữ cái mà phím ấn được được ghi trên bề mặt bàn phím ma trận.Mõi phím lưu được 2 chữ cái khi bấm là do ta dùng biến đếm R7 để xác định chữ cái cần hiển thị ra.Chẳng hạn như chúng ta muốn nhấn chữ A,ta nhấn vào bàn phím nút hiển thị chữ A,nếu ta muốn hiển thị chữ B ta tiếp tục ấn vào phím vừa ấn sẽ hiển thị được chữ B.Lí do ở đây là chúng ta so sánh biến đếm R7,nếu R7 = 1 ( tương đương với phím đó được ấn 1 lần) sẽ hiện thị lên chữ A,khi ta ấn tiếp tức R7 = 2 thì chữ sẽ nhảy sang chữ B.Ta chỉcho phép một phím hiển thị 2 chữ cái nên khi ta ấn tiếp sau chữ B sẽ trở về hiện thị lại chữ A và cứ thế tiếp diễn.Trong chương trình này ta sử dụng 13 nút nhấn để lấy 26 chữ cái ( từ A đến Z) và 1 nút nhấn Enter dùng để cho chạy chữ sau khi đã tạo ra dòng 4 chữ cái. Ở cuối đoạn chương trình này chúng ta tăng biến đếm R4 để xác định thời gian dịch qua con Led kế tiếp .Chương trình dùng Port 0 để quét phím tạo mã.
Trong chương trình hiện thị chữ,ta dùng Port 1 làm Port xuất dữ liệu và Port 2 làm Port quét.Port 2 kết nối với khối phân kênh để điều khiển việc quét Led. Đây là chương trình dùng hiển thị các chữ cái có trong bảng mã có sẵn trong ROM nội IC 89V51RB2( từ A đến Z).Mõi lần quét qua được lưu vào trong 1 ô nhớ,tổng cộng cò 32 ô nhớ từ 40H đến 5FH để lưu các byte của các chữ cái được ấn trong chương trình kiểm tra phím.
Chương trình chạy là chương trình hiển thị ra các Byte của các chữ cái đã được lưu trữ trong RAM sau đó được cho dịch cột,giống như chương trính chạy lấy cơ sở dữ liệu từ ROM học lúc trước. Để khỏi bị lem trong quá trình dich cột thì ta phải nạp giá trị cho các ô nhớ từ 60H đến 7FH là 0FFH.
F. CHƯƠNG TRÌNH CHÍNH
$MOD51
org 00h
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV 31H,#216
MOV 32H,#216
MOV 33H,#216
MOV 34H,#216
MOV R7, #0
MOV R2,#0
MAIN:
MOV R4,#0
ACALL CONTRO
LCALL MAIN1
SJMP MAIN
;**************CHUONG TRINH CHINH ***********
MAIN1:
LCALL KTPHIM1
LCALL HIENTHI1
CJNE R4,#20,MAIN1
INC R2 ;VI TRI HIEN THI LED
RET
;****************CHUONG TRINH HIEN THI CON TRO****************
CONTRO:
CJNE R2,#0,VT_2
MOV 31H,#208
JMP HTH
VT_2:
CJNE R2,#1,VT_3
MOV 32H,#208
JMP HTH
VT_3:
CJNE R2,#2,VT_4
MOV 33H,#208
JMP HTH
VT_4:
CJNE R2,#3,VT_5
MOV 34H,#208
JMP HTH
VT_5:
LCALL NEXT131
JMP eexit
HTH:
LCALL HIENTHI1
eexit:
RET
;**********CHUONG TRINH KIEM TRA PHIM LED *******
KTPHIM1:
LCALL SCANKEYPAD
CJNE A,#01H,NEXT11
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,21H
INC R7
CJNE R7,#1,CHUB
LCALL CHU_A
MOV 21H, R7
RET
CHUB:
LCALL CHU_B
MOV 21H,#0
RET
;________________
NEXT11:
CJNE A,#02H,NEXT21
MOV 21H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,22H
INC R7
CJNE R7,#1,CHUD
LCALL CHU_C
MOV 22H, R7
RET
CHUD:
LCALL CHU_D
MOV 22H,#0
RET
;________________________
NEXT21:
CJNE A,#03H,NEXT31
MOV 21H,#0
MOV 22H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,23H
INC R7
CJNE R7,#1,CHUF
LCALL CHU_E
MOV 23H,R7
RET
CHUF:
LCALL CHU_F
MOV 23H,#0
RET
;_________________
NEXT31:
CJNE A,#04H,NEXT41
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,24H
INC R7
CJNE R7,#1,CHUH
LCALL CHU_G
MOV 24H,R7
RET
CHUH:
LCALL CHU_H
MOV 24H,#0
RET
;_____________________
NEXT41:
CJNE A,#05H,NEXT51
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,25H
INC R7
CJNE R7,#1,CHUJ
LCALL CHU_I
MOV 25H,R7
RET
CHUJ:
LCALL CHU_J
MOV 25H,#0
RET
;_________________________
NEXT51:
CJNE A,#06H,NEXT61
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,26H
INC R7
CJNE R7,#1,CHUL
LCALL CHU_K
MOV 26H, R7
RET
CHUL:
LCALL CHU_L
MOV 26H,#0
RET
;_________________________
NEXT61:
CJNE A,#07H,NEXT71
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,27H
INC R7
CJNE R7,#1,CHUN
LCALL CHU_M
MOV 27H, R7
RET
CHUN:
LCALL CHU_N
MOV 27H,#0
RET
;_________________________
NEXT71:
CJNE A,#08H,NEXT81
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,28H
INC R7
CJNE R7,#1,CHUP
LCALL CHU_O
MOV 28H, R7
RET
CHUP:
LCALL CHU_P
MOV 28H,#0
RET
;_________________________
NEXT81:
CJNE A,#09H,NEXT91
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,29H
INC R7
CJNE R7,#1,CHUR
LCALL CHU_Q
MOV 29H, R7
RET
CHUR:
LCALL CHU_R
MOV 29H,#0
RET
;__________________________
NEXT91:
CJNE A,#0AH,NEXT101
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2AH
INC R7
CJNE R7,#1,CHUT
LCALL CHU_S
MOV 2AH, R7
RET
CHUT:
LCALL CHU_T
MOV 2AH,#0
RET
;_________________________
NEXT101:
CJNE A,#0BH,NEXT111
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2CH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2BH
INC R7
CJNE R7,#1,CHUV
LCALL CHU_U
MOV 2BH, R7
RET
CHUV:
LCALL CHU_V
MOV 2BH,#0
RET
;_________________________
NEXT111:
CJNE A,#0CH,NEXT121
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2DH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2CH
INC R7
CJNE R7,#1,CHUX
LCALL CHU_W
MOV 2CH, R7
RET
CHUX:
LCALL CHU_X
MOV 2CH,#0
RET
;_________________________
NEXT121:
CJNE A,#0DH,NEXT131
MOV 21H,#0
MOV 22H,#0
MOV 23H,#0
MOV 24H,#0
MOV 25H,#0
MOV 26H,#0
MOV 27H,#0
MOV 28H,#0
MOV 29H,#0
MOV 2AH,#0
MOV 2BH,#0
MOV 2CH,#0
MOV 2EH,#0
MOV 2FH,#0
MOV 30H,#0
MOV R7,2DH
INC R7
CJNE R7,#1,CHUZ
LCALL CHU_Y
MOV 2DH, R7
RET
CHUZ:
LCALL CHU_Z
MOV 2DH,#0
RET
;**********************************************************
NEXT131:
CJNE A,#00H,NEXT141
PUSH 02H
MOV R2,#0
NHIEU:
lcall chay
INC R2
CJNE R2,#4,NHIEU
POP 02H
RET
NEXT141:
INC R4
RET
;******************CHUONG TRINH QUET PHIM MA TRAN*********
SCANKEYPAD:
PUSH 03H
MOV R3,#50
BACK:
ACALL QUETPHIM
JNC NOPRESSED
DJNZ R3,BACK
NOPRESSED:
POP 03H
RET
QUETPHIM:
PUSH 04H
PUSH 05H
PUSH 06H
MOV A,#0EFH
MOV R6,#4
TEST:
MOV P0,A
MOV R7,A
MOV A,P0
ANL A,#0FH
CJNE A,#0FH,KEYPRESSED
MOV A,R7
RL A
DJNZ R6,TEST
CLR C
SJMP EXIT
KEYPRESSED:
MOV R7,A
MOV A,#4
CLR C
SUBB A,R6
MOV R6,A
MOV A,R7
MOV R5,#4
AGAIN:
RRC A
JNC DONE
INC R6
INC R6
INC R6
DJNZ R5,AGAIN
DONE:
SETB C
MOV A,R6
EXIT:
POP 06H
POP 05H
POP 04H
RET
; ****************************
CHU_A:
CJNE R2,#0, VT_A2
MOV 31H,#00
LJMP TROVE
VT_A2:
CJNE R2, #1, VT_A3
MOV 32H,#00
LJMP TROVE
VT_A3:
CJNE R2,#2,VT_A4
MOV 33H,#00
LJMP TROVE
VT_A4:
MOV 34H,#00
LJMP TROVE
CHU_B:
CJNE R2,#0,VT_B2
MOV 31H,#08
LJMP TROVE
VT_B2:
CJNE R2,#1,VT_B3
MOV 32H,#08
LJMP TROVE
VT_B3:
CJNE R2,#2,VT_B4
MOV 33H,#08
LJMP TROVE
VT_B4:
MOV 34H,#08
LJMP TROVE
CHU_C:
CJNE R2,#0,VT_C2
MOV 31H,#16
LJMP TROVE
VT_C2:
CJNE R2,#1,VT_C3
MOV 32H,#16
LJMP TROVE
VT_C3:
CJNE R2,#2,VT_C4
MOV 33H,#16
LJMP TROVE
VT_C4:
MOV 34H,#16
LJMP TROVE
CHU_D:
CJNE R2,#0,VT_D2
MOV 31H,#24
LJMP TROVE
VT_D2:
CJNE R2,#1,VT_D3
MOV 32H,#24
LJMP TROVE
VT_D3:
CJNE R2,#2,VT_D4
MOV 33H,#24
LJMP TROVE
VT_D4:
MOV 34H,#24
LJMP TROVE
CHU_E:
CJNE R2,#0,VT_E2
MOV 31H,#32
LJMP TROVE
VT_E2:
CJNE R2,#1,VT_E3
MOV 32H,#32
LJMP TROVE
VT_E3:
CJNE R2,#2,VT_E4
MOV 33H,#32
LJMP TROVE
VT_E4:
MOV 34H,#32
LJMP TROVE
CHU_F:
CJNE R2,#0,VT_F2
MOV 31H,#40
LJMP TROVE
VT_F2:
CJNE R2,#1,VT_F3
MOV 32H,#40
LJMP TROVE
VT_F3:
CJNE R2,#2,VT_F4
MOV 33H,#40
LJMP TROVE
VT_F4:
MOV 34H,#40
LJMP TROVE
CHU_G:
CJNE R2,#0,VT_G2
MOV 31H,#48
LJMP TROVE
VT_G2:
CJNE R2,#1,VT_G3
MOV 32H,#48
LJMP TROVE
VT_G3:
CJNE R2,#2,VT_G4
MOV 33H,#48
LJMP TROVE
VT_G4:
MOV 34H,#48
LJMP TROVE
CHU_H:
CJNE R2,#0,VT_H2
MOV 31H,#56
LJMP TROVE
VT_H2:
CJNE R2,#1,VT_H3
MOV 32H,#56
LJMP TROVE
VT_H3:
CJNE R2,#2,VT_H4
MOV 33H,#56
LJMP TROVE
VT_H4:
MOV 34H,#56
LJMP TROVE
CHU_I:
CJNE R2,#0,VT_I2
MOV 31H,#64
LJMP TROVE
VT_I2:
CJNE R2,#1,VT_I3
MOV 32H,#64
LJMP TROVE
VT_I3:
CJNE R2,#2,VT_I4
MOV 33H,#64
LJMP TROVE
VT_I4:
MOV 34H,#64
LJMP TROVE
CHU_J:
CJNE R2,#0,VT_J2
MOV 31H,#72
LJMP TROVE
VT_J2:
CJNE R2,#1,VT_J3
MOV 32H,#72
LJMP TROVE
VT_J3:
CJNE R2,#2,VT_J4
MOV 33H,#72
LJMP TROVE
VT_J4:
MOV 34H,#72
LJMP TROVE
CHU_K:
CJNE R2,#0,VT_K2
MOV 31H,#80
LJMP TROVE
VT_K2:
CJNE R2,#1,VT_K3
MOV 32H,#80
LJMP TROVE
VT_K3:
CJNE R2,#2,VT_K4
MOV 33H,#80
LJMP TROVE
VT_K4:
MOV 34H,#80
LJMP TROVE
CHU_L:
CJNE R2,#0,VT_L2
MOV 31H,#88
LJMP TROVE
VT_L2:
CJNE R2,#1,VT_L3
MOV 32H,#88
LJMP TROVE
VT_L3:
CJNE R2,#2,VT_L4
MOV 33H,#88
LJMP TROVE
VT_L4:
MOV 34H,#88
LJMP TROVE
CHU_M:
CJNE R2,#0,VT_M2
MOV 31H,#96
LJMP TROVE
VT_M2:
CJNE R2,#1,VT_M3
MOV 32H,#96
LJMP TROVE
VT_M3:
CJNE R2,#2,VT_M4
MOV 33H,#96
LJMP TROVE
VT_M4:
MOV 34H,#96
LJMP TROVE
CHU_N:
CJNE R2,#0,VT_N2
MOV 31H,#104
LJMP TROVE
VT_N2:
CJNE R2,#1,VT_N3
MOV 32H,#104
LJMP TROVE
VT_N3:
CJNE R2,#2,VT_N4
MOV 33H,#104
LJMP TROVE
VT_N4:
MOV 34H,#104
LJMP TROVE
CHU_O:
CJNE R2,#0,VT_O2
MOV 31H,#112
LJMP TROVE
VT_O2:
CJNE R2,#1,VT_O3
MOV 32H,#112
LJMP TROVE
VT_O3:
CJNE R2,#2,VT_O4
MOV 33H,#112
LJMP TROVE
VT_O4:
MOV 34H,#112
LJMP TROVE
CHU_P:
CJNE R2,#0,VT_P2
MOV 31H,#120
LJMP TROVE
VT_P2:
CJNE R2,#1,VT_P3
MOV 32H,#120
LJMP TROVE
VT_P3:
CJNE R2,#2,VT_P4
MOV 33H,#120
LJMP TROVE
VT_P4:
MOV 34H,#120
LJMP TROVE
CHU_Q:
CJNE R2,#0,VT_Q2
MOV 31H,#128
LJMP TROVE
VT_Q2:
CJNE R2,#1,VT_Q3
MOV 32H,#128
LJMP TROVE
VT_Q3:
CJNE R2,#2,VT_Q4
MOV 33H,#128
LJMP TROVE
VT_Q4:
MOV 34H,#128
LJMP TROVE
CHU_R:
CJNE R2,#0,VT_R2
MOV 31H,#136
LJMP TROVE
VT_R2:
CJNE R2,#1,VT_R3
MOV 32H,#136
LJMP TROVE
VT_R3:
CJNE R2,#2,VT_R4
MOV 33H,#136
LJMP TROVE
VT_R4:
MOV 34H,#136
LJMP TROVE
CHU_S:
CJNE R2,#0,VT_S2
MOV 31H,#144
LJMP TROVE
VT_S2:
CJNE R2,#1,VT_S3
MOV 32H,#144
LJMP TROVE
VT_S3:
CJNE R2,#2,VT_S4
MOV 33H,#144
LJMP TROVE
VT_S4:
MOV 34H,#144
LJMP TROVE
CHU_T:
CJNE R2,#0,VT_T2
MOV 31H,#152
LJMP TROVE
VT_T2:
CJNE R2,#1,VT_T3
MOV 32H,#152
LJMP TROVE
VT_T3:
CJNE R2,#2,VT_T4
MOV 33H,#152
LJMP TROVE
VT_T4:
MOV 34H,#152
LJMP TROVE
CHU_U:
CJNE R2,#0,VT_U2
MOV 31H,#160
LJMP TROVE
VT_U2:
CJNE R2,#1,VT_U3
MOV 32H,#160
LJMP TROVE
VT_U3:
CJNE R2,#2,VT_U4
MOV 33H,#160
LJMP TROVE
VT_U4:
MOV 34H,#160
LJMP TROVE
CHU_V:
CJNE R2,#0,VT_V2
MOV 31H,#168
LJMP TROVE
VT_V2:
CJNE R2,#1,VT_V3
MOV 32H,#168
LJMP TROVE
VT_V3:
CJNE R2,#2,VT_V4
MOV 33H,#168
LJMP TROVE
VT_V4:
MOV 34H,#168
LJMP TROVE
CHU_W:
CJNE R2,#0,VT_W2
MOV 31H,#176
LJMP TROVE
VT_W2:
CJNE R2,#1,VT_W3
MOV 32H,#176
LJMP TROVE
VT_W3:
CJNE R2,#2,VT_W4
MOV 33H,#176
LJMP TROVE
VT_W4:
MOV 34H,#176
LJMP TROVE
CHU_X:
CJNE R2,#0,VT_X2
MOV 31H,#184
LJMP TROVE
VT_X2:
CJNE R2,#1,VT_X3
MOV 32H,#184
LJMP TROVE
VT_X3:
CJNE R2,#2,VT_X4
MOV 33H,#184
LJMP TROVE
VT_X4:
MOV 34H,#184
LJMP TROVE
CHU_Y:
CJNE R2,#0,VT_Y2
MOV 31H,#192
LJMP TROVE
VT_Y2:
CJNE R2,#1,VT_Y3
MOV 32H,#192
LJMP TROVE
VT_Y3:
CJNE R2,#2,VT_Y4
MOV 33H,#192
LJMP TROVE
VT_Y4:
MOV 34H,#192
LJMP TROVE
CHU_Z:
CJNE R2,#0,VT_Z2
MOV 31H,#200
LJMP TROVE
VT_Z2:
CJNE R2,#1,VT_Z3
MOV 32H,#200
LJMP TROVE
VT_Z3:
CJNE R2,#2,VT_Z4
MOV 33H,#200
LJMP TROVE
VT_Z4:
MOV 34H,#200
LJMP TROVE
TROVE:
LCALL HIENTHI1
RET
; ****************************
; CHUONG TRINH HIEN THI1
HIENTHI1:
MOV DPTR,#DATADISP
LOP1:
MOV R1,#15
LOP2:
MOV R0,31h
MOV A,R0
MOVC A,@A+DPTR
MOV P2,#00H
MOV P1,A
MOV 40H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#1
MOVC A,@A+DPTR
MOV P2,#01H
MOV P1,A
MOV 41h,A
LCALL DELAY2MS
MOV A,R0
ADD A,#2
MOVC A,@A+DPTR
MOV P2,#02H
MOV P1,A
MOV 42H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#3
MOVC A,@A+DPTR
MOV P2,#03H
MOV P1,A
MOV 43h,A
LCALL DELAY2MS
MOV A,R0
ADD A,#4
MOVC A,@A+DPTR
MOV P2,#04H
MOV P1,A
MOV 44H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#5
MOVC A,@A+DPTR
MOV P2,#05H
MOV P1,A
MOV 45H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#6
MOVC A,@A+DPTR
MOV P2,#06H
MOV P1,A
MOV 46H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#7
MOVC A,@A+DPTR
MOV P2,#07H
MOV P1,A
MOV 47H,A
LCALL DELAY2MS
;-------- LED 2 -------
MOV R0,32H
MOV A,R0
MOVC A,@A+DPTR
MOV P2,#08H
MOV P1,A
MOV 48H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#1
MOVC A,@A+DPTR
MOV P2,#09H
MOV P1,A
MOV 49H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#2
MOVC A,@A+DPTR
MOV P2,#0AH
MOV P1,A
MOV 4AH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#3
MOVC A,@A+DPTR
MOV P2,#0BH
MOV P1,A
MOV 4BH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#4
MOVC A,@A+DPTR
MOV P2,#0CH
MOV P1,A
MOV 4CH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#5
MOVC A,@A+DPTR
MOV P2,#0DH
MOV P1,A
MOV 4DH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#6
MOVC A,@A+DPTR
MOV P2,#0EH
MOV P1,A
MOV 4EH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#7
MOVC A,@A+DPTR
MOV P2,#0FH
MOV P1,A
MOV 4FH,A
LCALL DELAY2MS
;------- LED 3 -------
MOV R0,33H
MOV A,R0
MOVC A,@A+DPTR
MOV P2,#10H
MOV P1,A
MOV 50H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#1
MOVC A,@A+DPTR
MOV P2,#11H
MOV P1,A
MOV 51H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#2
MOVC A,@A+DPTR
MOV P2,#12H
MOV P1,A
MOV 52H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#3
MOVC A,@A+DPTR
MOV P2,#13H
MOV P1,A
MOV 53H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#4
MOVC A,@A+DPTR
MOV P2,#14H
MOV P1,A
MOV 54H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#5
MOVC A,@A+DPTR
MOV P2,#15H
MOV P1,A
MOV 55H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#6
MOVC A,@A+DPTR
MOV P2,#16H
MOV P1,A
MOV 56H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#7
MOVC A,@A+DPTR
MOV P2,#17H
MOV P1,A
MOV 57H,A
LCALL DELAY2MS
;------ LED 4 -------
MOV R0,34H
MOV A,R0
MOVC A,@A+DPTR
MOV P2,#18H
MOV P1,A
MOV 58H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#1
MOVC A,@A+DPTR
MOV P2,#19H
MOV P1,A
MOV 59H,A
LCALL DELAY2MS
MOV A,R0
ADD A,#2
MOVC A,@A+DPTR
MOV P2,#1AH
MOV P1,A
MOV 5AH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#3
MOVC A,@A+DPTR
MOV P2,#1BH
MOV P1,A
MOV 5BH,A
LCALL DELAY2MS
MOV A,R0;
ADD A,#4
MOVC A,@A+DPTR
MOV P2,#1CH
MOV P1,A
MOV 5CH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#5
MOVC A,@A+DPTR
MOV P2,#1DH
MOV P1,A
MOV 5DH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#6
MOVC A,@A+DPTR
MOV P2,#1EH
MOV P1,A
MOV 5EH,A
LCALL DELAY2MS
MOV A,R0
ADD A,#7
MOVC A,@A+DPTR
MOV P2,#1FH
MOV P1,A
MOV 5FH,A
LCALL DELAY2MS
DJNZ R1,LOOP2
RET
LOOP2:
LJMP LOP2
;**************CHUONG TRINH CHAY CHU*********
CHAY:
MOV 60H,#0FFH
MOV 61H,#0FFH
MOV 62H,#0FFH
MOV 63H,#0FFH
MOV 64H,#0FFH
MOV 65H,#0FFH
MOV 66H,#0FFH
MOV 67H,#0FFH
MOV 68H,#0FFH
MOV 69H,#0FFH
MOV 6AH,#0FFH
MOV 6BH,#0FFH
MOV 6CH,#0FFH
MOV 6DH,#0FFH
MOV 6EH,#0FFH
MOV 6FH,#0FFH
MOV 70H,#0FFH
MOV 71H,#0FFH
MOV 72H,#0FFH
MOV 73H,#0FFH
MOV 74H,#0FFH
MOV 75H,#0FFH
MOV 76H,#0FFH
MOV 77H,#0FFH
MOV 78H,#0FFH
MOV 79H,#0FFH
MOV 7AH,#0FFH
MOV 7BH,#0FFH
MOV 7CH,#0FFH
MOV 7DH,#0FFH
MOV 7EH,#0FFH
MOV 7FH,#0FFH
PUSH 00H
PUSH 01H
PUSH ACC
MOV R0,#0 ; GIA TRI BAN DAU CUA R0
LAP02:
MOV 35H, R0
MOV R1,#10 ;SO VONG LAP
LAP01:
MOV R0,35H
MOV A,R0
ADD A,#40H
MOV R0,A
MOV P2,#00H
LCALL NHAN
MOV R0,35H
MOV A,R0
ADD A,#41H
MOV R0,A
MOV P2,#01H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#42h
MOV R0,A
MOV P2,#02H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#43h
MOV R0,A
MOV P2,#03H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#44h
MOV R0,A
MOV P2,#04H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#45h
MOV R0,A
MOV P2,#05H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#46h
MOV R0,A
MOV P2,#06H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#47h
MOV R0,A
MOV P2,#07H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#48h
MOV R0,A
MOV P2,#08H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#49h
MOV R0,A
MOV P2,#09H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4ah
MOV R0,A
MOV P2,#0aH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4bh
MOV R0,a
MOV P2,#0bH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4ch
MOV R0,A
MOV P2,#0cH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4dh
MOV r0,a
MOV P2,#0dH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4eh
MOV R0,A
MOV P2,#0eH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#4fh
MOV R0,A
MOV P2,#0fH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#50h
MOV R0,A
MOV P2,#10H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#51h
MOV R0,A
MOV P2,#11H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#52h
MOV R0,A
MOV P2,#12H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#53h
MOV R0,A
MOV P2,#13h
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#54h
MOV R0,A
MOV P2,#14h
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#55h
MOV R0,A
MOV P2,#15H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#56h
MOV R0,A
MOV P2,#16H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#57h
MOV R0,A
MOV P2,#17H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#58h
MOV R0,A
MOV P2,#18H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#59h
MOV R0,A
MOV P2,#19H
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5ah
MOV R0,A
MOV P2,#1aH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5bh
MOV R0,A
MOV P2,#1bH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5ch
MOV R0,A
MOV P2,#1cH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5dh
MOV R0,a
MOV P2,#1dH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5eh
MOV R0,A
MOV P2,#1eH
LCALL NHAN
MOV R0,35h
MOV A,R0
ADD A,#5fh
MOV R0,A
MOV P2,#1fH
LCALL NHAN
DJNZ R1,LAAP01
MOV R0,35h
INC R0
CJNE R0,#32, LAAP02 ;SO LAN DICH COT
POP acc
pop 01h
POP 00H
RET
NHAN:
MOV P1,@r0
LCALL DELAY2MS
RET
LAAP02:
LJMP LAP02
LAAP01:
LJMP LAP01
;***************************************
;CHUONG TRINH TAO THOI GIAN DELAY2MS
DELAY2MS:
PUSH 00H
MOV R0,#1
MOV TMOD,#01H
LOP3:
MOV TH0,#HIGH(-500)
MOV TL0,#LOW(-500)
SETB TR0
JNB TF0,$
CLR TR0
CLR TF0
DJNZ R0,LOP3
POP 00H
RET
; **************** CSDL ****************
DATADISP:
DB 0FFH,0FFH,0C0H,0B7H,0B7H,0B7H,0C0H,0FFH ;A
DB 0FFH,0FFH,80H,0B6H,0B6H,0B6H,0C9H,0FFH ;B
DB 0FFH,0FFH,0C1H,0BEH,0BEH,0BEH,0DDH,0FFH ;C
DB 0FFH,0FFH,80H,0BEH,0BEH,0BEH,0C1H,0FFH ;D
DB 0FFH,0FFH,80H,0B6H,0B6H,0B6H,0B6H,0FFH ;E
DB 0FFH,0FFH,80H,0B7H,0B7H,0B7H,0B7H,0FFH ;F
DB 0FFH,0FFH,0C1H,0BEH,0B6H,0B6H,0D1H,0FFH ;G
DB 0FFH,0FFH,80H,0F7H,0F7H,0F7H,80H,0FFH ;H
DB 0FFH,0FFH,0BEH,0BEH,80H,0BEH,0BEH,0FFH ;I
DB 0FFH,0FFH,0BDH,0BEH,0BEH,81H,0BFH,0FFH ;J
DB 0FFH,0FFH,80H,0F7H,0EBH,0DDH,0BEH,0FFH ;K
DB 0FFH,0FFH,80H,0FEH,0FEH,0FEH,0FEH,0FFH ;L
DB 0FFH,0FFH,80H,0DFH,0EFH,0DFH,80H,0FFH ;M
DB 0FFH,0FFH,80H,8FH,0F7H,0F8H,80H,0FFH ;N
DB 0FFH,0FFH,0C1H,0BEH,0BEH,0BEH,0C1H,0FFH ;O
DB 0FFH,0FFH,80H,0BBH,0BBH,0BBH,0C7H,0FFH ;P
DB 0FFH,0FFH,0C1H,0BEH,0BAH,0BCH,0C1H,0FFH ;Q
DB 0FFH,0FFH,80H,0B7H,0B3H,0B5H,0CEH,0FFH ;R
DB 0FFH,0FFH,0DDH,0AEH,0B6H,0BAH,0DDH,0FFH ;S
DB 0FFH,0FFH,0BFH,0BFH,80H,0BFH,0BFH,0FFH ;T
DB 0FFH,0FFH,81H,0FEH,0FEH,0FEH,81H,0FFH ;U
DB 0FFH,0FFH,83H,0FDH,0FEH,0FDH,83H,0FFH ;V
DB 0FFH,0FFH,81H,0FEH,0F1H,0FEH,81H,0FFH ;W
DB 0FFH,0FFH,9CH,0EBH,0F7H,0EBH,9CH,0FFH ;X
DB 0FFH,0FFH,9FH,0EFH,0F0H,0EFH,9FH,0FFH ;Y
DB 0FFH,0FFH,0BCH,0BAH,0B6H,0AEH,9EH,0FFH ;Z
DB 0FFH,0FFH,0FEH,0FEH,0FEH,0FEH,0FFH,0FFH ;CON TRO
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH ;KHOANG TRANG
END
MỤC LỤC
1.Nhận xét của GVHD.....................................................................trang 1
2. Nhận xét của GVPB…..........................................................................2
3.Lời giới thiệu…………..........................................................................3
4.Giới thiệu phần cứng .............................................................................4
5.Sơ đồ khối mach quang báo .................................................................15
6.Chức năng từng khối………………………………………………………..16
7.Nguy ên lý hoạt động………………………………………………………19
8.Lưu đồ giải thuật chương trình……………………………………………..22
9.Giải thích hoạt động của chương trình……………………………………..27
10.Chương trình chính…………………………………………………………28
Các file đính kèm theo tài liệu này:
- NGOC NHAN_MINH THANG.doc