Trong thiết kế sử dụng vi mạch 8255A để giao tiếp bàn phím, trong đó PB0-PB7 là các ngõ ra dữ liệu dùng để quét cột, PA0-PA4 là các ngõ vào dữ liệu đọc hàng... Sơ đồ kết nối bàn phímNguy
Trang 1Chương 6: Vi mạch 7432
Sơ đồ chân và sơ đồ logic
Bảng trạng thái
2 Kết nối:
a Bộ nhớ:
Vi xử lý 8085A có khả năng truy xuất tới 64KB bộ nhớ Tuy nhiên, trong thiết kế chỉ sử dụng 16K bộ nhớ: 8K cho ROM và 8K cho RAM, đồng thời cũng dành một vị trí 8K cho ROM/RAM mở rộng Các bộ giao tiếp nội bộ (bàn phím, hiển thị) cũng được định địa chỉ như là vùng nhớ Bản đồ bộ nhớ được chia thành 4 vùng nhớ khác nhau Sử dụng vi mạch 74LS138 có thể chọn để làm việc với từng vùng nhớ khác nhau tùy thuộc vào các địa chỉ cung cấp cho các ngõ vào của bộ giải mã
1A 1B 1Y 2A 2B 2Y GND
Vcc 4B 4A 4Y 3B 3A 3Y
7432
A
A 15 A 14 A 13 A 12 -A 0
Trang 2Trong thiết kế sử dụng địa chỉ từ 0000H -1FFFH cho ROM hệ thống, địa chỉ từ 4000H -5FFFH cho RAM, địa chỉ từ 2000H -3FFFH cho RAM/ROM mở rộng, địa chỉ từ 8000H - 8003H cho giao tiếp bàn phím và hiển thị
Sơ đồ kết nối bộ nhớ
b Bàn phím:
Tới CE\ của EPROM Tới CE\ của ROM/RAM mở rộng Tới CS\ của RAM
Tới CS\ của 8255A giao tiếp nội bộ
A B C
Y 0
Y1
Y2
Y3
Y4
Y5
Y6
Y 7
G 1
G2A
G 2B
A 13
A14
A15
IO/M\
Vcc
Trang 3Bàn phím được thiết kế là loại bàn phím ma trận, sử dụng phần mềm để quét phím rồi giải mã phím Ma trận phím bao gồm 8 cột và 5 hàng Trong thiết kế sử dụng vi mạch 8255A để giao tiếp bàn phím, trong đó PB0-PB7 là các ngõ ra dữ liệu dùng để quét cột, PA0-PA4 là các ngõ vào dữ liệu đọc hàng 8255A hoạt động ở chế độ 0 với port A là port đọc, port B là port xuất
Sơ đồ bàn phím
8255A
W O G 8 0
X P H 9 1
Y Q I A 2
Z R J B 3
ES S K C 4
PC T L D 5
-U M E 6
+ V N F 7
PB 7
PB 6
PB 5
PB 4
PB 3
PB 2
PB 1
PB 0
PA 4
PA 3
PA 2
PA 1
Vcc
D 7 D 0
A 0
A 1
RD\
WR\
CS\
Trang 4Sơ đồ kết nối bàn phím
Nguyên lý hoạt động:
Để kiểm tra xem có phím nào được nhấn hay không, CPU
port B rồi nhận dữ liệu từ port A, nếu không có phím nào được nhấn thì kết quả là 1FH, nếu có bất kỳ phím nào được nhấn thì một trong 5 đường đọc vào của port A sẽ xuống mức 0 vì thế dữ liệu đọc vào sẽ khác 1FH, lúc này chỉ biết được vị trí hàng của phím Để xác định vị trí cột của phím thì CPU phải lần lượt xuất dữ liệu ra từng cột Dữ liệu xuất ra port B ở lần quét đầu tiên là 0EFH, có nghĩa là chỉ cột đầu tiên được xuống mức 0 trong khi các cột khác ở mức 1 Lúc này CPU sẽ đọc dữ liệu vào từ port A để so sánh với 1FH Nếu dữ liệu đọc vào bằng với 1FH thì có nghĩa là phím được ấn không nằm ở cột thứ nhất, CPU tiếp tục xuất dữ liệu ra port B để quét cột thứ hai, giá trị của dữ liệu lúc này là 0DFH ứng với trường hợp cột thứ hai được xuống mức 0 trong khi các cột khác ở mức 1 CPU đọc dữ liệu từ port A để kiểm tra xem phím có nằm trên cột này không, nếu vẫn chưa phát hiện được thì CPU tiếp tục quét cột kế tiếp cho tới khi phát hiện phím được nhấn Khi phát hiện được một cột nào đó chứa phím được nhấn thì vị trí này chính là mã cột của phím Kết hợp
Trang 5giữa mã hàng và mã cột, CPU sẽ xác định được chính xác vị trí của phím nhấn
c Hiển thị:
Bộ hiển thị dùng tám LED 7 đoạn, mỗi LED dùng để hiển thị một chữ số HEX, chữ số được tạo thành bởi các đoạn độc lập được ký hiệu là a, b, c, d, e, f, và g Trong thiết kế sử dụng các LED Cathod chung nên để hiển thị được thì chân Cathode chung phải được nối xuống mức thấp, trong khi các đoạn phải được cung cấp dữ liệu phù hợp ở mức cao 8255A sử dụng port B làm port xuất dữ liệu quét để chọn đèn được hiển thị, port C là port xuất dữ liệu hiển thị
Sơ đồ kết nối bộ hiển thị
Nguyên lý hoạt động:
PB7
.
PB0
LED 7
8255A
PC 0
PC1
PC2
PC 3
PC 4
PC5
PC6
PC 7
a b c d e f g
dp K
a b c d e f g
dp K
LED 0
.
.
Trang 6Bộ hiển thị theo phương pháp quét cho phép các LED trong bộ hiển thị sử dụng chung port xuất dữ liệu Dữ liệu chứa trong các ô nhớ ở dạng nhị phân, do đó trước khi đưa vào các LED chúng phải được chuyển sang mã 7 đoạn, việc này được thực hiện bởi chương trình đổi mã đèn
Mã 7 đoạn của các số HEX Việc quét đèn được thực hiện như sau: CPU xuất dữ liệu của đèn thứ nhất ra port C, kế đó CPU xuất dữ liệu quét ra port
B để chọn đèn thứ nhất, lúc đó các đèn khác đều tắt do không được chọn Sau một khoảng thời gian trì hoãn để hiển thị, dữ liệu 00H được đưa ra port C để tắt đèn Dữ liệu của đèn thứ hai tiếp tục được đưa ra port C và dữ liệu chọn đèn thứ hai được đưa
ra port B để cho phép đèn thứ hai hiển thị Sau khi quét đến đèn cuối cùng thì quá trình lại được lặp lai từ đèn thứ nhất Tốc độ quét phải đủ lớn để tất các các số xuất hiện trên các đèn được cảm nhận đồng thời
3F 06 5B 4F 66 6D 7D 07 7F 67 77 7C 39 5E 79 71