II. ĐÂNH GIÂ – HƯỚNG PHÂT TRIỂN ĐỀ TĂ I:
3. TẬP LỆNH CỦA 8085.
Một lệnh (Instruction) lă một mẫu nhị phđn (Binary pattern) được thiết kế bín trong vi xử lí để thực hiện một chức năng cụ thể. Một nhĩm đủ câc lệnh, được gọi lă tập lệnh (Instruction set), xâc định câc chức năng mă vi xử lí cĩ thể thực hiện. Tập lệnh của 8085 cĩ 74 lệnh (hơn 8080 hai lệnh), câc lệnh năy cĩ thể được phđn thănh 5 nhĩm chức năng :
• Câc hoạt động (sao chĩp) truyền dữ liệu.
• Câc hoạt động tốn học.
• Câc hoạt động logic.
• Câc hoạt động rẽ nhânh.
• Câc hoạt động điềău khiển.
Câc hoạt động (sao chĩp) truyền dữ liệu :
Nhĩm lệnh năy sao chĩp dữ liệu từ nơi nguồn đến nơi đích, mă khơng hề điều chỉnh nội dung của nơi nguồn. Trong câc sổ tay kỹ thuật, từ truyền dữ liệu được sử dụng cho chức năng sao chĩp. Sau đđy lă câc dạng truyền dữ liệu:
Dạng truyền
Giữa câc thanh ghi
Byte dữ liệu cụ thể đến thanh ghi hoặc ơ nhớ
Giữa một thanh ghi vă một ơ nhớ Giữa một thiết bị I/O vă thanh ghi tích trữ.
Giữa cặp thanh ghi vă ngăn xếp.
Ví dụ
Sao chĩp nội dung của thanhghi B văo thanh ghi D
Nạp văo thanh ghi B byte dữ liệu 32H
Từ ơ nhớ 2000H đến thanh ghi B. Từ băn phím văo thanh ghi tích trữ. Từ cặp thanh ghi BC đến 2 ơ nhớ được định nghĩa như ngăn xếp.
Câc hoạt động tốn học :
Câc lệnh năy thực hiện câc phĩp tốn như lă cộng, trừ, tăng vă giảm.
• Cộng : bất kỳ một số 8 bit, hoặc nội dung của thanh ghi, hoặc nội dung của một ơ nhớ cĩ thể được cộng với nội dung của thanh ghi tích trữ vă tổng được lưu văo thanh ghi tích trữ. Hai thanh ghi hoặc ơ nhớ khơng thể cộng trực tiếp với nhau. Lệnh DAD lă một ngoại lệ, nĩ cộng trực tiếp dữ liệu 16 bit trong câc cặp thanh ghi.
• Trừ : Bất kì một số 8 bit, hoặc nội dung của một thanh ghi, hoặc nội dung của một ơ nhớ cĩ thể được trừ từ nội dung của thanh ghi tích trữ. Lệnh trừ được thực hiện ở dạng bù 2, vă kết quả nếu đm được biểu hiện ở dạng bù 2. Hai thanh ghi hoặc ơ nhớ khơng thể được trừ trực tiếp.
• Tăng/ giảm : Nội dung 8 bit của một thanh ghi hoặc một ơ nhớ cĩ thể được tăng hoặc giảm mỗi lần 1 đơn vị. Tương tự nội dung 16 bit của một cặp thanh ghi cĩ thể cũng được tăng hoặc giảm đi 1. Câc hoạt động tăng vă giảm khâc với phĩp cộng vă trừ ở một câch thức rất quan trọng, đĩ lă : chúng cĩ thể được thực hiện trong bất kì thanh ghi hoặc ơ nhớ năo.
Câc hoạt động logic:
Câc lệnh năy thực hiện câc hoạt động logic khâc nhau với nội dung của thanh ghi tích trữ.
• AND, OR, XOR : Bất kì một số 8 bit, hoặc nội dung của 1 thanh ghi, hoặc nội dung của một ơ nhớ cĩ thể được logic AND, OR, hoặc XOR với nội dung của thanh ghi tích trữ.
• Xoay : Mỗi bit trong thanh ghi tích trữ cĩ thể được dịch trâi hoặc dịch phải đến vị trí kế tiếp.
• So sânh : bất kì một số 8 bit, hoặc nội dung của một thanh ghi, hoặc nội dung của một ơ nhớ cĩ thể được so sânh bằng, lớn hơn, hoặc nhỏ hơn với nội dung của thanh ghi tích trữ.
• Bù : Nội dung của một thanh ghi tích trữ cĩ thể được lấy bù : tất cả 0 được thay thế bằng 1 vă tồn bộ 1 được đổi thănh 0.
Câc hoạt động rẽ nhânh :
Nhĩm câc lệnh năy lăm thay đổi trình tự thi hănh chương trình một câch cĩ điều kiện hoặc khơng cĩ điều kiện.
• Nhảy : Câc lệnh nhảy cĩ điều kiện lă một khía cạnh quan trọng để đưa ra những quyết định trong lập trình. Câc lệnh năy kiểm tra một điều kiện năo đĩ (cờ Zero hoặc cờ Carry) vă lăm thay đổi trình tự chương trình khi bắt gặp điều kiện.
• Gọi, Trở về, Khởi động lại : Câc lệnh năy lăm thay đổi trình tự của một chương trình hoặc bằng câch gọi một chương trình con hoặc trở về từ một
chương trình con. Câc lệnh Gọi vă Trở về cũng cĩ thể kiểm tra câc cờ điều kiện.
Câc hoạt động điều khiển :
Câc lệnh năy điều khiển câc chức năng vận hănh như lă : Dừng, Ngắt, hoặc khơng lăm gì cả (No Operation).
Tập lệnh vi xử lí 8085 được phđn thănh 3 nhĩm tuỳ theo kích cỡ từ :
1. Câc lệnh một từ hoặc 1 byte. 2. Câc lệnh hai từ hoặc 2 byte. 3. Câc lệnh ba từ hoặc 3 byte.
Lệnh một byte chứa mê hoạt động (Opcode) vă tốn tử (Operand) trong cùng một byte.
Trong lệnh hai byte, byte thứ nhất níu lín mê hoạt động vă theo sau lă tốn tử.
Đối với lệnh ba byte, byte thứ nhất cho biết mê hoạt động, hai byte kế tiếp lă dữ liệu 16 bit (nội dung hoặc địa chỉ).
LẬP TRÌNH CHO 8279
Để 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.
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.
Yù 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 1 băn phím quĩt cĩ giải mê - khĩa ngồi 2 phím. 0 1 0 băn phím quĩt cĩ lập mê - xoay vịng N phím.
0 1 1 băn phím quĩt 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 Strob, một xung tâc động mức cao trín chđn CN/ST sẽ Strob 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í
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ố nguyín 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 SEGMENT 4 CODE FOR A 5 6
7 (a) Left Entry
RAM LOCATION DISPLAY POSITION 0 (A) A b C d 1 (b) 2 (C) (A) REPRESENTS 5 (d) 7 SEGMENT 6 CODE FOR A 5 6 7 (b) Right Entry
Hình 5.25 : Mối liín hệ giữa RAM 8279 vă vị trí hiển thị
Dọc FIFO / RAM cảm biến :
Mê 0 1 0 AI X A A A
X = khơng quan tđm
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ĩ quĩt, 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.
Đọc RAM 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 :
CDCD 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
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.
Khởi tạo 8279
Mặc dù 8279 cĩ tới tâm từ điều khiển, nhưng khơng phải lúc năo cũng sử dụng hết tất cả tâm từ năy.
Khi khởi tạo một 8279, thứ tự câc từ điều khiển sau đđy lă cần thiết : + Đặt mốt hiển thị / băn phím
+ Lập trình xung đồng hồ
+ Xĩa RAM hiển thị hoặc FIFO hoặc cả hai
Câc từ điều khiển cịn lại cĩ thể được gởi ra thanh ghi điều khiển trong lúc năy hoặc khi cần.
Việc đọc mê của băn phímcĩ thể được thực hiện bằng một trong hai câch : dùng ngắt ( interrupt ) hoặc dùng kỹ thuật hỏi vịng ( polling ).
Khi một phím được ấn xuống, chđn IRQ của 8279 tạo ra một mức logic cao, nếu dùng ngắt của vi xử lý. Chương trình phục vụ ngắt sẽ đọc mê của phím ấn.