hoaivu_009

New Member
Đề tài Thiết kế đồng hồ thời gian thực RTC DS 12C887 với vi điều khiển PIC 16F877A

Download miễn phí Đề tài Thiết kế đồng hồ thời gian thực RTC DS 12C887 với vi điều khiển PIC 16F877A


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 SDOcủ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.


Để 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:

iể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
(hay 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)

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 hay 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
H
I
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
HI
DP
A1015
D
NTC11 2 3 4 5
678910
G F
VC
C A B
D
P
CVC
C
DE
330
30 pF
R2
10K
C
4 MHz
HI
330
E
330
HI
G
E
A1015
SW1
A
330
330
330
G
D
330
NTC21 2 3 4 5
678910
G F
VC
C A B
D
P
CVC
C
DE
30 pF
F
R1
10 K
HI
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
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
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
__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
Người báo cáo: Nguyễn Trung Chính Tài liệu: REP03.01
Ngày: 9/5/2006 Trang: 10/42
MOVLW 0x92 ; hiển thị số 5
MOVWF PORTD
MOVLW b'11111110' ; bật LED hàng đơn vị
MOVWF PORTB
CALL delay_1ms ; delay_1ms
GOTO loop
;=========================================================================
; Chương trình con
;=========================================================================
;--------------------------------------------------------------
; Chương trình con tạo thời gian delay 1 ms
;--------------------------------------------------------------
delay_1ms
MOVLW d'1'
MOVWF count1
d1
MOVLW 0xC7
MOVWF counta
MOVLW 0x01
MOVWF countb
delay_0
DECFSZ counta,1
GOTO $+2
DECFSZ countb,1
GOTO delay_0
DECFSZ count1,1
GOTO d1
RETURN
END
;========================================================================
Trong chương trình trên, mỗi LED sẽ được bật sáng trong một khoảng thời gian 1 ms,
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 Chính Tài liệu: REP03.01
Ngày: 9/5/2006 Trang: 11/42
3.2. IC ghi dịch 74HC595
Đây là IC ghi dịch nối tiếp sang song song. IC được ứng dụng để tăng số lượng chân
output cho vi điều khiển. Có nh...
 

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

Top