LẬP TRÌNH CHO 8279NHĨM BÀN PHÍM

Một phần của tài liệu luận văn thiết kế bộ thực tập vi xử lý 8085 (Trang 90 - 95)

C. KHỐI TẠO TÍN HIỆU QUÉT (SCAN GENERATOR ):

LẬP TRÌNH CHO 8279NHĨM BÀN PHÍM

khiển, khối FIFO /RAM, khối FIFO/RAM STATUS và khối điều khiển xĩa.

KHỐI CHỐNG DỘI VÀ ĐIỀU KHIỂN :

Dữ liệu đưa vào khối keyboard thơng qua 8 đường Return lines RL[0..7} và khi các ngõ vào đĩ coi như tác động mức thấp thì mỗi bit sẽ được chuyển đổi.

Ởchế độ quét ngõ vào(ma trận phím hay ma trận cảm biến) các đường return lines giữ lại trạng thái cuối cùng của bộ đếm quét (scan counter).

Ở modes bàn phím, ngõ vào sẽ được chống dội bằng cách so sánh giá trị lưu giờ hiện tại ở ngồi vào với giá trị được lưu giữ ở chu kỳ trước đĩ (8 can counts cho mã hĩa các đường quét và 4 can couts cho giải mã các đường quét).

Số đếm đường quét hiện tại, kết hợp với số đường return lines tác động (sẽ cho ra vị trí của phím ấn) , trạng thái của phím Shift và Ctrl sẽ được đưa vào bộ nhớ FIFO.

Ở trong Mode ma trận cảm biến (Sensor matrix mode) khơng cĩ sự chống dội (debounce) và việc ghi nhận giá trị ngõ vào được ghi vào bộ nhớ FIFO/RAM tại địa chỉ hiện tại của đường quét. FIFO/RAM sẽ ghi giá trị dữ liệu mới vào ơ nhớ mỗi khi thực hiện phép quét.

Ở Mode strobed input giá trị của sự chuyển đổi các đường return lines sẽ được đưa và bộ nhớ FIFO khi cĩ cạnh lên tác động đến ngõ vào của CNTL input.

FIFO/RAM:

Bộ nhớ FIFO/RAM chứa 8 ơ nhớ 8 bit FIFO (First in First out). Mỗi giá trị mới đưa vào được nạp vào bộ nhớ FIFO và đọc một cách tuần tự trong cùng một nơi mà bộ nhớ FIFO được đẩy vào.

Để cĩ khả năng sử dụng thành thạo 8279, trước tiên phải hiểu rõ bản chất các từ điều khiển của 8279.

8279 cĩ tất cả tám từ điều khiển, tùy theo mục đích sử dụng mà sẽ chọn từ điều khiển thích hợp.

Đặt Mode hiển thị / bàn phím.

LẬP TRÌNH CHO 8279NHĨM BÀN PHÍM NHĨM BÀN PHÍM

MSB LSB

Mã 0 0 0 D D K K K

Trong đĩ, DD là Mode hiển thị và KKK là Mode bàn phím :

DD

0 0 hiển thị 8 kí tự, 8 bit - ghi trái. 0 1 hiển thị 16 kí tự, 8 bit - ghi trái. 1 0 hiển thị 8 kí tự, 8 bit - ghi phải. 1 1 hiển thị 16 kí tự, 8 bit - ghi phải.

Ýnghĩa của Ghi trái (Left Entry) và Ghi phải (Right Entry) được trình bày hình 5.25.

Chú ý rằng khi quét cĩ giải mã được đặt trong Mode bàn phím, hiển thị sẽ bị giảm xuống 4 kí tự khơng phụ thuộc vào việc đặt Mode hiển thị.

KKK

0 0 0 bàn phím cĩ lập mã - khĩa ngồi 2 phím.

0 0 1 bàn phím qt cĩ giải mã - khĩa ngồi 2 phím.

0 1 0 bàn phím qt cĩ lập mã - xoay vịng N phím.

0 1 1 bàn phím qt cĩ giải mã - xoay vịng N phím.

1 0 0 ma trận cảm biến, quét cĩ lập mã. 1 0 1 ma trận cảm biến, quét cĩ giải mã. 1 1 0 ngõ vào Strob, quét hiển thị cĩ lập mã.

1 1 1 ngõ vào Strob, quét hiển thị cĩ giải mã.

Ở Mode lập mã, các ngõ ra SL tác động mức cao và theo sau là mã bit nhị phân từ 0 đến 7 hoặc từ 0 đến 15, tùy theo hiển thị 8 hoặc 16 số được chọn.

Ở Mode giải mã, các ngõ ra SL tác động mức thấp và chỉ một trong bốn ngõ ra ở mức thấp tại thời điểm bất kỳ được cho. Các ngõ ra giải mã lập lại mẫu : 1110, 1101, 1011 và 0111.

Ở mode Strobe, một xung tác động mức cao trên chân CN/ST sẽ Strobe dữ liệu từ các chân RL vào FIFO bên trong, nơi mà chúng được duy trì cho vi xử lí (adsbygoogle = window.adsbygoogle || []).push({});

Dọc FIFO / RAM cảm biến :

Mã 0 1 0 AI X A A A

Từ điều khiển này chọn địa chỉ của mã phím cần đọc trong RAM FIFO/ Cảm biến. Ở mốt bàn phím cĩ qt, cờ tăng tự động AI (Auto - Inerement) và các bit địa chỉ RAM (A A A) khơng cịn khả dụng. 8279 sẽ tự động lái tuyến dữ liệu cho mỗi lần đọc tiếp theo (Ao = 0) theo đúng trình tự mà ban đầu dữ liệu được nhập vào FIFO. Tất cả những lần đọc tiếp theo sẽ đến từ FIFO cho đến khi một lệnh khác được tạo ra.

Ở mốt ma trận cảm biến, các it địa chỉ RAM (A A A) chọn một trong 8 hàng của RAM cảm biến. Nếu cờ AI được đặt (AI = 1), mỗi sự đọc kế tiếp sẽ đến từ hàng tiếp theo của RAM cảm biến.

Lập trình xung đồng hồ :

Mã 0 0 1 P P P P P

Tất cả các tín hiệu định thời và đa hợp cho 8279 được phát ra bởi một

bộ đặt trước tỉ lệ (precaler) bên trong. Bộ đặt trước chia xung đồng hồ bên

ngồi (chân 3) cho một số ngun cĩ thể lập trình. các bit P P P P P quyết định giá trị của số nguyên này, trong phạm vi từ 2 đến 31. Hãy chọn số chia sao cho đạt được tần số 100 KHz.

RAM LOCATION DISPLAY POSITION

0 (A) A B C D 1 (B) 2 (C) (A) REPRESENTS 3 (D) 7 SEGMENTCODE FOR A 5 6

7 (a) Left Entry

RAM

LOCATION DISPLAY POSITION

0 (A) A B C D 1 (B) (A) REPRESENTS 3 (C) 7 SEGMENTCODE FOR A 4 (D) 5 6 (b) Right Entry

Hình 5.25 : Mối liên hệ giữa RAM 8279 và vị trí hiển thị

Mã 0 1 1 A1 A A A A

Từ điều khiển này chọn địa chỉ của byte dữ liệu cần đọc trong RAM hiển thị. Các bit địa chỉ A A A A chọn một trong 16 hàng của RAM hiển thị.Nếu cờ AI đặt (AI = 1), địa chỉ hàng này sẽ đượa tăng tự động sau mỗi lần đọc hoặc ghi tiếp theo. Vì cùng một bộ đếm được sử dụng cho cả hai hoạt động đọc và ghi. Từ lệnh này đặt địa chỉ đọc hoặc ghi kế tiếp và cảm nhận mốt tự động tăng cho cả hai hoạt động.

Ghi vào RAM hiển thị

Mã 1 0 0 AI A A A A

Từ điều khiển này chọn địa chỉ trong RAM hiển thị nơi cần ghi dữ liệu vào. Sau khi từ lệnh với Ao = 1 sẽ ở trong RAM hiện thị. Các chức năng định địa chỉ và tăng tự động giống như đối với đọc RAM hiển thị. Tuy nhiên từ lệnh nàykhơng ảnh hưởng đến nguồn của những lần đọc dữ liệu kế tiếp ; CPU sẽ đọc bất kì RAM nào (Hiển thị hoặc FIFO / cảm biến) được nêu rõ sau cùng, việc ghi vào RAM hiển thị, tuy nhiên sẽ làm thay đổi vị trí Đọc tiếp theo.

Nhấp nháy / Cấm Ghi vào hiển thị

Mã 1 0 1 X IW IW BL BL

Các bit IW cĩ thể được sử dụng che nửa byte A và nửa byte B trong những ứng dụng địi hỏi các cổng hiển thị 4 bit tách biệt. Bằng cách đặt cờ IW (IW = 1) đối với một trong các cổng, cổng trở nên được đánh dấu sao cho việc ghi vào RAM hiển thị từ CPU khơng ảnh hưởng đến cổng đĩ. Thế thì nếu mỗi nửa byte được nhập một bộ giải mã BCD, CPU cĩ thể ghi một số vào RAM hiển thị mà khơng ảnh hưởng đến số khác đang được hiển thị. Một chú ý quan trọng là bit Bo tương ứng với bit Do trên tuyến dữ liệu của CPU, và bit A3 tương ứng với bit D7.

Nếu người sử dụng muốn nhấp nháy hiển thị, các cờ Bl cĩ khả dụng đối với mỗi nửa byte. Lệnh xĩa sau cùng được phát ra xáx định mã được sử dụng như một “nhấp nháy”. Mã này ? tất cả bằng khơng sau một sự đặt lại. Chú ý rằng cả hai cờ BL phải được đặt để nhấp nháy một hiển thị kết hợp với một cổng đơn 8 bit.

Xố

Các bit CD cĩ sẵn trong từ lệnh này để xố tất cả các hàng của RAM hiển thị theo một mã cĩ thể chọn lựa được như sau :

CD CD CD

0 X tất cả bằng khơng (X = khơng quan tâm) 1 0 AB = 20H ( 0010 0000 )

1 1 tất cả bằng 1 (adsbygoogle = window.adsbygoogle || []).push({});

cho phép xố hiển thị khi = 1 (hoặc bởi CA =1) Trong suốt thời gian RAM hiển thị đang bị xĩa( ∼ 160µS), nĩ khơng thể được ghi vào. Bit cĩ trọng số cao nhất ( MSB) của từ trạng thái được đặt trong suốt thời gian này. Khi RAM hiển thị trở nên khả dụng trở lại, bit này tự động được đặt lại.

Nếu CF = 1, trạng thái FIFO bị xĩa và đường ngõ rangắt được đặt tại hàng 0. CA, bit xố tất cả, cĩ sự ảnh hưởng của CD và CF. Nĩ sử dụng CDxĩa mã trên RAM hiển thị và cũng xĩa trạng thái FIFO. Hơn thế nửa, nĩ cịn đồng bộ lại sự định thời bên trong.

Đặt mốt báo lỗi / Ngắt ở cuối

Mã 1 1 1 E X X X X

Đối với mốt ma trận cảm biến, từ lệnh này hạ đường IRQ xuống thấp và cho phép ghi vào RAM (đường IRQ được nâng lên, phát hiện một sự thay đổi trong một giá trị cảm biến. Điều này cũng sẽ cấm ghi vào RAM cho đến khi đặt lại).

Đốt với mốt xoay vịng N phím, nếu bit E được lập trìng bằng 1, chip 8279 sẽ hoạt động ở mốt báo lỗi.

Một phần của tài liệu luận văn thiết kế bộ thực tập vi xử lý 8085 (Trang 90 - 95)