TRƯỜng đẠi học cần thơ khoa công nghệ BỘ MÔN ĐIỆn tử viễn thôNG


II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ



tải về 461.56 Kb.
trang2/9
Chuyển đổi dữ liệu26.07.2016
Kích461.56 Kb.
#6036
1   2   3   4   5   6   7   8   9

II. LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ


Đề tài này trước khi tôi thực hiện đã có một số sinh viên trường đại học Bách Khoa Thành Phố Hồ Chí Minh thực hiện nhưng kết quả chưa được như mong muốn vì mạch chạy không ổn định và thường hay bị “treo”. Hơn nửa họ chỉ Thiết kế Lịch Vạn Niên Điện Tử” với những công tắt để điều chỉnh, không dùng remote hồng ngoại để điểu chỉnh. Chính vì thế tôi quyết định chọn đề tài này và kết hợp thêm bộ điều khiển từ xa dùng remote hồng ngoại. Vì tôi mong muốn tạo ra một thiết bị với nhiều thuận lợi hơn cho người dùng và độ tin cậy cao.

III. MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI


Trong luận án này tôi sử dụng một con IC thời gian thực (DS1307) kết hợp với vi điều khiển 89S52 để tạo thành giao diện I2C, 89S52 có nhiệm vụ đọc/ghi (giờ, phút, giây, thứ, ngày…..thời gian báo thức) từ chip DS1307. Khi thời gian báo thức trùng với thời gian thực thì loa sẽ phát ra âm thanh trong 1 phút, đồng thời khi có tín hiệu phát ra từ remote hồng ngoại thì 89S52 bắt đầu giãi mã tín hiệu này, sau khi giải mã 89S52 ghi dữ liệu nhận được vào DS1307. Ngoài ra mạch còn sử dụng cảm biến nhiệt (LM35), ngỏ ra của cảm biến này được đưa qua bộ biến đổi tương tự sang số (ADC0804), dữ liệu được 89S52 đọc ra từ ADC0804 và hiển thị kết quả ra led 7 đoạn.

Từ đây có thể suy ra mục đích yêu cầu của đề tài như sau:



  • Mạch hiển thị giờ, phút, giây, thứ, ngày, tháng, năm một cách chính xác

  • Đo nhiệt độ và hiển thị ra led 7 đoạn

  • Bộ cài đặt thời gian được sử dụng bằng remote hồng ngoại, xác xuất lỗi khi ấn remote là thấp nhất

  • Khi thời gian báo thức trùng với thời gian thực thì loa phải phát ra âm thanh báo thức

  • Giá thành sản phẩm không quá đắc.

Dựa vào yêu cầu của đề tài tôi đã phân ra thành 2 khối lớn:

  • Khối A: Đo nhiệt độ và hiển thị kết quả ra led 7 đoạn

  • Khối B: Đồng hồ thời gian thực và bộ điều khiển từ xa dùng remote hồng ngoại

CHƯƠNG II: CƠ SỞ LÝ THUYẾT



  1. ĐO NHIỆT ĐỘ

I.GIỚI THIỆU VỀ VI ĐIỀU KHIỂN 89S52

1. Tổng quan về 89S52


AT89S52 là họ IC vi điều khiển do hãng Intel sản xuất. Các sản phẩm AT89S52 thích hợp cho những ứng dụng điều khiển. Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu nhỏ được thực hiện bằng nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một bảng tiện dụng của những lệnh số học 8 bit gồm cả lệnh nhân và lệnh chia. Nó cung cấp những hổ trợ mở rộng trên chip dùng cho những biến một bit như là kiểu dữ liệu riêng biệt cho phép quản lý và kiểm tra bit trực tiếp trong hệ thống điều khiển.

AT89S52 cung cấp những đặc tính chuẩn như: 8 KByte bộ nhớ chỉ đọc có thể xóa và lập trình nhanh (EPROM), 128 Byte RAM, 32 đường I/O, 3 TIMER/COUNTER 16 Bit, 5 vectơ ngắt có cấu trúc 2 mức ngắt, một Port nối tiếp bán song công, 1 mạch dao động tạo xung Clock và bộ dao động ON-CHIP.

Các đặc điểm của chip AT89S52 được tóm tắt như sau:


  • 8 KByte bộ nhớ có thể lập trình nhanh, có khả năng tới 1000 chu kỳ ghi/xoá

  • Tần số hoạt động từ: 0Hz đến 24 MHz

  • 3 mức khóa bộ nhớ lập trình

  • 3 bộ Timer/counter 16 Bit

  • 128 Byte RAM nội.

  • 4 Port xuất /nhập I/O 8 bit.

  • Giao tiếp nối tiếp.

  • 64 KB vùng nhớ mã ngoài

  • 64 KB vùng nhớ dữ liệu ngoại.

  • 4 s cho hoạt động nhân hoặc chia



Sơ đồ khối của AT89S52

2. Mô tả chân 89S52

2.1. Sơ đồ chân 89S52


Mặc dù các thành viên của họ 8051(ví dụ 8751, 89S52, 89C51, DS5000) đều có các kiểu đóng vỏ khác nhau, chẳng hạn như hai hàng chân DIP (Dual In-Line Pakage), dạng vỏ dẹt vuông QPF (Quad Flat Pakage) và dạng chip không có chân đỡ LLC (Leadless Chip Carrier) thì chúng đều có 40 chân cho các chức năng khác nhau như vào ra I/O, đọc , ghi , địa chỉ, dữ liệu và ngắt. Cần phải lưu ý một số hãng cung cấp một phiên bản 8051 có 20 chân với số cổng vào ra ít hơn cho các ứng dụng yêu cầu thấp hơn. Tuy nhiên vì hầu hết các nhà phát triển sử dụng chíp đóng vỏ 40 chân với hai hàng chân DIP nên ta chỉ tập trung mô tả phiên bản này.

2.2. Chức năng của các chân 89S52


Port 0: từ chân 32 đến chân 39 (P0.0 _P0.7). Port 0 có 2 chức năng: trong các thiết kế cỡ nhỏ không dùng bộ nhớ mở rộng nó có chức năng như các đường IO, đối với thiết kế lớn có bộ nhớ mở rộng nó được kết hợp giữa bus địa chỉ và bus dữ liệu.

Port 1: từ chân 1 đến chân 9 (P1.0 _ P1.7). Port 1 là port IO dùng cho giao tiếp với thiết bị bên ngoài nếu cần.

Port 2: từ chân 21 đến chân 28 (P2.0 _P2.7). Port 2 là một port có tác dụng kép dùng như các đường xuất/nhập hoặc là byte cao của bus địa chỉ đối với các thiết bị dùng bộ nhớ mở rộng.

Port 3: từ chân 10 đến chân 17 (P3.0 _ P3.7). Port 3 là port có tác dụng kép. Các chân của port này có nhiều chức năng, có công dụng chuyển đổi có liên hệ đến các đặc tính đặc biệt của 89S52 như ở bảng sau:

Bit

Tên

Chức năng chuyển đổi

P3.0

P3.1


P3.2

P3.3


P3.4

P3.5


P3.6

P3.7


RXD

TXD


INT0

INT1


T0

T1

WR



RD

Ngõ vào dữ liệu nối tiếp.

Ngõ xuất dữ liệu nối tiếp.

Ngõ vào ngắt cứng thứ 0.

Ngõ vào ngắt cứng thứ 1.

Ngõ vào TIMER/ COUNTER thứ 0.

Ngõ vào của TIMER/ COUNTER thứ 1.

Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.

Tín hiệu đọc bộ nhớ dữ liệu ngoài.





PSEN (Program store enable):

PSEN là tín hiệu ngõ ra có tác dụng cho phép đọc bộ nhớ chương trình

mở rộng và thường được nối đến chân OE của Eprom cho phép đọc các byte

mã lệnh.


PSEN ở mức thấp trong thời gian 89S52 lấy lệnh. Các mã lệnh của chương trình được đọc từ Eprom qua bus dữ liệu, được chốt vào thanh ghi lệnh bên trong 89S52 để giải mã lệnh. Khi 89S52 thi hành chương trình trong ROM nội, PSEN ở mức cao.

ALE (Address Latch Enable):

Khi 89S52 truy xuất bộ nhớ bên ngoài, Port 0 có chức năng là bus địa chỉ và dữ liệu do đó phải tách các đường dữ liệu và địa chỉ. Tín hiệu ra ALE ở chân thứ 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa chỉ và dữ liệu khi kết nối chúng với IC chốt.

Tín hiệu ở chân ALE là một xung trong khoảng thời gian port 0 đóng vai trò là địa chỉ thấp nên chốt địa chỉ hoàn toàn tự động.

EA (External Access): Tín hiệu vào EA (chân 31) thường được mắc lên mức 1 hoặc mức 0. Nếu ở mức 1, 89S52 thi hành chương trình từ ROM nội. Nếu ở mức 0, 89S52 thi hành chương trình từ bộ nhớ mở rộng. Chân EA được lấy làm chân cấp nguồn 21V khi lập trình cho Eprom trong 89S52.

RST (Reset): Khi ngõ vào tín hiệu này đưa lên mức cao ít nhất 2 chu kỳ máy, các thanh ghi bên trong được nạp những giá trị thích hợp để khởi động hệ thống. Khi cấp điện mạch phải tự động reset.

Các giá trị tụ và điện trở được chọn là:

R1=10, R2=220, C=10 F.

Các ngõ vào bộ dao động X1, X2:

Bộ tạo dao động được tích hợp bên trong 89S52. Khi sử dụng 89S52, người ta chỉ cần nối thêm thạch anh và các tụ. Tần số thạch anh tùy thuộc vào mục đích của người sử dụng, giá trị tụ thường được chọn là 33p.


3. Tổ chức bộ nhớ bên trong 89S52


Bộ nhớ trong 89S52 bao gồm ROM và RAM. RAM trong 89S52 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ớ được tổ chức theo cấu trúc Harvard: có những vùng bộ 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 89S52 nhưng 89S52 vẫn có thể kết nối với 64K byte bộ nhớ chương trình và 64K byte dữ liệu bên ngoài.



Bản đồ bộ nhớ Data bên trong Chip 89S52 được tổ chức như sau:

RAM bên trong AT89S52 đượ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


3.1. RAM đa dụng


RAM đa dụng có địa chỉ từ 30h – 7Fh có thể truy xuất mỗi lần 8 bit bằng cách dùng chế độ định địa chỉ trực tiếp hay gián tiếp.

Các vùng địa chỉ thấp từ 00h – 2Fh cũng có thể sử dụng cho mục đích như trên, ngoài các chức năng đặc biệt được đề cập ở phần sau.


3.2. RAM có thể định địa chỉ bit


Vùng địa chỉ từ 20h -2Fh gồm 16 byte có thể thực hiện như vùng RAM đa dụng (truy xuât mỗi lần 8 bit) hay thực hiện truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit.

3.3. Các bank thanh ghi


Vùng địa chỉ 00h – 1Fh được chia thành 4 bank thanh ghi: bank 0 từ 00h – 07h, bank 1 từ 08h – 0Fh, bank 2 từ 10h – 17h và bank 3 từ 18h – 1Fh. Các bank thanh ghi này được đại diện bằng các thanh ghi từ R0 đến R7. Sau khi khởi động thì hệ thống bank 0 được chọn sử dụng.

Do có 4 bank thanh ghi nên tại một thời điểm chỉ có một bank thanh ghi được truy xuất bởi các thanh ghi R0 đến R7. Viêc thay đổi bank thanh ghi được thực hiện thông qua thanh ghi từ trạng thái chương trình (PSW).


3.4. Các thanh ghi có chức năng đặc biệt


Các thanh ghi trong 89S52 được định dạng như một phần của RAM trên chip vì vậy mỗi thanh ghi sẽ có một địa chỉ (ngoại trừ thanh ghi bộ đếm chương trình và thanh ghi lệnh vì các thanh ghi này hiếm khi bị tác động trực tiếp). Cũng như R0 đến R7, 89S52 có 21 thanh ghi có chức năng đặc biệt (SFR: Special Function Register) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH.

Sau đây là một vài thanh ghi đặc biệt thường được sử dụng:


3.4.1. Thanh ghi trạng thái chương trình (PSW: Program Status Word)

BIT

SYMBOL

ADDRESS

DESCRIPTION

PSW.7

CY

D7H

Cary Flag

PSW.6

AC

D6H

Auxiliary Cary Flag

PSW.5

F0

D5H

Flag 0

PSW4

RS1

D4H

Register Bank Select 1

PSW.3

RS0

D3H

Register Bank Select 0










00=Bank 0; address 00H07H










01=Bank 1; address 08H0FH










10=Bank 2; address 10H17H










11=Bank 3; address 18H1FH

PSW.2

OV

D2H

Overlow Flag

PSW.1

-

D1H

Reserved

PSW.0

P

DOH

Even Parity Flag

Chức năng từng bit trạng thái chương trình

- Cờ Carry CY (Carry Flag):

Cờ nhớ thường nó được dùng cho các lệnh toán học: C =1 nếu phép toán cộng có sự tràn hoặc phép trừ có mượn và ngược lại C = 0 nếu phép toán cộng không tràn và phép trừ không có mượn.



- Cờ Carry phụ AC (Auxiliary Carry Flag):

Khi cộng những giá trị BCD (Binary Code Decimal), cờ nhớ phụ AC được set nếu kết quả 4 bit thấp nằm trong phạm vi điều khiển 0AH - 0FH. Ngược lại AC = 0



- Cờ 0 (Flag 0):

Cờ 0 (F0) là 1 bit cờ đa dụng dùng cho các ứng dụng của người dùng.



- Những bit chọn bank thanh ghi truy xuất:

RS1 và RS0 quyết định dãy thanh ghi tích cực. Chúng được xóa sau khi reset hệ thống và được thay đổi bởi phần mềm khi cần thiết.

Tùy theo RS1, RS0 = 00, 01, 10, 11 sẽ được chọn Bank tích cực tương ứng là Bank 0, Bank1, Bank2 và Bank3.


RS1

RS0

BANK

0

0

0

0

1

1

1

0

2

1

1

3


- Cờ tràn OV (Over Flag):

Cờ tràn được set sau một hoạt động cộng hoặc trừ nếu có sự tràn toán học.



- Bit Parity (P):

Bit tự động được set hay Clear ở mỗi chu kỳ máy để lập Parity chẵn với thanh ghi A. Sự đếm các bit 1 trong thanh ghi A cộng với bit Parity luôn luôn chẵn. Ví dụ A chứa 10101101B thì bit P set lên một để tổng số bit 1 trong A và P tạo thành số chẵn.

Bit Parity thường được dùng trong sự kết hợp với những thủ tục của Port nối tiếp để tạo ra bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu.

3.4.2. Thanh ghi TIMER

Vi Điều Khiển 89S52 có 3 timer 16 bit, mỗi timer có bốn cách làm việc. Người ta sử dụng các timer để:

  • Định khoảng thời gian.

  • Đếm sự kiện.

  • Tạo tốc độ baud cho port nối tiếp trong 89S52.

Trong các ứng dụng định khoảng thời gian, người ta lập trình timer ở những khoảng đều đặn và đặt cờ tràn timer. Cờ được dùng để đồng bộ hóa chương trình để thực hiện một tác động như kiểm tra trạng thái của các ngõ vào hoặc gửi sự kiện ra các ngõ ra. Các ứng dụng khác có thể sử dụng việc tạo xung nhịp đều đặn của timer để đo thời gian trôi qua giữa hai sự kiện (ví dụ đo độ rộng xung).
3.4.3. Thanh ghi ngắt (INTERRUPT)

Một ngắt là sự xảy ra một điều kiện, một sự kiện mà nó gây ra treo tạm thời thời chương trình chính trong khi điều kiện đó được phục vụ bởi một chương trình khác.

Các ngắt đóng một vai trò quan trọng trong thiết kế và cài đặt các ứng dụng vi điều khiển. Chúng cho phép hệ thống đáp ứng bất đồng bộ với một sự kiện và giải quyết sự kiện đó trong khi một chương trình khác đang thực thi.

- Tổ chức ngắt của 89S52:

Có 5 nguồn ngắt ở 89S52: 2 ngắt ngoài, 2 ngắt từ timer và 1 ngắt port

nối tiếp. Tất cả các ngắt theo mặc nhiên đều bị cấm sau khi reset hệ thống và được cho phép từng cái một bằng phần mềm. Mức độ ưu tiên của các ngắt được lưu trong thanh ghi IP (Interrupt Priority) hay nói cách khác thanh ghi IP cho phép chọn mức ưu tiên cho các ngắt (giá trị thanh ghi IP khi reset là 00h).

Bit

Ký hiệu

Địa chỉ bit

Mô tả

IP.7

_

_

Không được mô tả

IP.6

_

_

Không được mô tả

IP.5

ET2

BDH

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 2

IP.4

ES

BCH

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại cổng nối tiếp.

IP.3

ET1

BBH

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 1

IP.2

EX1

BAH

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt ngoài 1

IP.1

ET0

B9H

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại timer 0

IP.0

EX0

B8H

Chọn mức ưu tiên cao (=1) hay thấp (=0) tại ngắt ngoài 0

Tóm tắt thanh ghi IP

 Nếu 2 ngắt xảy ra đồng thời thì ngắt nào có nào có mức ưu tiên cao hơn sẽ được phục vụ trước.

 Nếu 2 ngắt xảy ra đồng thời có cùng mức ưu tiên thì thứ tự ưu tiên được

thực hiện từ cao đến thấp như sau: ngắt ngoài 0 – timer 0 – ngắt ngoài 1 – timer 1 – cổng nối tiếp – timer 2.

 Nếu chương trình của một ngắt có mức ưu tiên thấp đang chạy mà có một ngắt xảy ra với mức ưu tiên cao hơn thì chương trình này tạm dừng để chạy một chương trình khác có mức ưu tiên cao hơn.



- Cho phép và cấm ngắt:

Mỗi nguồn ngắt được cho phép hoặc cấm ngắt qua một thanh ghi chức năng đặt biệt có định địa chỉ bit IE (Interrupt Enable: cho phép ngắt) ở địa chỉ A8H.




Bit

Ký hiệu

Địa chỉ bit

Mô tả

IE.7

EA

AFH

Cho phép / Cấm toàn bộ

IE.6

_

AEH

Không được mô tả

IE.5

ET2

ADH

Cho phép ngắt từ Timer 2 (8052)

IE.4

ES

ACH

Cho phép ngắt port nối tiếp

IE.3

ET1

ABH

Cho phép ngắt từ Timer 1

IE.2

EX1

AAH

Cho phép ngắt ngoài 1

IE.1

ET0

A9H

Cho phép ngắt từ Timer 0

IE.0

EX0

A8H

Cho phép ngắt ngoài 0

Tóm tắt thanh ghi IE
- Các cờ ngắt:

Khi điều kiện ngắt xảy ra thì ứng với từng loại ngắt mà loại cờ đó được đặt lên mức cao để xác nhận ngắt.



Ngắt

Cờ

Thanh ghi SFR và vị trí bit

Bên ngoài 0

IE0

TCON.1

Bên ngoài 1

IE1

TCON.3

Timer 1

TF1

TCON.7

Timer 0

TF0

TCON.5

Port nối tiếp

TI

SCON.1

Port nối tiếp

RI

SCON.0

Các loại cờ ngắt

- Các vectơ ngắt:

Khi chấp nhận ngắt, giá trị được nạp vào PC gọi là vector ngắt. Nó là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt, các vector ngắt được cho ở bảng sau :



Ngắt

Cờ

Địa chỉ vector

Reset hệ thống

RST

0000H

Bên ngoài 0

IE0

0003H

Timer 0

TF0

000BH

Bên ngoài 1

IE1

0013H

Timer 1

TF1

001BH

Port nối tiếp

TI và RI

0023H

Timer 2




002BH

Vector reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này, nó giống ngắt: nó ngắt chương trình chính và nạp cho PC giá trị mới.

Каталог: books -> luan-van-de-tai -> luan-van-de-tai-cd-dh
luan-van-de-tai-cd-dh -> Thế kỷ 21, cùng với sự phát triển nh­ vũ bão của khoa học kỹ thuật, của công nghệ thông tin. Sự phát triển kinh tế tác động đến tất cả mọi mặt đời sống kinh tế xã hội
luan-van-de-tai-cd-dh -> VIỆN ĐẠi học mở HÀ NỘi khoa công nghệ thông tin đỒ Án tốt nghiệP ĐẠi họC
luan-van-de-tai-cd-dh -> Phần một : Tình hình thu hút vốn đầu tư trên thị trường vốn việt nam hiện nay
luan-van-de-tai-cd-dh -> Em xin chân thành cảm ơn! Vị Xuyên, ngày 19 tháng 5 năm 2012 sinh viêN
luan-van-de-tai-cd-dh -> PHẦn I mở ĐẦu tầm quan trọng và SỰ ra đỜi của giấY
luan-van-de-tai-cd-dh -> Đề tài: Tìm hiểu về vấn đề sử dụng hợp đồng mẫu trong đàm phán ký kết hợp đồng mua bán ngoại thương và thực tiễn ở Việt Nam
luan-van-de-tai-cd-dh -> Đề tài phân tích thực trạng kinh doanh xuất khẩu cà phê nhân của các doanh nghiệP
luan-van-de-tai-cd-dh -> Giao tiếp máy tính và thu nhận dữ liệU ĐỀ TÀI: TÌm hiểu công nghệ 4g lte
luan-van-de-tai-cd-dh -> TRƯỜng đẠi học văn hóa hà NỘi khóa luận tốt nghiệP

tải về 461.56 Kb.

Chia sẻ với bạn bè của bạn:
1   2   3   4   5   6   7   8   9




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương