Đồ án - Mạch đồng hồ RTC dùng DS

Chia sẻ: Tien Van Van | Ngày: | Loại File: PDF | Số trang:28

0
437
lượt xem
248
download

Đồ án - Mạch đồng hồ RTC dùng DS

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hồn tồn tương tự nhau, ở đây ta giới thiệu 89c51 với các đặc điểm chính sau: - 4KB EPROM nội - 128 byte RAM nội - 4 port xuất / nhập (I/O port) 8 bit - 2 bộ định thời 16 bit - Giao tiếp nối tiếp - 64kb Rom ngồi - 64kb Ram ngồi - 210 vị trí nhớ để định vị bit, mỗi vị trí một bit - 4us cho hoạt động nhân hoặc chia

Chủ đề:
Lưu

Nội dung Text: Đồ án - Mạch đồng hồ RTC dùng DS

  1. Phần 1: Lý thuyết thiết kế I.Giới thiệu khái quát về 89C51 1.phần cứng: Đặc điểm và chức năng hoạt động của các IC họ MSC-51 hồn tồn tương tự nhau, ở đây ta giới thiệu 89c51 với các đặc điểm chính sau: - 4KB EPROM nội - 128 byte RAM nội - 4 port xuất / nhập (I/O port) 8 bit - 2 bộ định thời 16 bit - Giao tiếp nối tiếp - 64kb Rom ngồi - 64kb Ram ngồi - 210 vị trí nhớ để định vị bit, mỗi vị trí một bit - 4us cho hoạt động nhân hoặc chia 1. cấu trúc bên trong của IC 89C51. + Thành phần chính của vi điều khiển 8051 la bộ xử lý trung tâm hay con gọi là CPU. CPU bao gồm: - Thamh ghi tích luỹ A
  2. - Thanh ghi tích luỹ B, dùng cho phép nhân và chia - Đơn vị logic học ALU - Từ trạng thái chương trình PSW - 4 bank thanh ghi - Con trỏ ngăn xếp - Ngồi ra còn có bộ nhớ chương trình, bộ giải ma lệnh, bộ điều khiển thời gian và logic + Đơn vị xử lý trung tâm nhận trực tiếp xung từ bộ dao động + Chương trình đang chạy có thể cho dừng lại nhờ một khối điều khiển ở bên trong. Các nguồn ngắt có thể là các biến cố ở bên ngồi, sự tràn bộ đếm định thời hoặc cũng có thể là giao diện nối tiếp. + 2 bộ định thời 16 bit hoạt động như một bộ đếm. + Các cổng port 0, port 1, port 2, port 3 được sử dụng vào mục đích điều khiển, ở cổng port 3 có thêm các đường dẫn điều khiển dùng để trao đổi với một bộ nhớ bên ngồi, hoặc để đầu nối giao diện nối tiếp cũng như các đường dẫn ngắt bên ngồi. + Giao diện nối tiếp có chứa một bộ truyền và một bộ nhận không đồng bộ làm việc độc lập với nhau. Tốc độ truyền qua cổng nối tiếp có thể đặt trong dải rộng và được ấn định bằng một bộ định thời. + Trong vi diều khiển 8051 còn có hai thành phần quan trọng khác là bộ nhớ và các thanh ghi +Bộ nhớ còn có Ram và Rom dùng để lưu dữ liệu và mã lệnh. + Các thanh ghi sử dụng để lưu dữ thông tin trong quá trình xử lý. Khi CPU làm việc, nó làm thay đôỉ nội dung của các thanh ghi 2. Sơ đồ chân 89c51: U1 39 40 - port 0: có hai chức năng từ chân 32 đến chân 39 trong 38 P0.0/AD0 37 P0.1/AD1 VCC 21 các thiết kế nhỏ.(không dùng bộ nhớ mở rộng). 36 35 P0.2/AD2 P0.3/AD3 P2.0/A8 22 P2.1/A9 23 có hai chức năng như các đường I/O. Đối với các thiết kế 34 P0.4/AD4 P2.2/A10 24 33 P0.5/AD5 P2.3/A11 25 32 P0.6/AD6 P2.4/A12 26 cỡ lớn( với bộ nhớ mở rộng) nó được kết hợp kênh giữa P0.7/AD7 P2.5/A13 27 P2.6/A14 28 các Bus. 1 2 P1.0 P1.1 P2.7/A15 - Port 1: là port I/O trên các chân từ chân số 1 đến chân 3 10 4 P1.2 P3.0/RXD 11 5 P1.3 P3.1/TXD 12 số 8. có thể dùng các thiết bị ngồi nếu cần. Port 1 6 P1.4 7 P1.5 P3.2/INT0 13 P3.3/INT1 14 không có chức năng khác vì thế chúng ta chỉ được 8 P1.6 P1.7 P3.4/T0 15 P3.5/T1 16 dùng trong các thiết bị ngồi. 19 18 XTAL1 P3.6/WR P3.7/RD 17 - Port 2: là port công dụng kép trên các chân 21 đến 28 XTAL2 30 31 ALE/PROG 29 EA/VPP PSEN 20 được dùng như các đường xuất nhập hoặc byte cao 9 RST GND của bus địa chỉ đối với các thiết kế mở rộng. AT89C51 - Port 3: là port công dụng kép trên các chân 10 đến chân 17. Các chân cûa port này có nhiều chức năng, các công dụng chuyển đổi có liên hệ với các đặc tín đặc biệt của 8051/8031 như ở bảng sau:
  3. Bit Tên Chức năng chuyển đổi P3.0 RXD Dữ liệu nhận cho port nối tiếp P3.1 TXD Dữ liệu phát cho port nối tiếp P3.2 INTO Ngắt 0 bên ngồi P3.3 INT1 Ngắt 1 bên ngồi P3.4 T0 Ngõ vào của timer/courter 0 P3.5 T1 Ngõ vào của timer/courter 1 P3.6 WR Xung ghi bộ nhớ dữ liệu ngồi P3.7 RD Xung đọc bộ nhớ dữ liệu ngồi + Chân PSEN: là chân 29, có 4 tín hiệu điều khiển, là tín hiệu để cho phép bộ nhớ chương trình mở rộng và thường được nối lên chân OE của một Eprom để cho phép đọc các byte mã lệnh. PSEN ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình được đọc từ Eprom qua bus và được chốt vào thanh ghi lệnh của 8051 để giải mã lệnh. Khi thi hành chương trình trong Rom nội PSEN sẽ thụ động (mức cao). + Chân ALE: (chốt) Tín hiệu ra ALE trên chân 30 tương hợp với các thiết bị làm việc với các xử lý 8585,8088,8051 dùng ALE một cách tương tự cho làm việc giải các kênh các Bus địa chỉ và dữ liệu khi port 0 được dùng trong chế đọ chuyển đổi của nó: vừa là Bus dữ liệu vừa là byte thấp của địa chỉ, ALE là tín hiệu để chốt địa chỉ vào vào một thanh ghi bên ngồi trong nửa đầu của chu kỳ bộ nhớ. Sau đó các đương port 0 dùng để xuất hoặc nhập dữ liệu trong nửa sau của chu kỳ bộ nhớ. Các xung tín hiệu ALE có tốc độ bằng 1/6 lần tần số dao động trên chíp và có thể được làm xung nhịp cho các hệ thống. Nếu xung trên 8051 là 12MHZ thì ALE có tần số 2MHZ. Chỉ ngoại trừ khi thi hành lệnh Movx, một xung ALE bị mất. Chân này cũng được làm ngõ vào cho xung lập trình cho Eprom trong 8051. + Chân EA: (truy xuất ngồi):Tín hiệu vào EA trên chân 31 thường được mắc lên mức cao(+5V) hoặc mức thấp(GND). Nếu ở mức cao, 8051 thi hành chương trình từ Rom nội trong khoảng địa chỉ thấp(4K). Nếu ở mức thấp chương trình chi được thi hành từ bộ nhớ mở rộng. Khi dùng 8031, EA luôn được nối ở mức thấp vì không có bộ nhớ chương trình trên chíp. Nếu EA được nối ở mức thấp bộ nhớ bên trong chương trình 8051 sẽ bị cấm và thi hành chương trình Eprom mở rộng. Người ta còn dùng chân EA làm chân cấp điện áp 21V khi lập trình cho Eprom trong 8051. + Chân RST(reset): Khi tín hiệu này được đưa lên mức cao(ít nhất phải 2 chu kỳ máy), các thanh ghi trong 8051 được tải những giá trị thích hợp đẻ khởi động hệ thống. + Các ngõ vào bộ dao động trên chip:
  4. Như đã thấy ở các hình trên,8051 có bộ dao động trên chip. Nó thường được nối với thạch anh gia hai chân 18 và 19. Các tụ giữa cũng cần thiết như đã vẽ. Tần số thạch anh thông thường là 12MHZ + Các chân nguồn: 8051 vận hành với nguồn đơn +5V(VCC) được nối vào chân 40 và chân 20 được nối GND II. Giới thiệu về IC thời gian thực DS12C887: 1. Sơ đồ chân chư sau: U1 14 24 AS VCC 17 4 DS AD0 5 1 AD1 6 MOT AD2 7 18 AD3 8 RST AD4 9 15 AD5 10 R/W AD6 11 13 AD7 23 12 CS SQW 19 GND IRQ DS12887 AD0-AD7: Bus đa hợp địa chỉ/dữ liệu. NC: Bỏ trống. MOT: Lựa chọn loại Bus. CS: Ngõ vào lựa chọ RTC AS: chốt địa chỉ. R/ W: Ngõ vào đọc ghi. DS: Chốt dữ liệu. RESET: Ngõ vào reset. IRQ: Nhõ ra yêu cầu ngắt. SQW: Ngõ ra sóng vuông. VCC: Nguồn cung cấp +5V. GND: Mass 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 ngồ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
  5. 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 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 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ị xố đị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ằn 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 đựoc đ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 ky đò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,
  6. 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 đựoc 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 rtong 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 địa chỉ nhưng sẽ không có bất kỳ sự truy cập nào. Khi Vcc thấp hơn 4.25Volts, chức năng bên trong của DS12C887 ngăn chặn sự truy cập bằng cáchkhông cho phép llựa chọn nhõ 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 cung 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). Để xố 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ị xố trong lúc ngắt. Khi không có trạng tgá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ắtcó 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 ngồ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. 3. Cấu trúc bên trong của DS12C887.
  7. a.sơ đồ địa chỉ của Real time clock S ơ đồ địa chỉ của DS12C887 được trình bày bao gồm 113 byte Ram thông dụng, 11 byte 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 byte được sử dung cho việc điều khiển và thông báo tình trạng. Tất cả 128 byte có thể được ghi hoặc đọc trực tiếp từ nhữnh trường hợp sau: - Thanh ghi C và 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ứ hai là bit chỉ đọc Thời gian và đã có bằng cách đọc các byte bộ nhớ hiện co. Thời gian, lịch và báo giờ được đặt hoặc gán giá trị bằng cách ghi giá trị byte Ram thích hợp. Nội dung của 10 byte chứa thời gian lịch và báo giờ đều có thể hiển thị ở hai dạng nhị phân hoặc BCD. Trước khi ghi lên các thanh ghi thời gian , lịch và báo giờ bên trong, bit SET ở thanh ghi B phải được đặt ở mức 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 là đẻ ghi lên 10 thanh ghi chỉ thời gian, lịch và 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 DM của thanh ghi B phải được đặt ở mức logic thích hợp. Tất cả 10 byte thời
  8. 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 xố sau khi bit kiểu dữ liệu đã được ghi để cho phép đồng hồ thời gian thực cập nhật byte thời gian và lịch. Vào lúc đầu đồng hồ thời gian 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 byte dữ liệu. Bảng sau trình bày định dạng nhị phân và BCD của 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 kiểu 12 giờ được chọn bit cao của byte giờ tương ứng với PM khi nó được đặt ở mức logic 1. Byte thời gian lịch và byte 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 11byte đượ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à có thể thời gian giờ, phút, giây có thể không chính xác, xác xuất đọc kkhông chính xác dữ liệu thời gian và lịch là rất thấp. Sau đây ta tìm hiểu các thanh ghi điều khiển trong DS12C887. - Thanh ghi A: MSB LSB BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 + UIP: là bít 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 244Us. 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 bởi chân reset. Khi ghi bit SET ở thanh ghi B lên mức 1 để ngăn chặn quá trình cập nhật và xố bit trạng thái UIP. + DV2, DV1, DV0: 3bit trên được sử dụng để bật 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 bộ 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 DV1, DV2, DV3. + RS3, RS2, RS1,RS0: 4bit loại lựa chọn để lựa chọn 1 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 ngồi. Loại được lựa chọn có thể phát ra sóng vuông(chân SQW) hoặc ngắt theo chu kỳ. Người sử dụng có thể sử dụng một 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. - Không kích hoạt cả hai. Bảng sau liệt kê chu kỳ ngắt với tần số sóng vuông mà có thể lựa chọn với bit RS. Cả 4 bit đọc ghi và không bị ảnh hưởng bởi chân reset.
  9. - Thanh ghi B: BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 SET PIE AIE UIE SQWE DM 24/12 DSE - 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 một giây. Khi bit SET được lên 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 byte 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 bởi 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ỳ, là bit đọc ghi, nó cho phép bit cờ ngắt theo chu kỳ trong thanh ghi C để đ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 RS3 đén RS0 ở thanh ghi A. - AIE: Bit cho phép ngắt báo giờ, là bit đọc ghi mà khi được đặt lên 1 nó cho phép bit cờ báo giờ(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 byte 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 chân AIE. - UIE: Bít cho phép kết thúc quá trình ngắt cập nhật, 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ố bit UIE. - SQWE: là bit cho phép xuất sóng vuông, được đặt lên mức 1, một tín hiệu sóng vuông có tần số được đặt ở 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ố khi Reset. SQWE được đặt lên 1 khi được cấp Vcc. - DM: Bit kiểu dữ liệu qui định khi nào là 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ó thể đị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 khi Reset. Mức 1 của DM sẽ hiển thị dữ liệu nhị phân, mức 0 hiẻn thị dữ liệu BCD. - 24/ 12: Bit xác định kiểu byte giờ. Khi ở mức 1 nó hiển thị kiểu 24 giờ, bit 0 hiển thị 12 giờ. Bit này không ảnh hưởng bởi các chức năng bên trong hoặc chân reset. - DSE: Bit cho phép nhớ công khai. Bit này cũng không bị ảnh hưởng bởi chức năng bên trong hoặc chân reset. - Thanh ghi C: MSB LSB BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 IRQF PF AF UF 0 0 0 0
  10. - IRQF: Bit cờ yêu cầu ngắt được đặt lên 1 khi những điều dưới đây đúng: PF=PIE=1 AF=AIE=1 UF=UIE=1 Đều có nghĩa là IRQF=(PF.PIE)+(AF.AIE)+(UF.UIE). Bất cứ lúc nào bit IRQF được đặt lên 1, chân IRQ\ được đặt xuống mức thấp. Bit cờ PF,AF và UF được xố khi thanh ghi C được chương trình đọc hoặc chân reset ở mức thấp. - Thanh ghi D: BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 VRT 0 0 0 0 0 0 0 VRT: Bit thời gian và Ram hợp lệ, biểu thị tình trạng của pin được kết nối chân VBAT. Bit này không phải là bit ghi được và luôn có giá trị là 1 khi đọc, nếu hiên thị mức 0, nguồn năng lượng pin bên trong đã cạn và cả hai mục dữ liệu thời gian thực lẫn dữ liệu Ram đều bị nghi ngờ. Bit này không bị ảnh hưởng bởi chân reset. III. IC gải mã 74LS247 Là loại IC dùng để giải mã số nhị phân 4 bit (số BCD) sang mã 7 đoạn. IC gồm 16 chân, hoạt động với nguồn 5V. A,B,C,D: 4 ngõ vào RBI, LT, BI/RBO được nối lên nguồn. a,b,c…g là chân ra led 7 đoạn. Led 7đoạn ở đây ta dùng loại Anôt chung.
  11. Phần 2: Thiết kế và thi công I.Sơ đồ nguyên lý và sơ đồ mạch in:
  12. VCC VCC VCC VCC VCC 1K D3 R2 U3 40 VCC AT89C51 1K LED 1 2 AD0 AD0 39 21 BCD1 U1 24 VCC 3 AD1 AD1 38 P0.0/AD0 P2.0/A8 22 BCD2 4 AD2 AD2 37 P0.1/AD1 P2.1/A9 23 BCD3 ALE 14 4 AD0 NGAT VCC 5 AD3 AD3 36 P0.2/AD2 P2.2/A10 24 BCD4 AS AD0 5 AD1 6 AD4 AD4 35 P0.3/AD3 P2.3/A11 25 LED1 READ 17 AD1 6 AD2 VCC 7 AD5 AD5 34 P0.4/AD4 P2.4/A12 26 LED2 DS AD2 7 AD3 8 AD6 AD6 33 P0.5/AD5 P2.5/A13 27 LED3 1 AD3 8 AD4 9 AD7 AD7 32 P0.6/AD6 P2.6/A14 28 LED4 MOT AD4 9 AD5 P0.7/AD7 P2.7/A15 18 AD5 10 AD6 LED5 1 10 RST AD6 11 AD7 RESISTOR SIP 9 VCC LED6 2 P1.0 P3.0/RXD 11 WRITE 15 AD7 3 P1.1 P3.1/TXD 12 NGAT R/W 23 TANG LOA 4 P1.2 P3.2/INT0 13 TANG 13 SQW GND 1K LED 5 P1.3 P3.3/INT1 14 GIAM CS 19 VCC 6 P1.4 P3.4/T0 15 CHUYEN IRQ 7 P1.5 P3.5/T1 16 WRITE 12 8 P1.6 P3.6/WR 17 READ DS12887 P1.7 P3.7/RD 19 30 ALE 18 XTAL1 ALE/PROG 29 12M XTAL2 PSEN VCC GIAM VCC 31 GND 9 EA/VPP RST LS1 U4 VCC 16 3 5 4 VCC 20 33P 33P VCC VCC LT RBI VCC BI/RBO VCC 13 A BCD1 7 A 12 B BCD2 1 D0 B 11 C 1K 1K D1 C SPEAKER 10UF 100 BCD3 2 10 D Q2 BCD4 6 D2 D 9 E 10K NPN D3 E 15 F CHUYEN F 14 G GND G LED 8K2 74LS47 8 VCC VCC VCC VCC VCC VCC LOA 2 1 GND IN OUT LED1 150 LED2 150 LED3 150 LED4 150 LED5 150 LED6 150 3.3V 3 A1015 A1015 A1015 A1015 A1015 A1015 U2 U2 U2 U2 U2 U2 3 3 3 3 3 3 A 7 A 7 A 7 A 7 A 7 A 7 CA CA CA CA CA CA B 6 A B 6 A B 6 A B 6 A B 6 A B 6 A C 4 B C 4 B C 4 B C 4 B C 4 B C 4 B D 2 C D 2 C D 2 C D 2 C D 2 C D 2 C E 1 D E 1 D E 1 D E 1 D E 1 D E 1 D F 9 E F 9 E F 9 E F 9 E F 9 E F 9 E G 10 F G 10 F G 10 F G 10 F G 10 F G 10 F G G G G G G 5 5 5 5 5 5 DP DP DP DP DP DP
  13. Sơ đồ mạch hiển thị Sơ đồ mạch xử lý II. Lưu đồ giải thuật. BEGIN MAIN BẬT BIẾN HỆN GIỜ BEGIN LCALL ENABLE_RTC LCALL
  14. ENABLE_RTC DOC_DATA CHỌN Ô NHỚ CHỨA CHỌN THANH GHI GIÁ TRỊ GIỜ PHÚT TRONG RTC GIÂY TRONG VXL CHỌN GIÁ TRỊ THÍCH LẤY GIÁ TRỊ GIỜ HỢP GHI VÀO THANH PHÚT GIÂY TỪ RTC GHI TRONG VXL ĐƯA VÀO VXL CHUYỂN VÀO RTC QUA THANH GHI R0 CỦA VXL HEX_BCD HIỂN THỊ CHUYỂN TỪNG Ô NHỚ CHỌN LED 1 CHỨA GIỜ,PHÚT,GIÂY VÀO THANH GHI A ORL VỚI GIÁ TRỊ THÍCH HỢP ĐỂ BẬT CHUYỂN 10 VÀO LED THANH GHI B LED KẾ TIẾP LẤY A CHIA B BYTE CAO LÀ GIÁ TRỊ NGẮT HÀNG CHỤC HIỂN THỊ 1 BYTE THẤP LÀ GIÁ TRỊ HÀNG ĐƠN VỊ
  15. S Đ LOOP1 P3.2=0 HIỂN THỊ 1 Đ P3.2=0 THOÁT NGẮT S Đ P3.3=0 S TĂNG GIÁ TRỊ PHÚT Đ S P3.4=0 S Đ GIẢM GIÁ TRỊ PHÚT P3.5=0 CHUYỂN 1 TĂNG GIÁ TRỊ PHÚT S P3.3=0 Đ Đ A=0 TĂNG PHÚT A=60S INC A HEX_TO_BCD S LOOP 1 GIẢM GIÁ TRỊ PHÚT Đ P3.4=0 Đ A=59 GIẢM PHÚT A=0
  16. S TĂNG GIÁ TRỊ GIỜ S P3.3=0 Đ Đ A=0 TĂNG GIỜ A=24 S INC A HEX_TO_BCD S LOOP 2 GIẢM GIÁ TRỊ GIỜ Đ P3.4=0 Đ S A=23 GIẢM GIỜ A=0 DEC A HEX_TO_BCD
  17. CHUYỂN 1 P3.5=0 LOOP 2 S A=0 RETURN1 Đ R2=0 LOOP 2 HIỂN THỊ 2 Đ P3.2=0 THOÁT NGẮT S Đ P3.3=0 TĂNG GIÁ TRỊ GIỜ S Đ P3.4=0 GIẢM GIÁ TRỊ GIỜ S S Đ P3.5=0 CHUYỂN2 CHUYỂN 2 P3.5=0 LOOP 1
  18. S A=0 RETURN2 III. Chương trình. $MOD51 R2=0 ORG 00H LJMP MAIN ORG 03H LJMP NGAT ORG 30H MAIN: MOV R3,#1 ;BIEN HEN GIO CHAN LE BEGIN: LCALL ENABLE_RTC LED5 BIT P1.1 LED6 BIT P1.0 MOV IE,#81H MOV R2,#0 MOV 20H,#0 ;O NHO CHUA GIAY MOV 21H,#0 ;O NO CHUA PHUT MOV 22H,#0 ;O NHO CHUA GIO MOV 23H,#0 ;O NHO DON VI CUA GIAY MOV 24H,#0 ;O NHO CHUC CUA GIAY MOV 25H,#0 ;O NHO DON VI CUA PHUT MOV 26H,#0 ;O NHO CHUC CUA PHUT MOV 27H,#0 ;O NHO DON VI CUA GIO MOV 28H,#0 ;O NHO CHUC CUA GIO LCALL DOC_DATA ;LCALL CHOPTAT ;2 LED DON CHOP TAT THEO NHIP GIAY LCALL HEX_BCD LCALL HIEN_THI SJMP BEGIN ;****************************************** DOC_DATA: MOV R0,#0 MOV R1,#20H X12: MOVX A,@R0 MOV @R1,A MOV R7,#0 MOV R7,20H ;****************************************** ;DOAN CHUONG TRINH DE HEN GIO ;****************************************** CJNE R3,#00,GIO_CHAN LJMP GIO_LE GIO_CHAN: CJNE R7,#00,THOAT_1 MOV R7,#00 MOV R7,21H CJNE R7,#00,THOAT_1 MOV R7,#00
  19. MOV R7,22H CJNE R7,#22,AA LJMP CHUONG_CHAN AA: CJNE R7,#20,BB LJMP CHUONG_CHAN BB: CJNE R7,#18,CC LJMP CHUONG_CHAN CC: CJNE R7,#16,DD LJMP CHUONG_CHAN DD: CJNE R7,#14,EE LJMP CHUONG_CHAN EE: CJNE R7,#12,FF LJMP CHUONG_CHAN FF: CJNE R7,#10,GG LJMP CHUONG_CHAN GG: CJNE R7,#8,HH LJMP CHUONG_CHAN HH: CJNE R7,#6,THOAT LJMP CHUONG_CHAN X11: LJMP X12 THOAT_1: LJMP THOAT GIO_LE: MOV R7,#00 MOV R7,22H CJNE R7,#21,II LJMP CHUONG_LE II: CJNE R7,#19,JJ LJMP CHUONG_LE JJ: CJNE R7,#17,KK LJMP CHUONG_LE KK: CJNE R7,#15,LL LJMP CHUONG_LE LL: CJNE R7,#13,MM LJMP CHUONG_LE MM: CJNE R7,#11,NN LJMP CHUONG_LE NN: CJNE R7,#9,OO LJMP CHUONG_LE OO: CJNE R7,#7,THOAT CHUONG_LE: ;GIO LE THI BAO CHUONG LE CLR P1.3 LCALL DELAY_CHUONG ;THOI GIAN CHUONG REO SETB P1.3 MOV R3,#1 LJMP THOAT CHUONG_CHAN: ;GIO CHAN THI BAO CHUONG CHAN CLR P1.4 LCALL DELAY_CHUONG ;THOI GIAN CHUONG REO SETB P1.4 MOV R3,#00 ;************************************************* THOAT: INC R0 INC R0
  20. INC R1 CJNE R0,#06,X11 RET ;******************************************** ENABLE_RTC: MOV R0,#0AH MOV A,#0AFH MOVX @R0,A MOV R0,#0BH MOV A,#0EH MOVX @R0,A RET ;******************************************** ;DOAN CHUONG TRINH DOC TU RTC VAO VXL ;******************************************** DOC: MOV R0,#0 MOV R1,#20H X1: MOVX A,@R0 MOV @R1,A INC R0 INC R0 INC R1 CJNE R0,#06,X1 RET ;********************************************* ;********************************************* ;CHUYEN TU SO HEX SANG BCD ;********************************************* HEX_BCD: MOV A,20H MOV B,#10 DIV AB MOV 23H,B MOV 24H,A MOV A,21H MOV B,#10 DIV AB MOV 25H,B MOV 26H,A MOV A,22H MOV B,#10 DIV AB MOV 27H,B MOV 28H,A RET ;********************************************* ;********************************************* ;DOAN CHUONG TRINH QUET LED ;********************************************* HIEN_THI: MOV A,23H ORL A,#0F0H MOV P2,A CLR LED6

CÓ THỂ BẠN MUỐN DOWNLOAD

Đồng bộ tài khoản