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

Lich van nien hien thi LED 7 doan

75 489 8

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

Nội dung

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à bu

Trang 1

CHƯƠNG DẪN NHẬP 1.1 ĐẶT VẤN ĐỀ

Trong giai đoạn hiện nay với sự vượt bật của công nghệ nano hàng loạt IC mới được chế tạo Những IC này thông minh hơn rất nhiều so với các IC trước

và đặt biệt là chúng ta có thể ghi /xóa dữ liệu một cách dễ dàng Vì thế nó được

sử dụng trong nhiều thiết bi Điện-Điện Tử và ngày càng thể hiện được bản chất

ưu việt của nó Điển hình là dòng IC 8051/8052

Với sự ra đời của dòng IC mới đã làm thúc đẩy sự phát triển của những IC thời gian thực như DS1307,DS12887…nó có chức năng đếm thời gian thực mà con người đang sử dụng,các IC cảm biến nhiệt như lm35,adc 0804 có thể giao tiếp với vi xử lý để đo nhiệt độ

Cùng với sự phát triển của khoa học-kỹ thuật đã góp phần nâng cao đời sống con người.cũng chính vì thế mà cao người phải biết chính xác về thời gian

để sắp xếp công việc một cách hợp lý Xuất phát từ thực tiễn này em đã quyết định chọn đề tài “thiết kế lịch vạn niên” Nhằm đáp ứng nhu cầu học hỏi của bản thân,cũng như góp phần nâng cao những mach điện tử trong đời sống cao người 1.2 GIỚI HẠN CỦA ĐỀ TÀI

Do kiến thức có hạn nên em chỉ có thể thiết kế lich vạn niên chạy với những thông số cài đặt ban đầu cho DS1307 chứ ta không thể hiệu chỉnh thời gian cho nó trong khi nó hoạt động.và cũng không thể cài đặt thời gian báo thức 1.3 MỤC ĐÍCH YÊU CẦU CỦA ĐỀ TÀI

Trong đề tài này em xử dụng một con IC thời gian thực (ds1307 ) kết hợp

Trang 2

sang số(ADC0804),dữ liệu được 89C52 đọc từ ADC0804 kết quả được hiển thị

ra led 7 đoạn

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

 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

 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 làm 2 khối:

 Khối A: đo nhiệt độ và hiển thị ra led 7 đoạn

 Khối B: đồng hồ thời gian thực và hiển thị ra led 7 đoạn

Trang 3

CHƯƠNG II:CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về vi điều khiển 89C52

2.1.1 Tổng quan về 89C52

AT89C52 là họ IC do hãng INTEL sản xuất Các sản phẩm AT89C52 thích hợp cho các ứ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 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 trên hệ thống điều khiển

AT89C52 cung cấp những đặc tính chuẩn như:

-8Kbyte bộ ngớ có thể lập trình,có khả năng tới 1000 chu kỳ ghi/ xóa

-Tần số hoạt động từ 0HZ đến 24HZ

-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

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

-4us cho hoạt động nhân chia

2.1.2 Mô tả chân 89C52

2.1.2.1 Sơ đồ chân 89C52

Trang 4

AT89C52 9

18 19

29 30

31

1 2 3 4 5 6 7 8

21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17

39 38 37 36 35 34 33 32

RST

XTAL2 XTAL1

PSEN ALE/PROG

EA/VPP

P1.0/T2 P1.1/T2-EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD

P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7

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 hầu hết các nhà

phát triển sử dụng chíp đóng vỏ 40 chân với 2 hàng chân

DIP nên ta chỉ tập trung mô tả phiên bản này

2.1.2.2 Chức năng của chân 89C52

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 8 (P1.0 _ P1.7) Port 1 là port IO dùng cho giao tiếp với thiết bị 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 8051 như ở bảng sau :

Trang 5

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 8051 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

8051 để giải mã lệnh Khi 8051 thi hành chương trình trong ROM nội PSEN ở

mức cao

ALE (Address Latch Enable):

Khi 8051 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

Bit Tên Chức năng chuyển đổi

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

Trang 6

hành chương trình từ ROM nội Nếu ở mức 0, 8051 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 8051

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á thị điện trở được chọn là:

Trang 7

2.1.3 Sơ đồ khối bên trong 89C52

T1 T0

Timer 2 Timer 1 Timer 0

CPU

Oscillator Điều khiển bus Các port I/O Port nối tiếp

Port noái tieáp Timer 0

Timer 1 Timer 2

INT0 INT1

EA RST PSEN

ALE

P0 P2 P1 P3

TxD RxD

T2

Trang 8

2.1.4 Tổ chức bộ nhớ bên trong

Trang 9

RAM bên trong đượ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ó dia chỉ từ 20H đến 29H

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

Vùng địa chỉ 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 truy xuất mỗi lần 1 bit bằng các lệnh xử lý bit 2.1.4.3 Các bank thanh ghi

Vùng địa chỉ 1Fh được chia làm 4 bank thanh ghi:back 0 từ 07h,bank 1 từ 08h -0Fh,bank 2 từ 10h-17h và bank 3 từ 18h đến 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 sử dụng

00h-Do có bốn bank thanh ghi nên tại một thời điểm thì 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 th6ng qua thanh ghi từ trạng thái chương trình(PSW)

Trang 10

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

Các thanh ghi trong 89C52 được d9ing5 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 bị tác đông trực tiếp) Cũng như R0 đến R7,89C52 có 21 thanh ghi có chức năng đặc biệt(SFR:Specil Function Resistor) ở vùng trên của RAM nội từ địa chỉ 80H đến 0FFH

2.1.4.4.1 Thanh ghi trang thái chương trình(PSW: Program Status Word)

PSW.4 RS1 D4H Bit chọn Bank thanh ghi 1

PSW.3 RS0 D3H Bit chọn bank thanh ghi 0

00=bank0 địa chỉ 00H-07H 01=bank1 dịa chỉ 08H-0FH 01=bank2 dịa chỉ 10H-17H 01=bank3 dịa chỉ 18H-1FH

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

-Cờ Carry CY(Carry flag );

Cờ nhớ thường đượ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ó sự mượn và ngược lại C=0 nếu phép cộng không tràn và phép trừ không mượn

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

Khi cộng những giá tri BCD(Binary Code Decimal),cờ phụ AC được set nếu kết

Trang 11

-Cờ 0(Flag):

Cờ 0 (F0) là một bit cờ đa dụng dùng cho các ứng dụng của người dung

-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 thế 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à Bank0,Bank1,Bank2,Bank3

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 thành bit Parity trước khi phát đi hoặc kiểm tra bit Parity sau khi thu

2.1.4.4.2 Thanh ghi Timer

Vi điều khiển 89C52 có 3 timer 16 bit,mỗi tham mơ có bốn cách làm việc

Trang 12

-Tạo tốc độ baud cho port nối tiếp

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 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 2 sự kiện(ví dụ độ rộng xung)

2.1.4.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 chương trình chính trong khi điều kiện đó được phục vu bởi một chương trình khác

Các ngắt đóng 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 89C52:

Có 6 nguồn ngắt ở 89S52: 2 ngắt ngoài, 3 ngắ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 hay nói cách khác thanh ghi IP cho phép chon mức ưu tiên cho các ngắt( giá tri thanh ghi IP khi reset hệ thống là 00h)

Trang 13

Bit Ký hiệu Địa chỉ bit Mô tả

IP.5 ET2 BDH Chọn mức ưu tiên cao hay thấp

tại Timer 2

IP.4 ES BCH Chọn mức ưu tiên cao hay thấp

tại Port nối tiếp

IP.3 ET1 BBH Chọn mức ưu tiên cao hay thấp

tại Timer 1 IP.2 EX1 BAH Chọn mức ưu tiên cao hay thấp

tại Ngắt ngoại 1 IP.1 ET0 B9H Chọn mức ưu tiên cao hay thấp

tại Timer 0 IP.0 EX0 B8H Chọn mức ưu tiên cao hay thấp

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ó mức ưa 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 xuống thấp như sau:ngắt ngoài 0- ngắt timer0- ngắt ngoài 1-ngắt timer 1-ngắt 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 tạm ngừng để chạy một chương trinh khác có mức ưu tiên cao hơn

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

Trang 14

Bit Ký hiệu Địa chỉ bit Mô tả

IE.5 ET2 ADH Chọn phép ngắt từ Timer 2

IE.4 ES ACH Chọn phép ngắt từ Port nối tiếp IE.3 ET1 ABH Chọn phép ngắt từ Timer 1

IE.2 EX1 AAH Chọn phép ngắt Ngắt ngoại 1

IE.1 ET0 A9H Chọn phép ngắt từ Timer 0

IE.0 EX0 A8H Chọn 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

Trang 15

Ngắt Cờ Thanh gh SFR và vi trí bit

Trang 16

Cảm biến nhiệt là một mạch tích hợp nhận tín hiệu nhiệt độ

từ môi trường bên ngoài sau đó chuyển thành tín hiệu điện

dưới dạng dòng điện hay điện áp Dựa vào đặc tính rất nhạy của

bán dẫn với nhiệt độ,tạo ra điện áp hoặc dòng diện tỷ lệ thuận

với nhiệt độ.đo giá trị của điện áp ta biết được giá tri của nhiệt độ

Sự tác động của nhiệt độ tạo ra điện áp tự do và các lỗ trống trong

bán dẫn bằng sự phá vỡ của các phân tử,bứt các electrong thàng

dạng tự do di chuyển qua vùng cấu trúc mạng tinh thể tạo sự xuất

hiện các lỗ trống làm cho tỉ lệ điện tử tự do và các lỗ trống tăng lên

theo quy luật hàm số mũ với nhiệt độ

Ngõ ra của lm35 là dạng điện áp thay đổi với nhiệt độ bên ngoài với độ nhạy 10mv/1oC

Sai số cực đại 1.5oC khi nhiệt độ lớn hơn 100oC

Phạm vi sử dụng:0oC <=toC<=100oC

2.3 KHÁI QUÁT VỀ ADC 0804

2.3.1 MÔ TẢ CHÂN ADC0804

Chip adc0804 là bộ biến đổi tương tư sang số

thuộc họ

ADC800 của hãng National semiconductor.chip này

Cũng được nhiều hãng khác sản xuất chíp có điện áp

Nuôi +3V và độ phân giải 8 bit Ngoài độ phân giải

Thì thời gian chuyển đổi cũng là thời gian quan trong

của bộ ADC Thời gian chuyển đổi là thời gian mà

Bộ ADC cần để chuyển đổi đầu vào tương tự thành

Trang 17

chuyển đổi phụ thuộc vào tần số đồng hồ được cấp tới chân CLK R(chân 19) và CLR IN (pin 4) không bé hơn 110us,các chân khác có các chức năng:

Khi CS = 0 nếu có một xung cao xuống thấp áp đến chân RD thì dữ liệu ra dang

số nhi phân 8 bit được đưa tới chân dữ liệu (DB0-DB7)

số được xác định bằng biểu thức:

Trang 18

Ở đây R=10K,C=150Pf suy ra tần số f=606Khz và thời gian chuyển đổi là 110us

 Ngắt INTR(Interupt):

 Chân số 5 là chân tích cực mức thấp,bình thường chân này ở trạng thái cao

và khi việc chuyển đổi hoàn tất thì nó xuống thấp để báo cho vi điều khiển biết là dữ liệu đã chuyển đổi xong và sẵn sang để lấy đi Sau khi INTR xuống thấp,cần đặt CS=0 và gửi một xung cao xuống thấp tới chân RD để lấy dữ liệu ra

Trang 19

Chân số 20 là chân cấp nguồn +5V chân này còn được dung làm điện áp tham chiếu khi đầu vàoV ref/2 để hở

 V ref/2:

Chân số 9 là chân điện áp đầu vào được dùng làm điện áp tham chiếu Nếu chân này để hở thì điện áp đầu vào tương tự cho ADC nằm trong dải 0 đến +5V chân

V ref/2 được dùng làm điện áp đầu vào khac 0 đến 5V

Chú ý: do tín hiệu của cảm biến nhiệt Lm35 có độ phân giải là 10mV/10C mà độ phân giải của ADC là 19.5mV,nên trước khi đưa dữ liệu vào bộ biến đổi ta phải cho qua bộ khếch đại với hệ số khếch K = 1.95

 D0 – D7(chân 8 – chân 11): các chân này được đệm 3 trạng thái và dữ liệu được đưa ra các chân này khi CS = 0 và RD được đưa xuống mức thấp

Trang 20

Sơ đồ khối bên trong ADC0804

2.3.2 Quá trình chuyển đổi của ADC0804

Chip ADC0804 bắt đầu quá trinh biến đổi khi có một sự thay đổi mức logic từ cao xuống thấp (cạnh xuống) tai chân WR,trong khi chân CS=0 và chân

RD mức cao Sau khi thực hiện xong quá trình chuyển đồi thì chân INTR được kéo xuống mức thấp toàn bộ quá trinh chuyển đổi được mô tả như sau:

Trang 21

Quá trình chuyển đổi của chip ADC0804 2.3.3 Quá trình đọc dữ liệu từ chip ADC0804

Quá trình đọc dữ liệu được thực hiện khi có một sự thay đổi mức logic từ cao xuống thấp (cạnh xuống) tại chân RD,trong khi CS mức thấp và chân WR mức cao Quá trình này cũng được mô tả bằng sơ đồ:

Trang 22

 OE: ngõ vào cho phép,để IC hoat động thì

phải clear ngõ vào cho phép này (OE=0)

 CP: ngõ vào xung clock tac động ở mức cao

2.4.2.Tổ chức bên trong của IC chốt

74HC

Trang 23

Bảng trang thái của IC chốt:

Ngõ vào cho

phép (OE)

Ngõ vào xung Clock(CP)

Data inputs D0 – D7

Data outputs Q0 – Q7

2 gói SOIC và DIP có 8 chân như sau:

Trang 24

Các chân của DS1307 được mô tả như sau:

- X1 và X2: là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip

- GND: chân mass chung cho cả pin 3V và Vcc

- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì

DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)

- SQW/OUT: một ngõ phụ tạo xung vuông (Square Wave / Output Driver), tần số của xung được tạo có thể được lập trình Như vậy chân này hầu như không liên quan đến chức năng của DS1307 là đồng hồ thời gian thực, chúng ta sẽ bỏ trống chân này khi nối mạch

- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C mà chúng ta đã tìm hiểu trong bài TWI của AVR

Có thể kết nối DS1307 bằng một mạch điện đơn giản như trong hình 2

Mạch ứng dụng đơn giản của DS1307

Trang 25

2.5.2 Cấu trúc bên trong DS 1307

Cấu tạo bên trong DS1307 bao gồm một số thành phần như mạch nguồn, mạch dao động, mạch điều khiển logic, mạch giao điện I2C, con trỏ địa chỉ và các thanh ghi (hay RAM) Do đa số các thành phần bên trong DS1307 là thành phần “cứng” nên chúng ta không có quá nhiều việc khi sử dụng DS1307 Sử dụng DS1307 chủ yếu là ghi và đọc các thanh ghi của chip này Vì thế cần hiểu

rõ 2 vấn đề cơ bản đó là cấu trúc các thanh ghi và cách truy xuất các thanh ghi

Trang 26

thực chất chỉ có 8 thanh ghi đầu là dùng cho chức năng “đồng hồ” (tôi sẽ gọi là RTC) còn lại 56 thanh ghi bỏ trông có thể được dùng chứa biến tạm như RAM nếu muốn Bảy thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE), tháng (MONTH) và năm (YEAR) Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian khởi động cho RTC Việc đọc giá từ 7 thanh ghi là đọc thời gian thực mà chip tạo ra Ví dụ, lúc khởi động chương trình, chúng ta ghi vào thanh ghi “giây” giá trị 42, sau đó 12s chúng ta đọc thanh ghi này, chúng ta thu được giá trị 54 Thanh ghi thứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ ra SQW/OUT (chân 6) Tuy nhiên, do chúng ta không dùng chân SQW/OUT nên có thề bỏ qua thanh ghi thứ 8 Tổ chức bộ nhớ của DS1307 được trình bày trong hình 3

Trang 27

Tổ chức các thanh ghi thời gian

Chú ý:tất cả các giá trị thời gian lưu trong cac thanh ghi dưới dạng BCD

Thanh ghi giây(SECONDS):thanh ghi này là thanh ghi đầu tiên trong bộ nhớ cùa DS1307, địa chỉ của nó là 0x00.Bốn bit thấp của thanh ghi này chứa mã BCD-4bit của chữ số hàng đơn vị của giá tri giây.Do giá trị cao thấp của chữ số hàng chục là 5 nên chỉ cần 3 là đủ Bit cao nhất (bit thứ 7) trong thanh ghi này là một bit điều khiển có tên CH(clock halt-treo đồng hồ),nếu bit này được set bằng

1 bộ dao đông trong chip bị vô hiêu hóa, đồng bộ không hoạt động vì vậy,nhất thiết phải reset bit này bằng 0 ngay từ đầu

Thanh ghi phút(MINUTES):có địa chỉ 0x01h,chứa giá tri phút của đồng

hồ Tương tự thanh ghi Seconds,chỉ có 7 bit của thanh ghi này được dùng lưu mã BCd của phút ,bit thứ 7 luôn luôn bằng 0

Thanh ghi giờ(HOURS): có thể nói đây là thanh ghi phức tạp nhất trong chip DS1307 Thanh ghi này có địa chỉ 0x02h Trước hết 4 bit thấp của thanh ghi

Trang 28

dùng mã hóa chữ số hàng chục của giá tri giờ Do giá tri lớn nhất của chữ số hàng chục trong trường hợp này là 2 nên cần 2 bit để mã hóa Nếu bit thứ 6=1 thì hệ thống 12h được chọn với trường hợp này chỉ có một bit thứ 4 dùng mã hóa chữ

số hàng chục của giờ, bit thứ 5 chỉ buổi trong ngày(AM hoặc PM) Bit thứ 5=0

là AM và bit thứ 5=1 là PM Bit thứ 7 luôn bằng không

Thanh ghi thứ(DAY- ngày trong tuần): nằm ở địa chỉ 0x03h.thanh ghi DAY chỉ mang giá trị từ 1 đến 7 tương ứng từ Chủ Nhật đến thứ 7 trong 1

tuần.Vì thế,chỉ có 3 bit thấp trong thanh ghi này có nghĩa Các bit còn lai luôn bằng 0

Thanh ghi ngày(DATE-ngày trong tháng): nằm ở địa chỉ 0x04h thanh ghi DATE mang giá tri từ 1 đến 31, chỉ có 5 bit đầu tiên là có nghĩa.cac bit còn lại luôn bằng 0

Thanh ghi tháng(MONTH):nằm ở địa chỉ 0x05h thanh ghi MONTH mang giá trị từ 1 đến 12,chỉ có 4 bit đầu tiên là có nghĩa Các bit còn lai bằng 0

Thanh ghi năm(YEAR):nằm ở địa chỉ 0x06h thanh ghi YEAR mang giá trị từ 00h đến 99.chíp ds1307 chỉ dùng cho 100 năm,nên giá tri năm chỉ có 2 chữ số,phần đầu của năm do người dùng tự them vào

Thanh ghi điều khiển(CONTROL RESISTER): có địa chỉ là

0x07h,thanh ghi CONTROL RESISTER được dùng để điều khiển tần số xung vuông ngõ ra SQW/OUT Giá trị các bit trong thanh ghi CONTROL RESISTER được biểu diễn như sau:

BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1 BIT 0

Trang 29

Bit 4_Square-Wave Enable(SQWE):bit này dùng để điều khiển tần số dao động ở ngõ ra

Bit 1 và 0_Rate Selecl(RS[1,0]):2 bit dùng điều khiển tần số dao động ở ngõ ra vớ tần số được chọn như sau:

2.5.3 Khái quát giao diện I2C

I2C là viết tắt của từ Intel-Integrated Circuit là một chuẩn truyền thong nối tiếp đồng bộ do hang điện tử Philips Semiconductor sang lập và xây dựng thành chuẩn năm 1990

Các khái niệm cơ bản trong giao diện I2C

- Master(chip chủ): là chip khởi động quá trình truyền nhận,phát đi địa chi của thiết bi cần giao tiếp và tạo xung dữ nhịp trên đường SCL

- Slave(chip tớ): là chip có một địa chỉ cố định , được gọi bởi Master và phục yêu cầu từ Master

- SDA(Serial Data): là đường dữ liệu nối tiếp,tất cả các thông tin về địa chỉ hay

dữ liệu đều được truyền trên đường này theo thứ tự từng bit một chú ý là trong chuẩn I2C,bit có trọng số lớn nhất (MSB) được truyền đi trước nhất

- SCL(Serial Clock): là đường xung giữ nhịp nối tiếp I2C là chuẩn truyền thông

Trang 30

ở mức cao(trừ điều kiện START và STOP) Chân SDA có thể được đổi trạng thái khi SCL ở mức thấp

- Một giao diện I2C gồm có 2 dây:Serial data(SDA) và Serial Clock(SCL) SDA

là đường truyền dữ liệu theo 2 hướng (từ master đến slave và ngược lại), còn SCL là đường truyền xung đồng hồ chỉ theo một hướng (tư master đến slave)

Master SDA Slave Master SDA Slave

SCL SCL

- Trong giao diện I2C thì có một thiết bị là chủ(master) và một thiết bị là tớ (slave) và một thiết bị là tớ(slave) Tại sao lại có sự phân biệt này? đó là vì trên giao diện I2C thì quyền điều khiển thuộc về thiết bi chủ Thiết bi chủ nắm vai trò tạo xung đồng bộ cho toàn hệ thống ,khi giữa 2 thiết bị chủ/tớ giao tiếp thì thiết

bị chủ có nhiệm vụ tạo ra xung đồng hồ và quản lý đến thiết bị tớ trong suốt quá trình giao tiếp

- Một giao diện I2C có thể hoạt động ở nhiều chế độ khác nhau:

 Một chủ một tớ (one master-one slave)

 Một chủ nhiều tớ (one master- multi slave)

 Nhiều chủ nhiều tớ(multi master-multi slave)

-Vài điều kiên cần biết khi thiết lập một giao tiếp I2C:

 Điền kiện START :được thiết lập khi có một sự chuyển đổi trạng thái từ cao xuống thấp tại SDA,khi SCL dang ở mức cao

 Điều kiện STOP:được thiết lập khi có một sự chuyển đổi trạng thái từ thấp lên cao tai SDA,khi SCL đang ở mức cao

Trang 31

 Điều kiện REPEAT START(bắt đầu lập lại): khoảng giữa điều kiện

START và STOP là khoảng bận của đường truyền ,các master khác không tác động vào đường truyền trong khoảng này.trường hợp sau khi kết thúc quá trình truyền/ nhận mà master không gửi điều kiện STOP lại gửi thêm điều kiện START gọi là REPEAT START.khả năng này thường được

dùng khi master muốn lấy dữ liệu liên tiếp từ các slave

Mô tả điền kiện START,STOP vàREPEAT START -Định dạng dữ liệu truyền:

Dữ liệu truyền trên bus I2C theo từng bit,bit dữ liệu được truyền đi tại mỗi sườn lên của xung đồng hồ trên đường dây SCL, quá trình thay đổi dữ liệu xảy ra khi SCL ở mức thấp

Trang 32

số lớn nhất MSB sẽ được truyền đi đầu tiên,các bit kế tiếp sẽ được truyền đi lần lượ sau 8 xung clock dữ liệu đã được truyền đi, ở xung clock thứ 9 thì bit ACK được truyền đi báo hiệu đã nhận đủ 8 bits.thiết bị truyền sau khi nhận được bit ACK sẽ tiếp tục thực hiện quá trình truyền hoặc kết thúc

Một byte truyền đi có kèm theo bit ACK là điều kiện bắt buộc,nằm đảm bảo quá trinh truyền nhận được chính xác khi không nhận được đúng địa chỉ hay muốn kết thúc quá thình giao tiếp, thiết bị nhận sẽ gửi một xung

Not_ACK(NACK) để báo cho thiết bị chủ biết thiết bi chủ sẽ tạo ra bit STOP để kết thúc hay lặp lại một xung START để bắt đầu quá trình mới

3.5.4 Mode(chế độ) truyền dữ liệu giữa DS1307 và 89C52

Trong giao tiếp I2C giữa DS1307 và 89C52 thì chip 89C52 đóng vai trò là một master và DS1307 đóng vai trò là slave Do chỉ có một slave và một master giao tiếp với nhau nên chỉ có 2 mode(chế độ) hoạt động giao tiếp giữa 2 chip này: Data Write(từ AT89C52 đến DS1307) và Data Read(từ DS1307 vào

AT89C52)

Trang 33

3.5.4.1 Mode Data Write(chế độ ghi dữ liệu)

Mode Data Write (chế độ truyền dữ liệu từ master đến slave) được dùng khi xác lập giá trị ban đầu cho các thanh ghi thời gian hoặc dùng để canh chỉnh thời gian cho chip DS1307.Cấu trúc truyền dữ liệu trong Mode Data Write được

mô tả như sau:

Trước hết hãy nói về địa chỉ SLA(Slave Address)của chip DS1307 trong mạng I2C,trên mạng I2C mỗi thiết bị sẽ có một địa chỉ riêng gọi là SLA.SLA được tính theo lý thuyết chuẩn I2C sẽ có giá trị tối đa là 128(do có128 thiết bị trong mạng I2C) Chip DS1307 là một slave nên cũng có một địa chỉ SLA,giá trị này được set cố định là 1101000b(68h).Do SLA của DS1307 cố định nên trong mạng I2C sẽ không thể tồn tai cùng lúc 2 chip này

Quan sát hình trên ta thấy,đầu tiên master (AT89c52) sẽ gửi điều kiên Start đến Slave(DS1307),tiếp theo sau master là 7 bit địa chỉ SLA của Slave(cố định là 1101000b).do chế độ này là Data Write nên bit W=0 và sẽ gửi kèm theo SLA.Bit ACK (A) được Slave trả về cho master sau mỗi quá trình giao tiế

Trang 34

ghi địa chỉ(hay con trỏ địa chỉ) Vì vậy byte dữ liệu đầu tiên sẽ được chứa tronh thanh ghi địa chỉ của DS1307

sau byte địa chỉ thanh ghi là một dãy các byte dữ liệu được ghi vào bộ nhớ của DS1307 Byte dữ liệu đầu tiên sẽ được ghi vào thanh ghi có dịa chỉ được chỉ định bởi Word Address, sau khi ghi xong 1 byte thì Word Address tự động tăng nên các byte tiếp theo sẽ được ghi liên tiếp vào DS1307 ở các thanh ghi kế sau.số lượng byte dữ liệu cần ghi do master quyết định và không được vượt quá dung lượng bộ nhớ của DS1307 Quá trình ghi kết thúc khi master phát ra điều kiện STOP

Chú ý:sau khi ghi thành công 1 byte trhi2 DS1307 sẽ trả lời bằng một bit ACK Nếu như byte được ghi vào là byte cuối cùng thì DS1307 sẽ trả lời lại bằng

Trang 35

Nguyên tắc truyền trong chế độ Data Read cơ bản cũng giống như trong chế độ truyền Data Write Trong chế độ Data Read bit R=1 sẽ được gửi kèm sau

7 bit SLA Sau đó liên tiếpcác byte dữ liệu được truyền từ DS1307 đến

AT89C52 Điểm khác biệt trong cách bố trí dữ liệu chế độ này so với chế độ Data Write là không có byte địa chỉ thanh ghi dữ liệu nào được gửi đến Tất cả các byte theo sau SLA+R đều là dữ liệu đọc từ bộ nhớ của DS1307

Lưu ý: dữ liệu được đọc tại thanh ghi được chỉ định bởi con trỏ địa chỉ ,vì vậy muốn đọc chính xác dữ liệu từ một địa chỉ nào đó, chúng ta cần thực hiện quá trình ghi giá tri cho con trỏ định địa chỉ trước khi thực hiện quá trình đọc Để ghi giá trị vào con trỏ định địa chỉ chúng ta sẽ gọi chương trinh Data Write với chỉ 1byte được ghi sau SLA+W như phần chú ý ở trên

Trang 36

CHƯƠNG III: THIẾT KẾ PHẦN CỨNG 2.1 ĐO NHIỆT ĐỘ

2.1.1 Sơ đồ và chức năng từng khối

2.1.1.1 Sơ đồ khối

2.1.1.2 Chức năng của từng khối

2.1.1.2.1 Cảm biến nhiệt và khếch đại

Trong phần đo nhiệt độ thì đây là khối tạo ra sự thay đổi từ 0V đến 1.97V tương ứng với sự thay đổi nhiệt độ bên ngoài 00C đến 1000C

2.1.1.2.2 Biến đổi ADC và khối vi xử lý

Đây là khối quan trọng dùng để điều khiển mội hoạt đông của mạch Khối này thực hiện quá trình biến đổi tín hiệu tương tự thành tín hiệu số thông qua bộ biến đổi ADC, sau đó xuất dữ liệu này ra khối hiển thị Các quá trình này được điều khiển bởi vi xử lý AT89C52

2.1.1.2.3 Khối hiển thị sử dụng led 7 đoạn

Dùng để chốt dữ liệu và hiển thị giá trị nhiệt độ

2.1.2 SƠ ĐỒ CHI TIẾT VÀ NGUYÊN TẮC HOẠT ĐỘNG

2.1.2.1 Cảm biến nhiệt và khếch đại

KHỐI HIỂN THỊ TRÊN LED 7 ĐOẠN

CẢM BIẾN

NHIỆT VÀ

KHẾCH ĐẠI

BỘ BIẾN ĐỔI ADC VÀ KHỐI

VI XỬ LÝ

Trang 37

+ Quan sát sơ đồ mach ta thấy:

Dòng điện đi vào từ Vout1 qua RI1 sẽ đi qua RF1,RF2 nên:

RF1 470

+

-U2B

LM358

5 6

7

A -

+

U2A

LM358

3 2

Ngày đăng: 07/09/2017, 15:23

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w