1. Trang chủ
  2. » Luận Văn - Báo Cáo

ghép nối máy tính hiển thị thời gian thực lcd bằng cổng song song

17 499 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 590,5 KB

Nội dung

CỔNG SONG SONG 1.1.1 GIỚI THIỆU Cổng song song: Dữ liệu được truyền qua cổng này theo cách song song, cụ thể dữ liệu được truyền 8 bit đồng thời hay còn gọi byte nối tiếp bit song song.

Trang 1

Báo cáo đồ án môn GNMT Nhóm 5

1 CƠ SỞ LÝ THUYẾT

1.1 CỔNG SONG SONG

1.1.1 GIỚI THIỆU

Cổng song song: Dữ liệu được truyền qua cổng này theo cách song song, cụ

thể dữ liệu được truyền 8 bit đồng thời hay còn gọi byte nối tiếp bit song song

Cổng máy in: Lí do là hầu hết các máy in đều được nối với máy tính qua

cổng này

Cổng Centronic: Đây là tên của một công ty đã thiết kế ra cổng này

Centronic là tên một công ty chuyên sản xuất máy in kiểu ma trận đứng hàng đầu thế giới Chính công ty này đã nghĩ ra kiểu thiết kế cổng ghép nối máy in với máy tính

1.1.2 MỨC ĐIỆN ÁP CỔNG

Đều sử dụng mức điện áp tương thích TTL(Transiztor - Transiztor - Logic) 0v → +5v trong đó 0v là mức logic LOW

2v → +5v là mức logic HIGH

Vì vậy khi ghép nối với cổng này ta chỉ ghép nối những thiết bị ngoạivi

có mức điện áptương thích TTL Nếu thiết bị ngoại vi không có mức điện áp tương thích TTL thì ta phải áp dụng biện pháp ghép mức hoặc ghép cách ly qua

bộ ghép nối quang

1.1.3 KHOẢNG CÁCH GHÉP NỐI

Khoảng cách cực đại giữa thiết bị ngoại vi và máy tính ghép qua cổng song song thường bị hạn chế Lý do là hiện tượng cảm ứng giữa các đường dẫn và điện dung kí sinh hình thành giữa các đường dẫn có thể làm biến dạng tín hiệu Khoảng cách giới hạn cực đại là 8m Thông thường chỉ 1,5 đến 2m

vì lí do an toàn dữ liệu Nếu sử dụng khoảng cách ghép nối trên 3m thì các đường dây tín hiệu và đường dây nối đất phải được soắn với nhau thành

1

Trang 2

Báo cáo đồ án môn GNMT Nhóm 5

từng cặp để giảm thiểu ảnh hưởng của nhiễu Biện pháp khác sử dụng cáp dẹt, trên đó mỗi đường dữ liệu được đặt giữa hai đường dây nối đất

1.1.4 TỐC ĐỘ TRUYỀN DỮ LIỆU

Tốc độ truyền dữ liệu qua cổng song song phụ thuộc vào phần cứng được sử dụng Trên lý thuyết tốc độ có thể đạt đến 1Mb/s nhưng với khoảng cách truyền hạn chế trong phạm vi 1m Với nhiều mục đích sử dụng thì khoảng cách này hoàn toàn thỏa đáng, tuy vậy cũng có những ứng dụng đòi hỏi phải truyền trên khoảng cách xa hơn Trong trường hợp đó ta phải nghĩ ngay đến khả năng ghép nối khác (như ghép nối qua cổng RS232)

1.1.5 CẤU TRÚC CỔNG SONG SONG

Cổng song song có hai

loại: ổ cắm 36 chân và ổ cắm

25 chân Ngày nay, loại ổ cắm

36 chân không còn được sử

dụng, hầu hết các máy tính PC

đều trang bị ổ cắm 25 chân nên

ta chỉ cần quan tâm đến loại 25

chân

2

Trang 3

Báo cáo đồ án môn GNMT Nhóm 5

Bảng 1-1 Sắp xếp các

chân trên hai loại ổ cắm

TÊN TÍN

HIỆU

VỊ TRI CHAN

CHỨC NĂNG

Strobe 1 Kh

i đặt một mức điện áp Low vào chân này, máy tính

thông báo cho máy in biết có một byte sẵn sàng trên các đường tín hiệu để được truyền

Ac

knowledge

10 M ứ

c Low chân này, máy in thông báo cho máy tính

biết đã nhận được kí tự vừa gửi và có thể tiếp tục nhận

Busy (Báo bận) 11 Máy in gửi một mức lôgic High vào chân

này trong khi đang đón nhận hay đang in ra dữ liệu để thông báo cho máy tính biết bộ đệm dữ liệu đầy hay máy in đang ở trạng thái Off-line

Paper empty (Hết

giấy)

12

Máy in đặt trạng thái trở kháng cao (High)

ở chân này khi hết giấy

Select (Lựa chọn) 13 Một mức Highcó nghĩa là máy in đang trong

trạng thái được kích hoạt

3

Trang 4

Báo cáo đồ án môn GNMT Nhóm 5

Auto Linfeed (Tự

động)

nạp dòng)

14 M ứ

c Low ởchân này máy tính nhắc máy in tự động

nạp một dòng mới mỗi khi kết thúc một dòng

Error (Có lỗi) 15 Mức Low ở chân này, máy in báo cho máy

tính biết đã xảy ra lỗi khi in

Reset (Đặt lại

trạng thái

máy in)

16

Máy in được đặt trở lại trạng thái được xác định lúc

ban đầu khi chân này ở mức Low

Sele

ct Input (Lựa chọn

lối vào)

17

Bằng một mức Low máy in được lựa chọn bở máy

tính

Ground (Nối đất) 18-25

Qua bảng trên ta thấy cáp nối giữa máy tính và máy in bao gồm 25 sợi, tuy nhiên không phải tất cả các sợi cáp đều được sử dụng như vậy chúng ta có thể tận dụng dây cáp này nếu có một vài sợi bị đứt

Qua cách mô tả chức năng của từng tín hiệu riêng lẻ ta có thể nhận thấy

là các đường dẫn tín hiệu có thể chia thành 3 nhóm:

• Các đường dẫn tín hiệu xuất ra từ máy tính PC và điều khiển máy in, được gọi là các đường dẫn điều khiển

• Các đường dẫn tín hiệu, đưa các thông báo ngược lại từ máy in về máy tính, được gọi là các đường dẫn trạng thái

• Đường dẫn dữ liệu, truyền các bit riêng lẻ của các ký tự cần in Từ cách

mô tả các tín hiệu và mức tín hiệu ta có thể nhận thấy các tín hiệu

Acknowledge, Auto Linefeed, Error, Reset, và Select Input kích hoạt

ở mức Low Thông qua chức năng của các chân này ta cũng hình dung

được cách điều khiển máy in

Đáng chú ý là 8 đường dẫn song song đều được dùng để chuyển dữ liệu từ

4

Trang 5

Báo cáo đồ án môn GNMT Nhóm 5

máy tính sang máy in Trong những trường hợp này, khi chuyển sang ứng dụng đo lường và điều khiển ta phải chuyển dữ liệu từ mạch ngoại vi vào máy tính để thu thập và xử lý Vì vậy ta phải tận dụng một trong năm đường dẫn theo hướng ngược lại, nghĩa là từ bên ngoài vào máy tính để truyền số liệu đo lường

1.1.6 CÁC THANH GHI Ở CỔNG SONG SONG.

Để có thể ghép nối các thiết bị ngoại vi, các mạch điện ứng dụng trong đo lường và điều khiển với cổng song song ta phải tìm hiểu cách trao đỏi với các thanh ghi thông qua cách sắp xếp và địa chỉ các thanh ghi Các đường dẫn của cổng song song được nối với ba thanh ghi 8 bit khác nhau:

THANH GHI DỮ LIỆU ĐỊA CHỈ ( 278H, 378H, 2BCH, 3BC H)

D7 D6 D5 D4 D3 D2 D1 D0

D0(chân) D1(chân3) D2 (chân4) D3 (chân5) D4 (chân6) D5 (chân7) D6 (chân8) D7 (chân9)

5

Trang 6

D7 D6 D5 D4 D3 D2 D1 D0

THANH GHI TRẠNG THÁI ĐỊA CHỈ ( 279H, 379H, 2BDH, 3BD H)

7

7

Error (chân15) SLCT(chân 13)

Paper Empty (chân 12) Select Acknowledge (chân 10) Busy (chân 11)

THANH GHI ĐIỀU KHIỂN ĐỊA CHỈ ( 27AH, 37AH, 2BEH, 3BE H)

Strobe (chân 1) Auto Feed (chân 14)

Reset (chân 16) Select Input (chân 17) Interrup Enable

(cho phép ngắt) Như sơ đồ trên đã trình bày 8 đường dữ liệu dẫn tới thanh ghi dữ

liệu còn 4 đường dẫn điều khiển Strobe, Auto Linefeed, Reset, Select Input dẫn tới thanh ghi điều khiển Năm đường dẫn trạng thái Acknowledge, Busy, Paper Empty, Select, Error tới thanh ghi trạng

thái

Thanh ghi dữ liệu hay 8 đường dẫn dữ liệu không phải là đường dẫn 2 hướng trong tất cả các loại máy tính nên dữ liệu chỉ có thể được

xuất ra qua các đường dẫn này cụ thể từ D0 đến D7 Thanh ghi điều

khiển hai hướng, hay nói chính xác hơn: Bốn bit có giá trị thấp được

Trang 7

sắp xếp ở các chân 1, 14, 16, 17 Thanh ghi trạng thái chỉ có thể được

đọc và vì vậy được gọi là một hướng

1.2 GHÉP NỐI VỚI LCD HIỂN THỊ KÝ TỰ

1.2.1 PHÂN LOẠI LCD

Có thể chia module của LCD thành 2 loại chính là:

- Loại hiển thị ký tự(character LCD) gồm có các kích cớ 16x1(16 ký tự

x 1 dòng);16x2(16 ký tự x 2 dòng);20x1(20 ký tự x 1 dòng);20x4(20

ký tự x 4 dòng);40x1(40 ký tự x1 dòng);40x2(40 ký tự x 2dòng) và 40x4(40 ký tự x 4 dòng).Mỗi ký tự được tạo bởi 1 ma trận các điểm sáng kích thước 5x7 hoặc 5x10 điểm ảnh

- Loại hiển thị đồ họa(graphic LCD) đen trắng hoặc màu,gồm có các kích cớ 1,47 inch (128x128 điểm ảnh); 1,8 inch (128x160 điểm ảnh);2 inch(176x220 điểm ảnh);2,2 inch(240x320 điểm ảnh);2,4inch(240x320 điểm ảnh);3,5 inch(320x240 điểm ảnh)

…….các loại trên được dùng trong điên thoại di động, máy ảnh số, camera, máy hiện sóng số…

Trang 8

Module LCD hiển thị graphic đơn sắc 128x64

1.2.2 Ý nghĩa các chân và mã lệnh điều khiển LCD hiển thị ký tự

Hầu hết các moodule LCD hiển thị ký tự được thiết kế dựa trên bộ điều khiển HD44780 của Hitachi nên chúng có tâp lệnh và các chân tương thích nhau.Bảng sau đây là ý nghĩa và chức năng các chân của LCD

Trang 9

1.2.3 Nguyên tắc hiể thị ký tự trên LCD

Một chương trình hiển thị ký tự trên LCD sẽ đi theo 4 bước sau:

1 xóa toàn bộ màn hình

2 Đặt chế độ hiển thị

3 Đặt vị trí con trỏ(nơi bắt đầu của ký tự hiển thị)

Trang 10

4 Hiển thị ký tự

Chú ý:

+ Bước 3,4 có thể lập lại nhiều lần nếu cần hiển thị nhiều ký tự

+ Mỗi khi thưc hiện lệnh hoặc ghi dữ liệu hiển thị lên LCD đều phải kiểm tra cờ bận(xem hàm busy_flag trong chương trình).Tuy nhiên có 1 số loại LCD không cho phép kiểm tra cờ bận,vì vậy bộ vi điều khiển cần phải chủ động phân phối thời gian khi ra lệnh cho LCD(ví dụ sau khi xóa màn hình thì sau 2 ms mới ra lệnh khác vì thời gian để LCD xóa màn hình

+ Chế độ hiển thị mặc định sẽ là hiển thị dich,vị trí con trỏ mặc định

sẽ ở đầu dòng thư nhất

2 NỘI DUNG THIẾT KẾ MẠCH VÀ NGUYÊN LÝ HOẠT ĐỘNG 2.1 SƠ ĐỒ NGUYÊN LÝ VÀ MẠCH IN

Mạch in

Trang 11

Mạch nguyên lý

2.2 CHƯƠNG TRINH VIẾT TRONG VB

Option Explicit

Dim i, j As Integer

Dim dem As Integer

Dim X As Byte

Dim dem2 As Integer

Dim gio, phut, giay, ngay, thang, nam As Integer

Trang 12

Private Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAddress As Integer, ByVal Value As Integer)

Private Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAddress As Integer) As Integer

Private Sub Command1_Click()

init

write_command (&H1)

write_command (&H80)

If (Option1 = False And Option2 = False And Option3 = False And Option4

= False) Then

MsgBox ("Ban hay lua chon Menu !!!!")

End If

End Sub

Private Sub Command2_Click()

Unload Me

End Sub

Private Sub Command3_Click()

settings.Show

End Sub

Private Sub Form_Load()

write_command (&H1)

Out32 &H378, &H0

Out32 &H379, &H0

Out32 &H37A, &H0

dem = 0

dem2 = 0

j = 0

End Sub

Private Sub Option1_Click()

write_command (&H1)

End Sub

Private Sub Option2_Click()

write_command (&H1)

Trang 13

End Sub

Private Sub Option3_Click()

write_command (&H1)

End Sub

Private Sub Option4_Click()

write_command (&H1)

End Sub

Private Sub Timer1_Timer()

label1.Caption = "Thoi gian :" & Format(Now, "dd-mm-yyyy hh:nn:ss")

If (Option1 = False And Option2 = False And Option3 = False And Option4

= False) Then

write_data (&H4D)

write_data (&H45)

write_data (&H4E)

write_data (&H55)

write_command (&H80)

End If

' -If (Option1 = True) Then

j = j + 1

giay = Second(Now)

phut = Minute(Now)

write_data (&H30 + phut \ 10)

write_data (&H30 + phut Mod 10)

If (j >= 2) Then

write_data (&H3A)

j = 0

End If

If (j = 1) Then

write_data (&H20)

End If

write_data (&H30 + giay \ 10)

write_data (&H30 + giay Mod 10)

write_command (&H80) 'dua con tro ve dau dong 1

End If

Trang 14

' -If (Option2 = True) Then

j = j + 1

gio = Hour(Now)

phut = Minute(Now)

write_data (&H30 + gio \ 10)

write_data (&H30 + gio Mod 10)

If (j >= 2) Then

write_data (&H3A)

j = 0

End If

If (j = 1) Then

write_data (&H20)

End If

write_data (&H30 + phut \ 10) write_data (&H30 + phut Mod 10) write_command (&H80)

End If

' -If (Option3 = True) Then

thang = Month(Now)

ngay = Day(Now)

write_data (&H30 + ngay \ 10) write_data (&H30 + ngay Mod 10) write_data (&H2F)

write_data (&H30 + thang \ 10) write_data (&H30 + thang Mod 10) write_command (&H80)

End If

' -If (Option4 = True) Then

nam = Year(Now)

thang = Month(Now)

write_data (&H30 + thang \ 10) write_data (&H30 + thang Mod 10) write_data (&H2F)

Trang 15

write_data (&H30 + nam \ 1000)

write_data (&H30 + (nam Mod 1000) \ 100)

write_data (&H30 + ((nam Mod 1000) Mod 100) \ 10)

write_data (&H30 + nam Mod 10)

write_command (&H80)

End If

End Sub

Sub busy_flag()

Out32 &H37A, &H1

Out32 &H378, &HFF

Do

X = Inp32(&H379) And &H80

dem = dem + 1

Loop While (X = &H0 And dem <> 300)

dem = 0

Out32 &H37A, &HB

End Sub

Sub write_command(LCD_command As Integer)

Out32 &H37A, &H3

delay (50)

Out32 &H378, LCD_command

delay (50)

Out32 &H37A, &HB

busy_flag

End Sub

Sub write_data(LCD_data As Integer)

Out32 &H37A, &H2

delay (50)

Out32 &H378, LCD_data

delay (50)

Out32 &H37A, &HA

busy_flag

End Sub

Sub init()

write_command (&H3) 'dua con tro ve vi tri dau dong

write_command (&H38) '8 bit du lieu va 2 dong

write_command (&H6) 'huong tro di chuyen va ko di chuyen tro write_command (&HC) 'hien thi va tat con tro

Trang 16

write_command (&H1) 'xoa man hinh

End Sub

Sub delay(bien As Integer)

For i = 0 To bien

Next

End Sub

Settings

Option Explicit

Dim dates, timer As Boolean

Dim giay As Integer

Private Sub Command1_Click()

If timer = True Then

Time = TimeSerial(Text4.Text, Text5.Text, Text6.Text) End If

If dates = True Then

Date = DateSerial(Text3.Text, Text2.Text, Text1.Text) End If

End Sub

Private Sub Command2_Click()

Unload Me

De05.Show

End Sub

Private Sub Form_Load()

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = False

Text5.Enabled = False

Text6.Enabled = False

Option2.Value = False

Option1.Value = False

dates = False

timer = False

End Sub

Trang 17

Private Sub Option1_Click()

Text4.Enabled = False

Text5.Enabled = False

Text6.Enabled = False

Text1.Enabled = True

Text2.Enabled = True

Text3.Enabled = True

dates = True

End Sub

Private Sub Option2_Click()

Text1.Enabled = False

Text2.Enabled = False

Text3.Enabled = False

Text4.Enabled = True

Text5.Enabled = True

Text6.Enabled = True

timer = True

End Sub

Private Sub Timer2_Timer()

Label5.Caption = "Thoi gian :" & Format(Now, "dd-mm-yyyy hh:nn:ss") End Sub

3 ỨNG DỤNG

Hiển thị thời gian thực của máy tính

Thay đổi thời gian trong may tính

4 TÀI LIỆU THAM KHẢO

1 Giáo trình ghép nối máy tính

2 Giáo trình vi điều khiển

3 Tài liệu tìm trên mạng

Ngày đăng: 05/05/2014, 13:58

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w