cvtam2003

New Member

Download miễn phí Báo cáo Quá trình thiết kế và thi công Đồng hồ thời gian thực RTC (RealTime Clock)





Các thao tác cần thiết để làm việc với DS12C887 sẽ là thao tác đọc và ghi các giá trị trên
bộ nhớ của IC thông qua quá trình giao tiếp BUS.
DS12C887 hỗ trợ hai chuẩn giao tiếp của Intel và Motorola. Chuẩn giao tiếp được lựa
chọn bằng chân MOT. MOT= 1 sẽ cho phép chế độ giao tiếp thep chuẩn của Motorola.
MOT= 0 cho phép chế độ giao tiếp theo chuẩn của Intel.
Ta chọn chuẩn của Intel (nối chân MOTxuống mass).



Để tải bản Đầy Đủ của tài liệu, xin Trả lời bài viết này, Mods sẽ gửi Link download cho bạn sớm nhất qua hòm tin nhắn.
Ai cần download tài liệu gì mà không tìm thấy ở đây, thì đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:

nối tiếp ngõ ra (chân 9) của IC
này được nối với chân dữ liệu nối tiếp ngõ vào của IC tiếp theo. Ta có thể mở rộng số
lương IC ghép với nhau theo cách tương tự mà số lượng chân điều khiển vẫn không đổi.
0
74HC5958
9
1013 14
16
11 12
151234567
GND
SD
O
C
LRG SD
I
VCC SR
C
LK
R
C
LK
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H
0
DATA OUT
74HC5958
9
1013 14
16
11 12
151234567
GND
SD
O
C
LRG SD
I
VCC SR
C
LK
R
C
LK
Q
A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H
H
I
CLR
0
H
I
RCK
DATA IN
SCK
Hình 9: Nối nhiều IC 74HC595 với nhau.
3.2.2 Xây dựng module điều khiển IC 74HC595
Cách điều khiển IC được thể hiện thông qua bảng sự thật ở hình 7. 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, ta tạo một xung dương ở chân RCK để đưa dữ liệu ra
ngoài các chân ngõ ra QH:QA.
Ứng dụng sau được dùng để đưa một byte dữ liệu ra IC ghi dịch 74HC595. Kết quả
được kiểm định thông qua các LED được nối vào các chân QH:QA của IC.
Các chân điều khiển sẽ được nối vào các chân RB3:RB0 của PORT B. Cụ thể như sau:
- Chân RB0 nối với chân SDI.
- Chân RB1 nối với chân SCK.
- Chân RB2 nối với chân .
Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01
Ngày: 9/5/2006 Trang: 14/42
- Chân RB3 nối với chân RCK.
Các thứ tự này không bắt buộc phải tuân thủ một cách tuyệt đối.
Sau đây là sơ đồ nguyên lí mạch ứng dụng:
0
D3
330
CLR
D2
30 pF
330
0
D8
330
D6
30 pF
HI
U2
74HC595
8
16
12
10
11
14
15
1
2
3
4
5
6
7
9
13
GND
VC
C
RCK
SRCLR
SRCK
SER
QA
QB
QC
QD
QE
QF
QG
QH
QHP
G
330
SDI
330
HI
330
330 D7
NTC1
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
40MCLR/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
SCK
RCK
330
SDI
CLR
D1
4 MHz
HI
D5
SW1
D4
0
10 K
0
RCK
0
SCK
Hình 10: Sơ đồ nguyên lí mạch ứng dụng điều khiển IC 74HC595.
Sau đây là chương trình viết cho ứng dụng:
Chương trình 2:
;========================================================================
title “chuongtrinh2.asm”
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
;========================================================================
;---------------------------------------------------------
; Khai báo biến
;---------------------------------------------------------
sendreg EQU 0X20 ; chứa dữ liệu cần xuất ra
count EQU 0X21 ; dùng để kiểm soát số lượng bit
; đã gửi ra
;----------------------------------------------------------
;Khai báo phần cứng
Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01
Ngày: 9/5/2006 Trang: 15/42
;----------------------------------------------------------
#define data PORTB,0
#define clock PORTB,1
#define clear PORTB,2
#define latch PORTB,3
;========================================================================
; Chương trình chính
ORG 0x000
GOTO start
;========================================================================
start
;------------------------------------------------------
; Khởi tạo các PORT điều khiển
;-------------------------------------------------------
BCF STATUS,RP1
BSF STATUS,RP0 ; BANK1
MOVLW 0xF0 ; các chân RB3:RB0 là output
MOVWF TRISB ; các chân RB7:RB4 là input
BCF STATUS,RP0 ; BANK0
;---------------------------------------------------------------------
; Khởi tạo IC 74HC595
;---------------------------------------------------------------------
BCF clear ; reset dữ liệu trong IC 74HC595
NOP ; clear tác động cạnh xuống
BSF clear ; đưa chân trở về mức logic cao
;----------------------------------------------------------------------
; Đoạn chương trình xuất dữ liệu ra 74HC595
;----------------------------------------------------------------------
MOVLW 0xCA ; dữ liệu cần đưa ra IC 74HC595
CALL serout ; chương trình con “serout”
BSF latch ; tạo cạnh dương tại chân RCK để đưa
NOP ; dữ liệu ra ngõ ra IC 74HC595
BCF latch ; đưa chân RCK trở về mức logic thấp
;--------------------------------------------------------
; Vòng lặp chính của chương trình
;--------------------------------------------------------
GOTO $
;========================================================================
; Chương trình con
;========================================================================
Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01
Ngày: 9/5/2006 Trang: 16/42
;-----------------------------------------------------------------------------------------
; Chương trình con “serout”
; Dùng để đưa dữ liệu vào các thanh ghi dịch của IC 74HC595
;-----------------------------------------------------------------------------------------
serout
MOVWF sendreg ; đưa dữ liệu vào thanh ghi sendreg
MOVLW 0x08 ; đếm 8 bit dữ liệu
MOVWF count
testbit
BCF data ; dữ liệu mặc định bằng 0
BTFSC sendreg,7 ; sendreg,7 == 0 ??
BSF data ; nếu không bằng 0, set dữ liệu từ 0 -> 1
BSF clock
NOP ; tạo cạnh dương tại chân SCK để đưa
; dữ liệu vào IC
BCF clock ; đưa chân SCK về lại mức logic thấp
RLF sendreg,0 ; dịch trái thanh ghi sendreg
MOVWF sendreg
DECFSZ count,1 ; giảm biến count 1 đơn vị
GOTO testbit ; nếu biến “count” chưa bằng 0, tiếp tục
; quá trình dịch dữ liệu
RETURN ; trở về chương trình chính nếu count = 0
;========================================================================
END
Thuật toán cụ thể của ứng dụng trên như sau: ban đầu dữ liệu được mặc định mang
mức logic 0, sau đó ta kiểm tra từng bit dữ liệu một ( bit thứ 7 trong thanh ghi “sendreg”)
xem có thực sự bằng 0 hay không. Nếu bằng 1, ta set đường dữ liệu lên mức logic 1. Sau đó
tạo xung dương tại chân “SCK” để đưa dữ liệu vào IC. Dữ liệu trên thanh ghi “sendreg”
sau đó được dịch trái và quá trình trên tiếp tục cho đến khi 8 bit dữ liệu được dịch xong.
Cần chú ý khởi tạo 74HC595 bằng cách xóa các ngõ ra và đưa chân lên mức logic
cao (do chân tác động cạnh thấp). Nếu không các ngõ ra sẽ luôn ở trạng thái logic 0
(bị xóa).
Trong trường hợp nối nhiều IC lại với nhau ta chỉ việc lần lựot đư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
động đúng đến năm 2100.
- Bộ đếm hoạt động 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...
 
Các chủ đề có liên quan khác

Các chủ đề có liên quan khác

Top