1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Vi điều khiển thời gian thực với LCD

16 506 14

Đ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 16
Dung lượng 809,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Việc hiểu được cơ chế hoạt động của bộ vi điều khiển 8 Bit là cơ sở để chúng ta tìm hiểu và sử dụng các bộ vi điều khiển tối tân hơn, vì vậy thực hành làm đồ án này chính là bước đi đầu

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

KHOA ĐIỆN TỬ

BỘ MÔN VI ĐIỀU KHIỂN &

-BÁO CÁO VI ĐIỀU KHIỂN

ĐỀ TÀI: ĐỒNG HỒ THỜI GIAN THỰC HIỂN THỊ LCD

GIÁO VIÊN HƯỚNG DẪN: NGUYỄN ANH DŨNG

DANH SÁCH THÀNH VIÊN: nhớ sửa tên, ở những chỗ a quét vàng nha

LỚP :

HÀ NỘI 2011

Trang 2

LỜI NÓI ĐẦU

Kỹ thuật vi điều khiển hiện nay rất phát triển, nó được ứng dụng vào rất nhiều lĩnh vực sản xuất công nghiệp, tự động hóa, trong đời sống và còn nhiều lĩnh vực khác nữa So với kỹ thuật số thì kỹ thuật vi điểu khiển nhỏ gọn hơn rất nhiều do nó được tích hợp lại và có khả năng lập trình được để điều khiển Nên rất tiện dụng và cơ động Với tính ưu việt của vi điều khiển thì trong phạm vi đồ án nhỏ này, em chỉ dùng vdk để thiết kế bộ đo tần số hiển thị bằng màn hình máy tính

Vi điều khiển không những góp phần vào kỹ thuật điều khiển mà còn góp phần to lớn vào việc phát triển thông tin Đó chính là sự ra đời của hàng loạt thiết bị tối tân trong ngành viễn thông, truyền hình, đặc biệt là sự ra đời của mạng Internet -siêu xa lộ thông tin, góp phần đưa con người đến đỉnh cao của nền văn minh nhân loại

Chính vì các lý do trên, việc tìm hiểu, khảo sát vi điều khiển là điều mà các sinh viên ngành điện mà đặc biệt là chuyên ngành kỹ thuật điện-điện tử, cơ điện tử phải hết sức quan tâm Đó chính là một nhu cầu cần thiết và cấp bách đối với mỗi sinh viên, đề tài này được thực hiện chính là đáp ứng nhu cầu đó

Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử dụng đươc lại là một điều rất phức tạp Phần công việc xử lý chính vẫn phụ thuộc vào con người, đó chính là chương trình hay phần mềm Tuy chúng ta thấy các máy tính ngày nay cực kỳ thông minh, giải quyết các bài toán phức tạp trong vài phần triệu giây, nhưng đó cũng là dựa trên sự hiểu biết của con người Nếu không có sự tham gia của con người thì hệ thống vi điều khiển cũng chỉ là một vật vô tri Do vậy khi nói đến vi điều khiển cũng giống như máy tính bao gồm

2 phần là phần cứng và phần mềm

Mặc dù vi điều khiển đã đi được những bước dài như vậy nhưng để tiếp cận được với kỹ thuật này không thể là một việc có được trong một sớm một chiều Việc hiểu được cơ chế hoạt động của bộ vi điều khiển 8 Bit là cơ sở để chúng ta tìm hiểu và sử dụng các bộ vi điều khiển tối tân hơn, vì vậy thực hành làm đồ án này chính là bước đi đầu tiên khi chúng ta muốn xâm nhập sâu hơn vào lĩnh vực này

Mục đích của đề tài hướng đến: tạo ra bước đầu cho sinh viên thử nghiệm những ứng dụng của vdk trong thực tiễn để rồi từ đó tìm tòi, phát triển nhiều ứng dụng khác trong đời sống hằng ngày cần đến

Việc thực hiện xong đồ án môn học bằng các kiến thức đã học, một số sách tham khảo

và một số nguồn tài liệu khác nên không tránh khỏi những thiếu sót Vì vậy nhóm rất mong được sự góp ý của thầy cô và các bạn

Trang 3

PHẦN I: GIỚI THIỆU VỀ CÁC LINH KIỆN TRONG MẠCH

1 Chip AT89S52

2 LCD

PHÀN II: THIẾT KẾ THI CÔNG

1 Sơ đồ nguyên lý của mạch

2 Mạch in

3 Chương trình phần mềm

I Mục đích, yêu cầu của đề tài:

- Sơ đồ khối mạch

Phần chính của đề tài này chính là chương trình tạo thời gian thực Chương trình tạo thời gian thực 0.1s , 1s qua đó thực hiện các chế độ hiển thị Ngày Tháng Năm, Giờ Phút Giây… lên màn hình LCD

II Các linh kiện dùng trong mạch và nguyên lý hoạt động.

A Các linh kiện sử dụng trong mạch.

- Sử dụng vi điều khiển họ 8051

- Hiển thị bằng màn hình LCD

Hiển thị LCD

Vi điều khiển 8051

Trang 4

A Tổng quan về vi điều khiển 8051

1 Giới thiệu chung:

8051 là dòng vi điều khiển được phát triển bởi Intel từ những năm 1980 Trong những năm

1980 và đầu những năm 1990, chỉ có duy nhất Intel sản xuất dòng vi điều khiển này, tuy nhiên cho đến nay, phiên bản gốc của 8051 được hơn 20 nhà sản xuất độc lập phát triển, tạo ra những phiên bản mới nhanh hơn, tích hợp thêm nhiều tính năng hơn nhưng vẫn giữ nguyên kiến trúc tập lệnh Đó là các công ty như Atmel, Infineon Technologies, NXP, Maxim

Integreated Products, Texas Instruments,

Các đặc điểm của 8051:

- Là dòng vi điều khiển 8-bit

- Bus dữ liệu 8 bít, cho phép truy cập một byte dữ liệu

trong một toán tử

- Bus dữ liệu 16 bit cho phép không gian nhớ lên tới 216

byte

- 128 byte RAM on-chip để lưu trữ dữ liệu

- 4KB ROM on-chip để lưu trữ chương trình

- 4 cổng vào ra

- 1 cổng UART cho giao tiếp nối tiếp

- 2 bộ counter/timer 16 bít

- Có chết độ tiết kiệm năng lượng

khiển 8051

Trang 5

2 Sơ đồ khối của 8051:

Sơ đồ khối của 8051

Như bạn đã thấy, vi điều khiển 8051 bao gồm bộ xử lý (Control Unit) bên trong , bộ nhớ RAM và các thanh ghi, các khối điều khiển số học và điều khiển bộ nhớ Ngoài ra, còn có các

bộ tạo xung nhịp, kênh truyền nối tiếp và song song, các điều khiển ngắt và các cổng vào ra

Vi điều khiển AT89S51 là một bộ vi xử lý 8bit được chế tạo theo công nghệ CMOS với 4KB

bộ nhớ chương trình (bộ nhớ dạng Flash) có thể đọc ghi 1000 lần.Nếu bạn muốn bộ nhớ chương trình lớn hơn, có thể sử dụng AT89C52, AT89C54, AT89C58 với bộ nhớ chương trình 8K, 16K, và 32K

3 Sơ đồ chân của 8051:

Là IC đóng vỏ dạng DIP có 40 chân, mỗi chân có một kí hiệu tên và có các chức năng như sau:

Chân 40: nối với nguồn nuôi +5V Chân 20: nối với đất(Mass,GND).

Chân 29 (PSEN)(program store enable) là tín hiệu điều khiển xuất ra của 8051, nó cho

phép chọn bộ nhớ ngoài và được nối chung với chân của OE (Outout Enable) của

EPROM ngoài để cho phép đọc các byte của chương trình Các xung tín hiệu PSEN hạ thấp trong suốt thời gian thi hành lệnh Những mã nhị phân của chương trình được đọc

từ EPROM đi qua bus dữ liệu và được chốt vào thanh ghi lệnh của 8051 bởi mã lệnh (chú ý việc đọc ở đây là đọc các lệnh (khác với đọc dữ liệu), khi đó VXL chỉ đọc các bit opcode của lệnh và đưa chúng vào hàng đợi lệnh thông qua các Bus địa chỉ và dữ liệu)

Trang 6

Chân 30 (ALE : Adress Latch Enable) là tín hiệu điều khiển xuất ra của 8051, nó cho

phép phân kênh bus địa chỉ và bus dữ liệu của Port 0

Chân 31 (EA : Eternal Acess) được đưa xuống thấp cho phép chọn bộ nhớ mã ngoàI

đối với 8051

Đối với 8051 thì : EA = 5V : Chọn ROM nội EA = 0V : Chọn ROM ngoại

EA=21V : lập trình EPROM nội

32 chân còn lại chia làm 4 cổng vào ra: Vào ra tức là có thể dùng chân đó để đọc mức logic (0;1 tương ứng với 0V; 5V) vào hay xuất mức logic ra(0;1)

Chân 18, 19 nối với thạch anh tạo thành mạch tạo dao động cho VĐK

Tần số thạch anh thường dùng trong các ứng dụng là : 11.0592Mhz(giao tiếp với cổng com máy tính) và 12Mhz Tần số tối đa 24Mhz Tần số càng lớn VĐK xử lí càng nhanh

1 chu kỳ máy = 12 dao động của thạch anh tần số thạch anh là 12Mhz có nghĩa là tần số làm việc của chip là 1Mhz <-> chu kỳ là 1uS Lệnh lập trình cho vi điều khiển có lệnh vi điều khiển mất 1 chu kỳ máy mới thực hiện xong, có lệnh nhiều hơn một chu kỳ máy Cụ thể khi lập trình sẽ biết lệnh đó bao nhiêu chu kỳ máy

89S51 có 40 chân, trong đó 4 cổng vào ra (P0,P1, P2, P3), mỗi cổng gồm 8 chân (tương ứng với 8bit của 1 byte), và đều có chức năng nhận và xuất dữ liệu Ngoài ra mỗi cổng còn có những chúc năng riêng khác

Port 0( P0.0=>P0.7)

Trang 7

Port 0 gồm 8 chân, ngoài chức năng xuất nhập,port 0 còn là bus đa hợp dữ liệu và địa chỉ( AD0-AD7), chức năng này sẽ được sử dụng khi 89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus như các vi mạch nhớ mạch PIO…

Port 1( P1.0=>P1.7)

1

Chức năng duy nhất của Port 1 là chức năng xuất nhập cũng như các Port khác Port1

có thể xuất nhập theo bit và theo byte

Port 2( P2.0=>P2.7)

1 Port 2 ngoài chức năng là cổng vào/ra như Port 0 và 1 còn là byte cao của bus địa chỉ khi sử dụng bộ nhớ ngoài

Port 3 (P3.0=>P3.7)

Trang 8

Mỗi chân trên Port 3 ngoài chức năng xuất nhập còn có một chức năng riêng, cụ thể như sau:

Bit Tên Chức năng P3.0 RXD Dữ liệu nhận cho Port nối tiếp P3.1 TXD Dữ liệu truyền cho Port nối tiếp P3.2 INT0 Ngắt bên ngoài 0

P3.3 INT1 Ngắt ngoài 1 P3.4 TO Ngõ vào của Timer/counter0 P3.5 T1 Ngõ vào của Timer/counter1 P3.6 /WR Xung ghi bộ nhớ dữ liệu ngoài

P3.7 /RD Xung đọc bộ nhớ dữ liệu ngoài

1 Chân /PSEN : là chân điều khiển đọc chương trình ở bộ nhớ ngoài

2 Chân ALE.: ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 7473

1 Chân /EA Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài EA=1 thì thực hiện chương trình trong RAM nội EA=0 thực hiện ở RAM ngoài

1 RST( reset) Ngõ vào reset trên chân số 9 khi RST=1 thì bộ vi điều khiển sẽ

được khởi động lại thiết lập ban đầu

XTAL1, XTAL2 :2 chân này được nối song song với thạch anh tần số max=33

Mhz Để tạo dao động cho bộ vi điều khiển

Vcc, GND : cung cấp nguồn nuôi cho bộ vi điều khiển cấp qua chân 20 và 40

Chân /PSEN( Program store enable)

/PSEN là chân điều khiển đọc chương trình ở bộ nhớ ngoài, nó được nối với chân /OE để cho phép đọc các byte mã lệnh trên ROM ngoài /PSEN sẽ ở mức thấp trong thời gian đọc mã lệnh Mã lệnh được đọc từ bộ nhớ ngoài qua bus dữ liệu (port 0) thanh ghi lệnh sẽ được giải mã

Khi thực hiện chương trình trong ROM nội thì /PSEN ở mức cao

Chân ALE (Address Latch Enable)

Trang 9

ALE là tín hiệu điều khiển chốt địa chỉ có tần số bằng 1/6 tần số dao động của vi điều khiển Tín hiệu ALE được dùng để cho phép vi mạch chốt bên ngoài như 7473, 74573 chốt byte địa chỉ thấp ra khỏi bus đa hợp địa chỉ/dữ liệu (Port 0)

Chân /EA (External Access)

Chân này được nối lên 5V khi thực thi chương trình trong ROM nội và được nối đất khi thực thi chương trình bộ nhớ ngoài Chú ý đối với các chip không có ROM nội /EA phải được nối đất Các chip họ 8051 có EPROM còn nhận chân /EA làm chân nhận điện áp cấp điện 12V cho việc lập trình (nạp) cho EPROM nội

Tín hiệu /EA cho phép chọn bộ nhớ chương trình là bộ nhớ trong hay ngoài vi điều khiển Nếu /EA ở mức cao (nối với Vcc), thì vi điều khiển thi hành chương trình trong ROM nội Nếu /EA ở mức thấp (nối với GND) thì vi điều khiển thi hành chương trình từ bộ nhớ ngoài

RST(reset)

Ngõ vào RST trên chân 9 là ngõ reset của 8051 Khi tín hiệu này được đưa lên mức cao ( trong ít nhất 2 chu kỳ máy), các thanh ghi trong bộ vi điều khiển được tải những giá trị thíc hợp để khởi động hệ thống

XTAL1, XTAL2

AT89S52 có một bộ dao động trên chip, nó thường được nối với bộ dao động thạch anh có tần

số lớn nhất là 33MHz, thông thường là 12MHz

Vcc,GND

AT89S52 dùng nguồn một chiều có dải điện áp từ 4V đến 5,5V được cấp qua chân 40 và 20

4 Khảo sát các khối nhớ bên trong VDK At89S52:

Tổ chức bộ nhớ :

Bộ nhớ bên trong của AT89S52 bao gồm 8k ROM và 256 byte RAM RAM bao gồm nhiều thành phần : phần lưu trữ đa dụng , phần lưu trữ địa chỉ hóa từng bit,các bank thanh ghi và các thanh ghi chức năng đặc biệt

AT89S52 có bộ nhớ theo cấu trúc Harvard : có những vùng nhớ riêng biệt cho chương trình và dữ liệu Chương trình và dữ liệu có thể chứa bên trong AT89S52 nhưng AT89S52 vẫn có thể kết nối với 64k byte bộ nhớ chương trình và 64k byte bộ nhớ dữ liệu mở rộng

Bộ nhớ dữ liệu : Ram bên trongAT89S52 được phân chia như sau :

- Các bank thanh ghi có địa chỉ từ 00H đến 1FH

- Ram địa chỉ hóa từng bit có địa chỉ từ 20H đến 2FH

- Ram đa dụng từ 30H đến 7FH

- Các thanh ghi chức năng đặc biệt từ 80H đến FFH

AT89S52 có 21 thanh ghi chức năng ở vùng trên của RAM nội từ địa chỉ 80H đến FFH

Trang 10

Thanh ghi trạng thái chương trình : thanh ghi trạng thái của chương trình ở địa chỉ DOH chứa các bit như sau :

00=bank 0 ; địa chỉ 00H _ 07H 01=bank 1 ; địa chỉ 08H _ 0FH 10=bank 2 ; địa chỉ 10H _ 1FH

11=bank 3 ; địa chỉ 18H _ 1FH

Các thanh ghi Timer : AT89S52 có chứa 2 bộ định thời/đếm 16 bit được dùng cho việc định thời hoặc đếm sự kiện.Timer 0 ở địa chỉ 8AH(TL0 : byte thấp) và 8DH(TH1 : byte cao).Việc khởi động timer được set bởi Timer Mode(TMOD) ở địa chỉ 89H và thanh ghi điều khiển timer(TCON) ở địa chỉ 88H,chỉ có TCON được địa chỉ hóa từng bit

Các thanh ghi port nối tiếp : AT89S52 chứa một port nối tiếp dành cho việc trao đổi thông tin với các thiết bị nối tiếp như máy tính,modem hoặc giao tiếp nối tiếp với các IC khác Một thanh ghi gọi là bộ đệm dữ liệu nối tiếp (SBUF) ở địa chỉ 99H sẽ giữ cả 2 dữ liệu truyền và dữ liệu nhận.Khi truyền dữ liệu thì đọc SBUF.Các mode vận hành khác nhau được lập trình qua thanh ghi điều khiển port nối tiếp SCON ở địa chỉ 98H

Các thanh ghi ngắt : AT89S52 có cấu trúc 6 nguồn ngắt , 2 mức ưu tiên.Các ngắt bị cấm sau khi reset hệ thống và sẽ được cho phép bằng việc ghi thanh ghi cho phép ngắt (IE) ở địa chỉ A8H,cả 2 thanh ghi được địa chỉ hóa từng bit

AT89S52 có ngõ vào reset RST tác động ở mức cao trong khoảng thời gian 2 chu kỳ , sau

đó xuống mức thấp để nó bắt đầu làm việc RST có thể được kick bằng tay bởi một nút bấm thông thường

AT89S52 có một bộ chia tần số bên trong chip,bộ này sẽ cung cấp xung clock cho các khối trên chip từ nguồn dao động bên ngoài qua 2 chân XTAL1 và XTAL2

Trang 11

5 hoạt động định thời của AT89S51

Các bộ định thời (Timer) được sử dụng rộng rãi trong các ứng dụng đo lường và điều khiển.Vi điều khiển AT89S52 có 3 bộ định thời 16 bit trong đó 2 bộ timer 0 và 1 có 4 chế độ hoạt động,timer 2 có 3 chế độ hoạt động.Các bộ định thời dùng để định khoảng thời gian(hẹn giờ),đếm sự kiện xảy ra bên ngoài bộ vi điều khiển hoặc tạo tốc độ baud cho công nối tiếp của

vi điều khiển

Trong các ứng dụng định hoảng thời gian,timer được lập trình sao cho sẽ tràn sau một khoảng thời gian và thiết lập cờ tràn bằng 1.Cờ tràn được sử dụng bởi chương trình để thực hiện một hành động tương ứng như kiểm tra trạng thái của các ngõ vào hoặc gửi các sự kiện cho các ngõ ra

Đếm sự kiện dùng để xác định số lần xảy ra của một sự kiện.Trong ứng dụng này người

ta tìm cách quy các sự kiện thành sự chuyển mức từ 1 xuống 0 trên cá chân T0 hoặc T1 hoặc T2 để dùng các timer tương ứng đếm các sự kiện đó

Trang 12

LCD Hiển thị ký tự

Phân loại LCD :Có thể chia các module LCD làm 2 loại chính là:

1, loại hiển thị ký tự

2, Loại hiển thị đồ họa

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

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

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

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

4 4) Hiển thị ký tự

Chú ý:

+Các 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 ghi lệnh hoặc ghi dữ liệu hiển thị lên LCD cần phải kiểm tra cờ bận

trước Vì vậy, 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 sau khoảng 2ms mới ra lệnh khác vì thời gian để LCD xóa màn hình là

1,64ms).+chế độ hiển thị mặc định sẽ là hiển thị dịch, vị trí con trỏ mặc định sẽ là đầu

dòng thứ nhất

mã lệnh của LCD HD4480

hành

hình đưa con trỏ về

1.64ms

Trang 13

vị trí đầu

Đưa con trỏ về vị

trí đầu 0 0 0 0 0 0 0 0 1 x Đưa con trỏ về vị

trí đầu

1.64ms

Thiết lập chế độ 0 0 0 0 0 0 0 1 I/D S Thiết lập

hướng dịch chuyển con trỏ(I/D), dịch hiển thị(S)

40us

Bật tắt hiển thị 0 0 0 0 0 0 1 D C B Bật tắt

hiển thị, con trỏ;

bật tắt chế

độ nhấp nháy con trỏ

40us

Dịch con trỏ hiển

thị 0 0 0 0 0 1 S/C R/L * * Thiết lập chiều dịch

chuyển của con trỏ và hiển thị

40us

Thiết lập chức

năng

độ dài của

dữ liệu,

số dòng

và font chữ

40us

Thiết lập địa chỉ

CGRAM

địa chỉ CGRAM

40us

Thiết lập địa chỉ

DDRAM

địa chỉ DDRAM

40us

Đọc cờ báo bận

và địa chỉ

CGRAM/

DDRAM

0 1 BF CGRAM/ DDRAM address Đọc cờ báo bận và

địa chỉ của CGRAM hoặc DDRAM( tùy vào lệnh trước đó)

40us

Ngày đăng: 18/12/2014, 14:58

HÌNH ẢNH LIÊN QUAN

2. Sơ đồ khối của 8051: - Vi điều khiển thời gian thực với LCD
2. Sơ đồ khối của 8051: (Trang 5)
Hình đưa  con trỏ về - Vi điều khiển thời gian thực với LCD
nh đưa con trỏ về (Trang 12)

TỪ KHÓA LIÊN QUAN

w