Chương 5: Cấu trúc phần mềm của
8279
IC 8279 có 1 đường đòa chỉ A0 cho chức năng lựa chọn như
sau:
A0 = 0
2
: 8279 xem dữ liệutừ vi xử lí gởi tới 8279 là dữ
liệu để hiển thò.
A0 = 1
2
:8279 xem dữ liệutừ vi xử lí gởi đến là dữ liệu
của lệnh điều khiển 8279.
Các lệnh điều khiển của 8279:
Keyboarb/display mode set:
+ Mã
0 0 0 D D K K K
+ Trong đó hai bit DD dùng để thiết lập mode hiển thò, 3 bit
KKK dùng để thiết lập mode quét bàn phím.
+ Hai bit DD:
DD = 00 : hiển thò 8 kí tự – lối vào trái
DD = 01 : hiển thò 16 kí tự - lối vào trái
DD = 10 : hiển thò 8 kí tự - lối vào phải
DD = 11 : hiển thò 16 kí tự – lối vào phải
+ Ba bit KKK
000 : encode scan keyboard – 2 key lockout
001 : decode scan keyboard – 2 key lockout
010 : encode scan keyboard – N key lockout
011 : decode scan keyboard – N key lockout
100 : encode scan sensor matrix
101 : dencode scan sensor matrix
110 : strobe input, encode display scan
111 : strobe input, decode display scan
Program clock:
+ Mã
0 0 1 P P P P P
+ Lệnh này có chức chia tần số xung clock ở ngõ vào clk ở
chân số 3, các bit PPPPP dùng để xác đònh số chia nằm trong từ
2 đến 30, tần số hoạt động của mạch quét hiển thò và chống dội
của 8279 thường là 100KHz. Nếu tần số ngõ vào là 2MHz thì
phải chia cho 20 để được 100 KHz. Khi đó các bit PPPPP có giá
trò là 10100
Read FIFO /sensor RAM.
+ Mã
0 1 0 AI
X A A A
+ 8279 có 8 byte RAM bên trong để chứa mã của phím ấn
hay mã của các sensors, để truy xuất từng byte mã của phím ấn
hay của sesors ta có thể điều chỉnh các bit AAA tương ứng. Bộ
nhớ này thuộc kiểu FIFO.
+ AI (automatically increment) : ở mức 1 có chức năng làm
con trỏ tựđộng tăng lên byte kế tiếp để sẵn sàng cho việc đọc
dữ liệu. Nếu AI = 0 con trỏ sẽ không thay đổi.
Read display RAM:
+ Mã
0 1 1 AI
A A A A
+ 8279 có 16 byte RAM bên trong do con trỏ 4 bit AAAA
quản lý. 16 byte Ram này dùng để chứa dữ liệu hiển thò do vi xử
lí gởi đến, để đọc dữ liệu ô nhớ nào trong vùng nhớ Ram ta có
thể điều chỉnh các bit AAAA tương ứng.
Bộ nhớ này thuộc kiểu FIFO
+ AI (automatically increment): ở mức 1 có chức năng làm
con trỏ tựđộng tăng lên byte kế tiếp để sẵn sàng đọc byte dữ
liệu. Nếu AI = 0 con trỏ sẽ không thay đổi.
End interrupt
+ Mã
1 1 1 E 0 0 0 0
+ Bit E = 1 sẽ xóa ngắt IRQ về mức 0
Lệnh write display RAM.
+ Mã
1 0 0 AI
A A A A
+ 8279 có 16 byte Ram bên trong do con trỏ 4 bit AAAA
quản lý 16 byte Ram này dùng để chứa dữ liệu hiển thò do vi xử
lí gởi tới. Để gởi dữ liệu đến byte Ram tứ mấy trong 16 byte
Ram ta có thể điều chỉnh các bit AAAA tương ứng
+ AI (automatically increment): ở mức 1 có chức năng làm
con trỏ tư ïđộng tăng lên byte kế để sẵn sàng nhận dữ liệu. Nếu
AI = 0 con trỏ sẽ không thay đổi do đó byte dữ liệu sau sẽ đè
lên byte dữ liệu trước đó.
Hình 16: SƠ ĐỒ CHI TIẾT MẠCH HIỂN THỊ.
Cách khởi tạo 8279 được trình bày ở phần thiếtkế phần
mềm.
2.4.6_Mạch điều khiển báo hiệu:
Khi đến thời điểm báo hiệu, HệThống phát ra tín hiệu điều
khiển thiết bò báo hiệu hoạt động. Việc báo hiệu được thể hiện
bằng đèn chớp tắt hay tiếng còi, chuông điện. Cách thức báo
hiệu như : số hồi chuôngvà độ dài các hồi chuông do phần mềm
Hệ Thống qui đònh. Cách thức báo hiệu có thể thay đổi bằng
cách thay đổi byte mã chuông trong chương trình phần mềm.
Các thiết bò báo hiệu có thể được cấp điện từ nguồn điện khác
với nguồn điện của Hệ Thống.
Mạch điều khiển báo hiệu có đòa chỉ từ 3000h đến 3FFFh.
P sẽ xuất tín hiệu báo hiệu ra mạch điều khiển báo hiệu bằng
lệnh ghi dữ liệu vào 1 byte nhớ bất kì trong vùng nhớ 3000h đến
3FFFh,
P dùng tín hiệu
BDR
để điều khiển việc báo hiệu. Mạch
điều khiển báo hiệu có sơ đồ khối như hình 17.
DATA BUS
Q7
BDR
Hình 17: SƠ ĐỒ KHỐI MẠCH ĐIỀU KHIỂN BÁO HIỆU.
CLOCK
A0-A15 VALID ADDRESS
MERQ
BDR
D0-D7 DATA
Hình 18: CHU KÌ P XUẤT DỮ LIỆUBÁO HIỆU.
Dữ liệubáo hiệu gồm 8 bit từ D0 đến D7 của byte báo hiệu,
ví dụ chọn bit D7 để điều khiển thiết bò báo hiệu. Khi ngõ ra Q7
của mạch chốt ở mức cao sẽ làm thiết bò báo hiệu hoạt động.
MẠCH
CHỐT
8 BIT
THIẾT BỊ BÁO HIỆU
(chuông, còi)
Ngược lại, thiết bò báo hiệu sẽ không hoạt động khi Q7 ở mức
thấp.
D7
BDR
Q7 0 1 0 1 0
KHÔNG BÁOBÁO HIỆU
HIỆU
Hình 19: QUÁ TRÌNH ĐIỀU KHIỂN BÁO HIỆU.
Thông qua tín hiệu điều khiển
BDR
kết hợp với dữ liệubáo
hiệu. Chương trình HệThống có thể thay đổi được thời gian Q7
giữ ở mức cao.
Như vậy, chương trình phần mềm hoàn toàn có thể kiểm soát
số hồi chuông cũng như độ dài hồi chuôngbáo hiệu. Mạch điều
khiển báo hiệu có cấu tạo như sau:
Hình 20: SƠ ĐỒ CHI TIẾT MẠCH BÁO HIỆU.
IC 74LS373 được dùng làm mạch chốt 8 bit, ngõ vào của
74LS373 được nối với Data bus. Bảng sự thật của 74LS373 như
sau:
OC
G DATA Q
L H H H
L H L L
L L X Q
O
Bảng 6: BẢNG SỰ THẬT CỦA 74LS373
Tín hiệu điều khiển
BDR
được cho qua mạch đảo để phù hợp
với mức tác động của chân G IC 74LS373. Ngõ ra Q7 sẽ điều
khiển 1 Opto triac (hoặc relay) đóng mạch cho chuông điện. Với
cấu tạo như trên, HệThống sẽ được cách li về điện với thiết bò
báo hiệu, để đảm bảo an toàn cho người sử dụng.
Ngoài ra, với 8 ngõ ra Q0…Q7 của IC 74LS373, chương trình
phần mềm có thể điều khiển các thiết bò báo hiệu để phát ra âm
thanh báo hiệu có những tần số khác nhau, tăng tính đa dạng
trong cách thức báo hiệu.
2.4.7_Mạch cung cấp điện:
Khi hệä thống bò mất điện, việc đếm thời gian thực sẽ bò gián
đoạn, các thời điểm Hottime và Skiptime trong bộ nhớ sẽ bò
mất. Do đó, HệThống phải được cấp điện liên tục để việc báo
hiệu thực hiện chính xác.
Để thỏûa mãn yêu cầu trên, HệThống được trang bò 1 accu dự
phòng cho trường hợp mất điện lưới. Cấu tạo của mạch cấp điện
sẽ có mạch ổn áp và mạch nạp accu. Việc nạp accu sẽ bắt đầu
khi điện thế accu xuống thấp hơn mức qui đònh và ngưng nạp
accu khi accu được nạp đủ điện.
Mạch cấp điện có cấu tạo như sau:
Hình 21: SƠ ĐỒ CHI TIẾT MẠCH CẤP ĐIỆN
IC 7805 làm nhiệm vụ ổn áp cung cấp điện thế 5V ổn đònh
cho Hệ Thống. Transistor H1061 và zener có Vz = 14v tạo thành
mạch ổn áp nạp điện cho accu 12v. Điện thế nạp cho accu:
VA = Vz – (0,7 +0,7)=12,6V
Bình thường, IC ổn áp 7805 nhận điện từ mạch cầu nắn điện
biến đổi ra 5V cung cấp cho Hệ Thống. Khi đó, điện thế tại
điểm B lớn hơn tại điểm A (VB > VA) nên accu và mạch nạp
accu được tách khỏi 7805.
Khi điện thế accu thấp hơn mức qui đònh (12,6V), transistor
H1061 dẫn điện và accu được nạp điện, trong quá trình nạp
điện, điện thế accu đươcï nâng cao dần. Khi accu đã được nạp
đầy, điện thế accu có khuynh hướng vượt quá 12,6 V. điều này
làm cho transistor H1061 ngưng dẫn, việc nạp accu sẽ dừng lại
tránh hiện tượng nạp quá no gây hỏng accu. Điện thế accu duy
trì ở 12,6V.
Khi điện lưới cung cấp bò gián đoạn (VA > VB) accu sẽ cấp
điện cho HệThống hoạt động, khi có điện trở lại, nếu điện thế
accu xuống thấp hơn 12,6V, mạch nạp accu sẽ hoạt độngvà quá
trình nạp diễn ra như trình bày ở trên.
. phần thi t kế phần
mềm.
2.4.6_Mạch điều khiển báo hiệu:
Khi đến thời điểm báo hiệu, Hệ Thống phát ra tín hiệu điều
khiển thi t bò báo hiệu hoạt động. . mức cao sẽ làm thi t bò báo hiệu hoạt động.
MẠCH
CHỐT
8 BIT
THI T BỊ BÁO HIỆU
(chuông, còi)
Ngược lại, thi t bò báo hiệu sẽ không hoạt động khi Q7 ở