THIẾT BỊ HIỂN THỊ LCD

Một phần của tài liệu thiết kế mạch thí nghiệm dùng vi điều khiển 80c51 phối ghép với các thiết bị ngoại vi - lcd, adc0809 (Trang 52 - 84)

LCD được núi trong đồ ỏn này là loại LCD 2 dũng ma trận điểm 5x7,cú 14 chõn, chức năng của cỏc chõn được cho trong bảng 3. Vị trớ của cỏc chõn được mụ tả trờn hỡnh 9 cho nhiều LCD khỏc nhau.

Hỡnh 9: Cỏc chõn của LCD

1. VDD : Cấp dương nguồn +5V. 2. VSS : Chõn nối đất.

3. VEE : Được dựng để điều khiển độ tương phản của LCD.

4.RS : Chõn chọn thanh ghi (Register Select). Cú hai thanh ghi rất quan trọng bờn trong LCD, chõn RS được dựng để chọn cỏc thanh ghi này nh sau: Nếu RS = 0 thỡ thanh ghi mà lệnh được chọn để cho phộp người dựng gửi một lệnh chẳng hạn nh xoỏ màn hỡnh, đưa con trỏ về đầu dũng v.v… Nếu RS = 1 thỡ thanh ghi dữ liệu được chọn cho phộp người dựng gửi dữ liệu cần hiển thị trờn LCD.

5.R/W: Chõn đọc/ghi (R/W). Đầu vào đọc/ghi cho phộp người dựng ghi thụng tin lờn LCD khi R/W = 0 hoặc đọc thụng tin từ nú khi R/W = 1.

6.E: Chõn cho phộp (Enable). Chõn cho phộp E được sử dụng bởi LCD để chốt thụng tin hiện hữu trờn chõn dữ liệu của nú. Khi dữ liệu được cấp đến chõn dữ liệu thỡ một xung mức cao xuống thấp phải được ỏp đến chõn này để LCD chốt dữ liệu trờn cỏc chõn dữ liệu. Xung này phải rộng tối thiểu là 450ns.

7.D0 - D7 : Đõy là 8 chõn dữ liệu 8 bit, được dựng để gửi thụng tin lờn LCD hoặc đọc nội dung của cỏc thanh ghi trong LCD.

Để hiển thị cỏc chữ cỏi và cỏc con số, ta gửi cỏc mó ASCII của cỏc chữ cỏi từ A đến Z, a đến f và cỏc con số từ 0 - 9 đến cỏc chõn này khi bật RS = 1. Cũng cú cỏc mó lệnh mà cú thể được gửi đến LCD để xoỏ màn hỡnh hoặc đưa con trỏ về đầu dũng hoặc nhấp nhỏy con trỏ. Bảng 4 liệt kờ cỏc mó lệnh.

Chúng ta cũng sử dụng RS = 0 để kiểm tra bit cờ bận để xem LCD cú sẵn sàng nhận thụng tin. Cờ bận là D7 và cú thể được đọc khi R/W = 1 và RS = 0

nh sau:

Nếu R/W = 1, RS = 0 khi D7 = 1 (cờ bận 1) thỡ LCD bận bởi cỏc cụng việc bờn trong và sẽ khụng nhận bất kỳ thụng tin mới nào. Khi D7 = 0 thỡ LCD sẵn sàng nhận thụng tin mới.

Chõn Ký hiệu I/O Mụ tả

1 VSS - Đất

2 VDD - Dương nguồn 5v

3 VEE - Cấp nguồn điều khiển độ tương phản 4 RS I RS = 0 chọn thanh ghi lệnh. RS = 1

chọn thanh ghi dữ liệu

5 RW I R/W = 1 đọc dữ liệu. R/W = 0 ghi

6 E I/O Cho phộp

7 D0 I/O Cỏc bit dữ liệu

8 D1 I/O Cỏc bit dữ liệu

9 D2 I/O Cỏc bit dữ liệu

10 D3 I/O Cỏc bit dữ liệu

11 D4 I/O Cỏc bit dữ liệu

12 D5 I/O Cỏc bit dữ liệu

13 D6 I/O Cỏc bit dữ liệu

14 D7 I/O Cỏc bit dữ liệu

Bảng 3: Mụ tả cỏc chõn của LCD.

Mó (Hex) Lệnh đến thanh ghi của LCD 01 Xoỏ màn hỡnh hiển thị

02 Trở về đầu dũng

04 Giảm con trỏ (dịch con trỏ sang trỏi) 06 Tăng con trỏ (dịch con trỏ sang phải) 05 Dịch hiển thị sang phải (adsbygoogle = window.adsbygoogle || []).push({});

07 Dịch hiển thị sang trỏi 08 Tắt con trỏ, tắt hiển thị 0A Tắt hiển thị, bật con trỏ 0C Bật hiển thị, tắt con trỏ

0E Bật hiển thị, nhấp nhỏy con trỏ 0F Tắt con trỏ, nhấp nhỏy con trỏ 10 Dịch vị trớ con trỏ sang trỏi

14 Dịch vị trớ con trỏ sang phải 18 Dịch toàn bộ hiển thị sang trỏi 1C Dịch toàn bộ hiển thị sang phải

80 Đưa con trỏ về đầu dũng thứ nhất C0 Đưa con trỏ về đầu dũng thứ hai

38 Khởi tạo LCD 2 dũng và ma trận 5 ì 7

Bảng 4: Cỏc mó lệnh LCD.

II.2 Minh họa ghộp nối giữa LCD với 8051

III. ADC0809

Cỏc bộ chuyển đổi ADC thuộc trong những thiết bị được sử dụng rộng rói nhất để thu dữ liệu. Cỏc mỏy tớnh số sử dụng cỏc giỏ trị nhị phõn, nhưng trong thế giới vật lý thỡ mọi đại lượng ở dạng tương tự (liờn tục). Nhiệt độ, ỏp suất (khớ hoặc chất lỏng), độ ẩm và vận tốc và một số ít trọng những đại lượng vật lý của thế giới thực mà ta gặp hàng ngày. Một đại lượng vật lý được chuyển

về dũng điện hoặc điện ỏp qua một thiết bị được gọi là cỏc bộ biến đổi. Cỏc bộ biến đổi cũng cú thể được coi nh cỏc bộ cảm biến. Mặc dự chỉ cú cỏc bộ cảm biến nhiệt, tốc độ, ỏp suất, ỏnh sỏng và nhiều đại lượng tự nhiờn khỏc nhưng chỳng đều cho ra cỏc tớn hiệu dạng dũng điện hoặc điện ỏp ở dạng liờn tục. Do vậy, ta cần một bộ chuyển đổi tương tự số sao cho bộ vi điều khiển cú thể đọc được chúng.

ADC0809 là bộ chuyển đổi tương tự số của hóng National Semiconductor với 8 kờnh đa hợp, tương thớch với cỏc vi xử lý, vi điều khiển 8 bit. ADC0809 cú 8 kờnh đầu vào tương tự, cho phộp hiển thị 8 bộ biến đổi khỏc nhau chỉ thụng qua 1 chip duy nhất.

ADC0809 cú những đặc điểm

- Dễ dàng giao tiếp với tất cả cỏc vi xử lý,vi điều khiển. - Nguồn điện ỏp +5V, tiờu thụ cụng suất thấp 15mW - Điện ỏp cho phộp ở đầu vào 0V→ 5V.

- Thang điều chỉnh rộng.

- Thời gian chuyển đổi 100à s.

III.1 Sơ đồ cỏc chõn của ADC0809

Hỡnh 10 : Sơ đồ chõn của ADC0809

• Chức năng của cỏc chõn

- IN0 → IN7: 8 đầu vào tương tự, để chọn từng đầu vào dựng 3 chõn A, B, C. Kờnh tương tự Đườn

g

C B A IN0 L L L IN1 L L H IN2 L H L IN3 L H H IN4 H L L IN5 H L H IN6 H H L IN7 H H H Bảng 5: Chọn kờnh đầu vào

- Vref(+), Vref(-) : 2 chõn này dựng để thiết lập điện ỏp tham chiếu. Nếu Vref(-) nối đất và Vref(+) nối với +5V thỡ độ phõn giải của ADC là 5V/256 = 19.53mV.

- ALE (Address Latch Enable): chõn này dựng để chốt địa chỉ.

- Vcc, Gnd (chõn số 11 và 13 – khụng vẽ trong hỡnh 10): là chõn cấp nguồn và chõn nối đất.

- START : chõn kớch hoạt ADC thực hiện cụng việc chuyển đổi. Khi cú 1 xung cao – xuống – thấp được đưa vào chõn START thỡ ADC0809 bắt đầu chuyển đổi.

- ENABLE: Chõn cho phộp đọc dữ liệu từ ADC.

- EOC (End of Conversion): chõn đầu ra bỏo hiệu kết thỳc chuyển đổi. Khi ADC chuyển đổi xong thỡ nú đưa ra chõn EOC 1 xung cao – xuống – thấp.

- CLOCK : ADC0809 khụng cú đồng hồ riờng, do vậy phải cấp xung đồng hồ ngoài đến chõn CLOCK thỡ ADC mới hoạt động.

III.2 Cỏc bước lập trỡnh cho ADC0809

- Chọn 1 kờnh đầu vào tương tự bằng cỏc bit tạo địa chỉ A, B, C theo bảng 5. (adsbygoogle = window.adsbygoogle || []).push({});

- Kớch hoạt ALE để chốt địa chỉ, bằng cỏch đưa 1 xung cao – xuống – thấp vào chõn này.

- Kớch hoạt chuyển đổi bằng cỏch đưa 1 xung cao – xuống – thấp vào START.

- Hiển thị (quan sỏt) EOC để quan sỏt xem chuyển đổi đó được hoàn thành chưa.

- Kớch hoạt ENABLE để cho phộp đọc dữ liệu của ADC. Khi cú 1 xung cao – xuống – thấp được đưa vào ENABLE thỡ ADC sẽ cho phộp đọc dữ liệu ra khỏi ADC.

Trong ADC 0809 khụng cú đồng hồ riờng và do vậy phải cấp xung đồng bộ ngoài đến chõn CLK. Mặc dự tốc độ chuyển đổi phụ thuộc vào tần số đồng hồ được nối đến CLK nhưng nú khụng nhanh hơn 100ms.

III.3 Minh họa cỏch ghộp nối ADC0809 với 8051

Do ADC0809 khụng cú đồng hồ trong, nờn ta dựng 2 D-flipflop chia tần số của bộ thạch anh (12Mhz) để cấp xung cho ADC0809 hoạt động.

Bàn phớm là 1 thiết bị vào ra thụng dụng trong cỏc hệ vi xử lý, vi điều khiển. Trong trường hợp đơn giản nú cú thể chỉ là 1 cụng tắc cú gắn phớm nối vào 1 chõn nào đú của vi điều khiển (vi xử lý), ở mức phức tạp hơn nú cú thể là hàng chục cụng tắc cú gắn phớm được tổ chức theo 1 ma trận, phức tạp hơn đú là bàn phớm cú hàng trăm cụng tắc với bộ vi xử lý riờng cú nhiệm vụ nhận ra cỏc phớm được gừ và tạo mó để đưa đến bộ vi xử lý.

Cụng tắc của keyboard cú hai nhúm chớnh:

- Cụng tắc tiếp xỳc cơ 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 đổi khi ấn và nhả phớm, hoặc hiệu ứng Hall: điện ỏp thay đổi khi ấn và nhả phớm) Hex-keypad trong đồ ỏn : là loại bàn phớm 16 cụng tắc (theo kiểu tiếp xỳc cơ khớ) được xắp xếp theo ma trận 4x4, được đỏnh phớm từ 0 → 9, từ A → F

Hỡnh 11: Bàn phớm số Hex

Minh họa ghép nối bàn phớm với 8051.

Trong sơ đồ ghộp nối dưới đõy, ta sử dụng luụn cổng P1 vừa làm cổng ra để đưa mẫu quột bàn phớm, vừa làm cổng vào để đọc trạng thỏi của phớm (4 bit cao của P1 nối với đầu vào của bàn phớm, 4 bit thấp nối với đầu ra)

II.5. GIẢI MÃ ĐỊA CHỈ 74LS138

74LS138 là một trong những bộ giải mó địa chỉ được sử dụng rộng rói nhất. Ba chõn vào A, B và C dựng để tạo ra 8 tớn hiệu ra mức tớch cực thấp Y0- Y7, mỗi đầu ra Y được nối đến chõn CS của một chip nhớ, cho phộp điều khiển 8 khối nhớ. ở 74LS138 ngoài cỏc chõn vào A, B vàC để chọn đầu ra thớch hợp, cũn cú 3 đầu vào là G2A, G2B và G1. Trong đú G2A và G2B đều là tớch cực mức thấp, cũn G1 là tớch cực mức cao. Nếu 1 trong 3 đầu vào này khụng được nối đến tớn hiệu địa chỉ thỡ chỳng phải được kớch hoạt cố định bằng cỏch hoặc nối đất hoặc nối nguồn Vcc tuỳ theo mức kớch hoạt của từng chõn .

Nếu cú nhiều EROM hoặc nhiều RAM hoặc cả 2 giao tiếp với 8501 ta cần phải giải mó địa chỉ. Việc giải mó là cần thiết cho cỏc bộ xử lớ nối cỏc ngừ vào chọn chip CS của cỏc IC nhớ cho một bộ nhớ cú nhiều EROM và RAM.

V. CHỐT ĐỊA CHỈ 74HC373

Hỡnh 12 : Sơ đồ chõn 74LS373

V.2 Hoạt động của 74LS373:

Khi lối vào giữ nhịp (chõn 11) được đặt lờn mức High, thỡ cỏc lối ra Q và lối vào D cũng chuyển theo. Khi lối vào giữ nhịp được nối xuống mass cỏc dữ liệu được xếp cuối cựng ở cỏc lối vào D sẽ được lưu trữ bờn trong và được dẫn tới cỏc lối ra Q, cho đến khi xung nhịp chuyển trở lại mức High. Một mức điện ỏp High ở lối vào (chõn 1) chuyển tất cả cỏc lối ra sang chế độ ba trạng thỏi độc lập với trạng thỏi của cỏc chõn lối vào cũn lại. Chỳ ý rằng chỉ cú cỏc lối ra bị ngắt cũn chức năng bộ nhớ vẫn khụng bị ảnh hưởng. Bảng chõn lý: 1: Mức High 0: Mức Low X: Mức tuỳ ý T : Ba trạng thỏi

Q: Dữ liệu được lưu nhớ Lối vào : 1, 3, 4, 7, 8, 11, 13, 14, 17, 18.

Lối ra : 2, 5, 6, 9, 12, 15, 16, 19

Khi hoạt động bỡnh thường, lối vào (chõn 1) và lối vào giữ nhịp được nối xuống mass. Khi cỏc dữ liệu được đặt ở cỏc lối vào và khi giỏ trị của chỳng là

E Lối vào Lối ra

0 1 1 1

0 1 0 0

0 0 X Q

ổn định, thỡ một xung dương ngắn hạn với độ dài ít nhất bằng 10 ns được dẫn tới lối vào giữ nhịp, và dữ liệu được đún nhận vào bộ nhớ.

Do khả năng cú thể đệm phụ tải cao và do tớnh chất ba trạng thỏi nờn vi mạch tỏ ra là lý tưởng khi được dựng làm bộ nhớ trung gian dựng cho địa chỉ trong cỏc hệ thống định hướng bus. Khoảng thời gian trễ một kỳ khi cú đấu một tải điện dung 50 pF cỡ 50 ns (2V), 22 ns (4,5V), hoặc 19 ns (6V) và khi đấu tải điện dung 150 pF bằng 80 ns (2V), 30 ns (4,5V) hoặc 26 ns (6V). Mỗi lối ra cú thể cung cấp một dũng điện bằng 35mA. ở trạng thỏi tĩnh dũng điện tiờu thụ lớn nhất cỡ 80 (adsbygoogle = window.adsbygoogle || []).push({});

àA.

PHẦN II. THIẾT KẾ

CHƯƠNG I: THIẾT KẾ PHẦN CỨNG

I. SƠ ĐỒ NGUYấN Lí.

Sơ đồ mạch nguyờn lý bao gồm:

- 5 IC : 8051, 74ALS373, 74ALS138, DS12887, ADC0809. - 3 tụ điện : C1 = C2= 30pF, C = 10 àF. - 10 điện trở : R1→ R8=10KΩ, R9 = 100Ω, R10 = 10KΩ. - 1 điện trở dóy : 8 x 10KΩ. - 1 biến trở: 10KΩ. - 1 dao động thạch anh : 12MHz. - 1 nút bấm. - LCD 16x2.

- Hex- keypad - 5 cổng đảo 7404.

• Bàn phớm số Hex được nối với 8051 qua cổng P1.

• ADC0809 được nối với 8051 nh sau:

Cỏc chõn dữ liệu được nối với P0 của 8051. Việc chọn đầu vào In0-In7 được chọn bằng ba chõn ADD-A, ADD-B, ADD-C, 3 chõn này được nối với 3 chõn Q0 - Q1 - Q2 của 74ALS373.

Do ADC0809 cần cú xung đồng hồ ngoài cấp tới chõn Clock thỡ chip mới hoạt động, vỡ thế sử dụng luụn xung phỏt ra từ bộ dao động thạch anh. Nhưng tần số của bộ dao động là 12Mhz lớn hơn tần số xung mà ADC cho phộp do vậy phải đưa qua 2 D-flipflop để chia 4 tần số.

Chõn EOC được nối với chõn INT1 của 8051 thụng qua cổng đảo 7404, để khi chuyển đổi ta cú thể quan sỏt trạng thỏi ADC xem đó hoàn thành chuyển đổi chưa.

Chõn cho ALE được nối với ALE của 8051, chõn Start được nối với Y0 của 74ALS138, chõn Enable được nối với của 8051 thụng qua 1 cổng đảo.

• DS12887 được nối với 8051 nh sau:

Cỏc chõn AD0 – AD7 được nối chung cổng P0 với ADC0809. Chõn cho phộp CS được nối với Y1 của 74ALS138, DS được nối với của 8051, AS nối với chõn ALE của 8051, R/W nối với chõn của 8051. Chõn Reset được nối cựng mạch Reset của 8051.

• LCD được nối với 8051 nh sau:

Cỏc chõn dữ liệu D0 – D7 được nối với cổng P2 của 8051. RS, RW được nối với , thụng qua cỏc cổng đảo. Chõn cho phộp E được nối với chõn T0 của 8051. Để điều chỉnh độ tương phản của LCD cần dựng thờm 1 biến trở 10KΩ, được nối nh hỡnh vẽ

• Do ta sử dụng P0 vừa làm cổng vào vừa làm cổng ra nờn cần nối thờm điện trở kộo vào P0 (vỡ P0 khụng cú điện trở kộo lờn).

CHƯƠNG II: THIẾT KẾ PHẦN MỀM

Từ mạch đó thiết kế, chỳng em đó xõy dựng 3 bài toỏn ứng dụng:

• Quột bàn phớm HEX, hiển thị phớm được ấn ra LCD.

• Đọc thời gian từ đồng hồ thời gian thực DS12887.

• Điều khiển ADC0809 biến đổi tớn hiệu tương tự thành số.

I. CHUƠNG TRèNH QUẫT BÀN PHÍM HEX.

Chương trỡnh này thực hiện quột bàn phớm HEX, kiểm tra xem cú phớm nào được nhấn khụng. Nếu cú, chuyển thành mó ASCII để hiển thị ra LCD. Nếu khụng cú phớm nào được nhấn thỡ kết thỳc.

• Lưu đồ hàm quột bàn phớm

• Chương trỡnh hợp ngữ

$debug

$tilte (** TEST PROGRAM for the MyBOARD **)

org 0000h (adsbygoogle = window.adsbygoogle || []).push({});

main: call scan ; Gọi chương trỡnh quột bàn phớm.

call convert ; Gọi chương trỡnh đổi Hex→ASCII.

;========================================================; ; Chương trỡnh con quột bàn phớm SCAN ; ;========================================================;

scan: mov A,#00H ; Đưa 0 ra cỏc cột

mov P1,A

mov A,P1 ; Đọc cỏc hàng

anl A,#0F0H ; Che cỏc bit thấp

cjne A,#0F0H,scan_key ; Nếu cú phớm ấn, gọi chương trỡnh tỡm ; phớm ấn

ret ; Khụng cú phớm nào ấn thỡ thoỏt.

;==========================================================; ; Scan_KEY: đọc trạng thỏi bàn

phớm. ; ; trả về C=0 nếu khụng cú phớm nào được ấn ; ; trả về C=1 và mó hex của phớm ấn trong ACC nếu cú phớm ấn. ;

;==========================================================;

scan_key: mov A,#0FEh ; Bắt đầu quột từ cột 0.

mov R6,#4 ; Dựng R6 làm bộ đếm.

quet: mov P1,A ; Tớch cực cột.

mov R7,A ; Lưu mẫu quột

mov A,P1 ; Đọc trở lại cổng Port1

anl A,#0F0h ; Che cỏc bit thấp.

cjne A,#0F0h, tao_ma ; Cú hàng tớch cực, thỡ gọi chương trỡnh

Một phần của tài liệu thiết kế mạch thí nghiệm dùng vi điều khiển 80c51 phối ghép với các thiết bị ngoại vi - lcd, adc0809 (Trang 52 - 84)