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

Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD

38 4K 25

Đ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 38
Dung lượng 2 MB

Nội dung

PHỤ LỤC…………………………………………………………………………………………………..1 LỜI GIỚI THIỆU………………………………………………………………………………………....2 PHẦN 1: LÝ THUYẾT…………………………………………………………………...………………3 CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC……………………………………………..…3 1.1 PIC LÀ GÌ? …………………………………………………………………………………………….3 1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC…………………………….3 1.3 KIẾN TRÚC CỦA PIC………………………………………………………………………………...3 1.4 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC………………………………..…..4 1.5 NGÔN NGỮ LẬP TRÌNH CHO PIC………..………………………………………………………...5 1.6 MẠCH NẠP PIC……….………………………………………………………………………………5 CHƯƠNG 2: VI ĐIỀU KHIỂN PIC 16F887…………………………………………………………….6 2.1 SƠ ĐỒ CHÂN VÀ HÌNH DẠNG THỰC TẾ………………………………………………………….6 2.2 MỘT VÀI THÔNG TIN VỀ VI ĐIỀU KHIỂN PIC16F887…………………………………………...7 2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F887…………………………………………………………..8 2.4 TỔ CHỨC BỘ NHỚ………………………………………………………………………………...….9 2.4.1 Bộ nhớ chương trình………………………………………………………………………………….9 2.4.2 bộ nhớ dữ liệu……………………………………………………………………………………….10 2.4.3 Các cổng ra vào của PIC……….……………………………………………………………………12 2.5 TIMER0……………………………………………………………………………………………….13 CHƯƠNG 3: LCD……………………………………………………………………………………….15 PHẦN 2: THIẾT KẾ…………………………………………………………………………………….21 A. SƠ ĐỒ KHỐI………………………………………………………………………………………….21 B. SƠ ĐỒ NGUYÊN LÝ…………………………………………………………………………...…….22 C. LƯU ĐỒ GIẢI THUẬT……………………………………………………………………………….24 D. LẬP TRÌNH ……………………………………………………………………………………….….30 PHẦN 3: MÔ PHỎNG BẰNG PROTEUS …………………………………………………………....36 PHẦN 4: TÀI LIỆU THAM KHẢO…………………………………………………………………...36

Trang 1

PHỤ LỤC

PHỤ LỤC……… 1

LỜI GIỚI THIỆU……… 2

PHẦN 1: LÝ THUYẾT……… ………3

CHƯƠNG 1: TỔNG QUAN VỀ VI ĐIỀU KHIỂN PIC……… …3

1.1 PIC LÀ GÌ? ……….3

1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC……….3

1.3 KIẾN TRÚC CỦA PIC……… 3

1.4 CÁC DÒNG PIC VÀ CÁCH LỰA CHỌN VI ĐIỀU KHIỂN PIC……… … 4

1.5 NGÔN NGỮ LẬP TRÌNH CHO PIC……… ……… 5

1.6 MẠCH NẠP PIC……….………5

CHƯƠNG 2: VI ĐIỀU KHIỂN PIC 16F887……….6

2.1 SƠ ĐỒ CHÂN VÀ HÌNH DẠNG THỰC TẾ……….6

2.2 MỘT VÀI THÔNG TIN VỀ VI ĐIỀU KHIỂN PIC16F887……… 7

2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F887……… 8

2.4 TỔ CHỨC BỘ NHỚ……… ….9

2.4.1 Bộ nhớ chương trình……….9

2.4.2 bộ nhớ dữ liệu……….10

2.4.3 Các cổng ra vào của PIC……….………12

2.5 TIMER0……….13

CHƯƠNG 3: LCD……….15

PHẦN 2: THIẾT KẾ……….21

A SƠ ĐỒ KHỐI……….21

B SƠ ĐỒ NGUYÊN LÝ……… …….22

C LƯU ĐỒ GIẢI THUẬT……….24

D LẬP TRÌNH ……….….30

PHẦN 3: MÔ PHỎNG BẰNG PROTEUS ……… 36

PHẦN 4: TÀI LIỆU THAM KHẢO……… 36

Trang 2

LỜI GIỚI THIỆU

Ngày nay cùng với sự phát triển không ngừng của khoa học kỷ thuật, thì kỹ thuật số cũng đã đem lại cho con người những thành tựu to lớn Ngày càng có nhiều sản phẩm kỷ thuật số ra đời, đáp ứng được nhiều nhu cầu lợi ích cho con người Hòa cùng xu hướng đó vi điều khiển đã khẳng định được vị thế vững chắc của mình trong nhiều ứng dụng, điển hình là đồng hồ điện tử hiển thị lên màn hình LCD với độ chính xác gần như tuyệt đối thay thế cho đồng hồ cơ

Với hướng đi đó, nhóm chúng em đã tìm hiểu và thiết kế ứng dụng ĐỒNG HỒ VÀ LỊCH ĐIỆN TỬ SỬ DỤNG VI ĐIỀU KHIỂN PIC 16F887 trong khuôn khổ của Đồ án môn học 2.

Qua đây, chúng em xin chân thành cám ơn những lời chỉ dẫn của thầy Hồ Trung Mỹ, đồng gửi lời cám ơnđến những người bạn, những anh chị khóa trên đã cho chúng em những kinh nghiệm quý báu

Trang 3

và phát triển thêm và từ đó hình thành nên dòng vi điều khiển PIC như ngày nay.

1.2 TẠI SAO LÀ PIC MÀ KHÔNG LÀ CÁC HỌ VI ĐIỀU KHIỂN KHÁC ???

Hiện nay trên thị trường có rất nhiều họ vi điều khiển 8051, Motorola 68HC, AVR, ARM,…Ngoài họ

8051 được hướng dẫn căn bản ở môi trường đại học, bản thân người viết đã lựa chọn họ vi điều khiển PIC

để mở rộng kiến thức và phát triển các ứng dụng trên công cụ nầy vì các nguyên nhân sau:

- Họ vi điều khiển này có thể tìm mua dễ dàng ở thị trường Việt Nam

- Giá thành không quá đắt

- Có đầy đủ tính năng của một vi điều khiển khi hoạt động độc lập

- Là một sự bổ sung rất tốt về kiến thức cũng như về ứng dụng cho họ vi điều khiển mang tính truyền thống 8051

- Số lượng người sử dụng họ vi điều khiển PIC hiện nay tại Việt Nam cũng như trên thế giới ngày càng tăng Điều này tạo nhiều thuận lợi trong quá trình tìm hiểu và phát triển các ứng dụng như: số lượng tàiliệu, số lượng ứng dụng mở đã được phát triển thành công, dễ dàng trao đổi, học tập, dễ dàng tìm được

sự chỉ dẫn khi gặp khó khăn…

- Sự hỗ trợ của nhà sản xuất về trình biên dịch, các công cụ lập trình, nạp chưng trình từ đơn giản đến phức tạp,…

- Các tính năng đa dạng của vi điều khiển PIC, và các tính năng này không ngừng được phát triển

1.3 KIẾN TRÚC CỦA PIC

Cấu trúc phần cứng của một vi điều khiển được thiết kế theo hai dạng kiến trúc: kiến trúc Von Neuman

và kiến trúc Havard

Trang 4

Hình 1 cấu trúc Von Neuman

Hình 2 cấu trúc Havard

Tổ chức phần cứng của PIC được thiết kế theo kiến trúc Havard Điểm khác nhau giữa hai kiến trúc trên

là cấu trúc bộ nhớ dữ liệu và bộ nhớ chương trình

Đối với kiến trúc Von Neuman, bộ nhớ dữ liệu và bộ nhớ chương trình nằm chung một bộ nhớ, do đó ta

có thể tổ chức, cân đối một cách linh hoạt bộ nhớ chương trình và bộ nhớ dữ liệu Tuy nhiên điều này chỉ

có ý nghĩa khi tốc độ xử lý của CPU phải rất cao, vì với cấu trúc đó, trong một thời điểm, CPU chỉ có thể tương tác với bộ nhớ dữ liệu hoặc bộ nhớ chương trình Như vậy có thể nói kiến trúc Von Neuman không thích hợp với cấu trúc của một vi điều khiển

Đối với kiến trúc Havard, bộ nhớ dữ liệu và bộ nhớ chương trình tách ra thành hai bộ nhớ riêng biệt Do

đó trong một thời điểm, CPU có thể tương tác với cả hai bộ nhớ, như vậy tốc độ của vi điều khiển được cải thiện đáng kể

Một điểm cần lưu ý nữa là tập lệnh trong kiến trúc Havard có thể được tối ưu tùy theo yêu cầu của kiến trúc vi điều khiển mà không phụ thuộc vào cấu trúc dữ liệu Ví dụ với dòng điều khiển PIC16F, độ dài lệnh luôn là 14 bit (khi dữ liệu được tổ chức thành từng byte), còn với kiến trúc Von Neuman, độ dài lệnhluôn là bội số của byte (do dữ liệu được tổ chức thành từng byte)

Trang 5

Các ký hiệu của vi điều khiển PIC:

- PIC12xxxx: độ dài lệnh 12 bit

- PIC16xxxx: độ dài lệnh 14 bit

- PIC18xxxx: độ dài lệnh 16 bit

- C: PIC có bộ nhớ EPROM (chỉ có PIC16C84 là có bộ nhớ EEPROM)

- F: PIC có bộ nhớ flash

- LF: PIC có bộ nhớ flash hoạt động ở điện áp thấp

- LV: tương tự như LF, đây là ký hiệu cũ

- Bên cạnh đó, một số vi điều khiển có ký hiệu xxFxxx là EEPROM, còn có thêm chữ A ở cuối là flash (ví dụ PIC16F877 là EEPROM, còn PIC16F877A là flash)

Ngoài ra còn có thêm một dòng vi điều khiển mới là dsPIC

Ở Việt Nam phổ biến nhất là vi điều khiển PIC do hãng Microchip sản xuất

Cách lựa chọn một vi điều khiển PIC phù hợp:

- Trước hết ta cần chú ý số chân của vi điều khiển PIC cần thiết cho ứng dụng Có nhiều vi điều khiển PIC có số lượng chân khác nhau, thậm chí có VĐK chỉ có 8 chân, ngoài ra còn có các vi điều khiển PIC 28, 40, 44,… chân

- Nên lựa chọn VĐK có bộ nhớ flash để có thể nạp xóa chương trình được nhiều lần hơn

- Tiếp theo cần chú ý các khối chức năng được tích hợp sẵn trong VĐK, các chuẩn giao tiếp bên trong

- Sau cùng chú ý đến bộ nhớ chương trình mà VĐK cho phép

- Ngoài ra, mọi thông tin về lựa chọn VĐK PIC có thể được tìm thấy trong cuốn sách “ Select PIC guide” do nhà sản xuất Microchip cung cấp

1.5 NGÔN NGỮ LẬP TRÌNH CHO PIC

Ngôn ngữ lập trình cho PIC rất đa dạng Ngôn ngữ lập trình cấp thấp có MPLAB (được cung cấp miễn phí bởi nhà sản xuất Microchip) Các ngôn ngữ lập trình cấp cao hơn có C, VB, Pascal,… ngoài ra còn cómột số ngôn ngữ lập trình được phát triển dành cho PIC như PICBasic, MikroBasic,…

1.6 MẠCH NẠP PIC

Đây cũng là một dòng sản phẩm rất đa dạng dàng cho VĐK PIC Có thể sử dụng các mạch nạp được nhà sản xuất Microchip cung cấp như: PICSTART plus, MPLAB ICD 2, MPLAB PM 3, PRO MATE II Có thể dùng các sản phẩm này để nạp cho VĐK thông qua chương trình MPLAB Dòng sản phẩm chính thống này có ưu điểm là nạp được cho tất cả các VĐK PIC, tuy nhiên giá thành cao và gặp nhiều khó khăn trong quá trình mua sản phẩm

Ngoài ra do tính năng cho phép nhiều chế độ nạp khác nhau, còn có rất nhiều mạch nạp được thiết kế dành cho VĐK PIC Có thể sơ lược một số mạch nạp PIC sau:

JDM Programmer: mạch nạp này dùng chương trình nạp ICprog cho phép nạp các vi điều khiển PIC có

hỗ trợ tính năng nạp chương trình điện áp thấp ICSP (In circuit Serial Programming) Hầu hết mạch nạp đều hỗ trợ tính năng nạp chương trình này

WARP-13A và MCB-USB: hai mạch nạp này giống với PICSTART plus do nhà sản xuất Microchip cung cấp, tương thích với trình biên dịch MPLAB, nghĩa là ta có thể dùng trực tiếp MPLAB để nạp cho viđiều khiển PIC mà không cần sử dụng một chương trình nạp khác, chẳng hạn như Icprog

P16PRO40: mạch nạp này do Nigel thiết kế và cũng khá nổi tiếng Ông còn thiết kế cả chương trình nạp, tuy nhiên ta có thể sử dụng chương trình nạp Icprog

Mạch nạp Universal của Williem: đây không phải là mạch nạp chuyên dùng cho PIC như P16PRO40

Trang 6

thông tin về sơ đồ mạch nạp, cách thiết kế, thi công, kiểm tra và chương trình nạp đều dễ dàng tìm được

và download miễn phí từ mạng Internet Tuy nhiên các mạch nạp trên có nhược điểm là hạn chế về số vi điều khiển PIC được hỗ trợ Bên cạnh đó, mỗi mạch nạp cần được sử dụng một chương trình nạp thích hợp

CHƯƠNG 2: VI ĐIỀU KHIỂN PIC 16F887

2.1 SƠ ĐỒ CHÂN VÀ HÌNH DẠNG THỰC TẾ

Hình 3 sơ đồ chân vi điều khiển PIC 16F887

Trang 7

Hình 4 hình dạng thực tế của vi điều khiển PIC 16F887

2.2 MỘT VÀI THÔNG TIN VỀ VI ĐIỀU KHIỂN PIC16F887

Đây là vi điều khiển thuộc họ PIC16xxxx với tập lệnh gồm 35 lệnh có độ dài 14 bit Mỗi lệnh đều được thực thi trong một chu kỳ xung clock Tốc độ hoạt động tối đa cho phép là 20Mhz với một chu kỳ lệnh là 200ns Bộ nhớ flash chương trình là 8192 words và bộ nhớ dữ liệu là 368 bytes SRAM + 256 bytes EEPROM Số PORT I/O là 5 với 33 pin I/O

Các đặc tính ngoại vi bao gồm các khối chức năng sau:

-Timer0: bộ nhớ 8 bit với bộ chia tần số 8 bit

-Timer1: bộ đếm 16 bit với bộ chia tần sốcó thể thực hiện chức năng đếm dựa vào xung clock ngoại vi ngay khi vi điều khiển hoạt động ở chế độ sleep

-Timer2: bộ đếm 8 bit với bộ chia tần số, bộ postcaler

-Hai bộ Capture/ so sánh/ điều chế độ rộng xung

Trang 8

-Chuẩn giao tiếp nối tiếp USART với 9 bit địa chỉ.

-Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD, WR, CS ở bên ngoài

Các đặc tính Analog

-14 kênh chuyển đổi ADC 10 bit

-2 bộ so sánh

Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:

-Bộ nhớ flash có khả năng ghi xóa được 100 000 lần

-Bộ nhớ EEPROM có khả năng ghi xóa được 1 000 000 000 lần

-Dữ liệu bộ nhớ EEPROM có thể lưu trữ trên 40 năm

-Khả năng tự nạp chương trình với sự điều khiển của phần mềm

-Nạp được chương trình ngay trên mạch điện ICSP (In circuit Serial Programming) thông qua chân 2.-Watchdog Timer với bộ dao động trong

-Chức năng bảo mật mã chương trình

-Chế độ sleep

-Có thể hoạt động với nhiều dạng Oscillator khác nhau

2.3 SƠ ĐỒ KHỐI VI ĐIỀU KHIỂN PIC16F887

Trang 9

Hình 5 sơ đồ khối của vi điều khiển PIC16F887

2.4 TỔ CHỨC BỘ NHỚ

Trang 10

Cấu trúc bộ nhớ của vi điều khiển PIC 16F887 bao gồm bộ nhớ chương trình (Program memory) và bộ nhớ dữ liệu (data memory).

2.4.1 Bộ nhớ chương trình

Bộ nhớ chương trình của vi điều khiển PIC 16F887 là bộ nhớ flash, dung lượng là 8 Kword (1 word = 14 bit) và được phân thành nhiều trang (từ page0 đến page3)

Như vậy bộ nhớ chương trình có khả năng chứa được 8x1024 = 8192 lệnh (vì mỗi lệnh sau khi mã hóa sẽ

có dung lượng 14 bit = 1 word)

Để mã hóa được địa chỉ của 8 Kword chương trình, bộ đếm chương trình có dung lượng 13 bit Khi vi điều khiển được reset bộ đếm chương trình sẽ chỉ đến địa chỉ 0000H (Reset vector) Khi có ngắt xảy ra,

bộ đếm chương trình sẽ chỉ đến địa chỉ 0004H (Interrupt vector)

Bộ nhớ chương trình không bao gồm bộ nhớ stack và không được địa chỉ hóa bởi bộ đếm chương trình

Bộ nhớ stack sẽ được đề cập cụ thể trong phần sau:

Hình 6 bộ nhớ chương trình của vi điều khiển PIC 16F887

Trang 11

Các thanh ghi SFR thường xuyên được sử dụng (ví dụ như thanh ghi STATUS) sẽ được đặt ở tất cả các bank của bộ nhớ dữ liệu, giúp thuận tiện trong quá trình truy xuất và làm giảm bớt lệnh chương trình Sơ

đồ cụ thể của bộ nhớ dữ liệu vi điều khiển PIC 16F887 như sau:

Trang 12

Hình 7 các bank thanh ghi trong bộ nhớ dữ liệu của vi điều khiển PIC 16F887

Trang 13

2.4.3 Các cổng ra vào của PIC:

Port A: có 6 bit (tương ứng với 6 chân RA0 – RA5) các chân của cổng A có tích hợp một số chức năng

ngoại vi, nếu một thiết bị ngoại vi được enable thì cổng này sẽ không hoạt động như một cổng vào ra.Bình thường Port A sẽ là một cổng vào ra 2 chiều Thanh ghi xác định chiều tương ứng của các chân Port

A là thanh ghi TrisA Các bit ở thanh ghi TrisA bằng 1 sẽ xác định các chân ở Port A là đầu vào và ngượclại sẽ là đầu ra

Port B: rộng 8 bit (tương ứng với chân RB0 - RB7) là một cổng vào ra 2 chiều Thanh ghi quy định chiều

của Port B là thanh ghi TrisB Thiết lập các thanh ghi TrisB bằng 1 sẽ làm cho cổng B là cổng vào và ngược lại sẽ là cổng ra

Port C: rộng 8 bit (tương ứng với các chân RC0 – RC7), bình thường nó là một cổng vào ra 2 chiều

Thanh ghi quy định chiều của cổng này là thanh ghi TrisC Các chân RC3, RC4 dùng để kết nối, truyền nhận thông tin với các thiết bị ngoại vi

Port E: rộng 3 bit (RE0 – RE2), được cấu hình là đầu ra hoặc đầu vào Port E có thể là đầu vào điều

khiển I/O khi bit PSPSTATUS (TrisE.4) được xác lập

Port D: rộng 8 bit ( RD0 – RD7), nó có thể là cổng vào hoặc ra

Thanh ghi điều khiển xuất nhập là TRISD

Thanh ghi PORTD: chứa giá trị các pin trong Port D

Trong đó:

Trang 14

Hình Sơ đồ khối của RD < 4: 0 > Hình Sơ đồ khối của RD < 7: 5 >

2.5 TIMER0

Là một trong 3 bộ đếm hoặc bộ định thời của vi điều khiển PIC 16F887 Timer0 là bộ đếm 8 bit được kết nối với bộ chia tần số (prescaler) 8 bit Cấu trúc của Timer0 cho phép ta lựa chọn xung clock tác động và cạnh tích cực của xung clock Ngắt Timer0 sẽ xuất hiện khi Timer0 bị tràn Bit TMR0IE (INTCON < 5)

là bit điều khiển của Timer0 TMR0IE = 1 cho phép ngắt Timer0 tác động, TMR0IE = 0 không cho phép ngắt Timer0 tác động Sơ đồ khối của Timer0 như sau:

Trang 15

Hình 8 Sơ đồ khối Timer0

OPTION_RES

Muốn cho Timer0 hoạt động ở chế độ Timer ta CLEAR bit T0SC (OPTION_RES < 5 >), khi đó giá trị thanh ghi TMR0 sẽ tăng theo từng chu kỳ xung đồng hồ (tần số vào Timer0 = ¼ tấn số oscillator) Khi giátrị Timer0 từ FFH trở về 00H, ngắt Timer0 sẽ xuất hiện Thanh ghi TMR0 cho phép ghi và xóa được giúp

ta ấn định thời điểm ngắt Timer0 xuất hiện một cách linh động

Muốn Timer0 hoạt động ở chế độ counter ta SET bit T0SC (OPTION_RES < 5 >) Khi đó xung tác động lên bộ đếm được lấy từ chân RA4/TOCK1 Bit T0SE (OPTION_RES < 4 >) cho phép lựa chọn cạnh tác động vào bộ đếm Cạnh tác động sẽ là cạnh lên nếu T0SE = 0 và sẽ là cạnh xuống nếu T0SE = 1

Khi thanh ghi TMR0 bị tràn, bit TMR0IF (INTCON < 2 >) sẽ được SET Đây chính là cờ ngắt của Timer0 Cờ ngắt này phải được xóa bằng chương trình trước khi bộ đếm bắt đầu thực hiện lại quá trình đếm Ngắt Timer0 không thể “đánh thức” vi điều khiển từ chế độ sleep

Trang 16

Bộ chia tần số (prescaler) được chia sẽ giữa Timer0 và WDT (Watchdog Timer), điều đó có nghĩa là nếu prescaler được sử dụng cho Timer0 thì WDT sẽ không có được sự hỗ trợ của prescaler và ngược lại Prescaler được điều chỉnh bởi thanh ghi OPTION_REG Bit PSA (OPTION_REG < 3 >) xác định đối tượng tác động của prescaler Các bit PS2:PS0 (OPTION_REG<2:0>) xác định tỷ số chia tần số của prescaler Xem lại thanh ghi OPTION_REG để xác định lại một cách chi tiết về các bit điều khiển trên.Các lệnh tác động lên giá trị thanh ghi TMR0 sẽ xóa chế độ hoạt động của prescaler Khi đối tượng tác động là Timer0, tác động lên giá trị thanh ghi TMR0 sẽ xóa prescaler nhưng không làm thay đổi đối tượng tác động của prescaler Khi đối tượng tác động là WDT, lệnh CLR WDT sẽ xóa prescaler, đồng thời prescaler sẽ ngưng tác vụ hỗ trợ cho WDT.

Các thanh ghi điều khiển liên quan đến Timer0 bao gồm:

TMR0 (địa chỉ 01H, 101H): chứa giá trị đếm của Timer0

INTCON (địa chỉ 0BH, 8BH, 10BH, 18BH): cho phép ngắt hoạt động (GIE và PEIE)

OPTION_REG (địa chỉ 81H, 181H): điều khiển prescaler

CHƯƠNG 3: LCD

LCD là gì?

Màn hình tinh thể lỏng (liquid crystal display, LCD) là loại thiết bị hiển thị cấu tạo bởi các tế bào (các

điểm ảnh) chứa tinh thể lỏng có khả năng thay đổi tính phân cực của ánh sáng và do đó thay đổi cường độánh sáng truyền qua khi kết hợp với các kính lọc phân cực Chúng có ưu điểm là phẳng, cho hình ảnh sáng, chân thật và tiết kiệm năng lượng

LCD là loại chỉ thị thụ động, tiêu thị năng lượng rất nhỏ và có tỉ số tương phản tốt Ngoài ra có những tính chất thông dụng sau đây:

 Không tự phát ra ánh sáng và phụ thuộc vào ánh sáng xung quanh và ánh sáng nền

 Có ánh sáng khuếch tán

 Hoạt động ở dạng trong suốt hoặc phản chiếu

 Thông dụng nhất là loại Neumatic (NLC), loại chất lỏng này trong suốt Khi nó được áp điện trường lớn sẽ xuất hiện những ion di chuyển xuyên qua phá vỡ cấu trúc thông thường dạng tinh thể Vì vậy chất lỏng được phân cực trở nên chắn sáng, có màu đen sậm hơn so với xung quanh Khi điện trường mất đi, chất lỏng trở về dạng tinh thể cũ và trở nên trong suốt trở lại

 Cấu tạo cụ thể của LCD gồm có một vật liệu tinh thể lỏng NLC có bề dày khoảng 10 mm được kẹp giữa hai miếng thủy tinh Mặt thủy tinh được phủ một lớp mỏng kim loại (oxide thiếc) cho ánh sáng xuyên qua, được dùng làm bản cực mặt trước, bản cực mặt sau cũng thực hiện như vậy Còn loại LCD phản chiếu thì bản cực mặt sau cho phản chiếu sáng

 Lớp vỏ bọc LCD được cách điện và hàn kín lại

Trang 17

Hình 9 LCD

LCD có những đặc điểm sau:

Điện trường cần thiết cho LCD hoạt động thông thường 104 V/cm Do đó điện áp 10v cho LCD

có bề dày 10 mm

Vật liệu NLC có điện trở rất lớn (1010 ohm) cho nên dòng để cho LCD hoạt động rất nhỏ khoảng

10 mA/cm2 và công suất hoạt động 10 mW/cm2

LCD là thiết bị họat động ở tốc độ chậm, thời gian để dẫn vài mili giây và tắt vài chục mili giây

 Hiện nay LCD (loại thông dụng có thể giao tiếp được với PIC) được chia thành 2 loại:

LCD graphic: đặc điểm loại này là toàn bộ màn hình được chia thành các điểm ảnh, giá thành tùy

thuộc vào độ phân giải và hãng sản xuất Các độ phân giải thông thường là: 240x64, 240x128, 160x64, 128x128, 128x64 v.v

LCD alphanumeric: Chỉ dùng để hiển thị chữ cái và chữ số Với loại này 1 ký tự hiển thị trên

một ma trận 5x7 hoặc 5x10, như vậy với loại LCD 16x2 (có hai hàng và mỗi hàng có 16 ký tự) sẽ

có 32 ma trận xếp trên hai hàng Hiện nay có các loại LCD thông alphanumeric thông dụng là: 14x2, 16x1, 20x2, 20x4

Trang 18

Chân số Tên Chức năng

Mặc dù theo sổ tay kỷ thuật LCD thì cấp nguồn cho nó là 5V DC (khoảng vài mA) nhưng cung cấp cho

nó 6VDC hay 4.5 VDC thì nó vẫn hoạt động tốt và ngay cả với 3 VDC cũng đủ cho một số module Kết quả là các module LCD tiêu thị năng lượng ít

Chân 3 là chân điều khiển VEE dùng để thay đổi độ tương phản của màn hiển thị Lý tưởng thì chân này nên nối nguồn điện áp thay đổi được, người ta thực hiện bằng cách gắn mạch chia áp dùng biến trở có đầu

ra thay đổi đưa vào chân này; tuy nhiên nên chú ý là một số module cần nguồn điện DC 7V Đơn giản là người ta nối chân này với 0V ( xuống đất)

Chân 4 là RS (Resgister Select= chọn thanh ghi) đây là 1 trong 3 ngõ vào điều khiển lệnh Khi chân này

để mức thấp thì các dữ liệu được truyền đến LCD được xử lý như các mệnh lệnh và các dữ liệu đọc ra chỉtrạng thái của nó Bằng cách đưa đường RS này lên mức cao thì dữ liệu ký tự có thể xuất/nhập trên module này

Chân 5 là đường R/W (read/write) Chân này được kéo xuống mức thấp để ghi các lệnh hay dữ liệu ký tự vào module hoặc được kéo lên mức cao để đọc dữ liệu ký tự hay thông tin trạng thái từ các thanh ghi của nó

Chân 6 là đường E (enable), ngõ này dùng để khởi động việc chuyển các lệnh hay dữ liệu ký tự giữa module và các đường dữ liệu Khi ghi ra màn hiển thị LCD, dữ liệu chỉ được chuyển khi có cạnh xuống ở tín hiệu E này Tuy nhiên khi đọc ra từ LCD thì dữ liệu khả dụng sau khi có chuyển tiếp từ thấp lên cao

và duy trì dữ liệu khả dụng cho đến khi tín hiệu xuống thấp một lần nữa

Các chân 7 đến 14 là 8 đường bus dữ liệu (D0 đến D7) Dữ liệu có thể được chuyển đến và lấy ra khỏ bộ hiển thị LCD theo dạng một byte 8 bit hay dạng nữa byte 4 bit (nibble) Trong trường hợp sau chỉ có 4 đường dữ liệu trên được sử dụng (4 bit cao: D4 đến D7) Chế độ 4 bit này thuận tiện khi sử dụng vi xử lý,cần có ít đường xuất/nhập hơn

Để hiển thị các chữ cái và các con số chúng ta gửi các mã ASCII của các chữ cái từ A đến Z, a đến z và các số từ 0 – 9 đến các chân này khi bật RS=1

Bảng mã ký tự chuẩn của LCD

Trang 19

Cũng có các mã lệnh mà có thể được gửi đến LCD để xóa màn hình hoặc đưa con trỏ về đầu dòng hoặc nhấp nháy con trỏ.

Chú ý: chúng ta cũng có thể 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à bit D7 và có thể được đọc khi R/W và RS = 0 như sau:

Nếu R/W=1, RS=0 khi D7= 1 (cờ bận) 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 Lưu ý chúng ta nên kiểm tra cờ bận trước khi ghi bất kỳ dữ liệu nào lên LCD

Sau đây là bảng mã lệnh của LCD:

Ngày đăng: 04/08/2014, 21:24

HÌNH ẢNH LIÊN QUAN

Hình 1. cấu trúc Von Neuman - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 1. cấu trúc Von Neuman (Trang 4)
Hình 5. sơ đồ khối của vi điều khiển PIC16F887 - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 5. sơ đồ khối của vi điều khiển PIC16F887 (Trang 9)
Hình 6. bộ nhớ chương trình của vi điều khiển PIC 16F887 - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 6. bộ nhớ chương trình của vi điều khiển PIC 16F887 (Trang 10)
Hình 7. các bank thanh ghi trong bộ nhớ dữ liệu của vi điều khiển PIC 16F887 - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 7. các bank thanh ghi trong bộ nhớ dữ liệu của vi điều khiển PIC 16F887 (Trang 11)
Hình 8. Sơ đồ khối Timer0 - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 8. Sơ đồ khối Timer0 (Trang 14)
Hình 9. LCD - Thiết kế đồng hồ sử dụng PIC16F887 hiển thị LCD
Hình 9. LCD (Trang 16)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w