Báo cáo quá trình thiết kế và thi công Đồng hồ thời gian thực RTC ppsx

43 553 0
Báo cáo quá trình thiết kế và thi công Đồng hồ thời gian thực RTC ppsx

Đ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

Báo cáo quá trình thiết kế và thi công Đồng hồ thời gian thực RTC Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 1/42 Report n o 03.01 Gửi đến: picvietnam@googlegroups.com Nội dung: Real Time Clock Version 1.0 MICROSOFT WORD Tóm tắt: Báo cáo quá trình thiết kế và thi công Đồng hồ thời gian thực RTC (Real Time Clock) với các nội dung: - Sơ lược về RTC (các chức năng và ứng dụng). - Sơ đồ nguyên lí RTC. - Cấu tạo và chức năng các linh kiện sử dụng cho RTC. - Giải thuật và chương trình ứng dụng viết cho RTC. Các file đính kèm: File chương trình, sơ đồ nguyên lí và sơ đồ mạch in của RTC. 1. Sơ lược về RTC Đây là ứng dụng sử dụng vi điều khiển PIC để thiết kế một đồng hồ điện tử treo tường hoặc để bàn. Sau đây là một vài điểm giới thiệu sơ lược: - Sử dụng LED 7 đoạn để hiển thị. Thiết bị này thích hợp hơn cho mục đích hiển thị của RTC khi dùng làm động hồ treo tường hoặc để bàn. - Sử dụng IC thời gian thực DS12C887. IC này có tác dụng tạo ra thời gian thực chính xác tuyệt đối, bao gồm giờ, phút, giây, thứ, ngày, tháng, năm. Bên cạnh đó là các ngắt lập trình được phục vụ cho việc cập nhật thời gian thực và hẹn giờ. - Sử dụng IC ghi dịch 74HC595 để tăng số lượng chân điều khiển cho vi điều khiển. - Sử dụng vi điều khiển PIC16F877A cho các thao tác truy cập thời gian thực, hiển thị giờ và chỉnh giờ. Thực chất việc sử dụng PIC16F877A cho ứng dụng này là phí phạm, vì ứng dụng không yêu cầu thêm một chức năng phụ nào của vi điều khiển ngoài chức năng I/O. RTC Version 1.0 là bản “nháp” và bao gồm các chức năng cụ thể sau: - Hiển thị giờ, phút, giây, ngày, tháng, năm. Không hiển thị thứ (quên mất tiêu ☺ ). - Điều chỉnh được giờ, phút, giây. Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 2/42 2. Sơ đồ nguyên lí mạch RTC Để thuận tiện cho việc bố trí góc nhìn, thiết kế mẫu mã sản phẩm và mục đích sử dụng, ứng dụng RTC sẽ bao gồm 3 mạch: mạch điều khiển, mạch hiển thị và mạch cho các nút bấm. 2.1. Sơ đồ nguyên lí mạch điều khiển Mạch điều khiển bao gồm các thành phần điều khiển chính như: - Vi điều khiển PIC16F877A và các bộ phận hỗ trợ (thạch anh, reset, nạp chương trình dùng Tiny Bootloader, các Jumper cho các chân còn dư). - IC thời gian thực DS12C887 và các thành phận hỗ trợ (điện trở kéo lên cho chân IRQ, reset). - IC ghi dịch 74HC595. - Các khóa điện tử dùng Transistor A1015 phục vụ cho việc quét LED. - Các Bus điều khiển và Bus dữ liệu nối sang các Board hiển thị và Board nút bấm. - Nguồn cung cấp cho toàn bộ các Board. Điện áp đưa vào nguồn là điện áp 9V lấy từ Adapter loại 9V/500mA. Sau đây là sơ đồ nguyên lí cụ thể cho Board điều khiển: Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 3/42 Hình 1: Sơ đồ nguyên lí Board điều khiển. Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 4/42 2.2. Sơ đồ nguyên lí Board hiển thị Board hiển thị bao gồm các LED 7 đoạn. Sơ đồ nguyên lí cụ thể như sau: NTC5 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC2 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC12 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC7 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC4 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC14 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC1 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC9 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC6 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC11 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E J2 CON8 1 2 3 4 5 6 7 8 NTC13 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E J7 1 2 3 4 5 6 NTC8 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E NTC3 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E J6 1 2 3 4 5 6 7 8 NTC10 1 2 3 4 56 7 8 9 1 0 G F V C C A BD P C V C C D E Hình 2: Sơ đồ nguyên lí Board hiển thị. Các giá trị giờ, phút, giây, ngày, tháng dùng 2 LED để hiển thị. Giá trị năm dùng 4 LED để hiển thị. Tổng cộng ta cần sử dụng 14 LED. 2.3. Sơ đồ nguyên lí Board nút bấm Board nút bấm gồm 3 nút dùng để chỉnh giờ. Sơ đồ nguyên lí như sau: 0 HI SW3 ALARMSET HI R27 R R29 R SW4 INC HI J2 CON6 1 2 3 4 5 6 0 HI R28 R 0 SW2 TIMESET 0 Hình 3: Sơ đồ nguyên lí Board nút bấm. 3. Cấu tạo và chức năng các linh kiện sử dụng trong RTC Phần này sẽ đi sâu vào cấu tạo bên trong của các linh kiện sử dụng cho RTC và cách điều khiển chúng sử dụng vi điều khiển PIC. Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 5/42 3.1. LED 7 đoạn 3.1.1 Cấu tạo của LED 7 đoạn LED 7 đoạn là một công cụ thông dụng được dùng để hiển thị các thông số dưới dạng các số từ 0 đến 9. Mặc dù công cụ LCD giúp ta thể hiện các thông số một cách linh động hơn nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công nghiệp do các ưu thế của nó như: ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú ý và góc nhìn rộng. LED 7 đoạn bao gồm 7 đoạn LED được đánh dấu là các kí tự a, b, c, d, e, f, g và một dấu chấm thập phân kí hiệu là dp. Ta có thể xem LED 7 đoạn là một tổ hợp gồm 8 LED. 8 LED này có một đầu (Anode hoặc Cathode) được nối chung và được bố trí theo một qui tắc nhất định dùng để hiển thị các chữ số thập phân. Có hai loại LED 7 đoạn, đó là loại Anode chung (cực Anode của các LED được nối chung với nhau) và loại Cathode chung (cực Cathode của các LED được nối chung với nhau). Tùy theo từng loại LED mà ta có các phương pháp điều khiển các LED trong tổ hợp đó sáng tắt một cách thích hợp. Đối với loại Anode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn LED đó là mức logic 0. Đối với loại Cathode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn LED đó là mức logic 1. Hình 4: LED 7 đoạn Hình vẽ trên là một LED 7 đoạn loại Cathode chung. Thực ra cấu trúc các chân của LED 7 đoạn có thể thay đổi chứ không cố định. Một phương pháp để xác định chính xác các chân điều khiển của LED 7 đoạn là kiểm tra từng chân của LED đó. Dựa vào hình vẽ ta có thể hiểu được một phần nào phương pháp hiển thị của một LED 7 đoạn. Ví dụ, muốn hiển thị số “6”, ta sẽ điều khiển các đoạn LED a, c, d, e, g, f sáng lên. Việc điều khiển sáng tắt được thực hiện bằng cách đưa dữ liệu thích hợp vào các chân a-g và dp (tạm gọi là các chân dữ liệu) của LED 7 đoạn. Đó là cách hiển thị theo từng LED. Tuy nhiên, trong thực tế, để tiết kiệm số chân cần thiết để điều khiển cùng một lúc nhiều LED 7 đoạn, các chân dữ liệu của các LED sẽ được nối song song với nhau, các chân anode chung Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 6/42 (hoặc cathode chung) được dùng để cho phép LED đó sáng hay tắt (tạm gọi là các chân điều khiển). Phương pháp hiển thị sẽ dựa trên nguyên lí lưu ảnh của mắt. 3.1.2 Xây dựng module hiển thị trên LED 7 đoạn Module ứng dụng sau đây được xây dựng dùng để hiển thị 2 chữ số thập phân trên 2 LED 7 đoạn sử dụng loại LED 7 đoạn Anode chung. Trước hết ta sẽ tiến hành kết nối phần cứng giữa vi điều khiển và LED 7 đoạn để từ đó xác định được dữ liệu cần đưa vào LED 7 đoạn để hiển thị một chữ số thập phân nào đó. Thứ tự kết nối các chân như sau: - Chân dp nối vào chân RD7. - Chân g nối vào chân RD6. - Chân f nối vào chân RD5. - Chân e nối vào chân RD4. - Chân d nối vào chân RD3. - Chân c nối vào chân RD2. - Chân b nối vào chân RD1. - Chân a nối vào chân RD0. Muốn điều khiển một đoạn LED nào đó sáng lên, ta đưa vào chân điều khiển LED đó về mức logic 0. Với cách nối chân như vậy, ta có bảng dữ liệu tương ứng với các chữ số cần hiển thị trên LED 7 đoạn như sau: Chữ số RB7 (dp) RB6 (g) RB5 (f) RB4 (e) RB3 (d) RB2 (c) RB1 (b) RB0 (a) Mã HEX 0 1 1 0 0 0 0 0 0 C0h 1 1 1 1 1 1 0 0 1 F9h 2 1 0 1 0 0 1 0 0 A4h 3 1 0 1 1 0 0 0 0 B0h 4 1 0 0 1 1 0 0 1 99h 5 1 0 0 1 0 0 1 0 92h 6 1 0 0 0 0 0 1 0 82h 7 1 1 1 1 1 0 0 0 F8h 8 1 0 0 0 0 0 0 0 80h 9 1 0 0 1 0 0 0 0 90h Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 7/42 Dựa vào bảng dữ liệu trên, muốn hiển thị một chữ số lên LED 7 đoạn, ta chỉ việc đưa mã HEX tương ứng với chữ số đó ra PORT D của vi điều khiển. Bảng mã trên không cố định mà có thể thay đổi tùy thuộc vào cấu trúc phần cứng của mạch điều khiển. Tùy theo cách kết nối mà ta có thể xây dựng bảng mã tương ứng. Để điều khiển việc cho phép một LED nào đó tắt hoặc sáng. Ta nối các chân RB0 và RB1 với các chân điều khiển của LED thông qua các “công tắc”. “Công tắc” này là các Transistor và có cấu trúc mạch như hình 5. Khi chân điều khiển ở mức logic 1, transistor ngưng dẫn và không có dòng vào LED 7 đoạn. Khi chân diều khiển ở mức logic 0, transistor dẫn bão hòa và xuất hiện dòng điện đi qua các LED. Ta sẽ sử dụng chân RB0 để điều khiển LED hàng đơn vị và chân RB1 để điều khiển LED hàng chục. 5V 10 K HI A LO RBx Hình 5: Sơ đồ nguyên lí công tắc điều khiển Sau đây là sơ đồ mạch cụ thể: Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 8/42 B 0 H I DP A1015 D NTC1 1 2 3 4 56 7 8 9 10 G F VC C A BD P C VC C D E 330 30 pF R2 10K C 4 MHz H I 330 E 330 HI G E A1015 SW1 A 330 330 330 G D 330 NTC2 1 2 3 4 56 7 8 9 10 G F VC C A BD P C VC C D E 30 pF F R1 10 K C H I B A C 330 NTC3 PIC16F877A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 MCLR/VPP RA0/AN0 RA1/AN1 RA2/AN2/VREF-/CVREF RA3/AN3/VREF+ RA4/TOCKI/C1OUT RA5/AN4/SS/C2OUT RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 VDD VSS OSC1/CLKI OSC2/CLKO RC0/T1OSO/T1CKI RC1/T1OSI/CCP2 RC2/CCP1 RC3/SCK/SCL RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RC4/SDI/SDA RC5/SD0 RC6/TX/CK RC7/RX/DT RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 VSS VDD RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC RB7/PGD 0 DP 0 F R13 R Hình 6 : Sơ đồ nguyên lí module hiển thị cho LED 7 đoạn Chương trình viết cho ứng dụng trải qua các bước sau: - Đưa dữ liệu của LED 1 vào - Bật LED 1 - Delay - Đưa dữ liệu của LED 2 vào - Bật LED 2 - Delay - Lặp lại bước 1 Sau đây là chương trình cụ thể: Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 9/42 Chương trình 1: ;======================================================================== title “chuongtrinh1.asm” processor 16f877a include <p16f877a.inc> __CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ;======================================================================== ; ; Khai báo biến ; count1 EQU 0x20 counta EQU 0x21 countb EQU 0x22 ;========================================================================= ; Chương trình chính ORG 0x000 GOTO start ;========================================================= ================ start ; ; Khởi tạo các PORT ; BCF STATUS, RP1 BSF STATUS,RP0 ; BANK1 CLRF TRISD ; PORTD <- output CLRF TRISB ; PORTB <- output BCF STATUS,RP0 ; BANK0 CLRF PORTB CLRF PORTD ; ; Vòng lặp chính của chương trình ; loop MOVLW 0x99 ; hiển thị số 4 MOVWF PORTD MOVLW b'11111101' ; bật LED hàng chục MOVWF PORTB CALL delay_1ms ; delay_1ms [...]... đưa dữ liệu vào thanh ghi “sendreg” và gọi chương trình con “serout” cho đến khi tất cả các dữ liệu được gửi ra hết Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 17/42 3.3 IC thời gian thực DS12C887 Đây là IC thời gian thực được sản xuất bởi hãng Dallas với một vài đặc tính sơ lược sau: - Chứa các giá trị thời gian giây, phút, giờ, thứ, ngày, tháng, năm với thời gian hoạt... DS12C887) và chân SQW (chân tạo sóng vuông ngõ ra) - Ngoài ra còn có các chân dùng để cấp nguồn cho IC và các chân không cần thi t (NC) Các thanh ghi chức năng: Thanh ghi SECONDS Địa chỉ 00h Chức năng Chứa giá trị giây của thời gian thực SECOND ALARM 01h Chứa giá trị giây của thời gian hẹn giờ MINUTES 02h Chứa giá trị phút của thời gian thực MINUTES ALARM HOUR 03h Chứa giá trị phút của thời gian hẹn... trị thời gian thực Bit này chỉ đọc UIP = 1: dữ liệu chưa sẵn sàng để truy xuất UIP = 0: dữ liệu đã sẵn sàng cho quá trình truy xuất Lựa chọn trạng thái hoạt động của IC Chỉ có giá trị 010 là cho phép IC hoạt động theo chế độ thời gian thực Xác định tỉ số chia tần số của bộ tạo dao động THANH GHI REGISTER B SET = 0: cho phép cập nhật thời gian vào các thanh ghi SET = 1: không cập nhật thời gian vào... với thời gian 10 năm nếu không có nguồn điện ngoài cung cấp - Các hệ thống bên trong bao gồm hệ thống thời gian thực, nguồn nội bằng Lithium và bộ tạo dao động với bộ chia tần số đính kèm cho phép lập trình được Ngoài ra còn hỗ trợ các ngắt phục vụ cho quá trình xử lí thông tin của hệ thống bên ngoài - Cho phép hai dạng dữ liệu BCD và Binary - Cho phép chế độ hiển thị giờ 24 giờ hoặc 12 giờ (với AM và. .. gian vào các thanh ghi Cho phép tạo ngắt định kì tại chân IRQ và cho phép cờ ngắt PF Thời gian định kì được quyết định bởi các bit RS3-RS0 PIE =1: cho phép PIE = 0: không cho phép Cho phép ngắt báo giờ tại chân IRQ và cho phép cờ ngắt AF AIE = 1 : cho phép AIE = 0 : không cho phép Cho phép tạo ngắt khi quá trình cập nhật thời gian hoàn tẩt và cho phép cờ ngắt UF UIE = 1 : cho phép UIE = 0 : không cho... tác truy xuất 4 Xây dưng chương trình ứng dụng cho RTC Công việc còn lại là tập hơp tất cả các module trên để hoàn thành ứng dụng RTC Lưu đồ giải thuật cho chương trình chính như sau: START KHOI TAO DATA DS12C887 READY?? Y CAP NHAT THOI GIAN MOI N HIEN THI TIMESET CO DUOC NHAN?? N Y CHUYEN QUA CHE DO CHINH GIO Hình 13: Lưu đồ giải thuật chương trình chính Người báo cáo: Nguyễn Trung Chính Tài liệu:... Trước tiên đưa 1 bit dữ liệu vào chân SDI, sau đó tạo ra một xung dương ở chân SCK để dịch bit dữ liệu đó vào Trạng thái logic của chân SDI khi kích xung dương quyết định mức logic của bit được dịch vào Quá trình này được lặp đi lặp lại liên tục cho đến khi toàn bộ dữ liệu được dịch vào trong IC IC tiếp theo sẽ tiếp tục dịch dữ liệu vào từ chân SDO của của IC trước đó Khi quá trình dịch dữ liệu hoàn tất,... tiếp BUS của Intel hoặc Motorola - Bộ nhớ RAM 128 byte Trong đó gồm 15 byte chứa các giá trị thời gian và điều khiển, 113 byte còn lại được phép tùy ý sử dụng - Các cờ ngắt hỗ trợ bao gồm: ngắt toàn cục, ngẳt báo giờ, ngắt báo hiệu cho phép/ không cho phép truy xuất giá trị thời gian thực Sau đây là phần cấu tạo và xây dựng module điều khiển IC DS12C887 3.3.1 Cấu tạo DS12C887 Sơ đồ chân: NTC1 1 2 3 4... sau đó tắt LED đó và bật LED khác lên Do thời gian bật tắt quá nhanh nên mắt sẽ bị đánh lừa là LED sáng liên tuc Hiện tượng này có thể quan sát rõ hơn bằng cách tăng thời gian delay lên, khi đó ta sẽ thấy từng LED được bật tắt một cách tuần tự Tương tự ta có thể mở rộng số lượng LED bằng cách nối song song tất cả chúng lại với nhau và áp dụng giải thuật trên để hiển thị Người báo cáo: Nguyễn Trung... den che do hien thi CALL update ; neu roi, cap nhat gia tri moi quet CALL hienthigiay BTFSS timeset CALL time_set CALL hienthiphut Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006 Trang: 30/42 BTFSS timeset CALL time_set CALL hienthigio BTFSS timeset CALL time_set CALL hienthingay BTFSS timeset CALL time_set CALL hienthithang BTFSS timeset CALL time_set CALL hienthinam BTFSS timeset . tắt: Báo cáo quá trình thi t kế và thi công Đồng hồ thời gian thực RTC (Real Time Clock) với các nội dung: - Sơ lược về RTC (các chức năng và ứng dụng). - Sơ đồ nguyên lí RTC. - Cấu tạo và. Báo cáo quá trình thi t kế và thi công Đồng hồ thời gian thực RTC Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01 Ngày: 9/5/2006. để thi t kế một đồng hồ điện tử treo tường hoặc để bàn. Sau đây là một vài điểm giới thi u sơ lược: - Sử dụng LED 7 đoạn để hiển thị. Thi t bị này thích hợp hơn cho mục đích hiển thị của RTC

Ngày đăng: 08/08/2014, 13:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan