BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA ĐIỆN TỬ 0O0 ĐỒ ÁN MÔN HỌC ĐO LƯỜNG VÀ ĐIỀU KHIỂN MÁY TÍNH Đề tài: Thiết kế mô hình bảng LED điện tử gồm 2 ma trận LED đơn sắc sử dụng cổng song song Sinh viên: Nguyễn Quang Hưng Đỗ Vương Hưng Vũ Văn Bách Lớp : Liên thông CĐ – ĐH Điện tử 1 – K4 Giáo viên: Vũ Thị Thu Hương Hà Nội, tháng 52011 MỤC LỤC LỜI MỞ ĐẦU 03 PHẦN I: CƠ SỞ LÝ THUYẾT 04 I Cổng song song 04 II IC 8255 Giao tiếp song song 06 III Led ma trận đơn sắc 11 PHẦN II: NỘI DUNG THIẾT KẾ 12 I Phần cứng 12 II Lập trình 13 PHẦN III: KẾT LUẬN 21 I Ưu nhược điểm của mạch 21 II Tính thực tế của sản phẩm 21 III Hướng cải tiến và phát triển 21 LỜI MỞ ĐẦU Ngày nay, khi công nghiệp tự động hóa ngày càng phát triển thì việc sử dụng máy tính để điều khiển các hệ thống tự động đẫ trở nên rất phổ biến. Với một chiếc máy tính và một số thao tác chúng ta có thể điều khiển được cả một dây truyền sản xuất tự động, các hệ thống đèn điện… Máy tính có thể giao tiếp với các thiết bị ngoài thông qua cổng RS232 ( cổng nối tiếp), cổng LPT ( cổng song song ), qua các khe cắm mở rộng… Trong công nghiệp thông dụng nhất hiện nay là sử dụng RS232 và LPT để máy tính giao tiếp với mạch ngoài. Ngôn ngữ lập trình được sử dụng có thể là Visual Basic, Turbo Pascan, hay ngôn ngữ lập trình C… Để đưa kiến thức học được trên lớp vào thực tế, và để hiểu rõ hơn về kiến thức môn học, nhóm chúng em xin làm đề tài số 19: “Thiết kế mô hình bảng LED điện tử gồm 2 ma trận LED đơn sắc sử dụng cổng song song”. Song đây là lần đầu tiên nhóm làm đề tài môn ghép nối máy tính nên nhóm đã gặp không ít những khó khăn trong quá trình làm đề tài. Tuy đã hoàn thành được đề tài nhưng sẽ không tránh khỏi những thiếu sót , vì vậy nhóm xin nhận được sự góp ý của các các thầy cô và các bạn để đề tài của nhóm có thể hoàn thiện hơn. Xin trân trọng cảm ơn
Trang 1ĐO LƯỜNG VÀ ĐIỀU KHIỂN MÁY TÍNH
Đề tài: Thiết kế mô hình bảng LED điện tử
gồm 2 ma trận LED đơn sắc sử dụng cổng song song
Sinh viên: Nguyễn Quang Hưng
Đỗ Vương Hưng
Vũ Văn Bách
Trang 2MỤC LỤC
Trang 3LỜI MỞ ĐẦU
Ngày nay, khi công nghiệp tự động hóa ngày càng phát triển thì việc sử dụng máy tínhđể điều khiển các hệ thống tự động đẫ trở nên rất phổ biến Với một chiếc máy tính vàmột số thao tác chúng ta có thể điều khiển được cả một dây truyền sản xuất tự động, cáchệ thống đèn điện…
Máy tính có thể giao tiếp với các thiết bị ngoài thông qua cổng RS232 ( cổng nối tiếp),cổng LPT ( cổng song song ), qua các khe cắm mở rộng… Trong công nghiệp thông dụngnhất hiện nay là sử dụng RS232 và LPT để máy tính giao tiếp với mạch ngoài Ngôn ngữlập trình được sử dụng có thể là Visual Basic, Turbo Pascan, hay ngôn ngữ lập trình C… Để đưa kiến thức học được trên lớp vào thực tế, và để hiểu rõ hơn về kiến thức môn
học, nhóm chúng em xin làm đề tài số 19: “Thiết kế mô hình bảng LED điện tử gồm 2
ma trận LED đơn sắc sử dụng cổng song song” Song đây là lần đầu tiên nhóm làm đề
tài môn ghép nối máy tính nên nhóm đã gặp không ít những khó khăn trong quá trình làmđề tài
Tuy đã hoàn thành được đề tài nhưng sẽ không tránh khỏi những thiếu sót , vì vậynhóm xin nhận được sự góp ý của các các thầy cô và các bạn để đề tài của nhóm có thểhoàn thiện hơn
Xin trân trọng cảm ơn!
Hà Nội, tháng 05 năm 2011
Trang 4
Khoảng cách truyền của cổng song song bị hạn chế do điện dung ký sinh, hiện tượng
Trao đổi với các đường dẫn tín hiệu
LPT1: Gồm có 3 thanh ghi: thanh ghi dữ liệu, thanh ghi trạng thái và thanh ghi điều khiển
1 Thanh ghi dữ liệu: gồm có 8 bit dữ liệu, có địa chỉ là 378h
Thanh ghi dữ liệu truyền các byte kí tự cần in
2 Thanh ghi trang thái: có địa chỉ là 379h.
Trang 5Các đường dẫn tín hiệu đưa các thông báo ngược lại từ máy tính được gọi là các đường dẫn trạng thái
3 Thanh ghi điều khiển có địa chỉ: 37A
Các đường dẫn tín hiệu xuất ra từ máy tính và điều khiển máy in được gọi là các đường dẫn điều khiển
Trang 6II IC 8255 GIAO TIẾP SONG SONG
Trong hệ thống Vi xử lý hay máy vi tính nếu chỉ giao tiếp với bộ nhớ trong ROM,RAM thì chưa đủ, máy tính còn phải giao tiếp với các thiết bị ngoại vi như bàn phím, mànhình, máy in, để con người có thể đối thoại được máy tính cũng như dùng máy tính đểđiều khiển các thiết bị khác Để giao tiếp với nhiều thiết bị như vậy, máy tính có thể giaotiếp qua nhiều đường và giao tiếp với nhiều hình thức khác nhau như giao tiếp nối tiếp,giao tiếp song song Trong giao tiếp song song, cổng LPT chỉ có 8 đường dữ liệu làm hạnchế khả năng giao tiếp,vì vậy trong những ứng dụng đòi hỏi nhiều đường dữ liệu hơn thì
ta phải dùng phương pháp mở rộng cổng LPT, một trong những phương pháp đơn giản làdùng IC8255
1 Sơ đồ chân 8255
Trong đó:
Chân 1 đến 4, 37 đến 40 (PA0 – PA7): là các đường xuất nhập có tên là cổng A.
Chân 18 đến 25 (PB0 – PB7): là các đường nhập xuất có tên cổng B.
Chân 10 đến 13, 14 đến 17 (PB0 – PB7): là các đường nhập xuất có tên cổng C.
Chân 27 đến 34 (D0 – D7): là các đường dữ liệu (data) hoạt động hai chiều, dẫn tín hiệu
điều khiển từ vi xử lý ra các thiết bị bên ngoài đồng thời nhận các dữ liệu từ các thiết bịđiều khiển bên ngoài vào vi xử lý
Chân 35 (Reset input): ngõ vào xóa, chân reset phải được nối với tín hiệu reset out của
vi xử lý để không làm ảnh hướng đến mạch điều khiển Khi reset, các cổng của 8255A là
Trang 7các ngõ vào, đồng thời tất cả các dữ liệu trên thanh ghi bên trong 8255A đều bị xóa,8255A trở về trạng thái ban đầu săn sàng làm việc.
Chân 6 (CS\): tín hiệu ngõ vào chip select (CS\) được điều khiển bởi vi xử lý, dùng để
lựa chọn 8255A làm việc khi vi xử lý giao tiếp với nhiều thiết bị
Chân 5 (RD\): ngõ vào đọc dữ liệu (Read Input).
Chân 36 (WR\) : ngõ vào ghi dữ liệu (Write Input).
Chân 8,9 (A1, A0): ngõ vào địa chỉ (Address Input), dùng nhận địa chỉ vào để lựa chọn
thanh ghi và các cổng
Chân 26 (Vcc) : nguồn 5 VDC.
Chân 7 (GND) : GND 0 VDC
Tính linh hoạt của vi mạch thể hiện ở khả năng lập trình Qua một thanh ghi điều khiển,người sử dụng xác định chế độ hoạt động và cổng nào cần được sử dụng như là lối vàohoặc lối ra Các chân ra D0 D7 tạo nên bus dữ liệu hai chiều có độ rộng là 8 bit 8255được chọn bởi tín hiệu mức thấp ở ngõ vào chọn chíp CS\ Khi 8255 không được chọn, bộđệm bus dữ liệu nối 8255 với hệ thống được thả nổi Khi được chọn, các ngõ vào A0 vàA1 được dùng để chọn thanh ghi điều khiển hoặc một trong các cổng vào/ra để trao đổidữ liệu Các hoạt động cơ bản của 8255 được tóm tắt trong bảng sau:
Trang 8Cấu trúc từ điều khiển:
Các trạng thái làm việc của 8255:
2 Các chế độ hoạt động của IC 8255
Trang 9Các cổng A, B, C được phân thành hai nhóm Nhóm A gồm cổng A và nửa cao củacổng C, nhóm B gồm cổng B và nửa thấp còn lại của cổng C Có 3 chế độ hoạt động khácnhau:
- Chế độ 0: vào/ra thông thường
- Chế độ 1: chốt vào/ra
- Chế độ 2: bus hai chiều
a) Chế độ 0
Đây là chế độ vào ra cơ bản của vi mạch, nó đảm bảo dữ liệu được đưa ra hoặc ghi vàocác cổng riêng biệt
Trong chế độ này, vi mạch có các chức năng sau:
- Vi mạch hoạt động gồm hai cổng 8 bít và hai cổng 4 bit
- Các cổng có thể là cổng vào hoặc ra
- Các tín hiệu ra được chốt lại
Trang 10b) Chế độ 1
Trong chế độ này cổng A và cổng B sử dụng các đường dây tín hiệu của cổng C để tạohoặc tiếp nhận tín hiệu hội thoại ( hanshking signal ) nghĩa là mọi quá trình trao đổi dữliệu của từng cổng đều dùng các tín hiệu hội thoại Các chức năng cơ bản của chế độ 1 là
- Vi mạch hoạt động gồm hai nhóm, nhóm A và nhóm B
- Mỗi nhóm chứa một cổng 8 bit và một cổng điều khiển 4 bit
- Cổng 8 bit có tgheer là cổng vào, hoặc cổng cổng ra, cả hai cổng vào ra đều làcổng chốt
- Các cổng 4 bit được sủ dụng để điều khiển và xác định trạng thái của các cổng 8bit
c) Chế độ 2
Chế độ hoạt động này cung cấp khả năng trao đổi dữ liệu với các thiết bị ngoại vi sửdụng một đường truyền 8 bit để vừa truyền vừa nhận dữ liệu (Bú vào/ra hai chiều) Cáctín hiệu hội thoại được dùng trong chế độ này để điều khiển việc truyền dữ liệu cũngtương tụ như chế độ 1
Các chức năng cơ bản của chế độ hai:
- Trong chế độ này chỉ có nhóm A được sử dụng
- Cổng A là cổng vào/ra hai chiều 8 bit
- Các tín hiệu vào ra đều được chốt lại
- bit của cổng C được sử dụng làm cổng điều khiển, trạng thái cho cổng A 8 bit
Trang 11III LED MA TRẬN ĐƠN SẮC
LED ma trận đơn sắc gồm có 8 hàng và 8 cột, chỉ hiển thị một màu nhất định như đỏ,xanhhoặc vàng
Có 2 phương pháp quét LED ma trận
Trang 12 Quét theo cột : trái với quét theo hàng, phương pháp quét theo cột là phải dịch bit theo cột còn đưa dữ liệu vào hàng
PHẦN II: NỘI DUNG THIẾT KẾ
I PHẦN CỨNG
Trang 13Để quét được 2 LED ma trận đơn sắc thì cần phải có 24 đường dẫn dữ liệu, như vậyvới 3 Port dữ liệu thì chỉ cần 1 IC 8255 là có thể đáp ứng được yêu cầu điều khiển và nhưvậy ta có mạch nguyên lý như trên Trong đó 8 bit dữ liệu của cổng LPT nối với Port Dcủa IC 8255, các chân điều khiển của IC 8255 được nối với các chân của thanh ghi điềukhiển của cổng LPT.
LED ma trận có thể được quét theo 2 phương pháp: quét theo hàng hoặc quét theo cột.Trong đồ án môn này, nhóm chọn phương pháp quét LED ma trận theo hàng, các chântương ứng của hàng 2 LED được nối với nhau và nối với cực C của transistor A1015, cực
E nối lên VCC, cực B của các transistor nối với các điện trở rồi nối tiếp đến Port A của IC
Trang 14Khi chạy chương trình chúng ta nhập dòng chữ vào trong ô trống trên giao diện sau đókích vào nút nhấn hoặc nhấn phím ENTER trên bàn phím máy vi tính Nếu dòng chữ hợplệ thì dòng chữ sẽ hiển thị lên 2 LED ma trận Còn nếu dòng chữ nhập vào không hợp lệ,đó là trong dòng chữ nhập vào có chữ số hoặc là có dấu thì chương trình sẽ yêu cầu bạnnhập lại cho đến khi nào dòng chữ bạn nhập vào là hợp lệ thì chương trình mới cho hiểnthì lên LED ma trận Khi bạn đã nhập dòng chữ hợp lệ và hiển thị được lên LED ma trậnnhưng sau đó bạn muốn thay bằng dòng chữ khác thì bạn phải nhấn nút nhấn trên mạchđể dừng chương trình và nhập lại dòng chữ mới
2 Lưu đồ thuật toán
3 Chương trình
Nhập dòng chữ vào ô text 1
Cắt các kí tự trống trước và sau dòng chữ
Đổi các dòng chữ thành chữ hoa
Đổi các kí tự trong dong chữ sang dạng số ASCII và đưa vào trong 1 chuỗi số
Tạo chuỗi mã các kí tự đã nhập vào Text 1 đưa vào một chuỗi mã
có
không
Nhấn nút trên mạch
Có phần tử nào trong chuỗi số nhỏ
hơn 65 và khác 32 hoặc >90 không?
Quét chuỗi mã lên
2 LED ma trận Nhấn Start hoặc ấn ENTER
Trang 15Private LptAdd, CRG, PortA, PortB, PortC, d As Integer
Dim boNhoDem, soThuTu, Stt1, Stt2 As Integer
Private Sub CmdExit_Click() ' Phim thoat chuong trinh
Trang 16caiDat8255 ' goi chuong trinh cai dat cho 8255
tatMatrix ' goi chuong trinh tat Matrix
' bo font chua hoa khong dau A-Z va 0-9
boNhoDem = Array(&HFF, &HE0, &HD7, &HB7, &HB7, &HD7, &HE0, &HFF,
&HFF, &H80, &HB6, &HB6, &HC6, &HF9, &HFF, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HBE, &HDD, &HFF, &HFF, &HFF, &H80,
&HBE, &HBE, &HBE, &HC1, &HFF, &HFF, _
&HFF, &H80, &HB6, &HB6, &HBE, &HFE, &HFF, &HFF, &HFF, &H80,
&HB7, &HB7, &HBF, &HBF, &HFF, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HB6, &HB0, &HFF, &HFF, &HFF, &H80,
&HEF, &HEF, &HEF, &H80, &HFF, &HFF, _
&HFF, &HFE, &HBE, &H80, &HBE, &HFE, &HFF, &HFF, &HFF, &HFF,
&HBD, &HBE, &HBE, &H81, &HFF, &HFF, _
&HFF, &H80, &HF7, &HEB, &HDD, &HFE, &HFF, &HFF, &HFF, &H80,
&HFE, &HFE, &HFE, &HFE, &HFF, &HFF, _
&HFF, &H80, &HDF, &HEF, &HEF, &HDF, &H80, &HFF, &HFF, &H80,
&HDF, &HE7, &HFB, &HFD, &H80, &HFF, _
&HFF, &HC1, &HBE, &HBE, &HBE, &HBE, &HC1, &HFF, &HFF, &H80,
&HB7, &HB7, &HB7, &HCF, &HFF, &HFF, _
&HFF, &HCF, &HB7, &HB7, &HB7, &H80, &HFF, &HFF, &HFF, &H80,
&HB7, &HB3, &HB5, &HCE, &HFF, &HFF, _
Trang 17&HFF, &HCF, &HB6, &HB6, &HB6, &HB6, &HF9, &HFF, &HFF, &HBF,
&HBF, &H80, &HBF, &HBF, &HFF, &HFF, _
&HFF, &H81, &HFE, &HFE, &HFE, &H80, &HFF, &HFF, &HFF, &H83,
&HFD, &HFE, &HFE, &HFD, &H83, &HFF, _
&HFF, &H81, &HFE, &HFE, &HE1, &HFE, &HFE, &H81, &HFF, &HDE,
&HED, &HF3, &HF3, &HED, &HDE, &HFF, _
&HFF, &HBE, &HDD, &HEB, &HF7, &HEF, &HDF, &HBF, &HFF,
&HBC, &HBA, &HB6, &HAE, &H9E, &HBE, &HFF, _
&HFF, &HC1, &HBC, &HBA, &HA6, &H9E, &HC1, &HFF, &HFF, &HFF,
&HDE, &H80, &HFE, &HFF, &HFF, &HFF, _
&HFF, &HDE, &HBC, &HBA, &HB6, &HAE, &HDE, &HFF, &HFF,
&HBE, &HBE, &HB6, &HB6, &HC9, &HFF, &HFF, _
&HFF, &HF7, &HE7, &HD7, &HB7, &HE0, &HF7, &HFF, &HFF, &H86,
&HB6, &HB6, &HB6, &HB6, &HF9, &HFF, _
&HFF, &HC1, &HB6, &HB6, &HB6, &HB6, &HF9, &HFF, &HFF, &HFF,
&HBE, &HBD, &HBB, &HB7, &H8F, &HFF, _
&HFF, &HC9, &HB6, &HB6, &HB6, &HB6, &HC9, &HFF, &HFF, &HCF,
&HB6, &HB6, &HB6, &HB6, &HC1, &HFF, _
&HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF, &HFF)
End Sub
Sub caiDat8255() ' Chuong trinh cai dat 8255
Out LptAdd + 2, &H4
Out LptAdd, &H80
Out LptAdd + 2, CRG
Trang 18End Sub
Sub outPortA(data As Integer) ' Xuat du lieu ra PORTA - 8255 - Quet Hang
Out LptAdd + 2, &H7
Out LptAdd, data
Out LptAdd + 2, PortA 'xuat ra PORTA = data
Out LptAdd + 2, &H7
End Sub
Sub outPortB(data As Integer) ' Xuat du lieu ra PORTB - 8255 - Quet Cot Matrix1
Out LptAdd + 2, &H6
Out LptAdd, data
Out LptAdd + 2, PortB 'xuat ra PORTB = data
Out LptAdd + 2, &H6
End Sub
Sub outPortC(data As Integer) ' Xuat du lieu ra PORTC - 8255 - Quet cot Matrix2
Out LptAdd + 2, &H5
Out LptAdd, data
Out LptAdd + 2, PortC 'xuat ra PORTC = data
Out LptAdd + 2, &H5
End Sub
Sub quetLed() ' Chuong trinh quet Matrix
Dim x, i, j, Tre As Integer
Trang 20Stt2 = Asc(Str2) ' chuyen string - asc
ElseIf (LenTxt = 2) Then ' Neu co 2 ki tu
Str1 = Mid(Txt.Text, 1, 1)
Str2 = Mid(Txt.Text, 2, 1)
Stt1 = Asc(Str1) ' chuyen string - asc
Stt2 = Asc(Str2) ' chuyen string - asc
End If
' kiem tra cac ky tu A-Z
If ((Stt1 > 64) And (Stt1 < 98)) Then
Stt1 = (Stt1 - 65) * 8
' Kiem tra cac so 0-9
ElseIf ((Stt1 > 47) And (Stt1 < 59)) Then
Trang 21' Kiem tra cac so 0-9
ElseIf ((Stt2 > 47) And (Stt2 < 59)) Then
Public Declare Function InVal Lib "inpout32.dll" _
Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Public Declare Sub Out Lib "inpout32.dll" _
Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Trang 221 Ưu điểm
máy tính
2 Nhược điểm
chữ
II TÍNH THỰC TẾ CỦA SẢN PHẨM
Do những nhược điểm trên nên tính thực tế của sản phẩm không cao, chỉ có thể làmmạch hiển thị quang báo thông thường với nội dung đơn giản
II HƯỚNG CẢI TIẾN VÀ PHÁT TRIỂN
Để tăng tính thực tế, và ứng dụng được sản phẩm vào đời sống thì cần phải khắc phụcnhững nhược điểm của sản phẩm Một hướng cải tiến của mạch là phải tăng số LED matrận của mạch lên để tăng khả năng hiển thị của mạch Với sơ đồ mạch phía dưới có thểtăng số LED ma trận lên 5 LED ma trận đảm bảo mạch hiển thị tốt Mạch sẽ mở rộngcổng LPT lên 48 bit ra, bằng cách dùng 2 IC 8255, như vậy sẽ có 6 Port dữ liệu để điềukhiển 5 LED ma trận
Hoạt động của mạch: Do nhiệm vụ của mạch chỉ là xuất dữ liệu nên chân /RD của
IC 8255 sẽ được nối thẳng với nguồn 5V, còn chân /CS của IC 8255 được nối với chân 16của cổng song song, chân /CS của IC 8255 thứ 2 nối với chân 16 qua 1 cổng NOT nhưtrên sơ đồ Như vậy khi chân /CS thay đổi mức thì sẽ chọn được IC 8255 được xuất dữliệu