1. Trang chủ
  2. » Giáo Dục - Đào Tạo

đồng hồ thời gian thực 89c51+ds12887

47 671 7

Đ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 47
Dung lượng 1,73 MB

Nội dung

đồng hồ thời gian thực 89c51+ds12887 tài liệu, giáo án, bài giảng , luận văn, luận án, đồ án, bài tập lớn về tất cả các...

Trang 1

Trờng đại học s phạm kỹ thuật nam định

Khoa điện - điện tử

Trang 2

LờI Mở ĐầU

Ngày nay, cựng với sự tiến bộ của khoa học kỹ thuật cụng nghệ điện tử

đó, đang và sẽ phỏt triển ngày càng rộng rói, đặc biệt là trong kỹ thuật số Mạch số ứng dụng rất nhiều trong kỹ thuật cũng như đời sống xó hội Cỏc ứng dụng của mạch số như đồng hồ số, mạch đếm sản phẩm, mạch đo nhiệt độ Trong cỏc trường học, cụng sở, cơ quan xớ nghiệp đồng hồ số được dựng để xem giờ và bỏo giờ Mục đớch chớnh của đồ ỏn này là thiết

kế một đồng hồ số cú chức năng xem ngày, giờ

Vỡ kiến thức, sự hiểu biết cũn ớt ỏi và trỡnh độ chuyờn mụn cũn hạn chế nờn khụng trỏnh khỏi sự thiếu sút Vỡ vậy chỳng em rất mong nhận được

sự đúng gúp ý kiến của thầy cụ và cỏc bạn để đề tài này hoàn chỉnh hơn

Đồ ỏn được hoàn tất là nhờ sự giỳp đỡ của nhiều thầy cụ, sự ủng hộ của cỏc bạn học xung quanh, và nỗ lực tỡm hiểu và học tập của cỏc thành viờn trong nhúm Trước hết, xin cảm ơn nhà trường đó tạo điều kiện cho chỳng

em học tập, xin cảm ơn khoa điện tử đó cung cấp cho chỳng em những tài liệu quý giỏ để tham khảo Trong quỏ trỡnh thực hiện, nhúm chỳng em đó nhận được rất nhiều ý kiến đúng gúp của một số thầy cụ và cỏc bạn học trong lớp Xin cảm ơn cỏc thầy, cỏc cụ và cỏc bạn đó giỳp đỡ Và quan

trọng hơn cả là cụng ơn của thầy Trần Văn Hạnh là người trực tiếp hướng

dẫn chỳng em xõy dựng đồ ỏn này Chỳng em xin cảm ơn thầy Cuối cựng

là xin cảm ơn cỏc bạn đọc - những người đó dành thời gian để tham khảo đồ

ỏn này

Tuy đó nỗ lực và cố gắng nhưng do sự hạn chế về mặt kiến thức nờn vẫn khụng thể trỏnh khỏi những thiếu sút cần bổ sung và sửa chữa để đồ ỏn được hoàn chỉnh hơn Vỡ vậy rất mong nhận được cỏc kiến đúng gúp từ cỏc bạn đọc mọi ý kiến đúng gúp xin được liờn hệ trực tiếp với cỏc thành viờn trong nhúm

Xin chõn thành cảm ơn!

Yêu cầu của đề tài

Trang 3

- Thiết kế đồng hồ số hiển thị trên led 7 đoạn : thứ , ngày, tháng, năm, giờ, phút, giây sử dụng vi điều khiển 8051.

- Có các phím điều chỉnh thông số đồng hồ: Up/ Down, Mode

- Không bị mất dữ liệu khi mất điện

- Tiêu thụ năng lợng thấp do dùng phơng pháp quét

- Chơng trình thời gian và lịch đã có sẵn trong Real time DS12887

Trang 4

1 1 TìM HIỂU VỀ VI ĐIỀU KHIỂN HỌ 8051

1.1.1 Sơ đồ khối của bộ VĐK 8051

Hình 1.1: Sơ đồ khối tổng quát của 8051/8052

Vi điều khiển (VĐK) 8051/52 đợc chế tạo theo cấu trúc của một hệ vi tính gồm các khối sau:

- Bộ xử lý trung tâm CPU(central Processorr Unit): Dùng để điều khiển toàn vi mạch trong việc thực hiện lệnh và xử lý số học và logic

- Bộ nhớ dữ liệu (RAM) bên trong :(128 byte cho 8051 va 256 byte cho 8052) dùng làm các thanh ghi thông dụng, thanh ghi đặc biệt SFR và xử lý bit

để ghi nhớ dữ liệu cho chơng trình

- Bộ nhớ chơng trình(ROM) bên trong: (4Kbyte cho 8051 va 8Kbyte cho 8052) dùng để ghi nhớ chơng trình

- Cổng trao đổi tin vào ra dữ liệu và địa chỉ (P0-P3): Dùng để trao đổi tin song song về dữ liệu và địa chỉ

- Cổng trao đổi tin nối tiếp: Dùng trao đổi tin nối tiếp nhận vào từ chân RXD và đa ra từ chân TXD

- Khối định thời gian bộ đếmTimer/Counter 0 ,1 và 2: Dùng để định thời gian đếm xung ngoài vào các chân T0, T1 và T2

Bus điều khiển 4 Cổng vào / ra Cổng nối tiếp

Địa chỉ / Dữ liệu

TXD RXD P0 P1 P2 P3

ROM ON- CHIP CHƯƠNG TRèNH

Trang 5

- Khối điều khiển ngắt: Dùng để ngắt chơng trình khi có xung ngoài hay khi có đếm tràn.

- Khối điều khiển BUS và mạch tạo xung nhịp Giao tiếp giữa CPU với các khối bên trong của 8051 đợc thực hiện qua các BUS nội bộ gồm BUS dữ liệu 8 bít, BUS địa chỉ và các tín hiệu điều khiển khác

Các thành viên của họ MCS-51(Atmel) có đặc điểm chung:

Có 4/ 8/ 12/ 20 Kbyte bộ nhớ flash ROM bên trong để lu chơng trình Nhờ vậy vi điều khiển có thể nạp xoá bằng điện đến 10000 lần

128 byte RAM nội

4 Port xuất/ nhập 8 bit

Từ 2 đến 3 bộ định thời 16 bit

Có khả năng giao tiếp truyền dữ liệu nối tiếp

Dung lợng bộ nhớ ROM ngoại lớn nhất mà vi điều khiển có thể kết nối là 64 Kbyte

Có thể mở rộng không gian nhớ dữ liệu ngoài 64 Kbyte (bộ nhớ RAM ngoại)

Bộ xử lý bit (thao tác trên các bit riêng rẽ)

210 bit có thể truy xuất tới từng bit

1.1 2 Khảo sát sơ đồ chân.

Các thành viên của họ 8051 ví dụ nh 8751, 89C51, DS500 đều có kiểu

đóng vỏ khác nhau, chẳng hạn dạng hai hàng chân DIP, dạng vỏ dẹt vuông QFP và dạng không có chân đỡ LLC , song chúng đều có 40 chân với các chức năng nh vào ra I/O, đọc RD\ , ghi WR\ , địa chỉ, dữ liệu và ngắt Tuy nhiên , vì hầu hết các nhà phát triển chính đều sử dụng chíp đóng vỏ 40 chân kiểu hai hàng chân DIP nên chúng ta chỉ tập trung mô tả phiên bản này Mô tả chân của 8051 đợc trình bày nh hình sau:

SVTH: NGUYỄN VĂN HIỂN 5 Lớp: ĐS-ĐĐT3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 415 16 17 18

40 39 38 37 36 35 34 33 32 31 230 29 28 27 26 25 24 23

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 XTAL2

ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2

8051

Trang 6

Hình 1.2.Sơ đồ chân của 8051/8052

Trong số 40 chân của 8051 có 32 chân dành cho 4 cổng P0, P1, P2, P3 mỗi cổng có 8 chân Các chân còn lại dành cho nguồn VCC, đất GND, các chân dao động XTAL1 và XTAL2 , khởi động lại RS, cho phép chốt địa chỉ ALE , truy cập đợc địa chỉ ngoài EA , cho phép cất chơng trình PSEN

1 Nhóm chân nguồn, dao động và điều khiển

- VCC : Chân số 40 cung cấp điện áp nguồn nguồn +5V

- GND : Chân số 20 là chân đất (hay chân nối mass)

- XTAL1 và XTAL2 : 8051 có một bộ dao động trên chíp nhng vẫn cần có một bộ dao động đồng hồ bên ngoài để kích hoạt Bộ dao động thạch anh ngoài thờng đợc nối tới các chân vào XTAL1 (19 ) và XTAL2 (18)

- RST : Khởi động lại ( RESET ) đó là chân vào số 9, mức tích

cực cao, bình thờng ở mức thấp Khi có xung cao đặt tới chân này thì bộ VĐK

sẽ kết thúc mọi hoạt động hiện tại và tiến hành khởi động lại Quá trình xảy

ra hoàn toàn tơng tự nh khi bật nguồn Khi RESET, mọi giá trị trên các thanh ghi sẽ bị xóa

- EA\: Truy cập bộ nhớ ngoài là chân vào số 31 trên vỏ kiểu DIP Đối với các thành viên họ 8051 có ROM chơng trình trên chíp thì chân EA đợc nối tới nguồn VCC

- PSEN\ : Là chân ra có chức năng cho phép cất chơng trình

Trang 7

- ALE : Cho phép chốt địa chỉ , là chân ra cú mức tích cực cao.

2 Nhóm chân cổng vào ra

Bốn cổng P0 , P1 , P2 và P3 đều có 8 chân và tạo thành cổng 8 bít Tất cả các cổng khi RESET đều đợc cấu hình làm cổng ra

- Cổng P0 có 8 chân ( từ chân 32 đến chân 39 ) Bình thờng đây là cổng ra

Để có thể vừa làm đầu ra vừa làm đầu vào thì mỗi chân phải đợc nối tới một

điện trở kéo 10K bên ngoài

- Cổng P1 cũng có 8 chân từ chân 1 đến chân 8 và có thể sử dụng làm đầu vào hoặc ra

- Cổng P2 cũng có 8 chân từ chân 21 đến chân 28 và có thể sử dụng làm đầu vào hoặc ra

- Cổng P3 chiếm 8 chân từ chân 10 đến chân 17 và có thể sử dụng làm đầu vào hoặc ra Cổng P3 có thêm 1 chức năng quan trọng khác là cung cấp 1 số tín hiệu đặc biệt, chẳng hạn nh ngắt

Bit Tên Số chân Chức năng

P3.0 RXD 10 Chân nhận dữ liệu truyền thông nối tiếp

P3.1 TXD 11 Chân truyền dữ liệu truyền thông nối tiếp

P3.2 INT0 12 Ngõ vào ngắt ngoài 0

P3.3 INT1 13 Ngõ vào ngắt ngoài 1

P3.4 T0 14 Ngõ vào của bộ counter 0(đếm sự kiện ngoài 0)P3.5 T1 15 Ngõ vào của bộ counter 1(đếm sự kiện ngoài 1)P3.6 WR\ 16 Điều khiển ghi bộ nhớ dữ liệu ngoài

P3.7 RD\ 17 Điều khiển đọc bộ nhớ dữ liệu ngoài

Bảng1.1: Các chức năng khác của cổng P3

1.1.3 Tổ chức bộ nhớ.

Hầu hết cỏc bộ vi xử lý (CPU) đều cú khụng gian nhớ chung cho dữ liệu và chương trỡnh Điều này cũng hợp lý vỡ cỏc chương trỡnh thường được lưu trờn đĩa và được nạp vào RAM để thực thi; vậy thỡ cả hai, dữ liệu và chương trỡnh, đều lưu trữ trong RAM

Cỏc chip vi điều khiển hiếm khi được sử dụng giống như cỏc CPU trong cỏc hệ mỏy tớnh, thay vào đú chỳng được dựng làm thành phần trung

Trang 8

tâm trong các thiết kế hướng điều khiển, trong đó bộ nhớ có dung lượng giới hạn, không có ổ đĩa và hệ điều hành Chương trình điều khiển thường trú trong ROM

Do lý do trên, 8051 có không gian nhớ riêng cho chương trình và dữ liệu

a Bộ nhớ cho chương trình (Program Memory)

Các model cũ của họ vi điều khiển 8051 không có bộ nhớ nội dành cho chương trình Nó được nạp vào từ bên ngoài giống như một chip riêng biệt Các model này được đánh dấu bởi nh·n bắt đầu với 803 (ví dụ như 8031 hoặc 8032) Tất cả các model sau này đều có vài Kbyte ROM được nhúng vào, và mặc dù các bộ nhớ này thậm chí nó đủ để viết hầu hết các chương trình, nhưng trong một vài trường hợp nào đó thì việc sử dụng bộ nhớ ngoài cũng cần thiết Một ví dụ điển hình là việc sử dụng cái gọi là: “lookup tables” Chúng được sử dụng trong trường hợp một vài thứ quá phức tạp hoặc khi không có thời gian cho việc giải quyết các phương trình miêu tả các tiến trình

Cách vi điều khiển sử dụng bộ nhớ ngoại dựa vào trạng thái cổng EA

Trang 9

H×nh 1.3: Vi ®iÒu khiÓn sö dông bé nhí ngo¹i dùa vµo tr¹ng th¸i cña EA

EA =0 trong trường hợp này, bộ nhớ nội của chương trình đã hoàn toàn

mất tác dụng, chỉ có chương trình được lưu ở ở bộ nhớ ngoại mới được thực thi

EA=1 trong trường hợp này, chương trình được xây dựng trong ROM

sẽ được thực thi đầu tiên, sau đó, thì chương trình ở bộ nhớ ngoài (Additional ROM Memory) sẽ được thực thi tiếp theo

b Bộ nhớ cho dữ liệu (Data Memory)

Data Memory được sử dụng để lưu trữ tạm thời, giữ giá trị dữ liệu cũng như các kết quả trung gian được tạo ra trong suốt quá trình hoạt động của vi điều khiển Bên cạnh đó, các họ vi điều khiển này cũng bao gồm nhiều thanh ghi khác như: bộ đếm và bộ định thời, các port vào ra, truyền nối tiếp… Các phiên bản trước đó có dung lượng bộ nhớ là 256 đường địa chỉ, trong khi các model sau này con số đó đã được tăng lên bởi 128 thanh ghi được thêm vào Trong cả hai phiên bản trên, 256 đường địa chỉ (có địa chỉ từ 0-FFh) đều

Trang 10

thuộc bộ nhớ Một điều rất thông dụng cho tất cả họ vi điều khiển 8051 Các đường địa chỉ luôn có sẵn cho người sử dụng với không gian bộ nhớ từ 0 tới 7Fh, 128 thanh ghi đầu và phần này của RAM được chia ra thành nhiều block.Block đầu tiên bao gồm 4 bank, mỗi bank bao gồm 8 thanh ghi từ R0 tới R7 Trước khi truy cập chúng, một bank bao gồm thanh ghi đó sẽ phải được chọn Đến block tiếp theo (ở địa chỉ từ 20h tới 2Fh) là bit-addressable, có nghĩa là mỗi bit sẽ được đánh địa chỉ ở đó từ 0 đến 7Fh

Trang 11

1.1.4 Các thanh ghi chức năng (special function register – SFR)

SFR là một loại của bảng điều khiển được sử dụng để thực thi và theo dõi quá trình hoạt động của một chương trình vi điều khiển Mỗi một thanh ghi, thậm chí là mỗi bit của mỗi thanh ghi, đều được đặt tên, được định địa

Trang 12

chỉ trong vùng của RAM và được xác định mục đích một cách rõ ràng (ví dụ: điều khiển định thời, ngắt, truyền thông nối tiếp…).

1 A Register (Accumulator)

H×nh 1.4: Thanh ghi A

Đây là thanh ghi đa chức năng được sử dụng cho việc lưu trữ các kết quả trung gian trong quá trình thực thi Một số nên được lưu vào trong A trước khi thực thi lệnh kế tiếp Một khi một phép toán nào đó được thực hiện bởi ALU, kết quả được gắn vào trong thanh ghi A Nếu dữ liệu được truyền đến một thanh ghi khác thì nó cũng phải được truyền thông qua thanh ghi này

Vì có nhiều mục đích thông dụng như vậy, nên đây là thanh ghi được sử dụng phổ biến mà vi điều khiển không thể không có nó

Trang 13

2 B Register

Thanh ghi B được sử dụng trong việc nhân, chia các toán hạng Các toán hạng có thể được lưu trữ ở thanh ghi A hoặc B Tất cả các lệnh khác của chương trình đều có thể sử dụng thanh ghi này giống như thanh ghi A

H×nh 1.5: Thanh ghi B

Trong suốt chương trình, mỗi thanh ghi được gọi thông qua tên của nó, chính vì vậy địa chỉ chính xác của các thanh ghi không quan trọng đối với người sử dụng

3 R Registers (R0-R7)

H×nh 1.6: Thanh ghi R

Đây là một tên thông dụng cho tổng cộng 8 thanh ghi đa chức năng (R0, R1, R2…R7) Tương tự như accumulator, chúng được sử dụng cho việc lưu trữ dữ liệu tạm thời cho các biến hoặc các kết quả trung gian

Trang 14

1.2 Giới thiệu về IC thời gian thực DS12C887

DS12C887 thuộc họ Real-Time Clock là sản phẩm của hãng MAXXIM với những tính năng sau:

• Được sử dụng chạy đồng hồ, lịch trong các dòng máy tính

• Sơ đồ chân tương thích với các loại IC MC146818 và DS1287

• Tự vận hành với pin nội có tuổi thọ lên đến 10 năm

• Đếm giờ, phút, giây, ngày, tháng, năm, thứ với thời gian đến năm 2100

• Dữ liệu ngày giờ được truy xuất dưới dạng binary hoặc BCD

• Có thể lựa chọn hiển thị giờ Mode 24 hoặc Mode 12 với AM và PM

•Tương thích Bus giao tiếp với họ Motorola và họ Intel

•Cung cấp 128 Byte RAM được định địa chỉ, trong đó có 14 Byte sử dụng cho việc lưu trữ giờ và các thanh ghi điều khiển, 114 Byte RAM đa mục đích dành cho các ứng dụng của người sử dụng

•Xuất tín hiệu lập trình xung vuông

•Tín hiệu điều khiển ngắt IRQ

•Thời gian có thể bị sai số ± 1phút /1 tháng trong điều kiện nhiệt độ 25oC

•Có mạch dao động nội và có thanh ghi thế kỷ

o RESET: Ngõ vào reset

o IRQ: Ngõ ra yêu cầu ngắt

Hình 1.7 Sơ đồ chân IC DS12C887

Trang 15

o SQW: Ngõ ra sóng vuông.

o VCC: Nguồn cung cấp +5V

o GND: Mass

1.2.2 Chức năng các chân

- GND, VCC: nguồn cung cấp cho thiết bị ở những chân trên Vcc là

điện áp ngõ vào +5V Khi điện áp 5V được cung cấp đúng chuẩn, thiết bị được truy cập đầy đủ và dữ liệu có thể đọc và ghi Khi Vcc thấp hơn 4.25V, quá trình đọc và ghi bị cấm tuy nhiên chức năng giữ thời gian vẫn được tiếp tục không bị ảnh hưởng bởi điện áp bị sụt giảm bên ngoài Khi Vcc rớt xuống thấp hơn 3V, Ram và bộ nhớ giờ được chuyển sang nguồn năng lượng bên trong

- MOT: là chân có tính linh hoạt để lựa chọn giữa hai loại Bus Khi được

nối lên Vcc, Bus định thời Motorola được lựa chọn Khi được nối xuống GND hoặc không nối, Bus định thời Intel được lựa chọn Chân có điện trở kéo xuống bên trong có giá trị khoảng 20K

- SQW: có thể xuất tín hiệu ra từ 1 trong 13 loại được cung cấp từ 15

trạng thái được chia bên trong của RTC Tần số của chân SQW có thể thay đổi bằng cách lập trình thanh ghi A Tín hiệu SQW có thể mở hoặc tắt khi ta

sử dụng bit SQWE trong thanh ghi B Tín hiệu SQW không xuất hiện khi Vcc thấp hơn 4.25V

- AD0-AD7: Bus đa hợp tiết kiệm chân bëi vì thông tin địa chỉ và thông

tin dữ liệu được dùng chung đường tín hiệu Cùng tại nh÷ng chân, địa chỉ được suất trong suốt phần thứ 1 của chu kỳ Bus và được dùng cho dữ liệu trong phần thứ 2 của chu kỳ Đa hợp địa chỉ/ dữ liệu không làm chậm thời gian truy cập của DS12C887 khi bus chuyển từ địa chỉ sang dữ liệu x¾p ra trong suốt thời gian truy cập Ram nội Địa chỉ phải có giá trị trước khi xuất hiện sườn xuống của AS/ALE tại thời điểm mà DS12C887 chốt địa chỉ từ AD0 tới AD7

Dữ liệu phải được hiển thị và giữ ổn định trong suốt phần sau của DS hoặc xung WR Trong chu kỳ đọc của DS12C887 ngõ ra 8 bit của dữ liệu trong

Trang 16

suốt phần sau của DS hoặc xung RD Chu kỳ đọc được thục hiện xong và Bus trở về trạng thái tổng trở cao cũng như khi DS bắt đầu xuống thấp trong trường hợp định thời Motorola hoặc khi RD lên cao trong trường hợp định thời Intel.

- AS: xung dương cung cấp xung chốt địa chỉ trong việc phức hợp Bus

Sườn xuống của AS/ ALE làm cho địa chỉ bị chốt lại bên trong của DS12C887 Sườn lên tiếp theo khi xuất hiện trên Bus AS sẽ bị xoá địa chỉ bất chấp chân CS có được chọn hay không Lệnh truy cập có thể gửi tới bằng cả hai cách

- DS: chân DS/ RD có hai kiểu sử dụng tuỳ thuộc vào mức của chân

MOT Khi chân MOT được nối lên Vcc, Bus định thời Motorola được lựa chọn Trong kiểu này DS là xung dương trong suốt phần sau của chu kỳ Bus

và được gọi là Data Strobe Trong suốt chu kỳ đọc, DS báo hiệu thời gian mà DS12C887 được điều khiển bus đôi Trong chu kỳ đọc, xung quét của DS là nguyên nhân làm DS12C87 chốt dữ liệu được ghi Khi chân MOT được nối xuống GND, Bus định thời Intel được lựa chọn Trong kiểu này, chân DS được gọi là Read(RD) xác định chu kỳ thời gian khi DS12C887 điều khiển bus đọc dữ liệu Tín hiệu RD có cùng định nghĩa với tín hiệu OE trong bộ nhớ riêng

- R/ W: có hai cách hoạt động Khi chân MOT được kết nối lên Vcc cho

chế độ định thời Motorola, R/ W đang ở chế độ chỉ ra hoặc là chu kỳ hiện tại

là chu kỳ đọc hoặc ghi Chu kỳ đòi hỏi chân R/ W phải ở mức cao khi chân

DS ở mức cao Chu kỳ đòi hỏi chân R/W ở mức thấp trong suốt quá trình chốt tín hiệu của DS Khi chân MOT được nối GND cho chế độ định thời Intel, tín hiệu R/ W là tín hiệu hoạt động mức thấp được gọi là WR Trong chế độ này chân R /W được định nghĩa như tín hiệu Write Enable trong Ram chung

- CS: tín hiệu lựa chọn phải được xác định ở mức thấp ở chu kỳ bus để

DS12C887 được sử dụng CS phải được giữ trong trạng thái hoạt động trong suốt DS và AS của chế độ định thời Motorola và trong suốt RD và WR của chế độ định thời Intel Chu kỳ bus khi chọn vị trí mà không chọn CS sẽ chốt

Trang 17

địa chỉ nhưng sẽ không có bất kỳ sự truy cập nào Khi Vcc thấp hơn 4.25V, chức năng bên trong của DS12C887 ngăn chặn sự truy cập bằng cách không cho phép lựa chọn ngõ vào CS Hành động này nhằm bảo vệ cả dữ liệu của đồng hồ thời gian thực bên trong cũng như dữ liệu Ram trong suốt quá trình mất nguồn.

- IRQ: là ngõ ra hoạt động mức thấp, có thể sử dụng ngõ vào ngắt tới bộ

vi xử lý Ngõ ra IRQ\ ở mức thấp khi bit là nguyên nhân làm ngắt và phù hợp với bit cho phép ngắt được đặt(set) Để xoá chân IRQ\ chương trình của bộ vi

xử lý thông thường được đặt ở thanh ghi C Chân Reset cũng bị xoá trong lúc ngắt Khi không có trạng thái ngắt nào được sử dụng, trạng thái IRQ\ ở mức tổng trở cao Nhiều thiết bị ngắt có thể nối tới IRQ\ Bus là một ngõ ra mở và yêu cầu một điện trở kéo lên bên ngoài

- RESET: không hiệu lực đối với lịch, đồng hồ hoặc Ram Ở chế độ cấp

nguồn, chân reset có thể bị kéo xuống trong thời gian cho phép để ổn định nguồn cung cấp

1.2.3 Cấu trúc bên trong Dallas DS12C887

Chức năng các khối

Khối nguồn(Power): Gồm có nguồn cung cấp chính và nguồn pin dự phòng được cung cấp bởi pin Lithium có tuổi thọ rất lâu (Khi nguồn Vcc < 3V thì nguồn được chuyển qua nguồn pin đặt bên trong IC )Hình 1.8 Sơ đồ khối IC DS12C887

Trang 18

Khối dao động (OSC): Mạch dao động sử dụng thạch anh 32.768 KHz

có độ chính xác cao, sau đó được đưa đến các bộ chia để có được tần số cần dùng

Các bộ chia tần số (Divide by 8, Divide by 64): Tần số 32.768 KHz qua bộ chia 8, sau đó chia 2 lần 64 để có được tần số 1 Hz cung cấp cho đồng hồ

Khối phát xung vuông (Square wave out): Chân SQW xuất các xung vuông có tần số điều khiển bởi chương trình ở thanh ghi A Tín hiệu xung vuông có thể tắt mở bởi bit SQWE ở thanh ghi B Tín hiệu xung vuông sẽ không hoạt động khi nguồn cung cấp < 4.25V

Các thanh ghi (Registers A, B, C, D): Các chế độ hoạt động có thể thay đổi bởi chương trình ở các thanh ghi

Khối lịch giờ: Các thông tin về giờ, lịch được đọc từ bộ nhớ và ghi vào RAM dưới dạng mã Binary hoặc BCD (Binary coded decimal)

Khối giao tiếp (Bus Interface): Gồm các chân AD0 – AD7, DS, R/W,

AS, MOT để đặt chế độ thích hợp cho IC có thể giao tiếp vi xử lý của họ Motorola và họ Intel

1.2.4 Sơ đồ địa chỉ của DS12C887

Sơ đồ địa chỉ của DS12C887 được trình bày ở hình 1.9 Sơ đồ địa chỉ bao gồm 113 bytes RAM thông dụng, 11 bytes RAM mà thành phần bao gồm đồng hồ thời gian thực, lịch, dữ liệu báo giờ và 4 bytes được sử dụng cho việc điều khiển và thông báo tình trạng Tất cả 128 bytes có thể được ghi hoặc đọc trực tiếp trừ những trường hợp sau :

- Thanh ghi C and D là hai thanh ghi chỉ đọc

- Bit thứ 7 của thanh ghi A là bit chỉ đọc

- Bit cao của byte thứ 2 là bit chỉ đọc

SVTH: NGUYỄN VĂN HIỂN 18 Lớp: ĐS-ĐĐT3

Hình 1.9 Sơ đồ địa chỉ

Trang 19

ĐỒ ÁN HỌC PHẦN 2 GVHD: TRẦN VĂN HẠNH

Thời gian và lịch đã có bằng cách đọc các bytes bộ nhớ hiện có Thời gian, lịch và báo giờ được đặt hoặc gán giá trị bằng cách ghi giá trị bytes RAM thích hợp Nội dung của 10 bytes chứa thời gian, lịch và báo giờ đều có thể hiển thị ở cả 2 dạng nhị phân (Binary) hoặc BCD (Binary-Coded Decimal) Trước khi ghi lên các thanh ghi thời gian, lịch, và các thanh ghi báo giờ bên trong, bit SET ở thanh ghi B phải được đặt ở mức logic 1 để ngăn ngừa sự cập nhật có thể xảy ra trong quá trình ghi đè Thêm vào nữa để ghi lên 10 thanh ghi chỉ thời gian, lịch, và thanh ghi báo giờ ở một định dạng đã lựa chọn (BCD hay nhị phân), bit chọn kiểu dữ liệu (Data mode (DM)) của thanh ghi B phải được đặt ở mức logic thích hợp Tất cả 10 bytes thời gian, lịch và báo giờ phải sử dụng cùng kiểu dữ liệu Bit được đặt ở thanh ghi B nên được xoá sau khi bit kiểu dữ liệu đã được ghi để cho phép đồng hồ thời gian thực cập nhật bytes thời gian và lịch Vào lúc đầu, đồng hồ thời gian thực cập nhật ở một kiểu đã được lựa chọn Kiểu dữ liệu không thể thay đổi mà không khởi động lại 10 bytes dữ liệu Bảng 2 trình bày định dạng nhị phân và BCD của cả thời gian , lịch, và báo giờ Bit lựa chọn kiểu hiển thị 24–12 không thể thay đổi mà không khởi động lại thanh ghi giờ Khi định dạng 12 giờ được lựa chọn, bit cao của bytes giờ tương ứng với PM khi nó được đặt ở mức logic 1 Bytes thời gian, lịch, và bytes báo giờ luôn được truy cập bởi vì chúng được đệm gấp đôi Mỗi giây một lần, 11 bytes được nâng cấp và được kiểm tra tình trạng báo giờ Nếu lệnh đọc dữ liệu thời gian và lịch diễn ra trong quá trình cập nhật, một vấn đề phát sinh là giờ, phút, giây, … có thể không chính xác Xác xuất đọc không chính xác dữ liệu thời gian và lịch là rất thấp Có 3 bytes báo giờ có thể sử dụng bằng 2 cách Cách thứ nhất, khi thời gian báo giờ được ghi vào vị trí của các thanh ghi giờ, phút, giây, tác động

của DS12C887

Trang 20

báo giờ được bắt đầu tại thời gian chính xác trong ngày khi bit cho phép báo chuông được đặt ở mức cao Cách thứ hai sử dụng để đặt trạng thái bất chấp vào một hoặc nhiều bytes báo chuông Mã bất chấp là bất kỳ mã số hex nào nằm trong giá trị từ C0 đến FF Hai bit có trọng số lớn nhất của những byte trên đặt vào trạng thái bất chấp khi ở mức logic 1 Báo giờ sẽ được sinh ra mỗi giờ khi bit bất chấp được đặt vào bytes giờ Tương tự, báo giờ sẽ sinh ra mỗi phút nếu mã bất chấp có ở bytes giờ và bytes phút Nếu mã bất chấp có ở trong cả 3 bytes báo giờ thì nó sẽ tạo ra tín hiệu ngắt mỗi giây.

Bảng 1.4 Kiểu dữ liệu thời gian, lịch và báo giờ

 Thanh ghi A

3 Các thanh ghi điều khiển

Trang 21

*, Các thanh ghi

1 Thanh ghi A

Bảng 1.2: các bit của thanh ghi A

UIP - Update In Progress (UIP) là bit trạng thái mà có thể theo dõi

được Khi bit UIP ở mức 1, quá trình cập nhật sẽ sớm xảy ra Khi bit UIP ở mức 0, quá trình cập nhật sẽ không xảy ra ít nhất là 244 µs Những thông tin

về thời gian, lịch, và báo giờ ở trong RAM có đầy đủ cho việc truy cập khi bit UIP ở mức 0 Bit UIP là bit chỉ đọc và không bị ảnh hưởng của chân RESET\ Khi ghi bit SET ở thanh ghi B lên 1 để ngăn chặn mọi quá trình cập nhật và xoá bit trạng thái UIP

DV2, DV1, DV0: là 3 bit trên được sử dụng để bật hoặc tắt bộ dao

động và cài đặt lại quá trình đếm xuống Khi được đặt 010 thì đó là sự kết hợp duy nhất để bật bộ dao động lên và cho phép RTC giữ thời gian Khi được đặt 11X sẽ cho phép dao động nhưng giữ quá trình đếm xuống ở mức reset Quá trình cập nhật tiếp theo sẽ sớm diễn ra sau 500ms sau khi kiểu 010 được ghi vào DV0, DV1 và DV2

RS3, RS2, RS1, RS0: là 4 bit loại lựa chọn để lựa chọn một trong 13 loại

của bộ chia 15 trạng thái hoặc không cho phép xuất tín hiệu chia ra ngoài Loại được lựa chọn có thể phát ra sóng vuông (chân SQW) và/hoặc ngắt theo chu kỳ Người sử dụng có thể sử dụng 1 trong những cách sau :

- Cho phép ngắt với bit PIE

- Cho phép xuất ngõ ra chân SQW với bit SQWE

- Cho phép cả hai hoạt động cùng một lúc và cùng một loại

Trang 22

2 Thanh ghi B

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

SET – Khi bit SET ở mức 0, thông thường quá trình cập nhật bằng

cách tăng biến đếm 1 lần 1 giây Khi bit SET được ghi vào mức 1, mọi quá trình cập nhật đều bị cấm, và chương trình có thể bắt đầu (khởi động) bytes thời gian và lịch mà không có quá trình cập nhật nào xảy ra trong quá trình khởi động Chu kỳ đọc có thể thực thi ở cùng một kiểu SET là bit đọc/ghi và không chịu ảnh hưởng của nút RESET hoặc các chức năng bên trong của DS12C887

PIE – Bit cho phép ngắt theo chu kỳ (Periodic Interrupt Enable) là bit

đọc/ghi, nó cho phép bit cờ ngắt theo chu kỳ (Periodic Interrupt Flag (PF)) trong thanh ghi C để điều khiển chân IRQ\ xuống mức thấp Khi bit PIE được đặt lên mức 1, chu kỳ ngắt được tạo ra bằng cách điều khiển chân IRQ\ xuống mức thấp tuỳ thuộc vào tỉ lệ phân bố của bit RS3-RS0 ở thanh ghi A

Trang 23

AIE – Bit cho phép ngắt báo giờ (Alarm Interrupt Enable (AIE)) là bit

đọc/ghi mà khi được đặt lên 1 nó cho phép bit cờ báo giờ (Alarm Flag (AF)) ở thanh ghi C để cho phép ngắt IRQ\ Tín hiệu ngắt báo giờ diễn ra ở tất cả các giây khi cả 3 bytes báo giờ chứa mã báo giờ được thể hiện ở nhị phân như sau 11XXXXXX Các chức năng bên trong của DS12C887 không bị ảnh hưởng bởi bit AIE

UIE – Bit cho phép kết thúc quá trình ngắt cập nhật (Update Ended

Interrupt Enable (UIE)) là bit đọc/ghi mà cho phép bit cờ kết thúc quá trình cập nhật ở thanh ghi C để cho phép ngắt IRQ\ Chân RESET\ ở mức 0 hoặc chân SET ở mức 1 sẽ xóa bit UIE

SQWE – Khi bit cho phép xuất sóng vuông (Square Wave Enable

(SQWE)) được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt bởi

vị trí được lựa chọn của bit RS3 đến RS0 sẽ điều khiển sóng ra tại chân SQW Khi bit SQWE được đặt ở mức thấp, chân SQW sẽ được giữ ở mức thấp SQWE là bit đọc\ghi và được xóa khi RESET SQWE được đặt lên 1 khi được cấp VCC

DM – Bit kiểu dữ liệu (Data Mode (DM)) quy định khi nào thì thông

tin lịch và thời gian ở định dạng nhị phân hoặc BCD Bit DM được đặt bởi chương trình để có định dạng thích hợp và có thể đọc khi được yêu cầu Bit này không bị thay đổi bởi các chức năng bên trong hoặc chân RESET\ Mức

1 của DM sẽ hiển thị dữ liệu nhị phân còn mức 0 hiển thị dữ liệu Binary Coded Decimal (BCD)

24/12 – Bit điều khiển 24/12 xác định kiểu bytes giờ Khi ở mức 1 thì

nó chỉ chế độ hiển thị 24 giờ, còn ở mức 0 thì chỉ chế độ hiển thị 12 giờ Bit này là bit đọc ghi và không bị ảnh hưởng bởi các chức năng bên trong cũng như chân RESET\

DSE – Bit cho phép nhớ công khai (Daylight Savings Enable (DSE)) là

bit đọc\ghi, nó cho phép 2 cập nhật đặc biệt khi DSE được đặt lên 1 Vào chủ nhật đầu tiên của tháng 4, thời gian sẽ tăng từ 1:59:59 AM lên 3:00:00 AM Vào chủ nhật cuối cùng của tháng 10, khi thời gian lần đầu tiên đạt được

Ngày đăng: 18/05/2015, 07:35

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w