Một số phối ghép cơ bản Tài liệu Kĩ thuật vi xử lý - Văn Thế Minh Tài liệu Kĩ thuật vi xử lý - Văn Thế Minh Tài liệu Kĩ thuật vi xử lý - Văn Thế Minh
Trang 120ms 20ms
FUra
1mN20msF
CHƯƠNG 9MỘT SỐ PHỐI GHÉP CƠ BẢN
1 Phối ghép với bàn phím
Bàn phím là một thiết bị vào rất thông dụng trong các hệ vi xử lý Trongtrường hợp dơn giản nhất đó có thể là một công tắc có gắn phím ( mà ta chỉthường quan tâm đến kí hiệu trên bàn phím) nối vào mọt chân nào đó của bộ vixử lý: ở mức phức tạp hơn đó có thể là hàng chục công tắc có gắn phím được tổchức theo một ma trận: phức tạp hơn nữa, đó là một hệ vi xử lý chuyên dụngquản lý cả trăm công tắc có gắn phím với nhiêm vụh nhận ra phím được gõ vàtạo mã đưa đến hệ vi xử lý
Dù đơn giản hay một tổ hợp phím, khi phối ghép chúng với bộ vi xử lý
ta cũng phải thỏa mãn một số yêu cầu đặc biệt để đảm bảo hệ thống làm việcđúng
Có rất nhiều công tắc được dùng trong phối ghép với bộ vi xử lý nhưngcó thể xếp chúng vào hai nhóm chính:
+ công tắc có tiếp xúc ccơ khí ( kiểu điện trở: điện trở thay đổi khi ấn vàkhi nhả phím)
+ công tắc không có tiếp xúc cơ khí kiểu điện dung: điện dung thay đổikhi ấn và khi nhả phím hoặc kiểu hiệu ứng Hall: điện áp thay đổi khi ấn và khinhả phím)
Trong các loại công tắc đó, loại công tắc điện trở dự trên tiếp xúc cơ khílà rất thông dụng rong thực tế Trên hình 9.1 là các nối công tắc vào mạch điệnvà đáp ứng của nó khik có lực tác động vào phím (ấn phím)
Hình 9.1 Aính hưởng độ rung của công tắcNhìn vào đáp ứng về mặt cơ- điện của công tắc trên hình 9.1 ta nhậnthấy: vì công tắc là một hệ thống có quán tính, do đó khi ta ấn phím và nhảphím, xugn điện thu được ở đầu ra của nó không phải liên tục mà bị ngắtquãng tại các giai đoạn quá độ( lúc bắt đầu ấn phím và lúc bắt đầu nhả phím).Điều này xảy ra là do trong kết cấu của công tắc có các bộ phận đàn hồi, khi bịtác dộng của lực bên ngoài các kết cấu động của công tắc bị dao động làm chobề mặt tiếp xúc của công tắc bị biến đổi Trong thực tế thì mỗi qúa trình quá độtrên kéo dài khoảng 10 -20 ms Nếu trong thời kì quá độ ta đọc thông tin từ cáccông tắc thì rất dễ nhận được thông tin sai lệch trạng thái của công tắc, vì vậyngười ta thường chờ khoảng 10-20 ms sau khi côngt tắc bị ấn hay nhả để đọctrạng thái của công tắc trong giai đoạn xác lập
Khi một công tắc được nối trực tiếp và một chân nào đó của bộ vi xử lýhoặc các mạch phụ trợ, có một cách khác để tránh các hiệu ứng không mongmuốn có thể tác động lên hoạt động của bộ vi xử lý do công tắc bị rung gây làdùng các mạch tích phân nối bên cạnh công tắc như trong trường hợp tạo tínhiệu cho đầu vào RESET của hệ vi xử lý ( xem hình 5.6)
Tiếp theo ta xét truờng hợp một số công tắc nhất định được tổ chức theo
ma trận gồm các hàng và các cột để tạo thành bàn phím cho một hệ vi xử lý
t
tUra
+5V
Trang 2Với tổng số phím khỏang 20-30 ( bàn phím HEXA) thì đó là truờng hợpthường thấy trong các hệ thống nhỏ: các máy vi tính trên một bảng mạch in
hoặc các bảng mạch điều khiển nhỏ (hay được gọi là “kit”) Trong các máy tínhcá nhân như IBM PC chẳng hạn thì số phím có thể là từ 80-101 phím tùy theothế hệ máy
Để nhận được thông tin chính xác về trạng thái của một phím trong cáchệ thống như vậy ta phải thường làm 3 khối công việc sau:
+Phát hiện có ấn phím
+ Chờ công tắc ở trạng thái ổn định( chống rung)
+Tìm phím được ấn và tạo mã cho phím đó
Và để có được một phối ghép bàn phím với bộ vi xử lý thực hiện cácchức năng đã nêu ở trên trong thực tế người ta có thể làm theo 2 cách:
+ dùng bộ vi xử lý để quản lý trực tiếp bàn phím ghép qua một số mạchcổng Có thể nhận thấy rằng ở dây CPU làm việc theo chế độ thăm dò Bằngcách này CPU phải để một phần thời gian để quản lý bàn phím nhưng ta lại đạtđược sự đơn giản về phần cứng
+ dùng một mạch quản lý bàn phím chuyên dụng để phối ghép với bànphím Ở đây CPU làm việc với bộ quản lý bàn phím qua yêu cầu ngắt Bằngcách này ta có thể giải phóng CPU để nó dành thời gian cho các việc khác quantrọng hơn
Cổng ra 00
CPU
Cổng vào 01
Hình 9.2 Mạch phối ghép bàn phím
• CPU trực tiếp quản lý bàn phím
Trong cách làm này, để đơn giản trong trình bày, ta giả thiết bàn phímhệ 16 gồm 16 công tắc- phím đánh dấu từ 0 - FH ghép với bộ vi xử lý thôngqua các mạch cổng như trên hình 9.2 Các mạhc cổng có thể là các mạch ICnhư 74LS373 hoặc một phầnn của PPI 8255A được lập trình thích hợp
Thuật toán của chương trình điều khiển việc phối ghép CPU - bàn phímtheo sơ đồ phần cứng nói trên được trình bày bằng lưu đồ trên hình 9.3
Đầu tiên ta phải kiểm tra tình trạng (tốt, xấu) của bàn phím khi nó chưađược ấn ( đúng ra là khi ta chưa kịp ấn phím nào hoặc chưa kịp ấn phím tiếp
D0D1D2D3
D7D6D5D4D3D2D1D0
+5V
1
C D E F10K
Trang 3theo) xem có phím nào bị kẹp ( dính ) không bằng cách đưa ra các hàng và dọccác cột để quét toàn bộ các phím.
Hình 9.3 Lưu đồ thuật toán chương trình phối ghép bàn phím
Nếu có một công tắc nào đó nối hàng và cột, mức điện áp 0 ở hàng sẽtruyền sang cột và ta sẽ đọc được ở cột tương ứng mức điên áp 0 Một bàn phímtốt sẽ không có các tiếp điểm của một công tắc nà được nối trong lúc này và tasẻ đọc được mức 1 ở tất cả các cột Chương trình của lưu đồ trên sẽ bị quẩnnếu bàn phím của ta bị dính Một cải tiến có thể được thêm vào chương trìnhtrên để thoát ra khỏi vòng quẩn đó và thông báo bàn phím bị hỏng
Nếu bàn phím không bị hỏng thì ta mới đi vào phần phát hiện xem liệucó một phím nào đó bị ấn không Nếu phát hiện ra có một phím bị ấn ta sẽ phảichờ cỡ 10 ms để cho công tắc có thời gian ổn định hệ thống Tiếp theo là taphải xác định lại xem có đúng là có một phím nào đó bị ấn không, nếu có thì tamới tiến hành xác định cụ thể xem đó là phím nào trong số các phím Ta làmviệc này bằng cách đưa 0 vào lần lượt các hàng và dọc các cột Khi đã biết tọađộ hàng và ccột của một phím bị ấn thì công việc tiếp theo là tạo mã cho phímđó Trong sơ đồ đơn giản như sơ đồ trên hình 9.3 thì việc tạo mã cho phím vừatìm thấy được thực hiện bằng cách đọc 8 bít từ cổng vào ( 4 bit cao chứa thôngtin về tọa độ hàng và 4 bit thấp chứa thông tin về tọa độ cột) rồi chuyển thànhmã hệ 16 tương ứng với phím bằng cách tra một bảng thích hợp
Tìm thấy
Tạo mã phímKết thúc
Trang 4Sau đây là văn bản chương trình thực hiện thuật toán đã nêu dựa trên sơđồ trên hình 9.2 bằng cách dùng mạch PPI 8255A với địa chỉ cơ bản là 60H.Cần chú ý rằng đây chỉ là chương trình dùng để mô tả thuật toán.
• Chương trình 8.1 CPU- HexKeyboard cpu_kbd.asm
Model Small Stack 100 Data
MOV AX , @Data ;khởi đầu DSMOW DS , AX
MOW AL , CW ;khởi đầu 8255AOUT CRW, AL
CALL RD_KBD ;gọi chương trình đọc phím
Main EndpRD_KBD Proc
; thủ tục đọc và tạo mã cho phím bị ấn
; Ra : AL : mã phím,
; AH=00H khi không có lỗi
; AH=01 khi có lỗi
PUSH BXPUSH CXPUSH DXMOV AL,00 ;đưa 0 ra mọi hàngOUT PA, LA
MOV CX, 3 ;số lần kiểm tra dínhWait_Open: IN AL, PB ;đọc cột để kiểm tra dính
AND AL, 0FH ;che các bit cao
LOOPNE Wait_Open ;đúng, chờ khỏi dínhJCXZ Sai ;”quá tam ba bận” : phím bị kẹt Wait_Pres: IN AL,PB ;đọc cột đẻ kiểm tra ấn phím
AND AL, 0FH ; che các bit caoCMP AL, 0FH ;có phím ấn?
JE Wait_Pres ;không, chờ ấn phím MOV CX, 5880 ;Có, trễ 20ms để chống rung Tre: LOOP Tre
;đọc để kiểm tra lại phím bị ấn
IN AL, PB
Trang 5AND AL, 0FH ;che các bit caoCMP AL, 0FH ;có phím ấn?
JE Wait_Pres ;không, chờ ấn phím
; tìm phím bị ấn
MOV AL, 0FEH ;mẫu bit để đưa 0 ra từng hàng
Hgsau: OUT PA, AL ;đọc các cột và kiểm tra
AND AL, 0FHCMP AL, 0FH ;đã tìm thấy phím bị ấn
ROL CL,1 ;không thấy, đỗi mẫuMOV AL, CL
JMP Hgsau ;làm tiếp với hàng sau Taoma: MOV BX, 000FH ;BX chỉ vào mã của phím F
IN AL, PB ;đọc tọa độ hàng và cộtTiep: CMP AL, Key[ BX] ;đúng với mã chuẩn
JE Thoi ;đúng, mã của phím trong BX
Thoi: MOV AL, BL ;mã của phím hệ 16 trong AL
POP CXPOP BXPOPF
RD_KBD Endp
END Main
• Dùng mạch chuyuên dụng để quản lý bàn phín
Thí dụ trên cho thấy một cách phối ghép đơn giản giữa CPU và bànphím Trong trường hợp CPU còn dành thời gian để làm nhiều công việc kháccủa hệ thống hoặc số lựong phím nhiều, thường người táử dụng những mạchquản lý có sẵn để làm các công việc đã nêu liên quan đến bàn phím Như vậybộ vi xử lý được giải phóng khỏi công việc quét bàn phím khi cần thiết nó chỉviệc đọc mã của phím bị ấn do mạch quản lý chyên dụng đưa đến
Mạcd AY5-2376 của Genneral Instrument là một vi mạch chuyên dụngnhư vậy Nó làm việc đúng theo cách của một chương trình quét bàn phím mà
ta đã mô tả ở thí dụ trên và khi đã tạo xong mã xho phím bị ấn, nó đưa ra xungSTB (xung cho phép chốt dữ liệu) để báo cho bộ vi xử lý biết Bộ vi xử lý cóthể nhận biết xung STB khi làm việc theo kiểu thăm dò (polling) hoặc có thểđáp ứng theo xung STB theo kiểu ngắt nếu xung này được sử dụng như mộtxung tác động đến đầu vào yêui cầu ngắt che được INTR Mạch AY5-2376 còncó khả năng quản lý không nhầm lẫn đối với bàn phím ngay cả trường hợp có 2phím được ấn gần như đồng thời
Một trường hợp đặc biệt của việc quản lý bàn phím dùng vi mạchchuyên dụng là bàn phím cho các máy IBM PC và các thiết bị đầu cuối Tạiđây người ta sử dụng một hệ vi xử lý chuyên dụng cho công việc quản lý bànphím Htạ nhân của hệ này là vi mạch 8048 - máy vi tính trong 1 võ, bao gồmCPU 8 bit ROM, RAM, cổng I/O và một bọ đếm/định thời gian lập trình được.Chương trình trong ROM của 8048 điều khiển việc kiểm tra các mạch điện tửcủa bàn phím khi nó được nối với nguồn điện và thực hiện việc quét bàn phímtheo 3 công đoạn đã nêu ở trên Khi có một phím được ấn đến CPU Mã này
Trang 6được truyền đi dưới dạng dữ liệu nối tiếp để giảm bớt số đường dây cần dùngcho việc truyền tín hiệu.
Trong thực tế còn tồn tại những mạch kết hợp các phói ghép - đèn LEDtrong một vi mạch để tạo thuận lợi cho người sử dụng khi xây dựng cac kit vixử lý Đó là trường hợp mạch 8279 của Intel, một vi mạch tổ hợp cỡ lớn lậptrình được Sau khi CPU lập trình (ghi từ điều khiển), mạch 8279 có khả năngquản lý bàn phím theo 3 công đoạn kinh diển đã nêu và đồng thời có khả năngđiều khiển bộ phận hiển thị có nhiều nhất 16 đèn LEN 7 nét ở chế độ động
2 Phối ghép với đèn hiển thị LED ( điốt phát sáng)
Điốt phát sáng - LED là một phần tử phối ghép với bộ vi xử lý ở đầu rarất thông dung Trong trường hợp đơn giản, đó có thể là mộ vài đèn LED đơnlẻ để báo hiệu một vài trạng thái nào đó Phức tạp hơn đó là các đèn LED đượctổ hợp thành đèn chỉ thị 7 nét hoặc nhiều hơn để hiển thị các thông tin dướidạng số hoặc chử
Để điều khiển được các đèn LED này sáng, bộ vi xử lý hoặc các mạchcổng của nó cần được tăng khả năng tải bằng các mạch khuếch đại đệm ( bằngtransitor, bằng mạch SN7400hay SN7406) hoặc các mạch điều khiển đèn LED
7 nét chuyên dụng ( như SN7447) để đảm bảo đưa ra được tín hiệu với côngsuất nhất định cần thiết cho đèn LED
• CPU - SN7447 - LED 7 nét ở chế độ tỉnh
Một trong các phối ghép giữa vi xử lý và đèn LED 7 nét thường thấylà dùng mạch SN7447 để giải mã số BCD ra 7 nét và để điều khiển bộ đènchỉ thị (xem hình 9.4) Đây là kiểu điều khiển đèn LED ở chế độ hiển thịtĩnh với đặc điểm là khá đơn giản về kết cấu nhưng lại rất tốn năng lượng:để thắp sáng các nét của đèn LED thì phải có dòng điện liên tục đi qua
Hình 9.4 Phối ghép vi xử lý với LED 7 nét thông qua mạchSN7447
Ta có thể tính sơ bộ để có thể thấy sự tiêu tốn năng lượng của việchiển thị theo cách này Một đèn LED 7 nét tiêu tốn năng lượng nhiều nhấtkhi nó phải hiện ra số 8 và lúc này nó tiêu thụ doing điện khoảng 140 mA(khoảng 20mA/nét tuỳ theo chủng loại0 Bản than một mạch SN7447 khihoạt đọng cũng tiêu thụ doing điện khoảng 14mA Nếu tâ dùng đèn LEDnày để hiển thị 8 chử số (địa chỉ và dữ liệu) thì riêng mạch chỉ thị ta phảicung cấp khoảng 1.5mA
• CPU 7447 - LED 7 nét ở chế độ động - dồn kênh
a
B b
B c
C ’47 d
D e
LT fRBI BI g
µP
D0-D3
MAN7 a
f b g
e c
d
150Ώ
Trang 7Hình 9.5 Phối ghép hiển thị ở chế độ động và dồn kênhĐể khắc phục nhược điểm của mạch phối ghép hiển thị tỉnh như đã đượcnêu ở trên, người ta thường sử dung mạch phối ghép hiển thị động làm việctheo nguyên tắc dồn kênh: toàn bộ cá đèn hiển thị dùng chung một bộ điềukhiển SN7447 và các đèn LED không được thắp sáng liên tục mà luân phiênnhau sáng theo một chu kỳ nhất định Công suất tiêu thụ nhờ thế mà giảm đi rấtnhiều mà vẫn đạt được hiệu quả hiển thị.
Sơ đồ mạch phối ghép này được thể hiện trên hình 9.5
Nguyên tắc hoạt độngGiá trị số cần hiển thị của mỗi con số được gửi đến cổng PB của 8255Atừ CPU dưới dạng mã BCD Từ đây BCD được mạch SN7447 giải mã và tạo racác tín hiệu điều khiển thích hợp đưa đến các chân catốt a.b, g của LED Mỗigiá trị cần hiển thị được đưa đến cổng PB cứ mỗi 2ms một lần cho một đèn
Giá trị số nói trên được hiện ra trên chử số thập phân nào lại là do cácbit của byte dữ liệu từ CPU đưa đến cổng PA của mạch 8255A quyết định
Như vậy cứ mỗi 2ms thì ta phải đưa dữ liệu ra PB rồi PA và cho hiện ramột giá trị số trên một đèn Nếu cả thảy có 8 LED 7 nét thì ta mất 16ms để chohiện số ra cả dãy đèn Quá trình trên lặp đi lặp lại (1 lần haut 16s hay 60 lầntrong 1s) làm cho ta có cảm giác là đèn sáng liên tục mặc dù trong thực tếchúng được điều khiển để sáng không liên tục
Một phương pháp phối ghép giống như trên nhưng không dùng mạchgiải mã SN7447 cũng rất hay được sử dung Thay vì mạch SN7447 như trên,tại đây ta dùng một bộ khuếch đại đệm chỉ để nâng cao khả năng tải của cổng
PB Vì thế trong trường hợp này CPU phải đưa đến PB không phải là 4 bit mãBCD của giá trị số hiển thị mà là các mẫu 7 bit để làm sáng các nét tương ứng
MAN7 a
f b g
e c
d
MAN7 a
f b g
Trang 8với giá trị số đó Như vậy CPU phải để thì giờ để chuyển đổi từ giá trị số hệ16sang mẫu bit dành cho các net của LED và ta có khả năng hiển thị các số từ 0 -
FH
Để giả phóng hoàn toàn bọ vi xử lý khỏi công việc điều khiển đèn LED
ta có thể dùng mạch điều khiển 8279 đã được nói đến trong mục trước
3 Phối ghép với màn hình
Trong giai đoạn hiện nay, màn hiển thị bằng tinh thể lỏng (liquid crystaldisplay, LCD) và màn hình bằng ống tia điện tử hay đèn hình (cathode raytube, CRT) là các thiết bị hiển thị rất thông dụng đối với máy vi tính loại xáchtay hoặc loại để bàn Trong phần này ta chỉ giới thiệu các thông số và các phốighép màn hình loại CRT và CPU Mạch dùng cho cách phối ghép này coinđược gọi là bộ điều khiển màn hình (CT controller, CRTC)
• Màn hình hiện chử (chế độ văn bản)
QUÉT MÀNH VÀ QUÉT DÒNG
Đèn hình thực chất là một đèn điện tử có hai đầu, trong đó một đầu cóbề mặt loe rộng ra để làm chổ quan sát hình ảnh của các tia điện tử và bên cạnhlà lưới kim loại nối với điện áp rất cao để gia tốc cho các tia điện tử phát ra từmột suing đặt ở đầu bên kia của đèn Bề mặt phía trong đầu loe của đèn đượcphủ một lớp hoá chất( lớp huỳnh quang) có khả năng phát sáng khi có điên tửđập vào, màu của đèn sáng phát ra phụ thuộc vào thành phần hoá học của lớphuỳnh quang Nếu màn hình là loại một màu thì trên bề mặt này chỉ có mộtchất huỳnh quang duy nhất, còn nếu là màn hình màu thì lớp huỳnh quangđược hình thành từ rấ nhiều phần tử của 3 loại hoá chất khác nhau, khi óc điệntử đập vào mỗi chất liệu có thể phát ra một trong 3 màu cơ bản: đỏ (red,R),xanh lơ hoặc là xanh nước biển (blue, B), và xanh lá cây (green, G) Điện tửphải đi qua một mặt nạ gồm rất nhiều lỗ để được định hướng chính xác vào cácphần tử phát màu Khoảng cách giữa các lỗ trên mặt nạ (hay kích thước của cácđiểm ảnh( pitch) trên màn hình quyế định đọ phân giải của một màn hình
Muốn thể hiện hình ảnh trên màn hình ta phải điều khiển tia điện tử,được phát xạ ra từ một catốt bị nung nóng ở đuôi đèn, di chuyển từ trái sangphải ( tạo ra dòng) và từ cao xuống thấp (tạo ra mành), đồng thời ta phải điềuchế cường độ của tia điện tử theo độ sáng của hình ảnh muốn hiện trong suốtthời gian tia điện tử di chuyển đến phần loe ra của đèn Những lúc tia điện tửgặp đầu mút bên phải cuing như bên dưới của màn hình nó sẽ bị tắt và được láirất nhanh theo hướng ngược lại để lại bắt đầu quá trình “ quét “ tạo ra dòngmới và mành mới Tuỳ theo cách thực hiện việc quét ta có thể có cách quét 1mành hay 2 mành xen kẽ Tuỳ theo các tiêu chuẩn khác nhau tá cũng có cácthông số về dòng quét cho một mành, tần số quét dòng hoặc tần số quét mànhvới các trị số khác nhau
Cho dù có các thông số khác nhau, một màn hình cho máy vi tính thôngthường phải bao gồm các mạch dao động để tạo ra xung quét dòng, xung quétmành dùng vào việc điều khiển chuyển động của tia điện tử và mạch khuếchđại tín hiệu hình để điều khiển ccường độ sáng của tia điện tử đó Để màn hìnhnày hiển thị được thông tin, ta phải cung cấp các tín hiệu đồng bộ cho các bộtạo dao động nói trên và cung cấp tín hiệu chứa thông tin về đối tượng cần hiểnthị (tín hiệu hình) cho bộ khuếch đại ảnh Cả 3 tín hiệu điều khiển này phảiđược đồng bộ với nhau để tạo ra điểm ảnh của hình được hiện ra tại cùng một
vị rí trên màn trong mỗi mành
CÁCH HIỂN THỊ KÍ TỰ
Trang 9Kí tự hoặc hình vẽ được hieenr thị lên màn hình bằng cách tập hợp các
điểm (điốt) sáng hay tối Trong chế độ văn bản (text mode) Các điểm nàyđược hình thành bằng việc có cho tia điện tử có đập hay không đập vào mànhuỳnh quang theo một khuôn mẫu có sẵn, trong đó các điểm được tổ chức theo
ma trận
Trên hình 9.6 là ts dụ các ma trận điểm dùng làm mẫu chứ phục vụ choviệc hiển thị chữ E và chử H trên màn hình Chấm đen để biểu hiện cho nhữngchổ có điện từ đập vào màn, chấm trắng để biểu hiện cho những chỗ không cóđiện tử đập vào màn hình (chữ trắng tren nền đen) Đây là ma trân điểm 5x7cho các kí tự Các kích thước ma trân khác hay được dùng trong thực tế là 7x9,7x12 hay 9x14 Các mẫu như vậy thường được tạo sẵn cho mỗi kí tự ASCII vàđược chứa trong một vi mạch nhớ ROM có tên là ROM tạo chữ
Hình 9.6 Hiên chữ E và H lên màn hình
Bộ chia 80*: bộ đếm ký tự (80 ký tự/hàng+ thời gian quét ngược dòng)Bộ chia 14: bộ đếm dòng quét (14 dòng / ký tự)
Bộü chia 25*: bộ đếm hàng chữ (25 hàng/mành + thời gian quét ngượcmành)
Trên hình 9.7 là sơ đồ khối của một mạch để hiển thị được một tangmàn hình văn bản bao gồn 80 ký tự theo chiều ngang và 25 ký tự theo chiềudọc (80x25)
Tạo xung
RAM đệmA0-A6A7-11
D0-D8A0-A7ROM tạo chữR0-R3
÷9
÷14
÷25
÷80
Trang 10Hình 9.7 Sơ đồ khối mạch hiện chử theo ma rân 9x14 trên màn hìnhMã ASCII của các ký tự thuộc mỗi trang màn hình cần hiển thị đượcchứa sẵn trong một bộ nhớ RAM đệm màn hình ( mỗi ký tự cần 1 byte để ghinhớ mã của nó) Nếu ta cần hiển thị một trang màn hình gồm 80x25= 2000 ký
tự thì ta cần dùng đến một bộ nhớ RAM đệm códung lượng cỡ 2KB Nội dung của bộ nhớ RAMđệm này được bọ điều khiển màn hình đưa rađịnh kỳ để làm tươi màn hình sau 1 khoảng thờigian nhất định ( như vậy màn hình hiện thị thôngtin làm việc ở chế độ động) Trong thực tế bộnhớ RAM đệm này còn phait thâm nhập đượcbằng bộ vi xử lý để ta còn có khả năng thay đổiđược nội dung cần hiển thị Các địa chỉ A0-A6sẽ xác định vị trí của ký tự cần hiển thị trong 1hàng còn các địa chỉ tử A7 - A11 sẽ xác định toạđộ theo cột của cả một hàng cần hiển thị Nóicách khác tổ hợp các bit địa chỉ từ A0 - A11 củaRAM đệm sẽ quyết định toạ độ cụ thể của mộtký tự trên màn hình
Trong thực tế ma trân điểm 9x14 của bộnhớ ROM tạo chữ có dạng như trên hình 9.8 Các dòng điểm thừa ra ở 4 phía làđể tạo ra giãn cách chữ trong hàng và giãn cách giữa các hàng với nhau
Hình 9.8 Ma trận điểm 9x14 cho chữ P và chữ p
Khi ROM tạo chữ nhận đuợc tín hiệu địa chỉ từ RAM đệm thì đó chínhlà mã ASCII của ký tự cần hiển thịvà một ma trận điểm tương ứng của ký tựđược chọn để đưa ra màn hình Việc quét các dòng điểm trong ma trân điểm là
do các tín hiệu quét dòng R3 - R0 quyết định
Giả sử nội dung của bộ đếm ký tự lúc này là 0 Ký tự đầu tiên ở góc tráimàn hình được chọn để hiển thị Mã ASCII của nó được đưa đến bộ nhớ RPMtạo chử Giả thiết lúc đầu bộ đếm dòng quét có R3 R2 R1 R0 =0000 Ở đầu racủa bộ nhớ Rom tạo chử có dòng điểm đầu tiên (9 điểm cho 1 ký tự) được đưa
ra bộ ghi dịch, ở đây dữ liệu từ dạng song song được biến thành dạng nối tiếprồi đưa đến bộ khuếch đại với tốc độ 16.257.000điểm/s để điều chế cường độ
Trang 11của tia điện tử phát ra từ catốt đèn hình Nên nhớ rằng khi quét dòng quét chomột ký tự vừa xong thì bộ đếm ký tự tự động tăng thêm để ta có thể lấy ra dòngđiểm của ký tự tiếp theo cần hiển thị ở trong cuing một hàng Công việc cứ tiếptục như vậy cho đến khi thao tác xong với ký tự 80, lúc này tia điện tử bị láingược lại để bắt đầu lại quá trình trên đối với dòng quét tiếp theo.
Khi đã quét xong được 14 dòng điểm cho 80 ký tự như trên (tức là chomột hàng ký tự) thì bộ đếm ký tự tự động tưng thêm 1 và hàng ký tự tiếp theolại được quét như đối với hàng ký tự trước đó Quá rình sẽ tiếp diễn cho đếnkhi thao tác xong với hàng ký tự thứ 25 Lúc này tia điện tử bị lái ngược lại đểcó thể bắt đầu lại quá trình làm tươi màn hình từ ký tự đầu tiên trên góc trái củahàng ký tự thứ nhất trên màn hình
Hình 9.9.Sơ đồ khối bộ phối ghép màn hình một màu của IBM
MÀN HÌNH MỘT MÀU CỦA IBM
Trên hình 9.9 là sơ đồ khối của vi điều khiển màn hình một màu(monochrome display adapter, MDA ) của IBM Nhìn vào sơ đồ khối này tacó thể nhận ra một số khối chức năng đã được giới thiệu trên hình 9.7 Tần sốđiểm 16,257 MHz được chia cho 9 ở bên trong khối logic xử lý tín hiệu hình đểtạo r tần số ký tự 1,787,904 MHz, tần số này được đưa đến mạch điều khiểnmàn hình CRTC 6845 để tạo ra các xung đồng bộ và các xung khác cần thiếtcho việc làm tươi màn hình Mạch CRTC có chức năng bao trùm chức năngchức năng của các bộ đếm ký tự, bộ đếm số dòng quét và bộ đếm số hàng kýtự của hình 9.7 cùng một số chức năng khác, nhưng với khả năng hoạt độnglinh hoạt hơn nhiều vì nó là một vi mạch rất phức tạp lập trình được Khối logicxử lý tín hiệu hình sẽ được xử lý các tín hiệu từ bộ ghi dịch cuing với các tín
Trang 12hiệu điều khiển hình ( đồng bộ dong, đồng bộ mành) để tạo ra tín hiệu hìnhcuối cuing đưa ra điều khiển trực tiếp màn hình.
Trong hình 9.9 bên cạnh 2KB RAM đệm chứa các byte là mã ASCIIcủa các ký tự cần hiển thị ta còn thấy có 2 KB RAM đệm khác dùng để chứacác byte thuộc tính của các ký tự đó
Byte thuộc tính (xem hình 9.10 )quy định cách thức hiển thị ký tự đãcho trên màn hình: độ sáng của ký tự, ký tự hiện liên tục hay nhấp nháy, quanhệ giữa màu nền và màu chữ ( ví dụ hiện bình thường thì chử trắng trên nền đencòn ngược thì chữ đen trên nền trắng) Trong bộ nhớ thực, byte mã ký tự đặt địachỉ chẵn còn byte thuộc tính đạt tại địa chỉ lẻ Mỗi mãng nhớ 2KB RAM nàyđều thâm nhập được từ CPU hoặc từ CRTC
Để không xảy ra xung đột giữa CPU và CRTC trong khi thâm nhập bộnhớ, thông thường CPU chỉ được quyền thâm nhập vào các RAM đệm trongthời gian của các xung quét ngược hoặc cả CRTC và CPU đều chia 1/2 thơidgian liên tiếp của xung ký tự để thâm nhạp vào RAM đệm
Để làm tươi màn hình CRTC liên tục đưa địa chỉ đén các ô của bộ nhớmã ký tự và bộ nhớ thuộc tính Mỗi xung ký tự sẽ cho phép chốt 1 byte mã kýtự và 1 byte thuộc tính để đưa đến bộ ROM tạo chữ và bộ giải mã thuộc tính.Quá trình này sẽ tiếp tục cho các ký tự khác trong trang màn hình và cứ lặp đilặp lại mãi
I=1: ch hi n ra sâng h nữ ệ ơ
BL=1:ch nh p nhâyữ ấ
Hình 9.10 Byte mã ký tự và byte thuộc tính
CÁC XUNG NHỊP VÀ XUNG ĐỒNG BỘ
Các bộ phối ghép màn hình khác nhau có tần số xung đồng bộ dòng.Xung đồng bộ mành và tần số điểm khác nhau đẻ phù hợp với các loại màn
Trang 13hình mà nó phải điều khiển Nói chung các bộ phối ghép màn hình thôngthường có tần số xung quét dòng màn hìnhdài 15,50KHz, tần số xung quétmành nằm trong dãi 50 - 60 Hz và tần số điểm nằm trong dãi 10 - 100 MHz
Ta lấy lại ví dụ bộ điều khiển màn hình một màu của IBM để phân tíchcác xung chính Hình 9.11 biểu diễn sự phân chia thời gian của 2 loại xungquét
Hình 9.11 Phân chia thời gian các xung quét dòng và quét mành
Giả thiết ta phải hiển thị một trang màn hình gồm 80x25 ký tự với matrận điểm 9x14 Như vậy trên khung hình làm việc của màn hình ta phải có80x9=720 điểm/dòng quét và ta phải có tất cả 25x14=350 vòng quét Nếu ta sửdung tần số điểm là 16,257 MHz (16,257,000 điểm/s) thì với tần số dòng18,432 KHz (hoặc dòng quét/s) ta sẽ có (16,257,000điểm/s)/(18,432 dòngquét/s)=882 điểm/dòng quét Như thế ta có 162 điểm dôi r, nghĩa là tương ứngvề mặt thời gian ta có thêm thời gian để bù vào các đoạn quét trội (ngoài vùnglàm việc của màn hình) và thời gian quét ngược của tia điện tử theo chiềungang
Tương tự ta cũng có tần số xung quét mặt là 50Hz (50 mành/s), với tầnsố dòng 18,432 kHz (hay dòng quét/s) ta sẽ có (18,432 dòng quét/s)/(50mành/s)=369 dòng quét/mành Trước đay ta đã tính được khung hình làm việc
ta chỉ cần 350 dòng quét/mành, tức là có dôi thêm ra 19 dòng quét/mành Vớisố dòng quét dôi ra này, tương ứng về mặt thời gian ta sẽ có thêm thời gian đểbù vào các đoạn quét trội (ngoài vùng làm việc của màn hình) và thời gian quétngược của tia điện tử theo chiều dọc
• Màn hình đò hoạ ( chế độ đồ hoạ)
MÀN HÌNH ĐỒ HOẠ MỘT MÀU
Trong chế độ văn bản, các chấm ở đầu ra của bộ ghi dịch là hình ảnhcủa các dòng điểm của các ký tự được ghi sẵn trong ROM tạo chữ Tương tựnhư vậy, để thể hiện một hình ảnh bất kỳ (trong đó có cả chữ, nhưng khôngtuân theo một khuôn mẫu sẵn có nào) ta có thể đưa vào thanh ghi dịch cácđiểm thành phần của hình đó Để làm được điều này ta không cần đến bộ ROMtạo chữ nữa và bộ nhớ RAM đệm lúc này, thay vì chứa mã ASCII của ký tự, taphải chứa các điểm ảnh (pixel hay pel) mà tổ hợp của chúng chính là hình ảnhcần phải thể hiện Chế độ làm việc kiểu này của màn hình gọi là chế độ đồ hoạ,màn hình hiển thị hình ảnh theo bản đồ điểm ảnh (bit-map)
Giả thiết ta phải thể hiện trên khung hình làm việc 640 điểm ảnh theochiều ngang vvà 400 điểm theo chiều dọc thì cả khung hình làm việc này tương
thời gian quĩt trội
Khung hình lăm việc
( Tích cực )
Măn hình thời gian quĩt trội
thời gian quĩt mănh tích cực
thời gian quĩt dòng tích cực
thời gian quĩt trội vă quĩt ngược
Trang 14đương với một ma trận với 256000 điểm ảnh Nếu để ghi nhớ mỗi điểm ảnhnhư vậy ta cần 1 bit trong bộ nhớ RAM đệm thì với toàn bộ khung hình làmviệc ta cần đến bộ nhớ với dung lượng cở 32KB Từ đây ta cũng nhận thấy rằngnếu phải ghi nhớ thông số cho một điiểm ảnh màu thì ta phải tốn thêm nhiều ônhớ hơn so với cho trưòng hợp điểm ảnh một màu
MÀN HÌNH ĐỒ HOẠ MÀU
Như trước đây đã nói, màn hình (nhiều) màu khác màn hình một màubởi sự có mặt của các cum 3 phần tử trong lớp huỳnh quang phủ lên bề mặtphía tong của đèn hình, mỗi tphần tử có khả năng phát ra 1 trong các màu R, Bvà G Màu của một điểm ảnh trên màn hình màu là của 3 điểm sáng phát ra từ
3 phần tử màu đó khi chúng bị 3 tia điện tử đi ra từ 3 súng catốt đèn hình bắnvào Như vậy, để điều khiển 1 điểm ảnh của màn hình màu ta phải có 3 tín hiệuđể điều khiển 3 tia R,B và G kèm thêm 1 tín hiệu để điều khển cường độ sáng(I) của điểm ảnh Màn hình màu loại này vì vậy còn được gọi là màn hìnhRBG hoặc màn hình RBGI Chúng thường được thiết kế để có thể làm việcđược với các khuôn hình hiển thị khác nhauvà với các tần số của các xung đồngbộ dòng và mành nằm trong mọt dãi nhất định
Ta thấy ngay rằng để ghi nhớ thông tin cho một điểm sáng trên mànhình màu nằm trong bộ nhớ RAM đệm theo kiểu đã làm cho màn hình mộtmàu A phải tốn tới 4 bit (thay vì 1 bit như trong trường hợp màn hình 1 màu)và nếu ta phải hiển thị trên khung hình làmviệc 640x400 điểm ảnh thì bộ nhớRAM đệm cho màn hình màu phải có dung lượng cỡ 32KBx4=96KB
Hình 9.12 16màu của màn hình màu đồ hoạ CGA
Với 4 bit để chứa thông tin về màu cho một điểm ảnh tacó khả năng thểhiện được điểm ảnh đó với 16 màu (xem hình 9.12)
Để có thể hiện một điểm ảnh với các gam màu liên tục hơn người ta đãđưa vào sử dụng các màn hình tương tự.Các màn hình này được nối qua cácmạch biến đổi số_tương tự (DAC) ở đầu vào và các bộ biến đổi này được nối
Trang 15đến các vi điều khiển màn hình làm việc với tín hiệu hình ở dạng số đã cósẵn.Ví dụ:nếu ta dùng 2 bit để mã hoá các gam khác nhau cho 1 màu cơ bản vànếu ta dùng một bộ DAC 2 bit cho mỗi màu, ta có thể hiển thị một điểm ảnhvới 4x4x4=64 loại màu khác nhau.
BẢNG MÀU VÀ MẠT ĐIỂM ẢNH
Như đã nói ở trên, nếu ta dùng một bt trong bộ nhớ RAM đệm để nhớthông tin cho một điểm ảnh một màu thì ta phải dùng nhiều bit hơn để chứathông tin cho một điểm ảnh màu, vì các thông tin cho các màu R,B và G cũngphải được lưu trữ Ví dụ, để hiện một điểm ảnh màu với 256 màu khác nhau taphải dùng đến 8 bit lưu trữ thông tin về điểm đó Nếu ta lấy trường hợp phảihiển thị 640x400 điểm, mỗi điểm với 256 màu khác nhau ta sẽ phải cần bộ nhớdung lượng 256.000 byte Điều này gây khó khan trong việc thực hiện bộ nhớRAM đệm về mặt giá cả cũng như về không gian địa chỉ dành cho phần hiểnthị trong các hệ vi xử lý 16 bit
Để hạn chế số bit cần thiết cho việc lưu trữ thông tin của điểm ảnh màumà vẫn đảm bảo được gam màu rộng người ta đã sử dung việc mã hoá thông tintheo bảng màu (palêtt) Điều này có nghĩa là trong một thời điểm chúng ta chỉđược sử dung mố số màu trong một bảng màu chứa taut cả các màu có thể có
Ví dụ, vi điều khiển màn hình CGA của hãng IBM có khả năng hiển thịmột lúc 320x200 điểm với 4 màu chọn trong bảng màu gồm 16 màu Vì tại mộtthời điểm ta chỉ hiện 4 màu nên để lưu trữ thông tin cho một điểm ảnh ta chỉcần 2 bit
Ví dụ khác, nếu tại một thời điểm ta vừa lòng với việc hiển thị 640x400điểm ảnh với 16 màu trong bảng màu gồm 256 màu, chứ không phải là với 256màu cuing một lúc, ta sẽ chỉ cần đến 4 bit để lưu giữ thông tin cho một điểmảnh với 1 rong 16 màu Bộ nhớ RAM đệm sẽ nhỏ đi được một nửa so vớitrường hợp hiện đủ 256 màu, lý do là một byte trong trường hợp này có thểchưa thông tin cho 2 điểm màu (xem hình 9.13a)
Việc chỉ dùng một số màu trong một bảng màu để làm giảm kích thướcbộ nhớ đệm là rất có lợi đối với các bộ điều khiển màn hình màu có đfộ phângiải cao (và như vậy đòi hỏi bộ nhớ lớn)., vì điều này làm giảm được tần sốtruy nhập bộ nhớ DRAM đệm khi làm tươi màn hình
Một biện pháp khác để làm giảm tần số truy nhập bộ nhớ đệm khi làmtươi màn hình là bằng cách tổ chức bộ nhớ đệm theo các mặt nhớ song song đểchứa thông tin của một điểm Cách tổ chức bộ nhớ cho kiểu hiển thị này đượcminh hoạ trên hình 9.13b
Trong cách làm này, 4 bit thông tin của 1 điểm ảnh được để tại các vị trígiống như trong 4 byte liên tiếp của bộ nhớ DRAM đệm Điều này tươngđương việc mỗi thông tin vê3f 1 màu được để trong một mặt điểm (bit plan).Khi bộ điều khiển màn hình lấy 4 byte này vào các thanh ghi của nó thì cóđược cả thảy thông tin của 8 điểm ảnh Trong khi 8 điểm ảnh này được đưa ramàn hình thì bộ nhớ DRAM có thời gian hồi phục để lại có thể đọc tiếp được
Với 4 bit thông tin cho một điểm ảnh trong 4 mặt ta sẽ chọn được 1trong 16 thanh ghi tương ứng với 1 trong 16 màu của bảng màu gồm 64 màu(thanh ghi này có 6 bit cho màu đỏ nhạt, xanh biển và xanh biển nhạt, xanh lácây và xanh lá cây nhạt) Đây cũng là cách hiển thị điểm màu của vi điều khiểnmàn hình EGA ( enhanced graphics adapter, bộ phối ghép đồ hoạ cải tiến)
• Các loại phối ghép màn hình thông dụng
Trên hình 9.14 là bản liệt kê các loại mạch phội ghép màn hình thôngdụng trong thực tế và các thông số kỹ thuật chính của chúng Hinh 9.14 cũng
Trang 16giới thiệu mẫu hiển tị của các vỉ phối ghép màn hình cho các máy vi tính cá
nhân của hãnh IBM hoặc tương thích
a) Chứa thông tin theo điểm ảnh
Đến màn hình RBGI b) Chứa thông tin theo kiểu điểm ảnh
Hình 9.13 Cách chứa thông tin trong bộ nhớ RAM đệm hình
Các máy tính cá nhân của IBM hoặc các máy tương thích thường không
có sẳn khả năng đồ hoạ gắn trên bảng mẹ Người dùng phải lựa chọn để cắm
vào bảng mẹ một vi mạch phối ghép (vỉ điều khiển màn hình) với khả năng
hiển thị ở chế độ văn bản/đồ hoạ thích hợp và chọn loại màn hình điều khiển
phù hợp với bộ điều khiển đó Do vậy tên của bộ điều khển màn hình cũng
dùng để gọi luôn cho loại màn hình tưong thích đi kèm với nó
đệm hình
Mặt 1 D0 Mặt 1 D0 Mặt 1 D0 Mặt 1 D0
0
5
15
Trang 17Hình 9.14 Các loại phối ghép màn hình chính cho máy IBM
VỈ CGA CỦA IBM
Vỉ phối ghép màn hinhgf màu đồ hoạ (color graphics adapter, CGA)một thời là một loại vỉ phối ghép màn hình thông dụng, nó có thể điều khiểnmàn hình làm việc ở chế độ văn bản cũng như chế độ đồ hoạ Hạt nhân của vỉnày vẫn là vi mạch chuyên dụng CRTC 6845 nỗi tiếng của Motorola MạchCRTC này cung cấp các tín hiệu địa chỉ cho RAM đệm để làm tươi màn hình,tín hiệu để quét dòng điểm của ma trận điểm trong ROM tạo chữ các tín hiệuđồng bộ dòng và đồng bộ mành và một số tín hiệu khác, Vỉ CGA có thể điềukhiển màn hình màu với các đầu vào RBG tách biệt hoặc cung cấp tín hiệuhình tổng hợp đưowcj điều chế cao tần cho loại màn hình màu tổng hợp
Trong vỉ CGA có bộ nhớ RAM đệm hình với dung lượng 16 KB vàđược bắt đầu từ địa chỉ 0B800H Ở chế độ văn bản, màn hình hiển htị được80x25 ký tự theo ma trận điểm 8x8, mỗi ký tự cần 2 byte liên tiếp để chứa mãvà thuộc tính giống như ở bộ điề khiển cho màn hình một màu ( xem hình9.10a: trên hình 9.10b các bit b2 b1 b0 tưong ứng với các màu RGB cho chữ và
b6 b5 b4 tương ứng với các màu RGB cho nền) Để hiển thị kí tự ta có thể địnhnghĩa được 8 màu nền và 16 màu chử theo tổ hợp với các bit thuộc tính (xem
Trang 18hình 9.12) bit BL=1 là để hiển thị chữ nhấp nháy I=1 là để hiển thị chữ vớicường độ sáng lớn hơn Như vậy, để lưu giữ thông tin của một trang màn hìnhvăn bản ta dùng haut $KB bộ nhớ và với 16KB RAM đệm hình có trên vỉ CGA
ta có thể lưu giữ được 4 trang văn bản
Khi làm việc ở chế độ đồ hoạ, tín hiệu từ RAM đệm được đưa trực tiếpđến các thanh ghi dịch để đưa đến điều khiển riêng biệt mỗi suing điện tử VỉCGA có thể làm việc ở 3 mức độ phân giải: thấp (160x100 điểm, 4 màu trongbảng 16 màu), trung bình (320x200 điểm, 4 màu trong bảng 16 màu) và cao(640x200 điểm, 2 màu đen và trắng)
VỈ IGA CỦA IBM
Vỉ phối ghép đồ hoạ cải tiến (enhanced graphics adapter,EGA) có bêntrong bộ điều khiển màn hình giống như mạch CRTC 6845 nên nó cho phéplập trình để định nghĩa ra tất cả các chế độ làm việc như vỉ CGA, ngoài ra nócòn định nghĩa được một số chế độ đặc biệt khác Vỉ EGA sử dụng cách bố tríbộ nhớ đệm theo kiểu mặt điểm ảnh và các thanh ghi bảng màu (xem hình9.13b)
Trên hình 9.13 biểu diễn chế độ hiển thị 640x350 điểm với 16 màutrong bảng màu gồm 64 màu Bộ nhớ DRAM đệm được sắp xếp thành 4 mặtnày chứa 1 bit mô tẩ thông tin về màu của 1 điểm Một nhóm 4 bit đọc được từ
4 mặt nàyđược dùng để chọn ra 1 trong 16 thanh ghi 8 bit của bảng màu Chỉcó 6 bit thấp của thanh ghi mới được dùng để đưa ra điều khiển màn hình Tổhợp của 6 bit này tạo rra các màu của bảng 64 màu, đó là các màu trên thực tếhiển thị được hteo các giá trị cụ thể có trong thanh ghi bảng màu
BBỘ MCGA CỦA IBM
Bộ phối ghép MCGA (multicolor graphics array) của IBM được cấyngay trên bảng mẹ của máy PS/2-30 cho phép lập trình để hiển thị trong tất cảcác chế độ của vỉ EGA và một số chế độ khác Ví dụ , ta có thể lập trình để cóchế độ hiển thị 320x200 điểm với 256 màu hoặc 640x480 điểm đen trắng
VỈ VGA CỦA IBM
Trong vỉ phối ghép VGA (vidio gate array ) cũng có bộ CRTC cho phéplập trình để chọn ra các giá trị thích hợp cho tần số điểm, số dòng quét mành,tần số quét mành, số dòng quét trội Vỉ VGA có thể thực hiện được tất cả cácchế độ hiển thị của các vỉ CGA và EGA cuing nhiều chế độ riêng biệt khác
Ví dụ vỉ VGA với 8 bit để mã hoá màu cho một điểm ảnh có thể điềukhiển hiện thị 256 mảutong 1 bảng màu gồm 262.144 (256K) màu Để làmđược điều như vậy, bộ nhớ của vỉ VGA được tổ chức thành 4 mặt, mỗi mạtchứa 8 bit mã hoá màu cho 1 điểm Đầu ra của vỉ VGA là tín hiệu tương tự chocác màu RGB Có 3 bộ DAC cho 6 bit được nối vào 6 bit tương ứng cho mỗimàu của 1 trong 256 thanh ghi màu 18 bit (hình 9.15a) Các thanh ghi màunày được chọn nhờ nội dung 4 bit thấp của thanh ghi bảng màu , 4 bit cao củabyte mã hoá màu cho 1 điểm chọn ra các thanh ghi bảng màu, còn 4 bit thấpcủa nó được dùng để chỉ ra địa chỉ phần cao của các thanh ghi màu (địa chỉ củamột vùng các thanh ghi màu) Như vậy, với 64 mức màu cho 1 màu thì ta cóbảng màu gồm 64x64x64=256K màu
Trên hình 9.15b là một ví dụ về chế độ hiển thị 640x400 điểm 16 màu.Mỗi điểm ảnh được mã hoá bằng 4 bit để tại 4 mặt điểm, 4 bit này chọn ra được
1 trong 16 thanh ghi bảng màu Thanh ghi chế độ chỉ cho phép 4 bit thấp củathanh ghi bảng màu chọn ra 1 thanh ghi màu trong nhóm màu., 4 bit htấp của
Trang 19255
3115
DAC 6 bit
66
Thanh ghi bảng màu Thanh ghi màu 18 bit
Thanh ghi điều
khiển chế độ Thanh ghi chọn màu
4
4
Thanh ghi bảng màu Thanh ghi màu 18 bit
thanh ghi chọn màu sẽ chọn 1 trong 16 nhóm màu Như vậy, ta có thể chuyểnrất nhanh giữa các nhóm 14 màu này
• Lập trình cho các vỉ phối ghép màn hình
Các vỉ phối ghép màn hình về mặt lập trình là tương đương với các cổngcó địa chỉ xác định Vì vậy để điều khiển màn hình làm việc ta chỉ cần ghi cácthông số cần thiết vào thanh ghi điều khiển, thanh ghi bảng màu là xong.Trong thực tế có nhiều cách lập trình để điều khiển màn hình làm việc, trongđó có 2 cách thông dụng nhất:
+ Dùng các lệnh hợp ngữ để ghi các thông số cần thiết vào các thanh ghiđiều khiển của vỉ phối ghép để điều khiển chế độ hiển thị và để ghi trực tiếp kýtự cần hiển thị vào RAM đệm để thay đổi nội dung Đây thường là cách để đạtđược tốc độ hiển thị nhanh nhất
+ Dùng các dikchj vụ ngắt INT 10H của BIOS nếu làm việc với cácmáy kiểu IBM Cách này thường chậm hơn cách trên nhưng có lợi là ta có thểsử dụng các dịch vụ có sẵn của BIOS và vì vậy có thể trao đổi chương trìnhgiữa các máy
Ví dụ
Để minh hoạ cho việc lập trình cho màn hình dùng hợp ngữ bằng cáchghi trực tiếp vào vùng RAM đệm hiện thị, ta lấy một ví dụ hiển thị một mànhình 80 cột và 25 hàng ký tự ‘$’ (tức 80x25 = 2000 ký tự ‘$’) với màu tía trênnền xanh da trời
Thân của chương trình nói trên viết dưới dạng thủ tục có thể như sau:Disp Proc
MOV AX, 0B800H ;cho DS chỉ vào vùng RAM đệmMOV DS, AX
MOV CX, 2000 ;số ký tự phải hiệnMOV DI, 0 ;hiển thị ký tự tại góc trái caoHIEN: MOV [DI] , 3524H ;$ tía trên nèn trời xanh!!!
ADD DI, 2 ;hiện ký tự tiếp
INT 21HDisp Endp
a) Hiện 320x200 điểm với 256 màu
Nhóm1Nhóm2Nhóm 15
RBG240
Trang 20255
3115
DAC 6 bit
66
15 4
4
6 b) Hiện 640x480 điểm 16 màu
Hình 9.15 hiển thị điểm màu trong vỉ VGA
4 Phối ghép với thế giới tương tự
Việc phối ghép hệ vi xử lý và các thiết bị làm việc với các đại lượngtương tự là một nhu cầu rất hay gặp trong thực tế cũng như trong công nghiệp.Các phần tử mà hệ vi xử lý cần phải phối ghép thường là các đầu đo (bộ cảmbiến hoặc bộ biến đổi) ở đầu vào và các cơ cấu chấp hành các loại ở đầu ra Đểghép nối với các thiết bị như vậy, thông thường phải cần đến các bộ chuyển đổitương tự - số (analog to digital converter, ADC), các bộ chuyển đổi số - tươngtự (digital to analog converter, DAC) Trong một số trường hợp cụ thể ta còncần đến mọt số thiết bị điện tử chuyên dụng khác bộ khếch đại đo, bộ chuyểnmạch tương tự (bộ dồn kênh hoặc bộ phân kênh tương tự), mạch so sánh số,mạch trích mẫu và giữ mẫu Khuếch đại công suất
Hình 9.16 Sơ đồ khối của hệ thống điều khiển dùng vi xử lý
Các thiết bị trên thường được ghép nối với nhau để tạo thành các hệ tuthập dữ liệu (data acquisition system, ADS), các bộ điều khiển, các thiết bị đolường cao cấp , các thiết bị xử lý dữ liệu thời gian thực , tất cả được sử dụngrộng rãi trong công nghiệp cũng như trong đời sống
Ta sẽ không đi sâu vào từng mạch phối ghép trong các thiết bị cụ thể màchỉ nêu ở đây sơ đồ khối của một hệ thống điều khiển dựa trên cơ sở vi xử lýnhư là một ví dụ đại diện (hình 9.16.)
Hệ thu thập dữ liệu có nhiệm vụ phối ghép với các bộ cảm biến về mặtđiện (phối hợp trở kháng, khuếch đị mức tín hiệu ) và biến các tín hiệu thuđược từ dạng tương tự ssang dạng số để CPU có thể đọc vào và xử lý Bànphím và màn hình là hai thiết bị vào/ra truyền thống Tuỳ theo quy mô và tínhchất công việc, chúng có thể là các thiết bị rất đơn giản như bàn phím hệ 16 và
D4-D7
4 mặt của bộnhớ RAM đệm hình D0-D3 D0- D3
RBG240
00
Trang 21các đèn hiển thị LED,LCD hoặc phức tạp hơn như bàn phím và màn hình giốngnhư trong các máy vi tính thực thụ.
Bộ vi xử lý ở đây thường là loại chuyên dụng, được chế tạo đặc biệt chocác công việc trong điều khiển (ví dụ như các vi mạch 8051, 8096 của Intel).Chương trình viết cho CPU thông thường là để thực hiện các thao tác điềukhiển của các khối chức năng theo kiểu tỷ lệ/tích phân/vi phân (PID) bằngphương pháp số Một điểm đặc biệt nữa là trong hệ thống diều khiển thường cómột đồng hồ thời gian thực (RTC) để hệ thống có thể thực hiện các yêu cầuđiều khiển theo thời gian thực
Các cơ cấu chấp hành thường là loại số hay tượng tự Cơ cấu chấp hànhsố thường là các khoá điện tử hoặc khoá cơ điện dùng để đóng/ngắt các mạchcấp điện cho đối tượng cần điều khiển, vì vậy các cơ cấu này chỉ cần được cấptín hiệu logic thích hợp là được.Các cơ cấu chấp hành tương tự cần được nốivới hệ vi xử lý qua cá bộ chuyển đổi DAC và kèm theo các bộ khuếch đạicông suất để thực hiện các thao tác điêu khiển do bộ vi xử lý đưa đến
5 Phối ghép CPU với mạch đếm/định thời gian 8254 (8253)Mạch định thời gian lập trình được 8254 (8253) là một mạhh phụ rấtquan trọng trong các hệü vi xử lý của Intel Nó có thể đáp ứng được các yêu cầuứng dụng khác nhau trong hệ vi xử lý: đếm thời gian, đếm sự kiện, chia tần số,tạo ra dãy xung
Sơ đồ khối của vi mạch 8254 và cách phối ghép với CPU được thể hiệntrên hình 9.17
Các tín hiệu của vi mạch 8254 có tên và ý nghĩa giống như của 8088nên khá quen thuộc và ta sẽ không cần phải giải thích nhiều nữa Chân chọn võcủa vi mạch 8254 phải được nối với đầu ra của một bộ giải mã để định địa chỉ
cơ bản cho mạch Cùng với địa chỉ cơ bản, các chân địa chỉ A1 và A0 sẽ cungcấp địa chỉ cụ thể của các thanh ghi ở bên trong mạch 8254 khi ghi (lập trình)hoặc đọc thông tin của mạch (xem bảng 9.1) Đó là 3 thanh ghi cho 3 bộ đếmvà 1 thanh ghi cho từ điều khiển
Theo sơ đồ khối ta thấy trong vi mạch 8254 có 3 bộ đếm lùi 16 bit, nộidung ban đầu của mỗi bộ đếm đều có thể lập trình từ CPU để thay đổi được.Ngoài ra ta còn có thể điều khiển được hoạt động của các bộ đếm bằng tín hiệutừ bên ngoài qua các chân của (GATE) để cho phép bắt đầu đếm (GATE = 1)hay để buộc kết thúc quá trình đếm (GATE = 0)
Hình 9.17 Sơ đồ khối của vi mạch 8254
Thanh ghi từ điều khiển
Bộ đếm 0
RD Lôgic
WR diềuA0 khiển A1 ghi/đọc
Bộ đếm 2
Bộ đếm 1
Clk2Clk1
Clk0Gate0
Gate1
Gate2
Out1
Out2Out0
cs