Tải bản đầy đủ (.doc) (22 trang)

Thiết kế đồng hồ số LED 7 đoạn dùng VĐK 8051

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (170.21 KB, 22 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN
KỸ THUẬT
VI XỬ LÝ
ĐỂ TÀI: Thiết kế đồng hồ số LED 7 đoạn dùng VĐK 8051
GV HƯỚNG DẪN: TRƯƠNG MINH HUY
MỞ ĐẦU
Ngày nay, các bộ vi điều khiển đang có những ứng dụng rộng
rãi và thâm nhập ngày càng nhiều trong các lĩnh vực đời sống và xã
hội. Hầu hết, các thiết bị kỹ thuật từ phức tạp cho đến đơn giản như
thiết bị điều khiển tự động, thiết bị văn phòng cho đến các thiết bị
trong gia đình đều có dùng các bộ vi điều khiển.
Xuất phát từ thực tế đó, môn học kỹ thuật vi điều khiển là
môn học không thể thiếu đối với bất kỳ sinh viên trường kỹ thuật
nào nhất là các sinh viên các khoa Điện tử viễn thông, Công nghệ
thông tin… Không chỉ cung cấp cho sinh viên kiến thức về vi điều
khiển để xây dựng nên những hệ thống thiết bị kỹ thuật hiện đại. Mà
nó còn là môn học căn bản để chúng ta hiểu rõ bản chất của việc xử
lý các số liệu tính toán đang tồn tại từng giây, từng phút trong hàng
triệu triệu con vi xử lý, vi điều khiển trên khắp thế giới này. Đem
đên cái nhìn sâu sắc và hiểu biết sâu rộng về thế giới tin học, góp
phần tạo nên sự say mê sáng tạo cho mỗi sinh viên yêu thích bộ
môn khoa học kỹ thuật này.
Đồ án môn học Kỹ thuật vi xử lý dựa trên việc sử dụng vi
điều khiển 8051 cũng không nằm ngoài mục đích nâng cao sự hiểu
biết, củng cố lý thuyết cho mỗi sinh viên. Tạo cho sinh viên tinh thần
làm việc nhóm để đạt được một mục đích chung: Làm một đồ án
hiệu quả, chất lượng!
Trang


2
MỤC LỤC:
1. THIẾT KẾ 4
1. Nguyên lý hoạt động 4
2. Thiết kế mạch 5
3. Thiết kế dữ liệu 6
4. Lưu đồ thuật toán 8
4.1 Chương trình con phục vục ngắt 8
4.2 Xử lý bấm phím 17
2. TOÀN BỘ CODE ĐỒNG HỒ 22
Trang
3
1. THIẾT KẾ
1. Nguyên lý hoạt động
- Đồng hồ được thiết kê theo nguyên lý quét LED để tận dụng các
chân của VĐK 8051.
- Có tất cả 6 LED dùng để hiển thị giờ, phút, giây được đánh số từ 0
đến 5 từ giây đơn vị, giây chục cho đến giờ chục
- Để quét các LED với tần số 25Hz (mắt người không phân biệt được
độ nháy), ta phải quét mỗi led 7 đoạn với thời gian quét được tính
theo công thức: 1/(25*6 LED*2) ~ 3333 uS. Từ đó ta tính được giá trị
của TH0TL0: FFFF(65535) – D05(3333) + 1 = F2FB tức là TH0 =
F2h và TL0 = FBh. Ở đây ta sử dụng chế độ 1 tức chế độ định thời 16
bít không tự nạp của timer0 vì ta cần đếm 3333 lần vượt xa giới hạn
của chế độ 8bit tự nạp của bộ định thời 8051.
- Với 300 lần quét LED (mỗi LED được quét 50 lần 1s) không thể
chứa vào 1 byte với số lần đếm lớn nhất chỉ là 256. Ta chia 300 lần
thành 2 biến, một biến đếm 75 lần và một biến 4 lần. Tổng hợp lại ta
có 300 lần. Ý đồ của việc chia một biến đếm đến 75 lần chính là để
tạo chu kì nhấp nháy ½s dùng trong việc đánh dấu vị trí chỉnh giờ và

hẹn giờ, hoặc để set nhấp nháy dãy LED báo thức ở P1.
- Khi mới khỏi động giá trị thông số mặc định là: 00h00m00s. Giờ
hẹn: 00h.00m. Hẹn giờ được tắt.
- Đồng hồ có tất cả 4 nút bấm: nút chỉnh giờ, nút hẹn giờ, nút giảm/tắt
báo thức, nút tăng/bật báo thức.
- Khi ta bấm nút chỉnh giờ ở vị trí hiện hành, phút sẽ nháy để báo vị trí
điều chỉnh phút, bấm tăng hoặc giảm để thay đổi giá trị. Bấm nút
chỉnh giờ lần thứ 2, giờ sẽ nháy để báo vị trí điều chỉnh giờ, ta có thể
thay đổi giờ bằng phím tăng hoặc giảm. Bấm lần thứ 3 quay về chế
độ hiển thị bình thường
- Khi ta bấm nút hẹn giờ lần 1 tương tự như chỉnh giờ, nhưng lúc này
thông số giờ hẹn sẽ được thay thế cho giờ hiện hành. Lúc này chỉ có
giờ và phút hẹn giờ là hiển thị trên 6 LED, phút hẹn giờ nhấp nháy.
Bấm lần 2 chuyển qua chỉnh giờ hẹn, giờ hẹn giờ nhấp nháy. Dùng
nút tăng hay giảm để thay đổi thông số. Bấm lần 3 để thoát ra khỏi
chế độ chỉnh giờ
- Tại thời điểm xem giờ hiện hành, nút tăng và giảm có chức năng
khác. Nút giảm dùng để tắt báo thức, và nút tăng dùng để bật báo thức
- Dãy đèn LED sẽ bật sáng khi chúng ta bật báo thức, tắt khi chúng ta
tăt báo thức, chớp nháy khi đã đến giờ báo thức
Trang
4
2. Thiết kế mạch
Trang
5
3. Thiết kế dữ liệu
Chúng ta có tất cả các hằng chỉ vị trí các biến dữ liệu như sau:
Qui định chân quét 6 LED 7 đoạn. Những thông số hằng này phải tương ứng
với mạch bên ngoài:
GIAY_DVI EQU P0.0

GIAY_CHUC EQU P0.1
PHUT_DVI EQU P0.2
PHUT_CHUC EQU P0.3
GIO_DVI EQU P0.4
GIO_CHUC EQU P0.5

Dữ liệu ra các LED 7 đoạn và dữ liệu ra các LED đơn dùng để báo thức:
DATA_LED EQU P2
ALARM_LED EQU P1
Các nút bấm gồm các: nút chỉnh giờ, nút hẹn giờ, nút giảm/tắt báo thức, nút
tăng/bật báo thức:
BT_CGIO EQU P3.0
BT_HGIO EQU P3.1
BT_GIAM EQU P3.2
BT_TANG EQU P3.3
Các biến lưu thời gian hiện hành và lưu thời gian báo thức:
GIO EQU 30H ; THONG SO THOI GIAN
PHUT EQU 31H
GIAY EQU 32H
GIO_AL EQU 33H ; THONG SO BAO THUC
PHUT_AL EQU 34H
Các biến 1 bit chỉ định các chế độ hiện hành và cờ báo thức:
MODE_CGIO EQU 00H
MODE_HGIO EQU 01H
SET_ALARM EQU 02H
Các biến 1 bit để kiểm soát việc nhấp nháy giờ hay phút dùng trong việc điều
chỉnh giờ hiện hành hay giờ hẹn:
NN_PHUT EQU 03H
NN_GIO EQU 04H
Trang

6
Các biến đếm kết hợp tạo ra 300 lần, biến DEM đến 75 lần, và biến DEM0
đếm 4 lần:
DEM EQU 38H
DEM0 EQU 39H
Trang
7
4. Lưu đồ thuật toán
4.1 Chương trình con phục vục ngắt
Trang
CTC phục vụ
ngắt Timer0
- Tắt Timer0
- Thiết lập lại giá trị TH,
TL
- Bật Timer0
Kiểm tra hẹn giờ
Hiển thị đồng hồ
Điều chỉnh giờ,
phút, giây
RETI
8
Trang
Kiểm tra hẹn giờ
SET_ALAR
M?
RET
DEM=74
PHUT_AL=
PHUT

GIO_AL=
GIO
Tắt alarm LED
Đảo alarm LED
Bật alarm LED
Đ
Đ
Đ
Đ
S
S
S
S
9
Trang
Hiển thị đồng hồ
Gọi hàm thiết lập chu kì nhấp
nháy cho các biến NN_PHUT
hoặc NN_GIO
MODE_CGI
O?
MODE_HGI
O?
Hiển thị giờ phút giây
RET
Đ
S
S
Đ
Thiết lập nhấp

nháy phút hoặc giờ
Đảo NN_PHUT
DEM=7
4
VT_TD
=0
RET
Đảo NN_GIO
Đ
S
S
Đ
10
Trang
Hiển thị giờ, phút,
giây
Hiển thị giây đơn vị
VI_TRI
=0
VI_TRI
=1
VI_TRI
=2
VI_TRI
=3
VI_TRI
=4
Hiển thị giây chục
Hiển thị phút đơn vị
Hiển thị phút chục

Hiển thị giờ đơn vị
- Hiển thị giờ chục
- VI_TRI
RET
INC VI_TRI
Đ
Đ
Đ
Đ
Đ
S
S
S
S
S
11
Trang
Hiển thị giây đơn vị
Tắt hết các LED 7 đoạn
MODE_HGI
O?
Bật LED giây
đơn vị
RET
- MOV A,GIAY
- ACALL HT_DVI
Hiển thị giây chục
Tắt hết các LED 7 đoạn
MODE_HGI
O?

Bật LED giây
chục
RET
- MOV A,GIAY
- ACALL HT_CHUC
Đ
Đ
S
S
12
Trang
Hiển thị phút đơn
vị
Tắt hết các LED 7 đoạn
NN_PHUT
=1
Bật LED phút
đơn vị
RET
MOV A,PHUT MOV A,PHUT_AL
MODE_HGI
O
ACALL HT_DVI
Hiển thị phút chục
Tắt hết các LED 7 đoạn
NN_PHUT
=1
Bật LED phút
chục
RET

MOV A,PHUT MOV A,PHUT_AL
MODE_HGI
O
ACALL HT_CHUC
Đ
Đ
Đ
Đ
S
S
S
S
13
Trang
Hiển thị giờ đơn vị
Tắt hết các LED 7 đoạn
NN_GIO=1
Bật LED giờ
đơn vị
RET
MOV A,GIO MOV A,GIO_AL
MODE_HGI
O
ACALL HT_DVI
Hiển thị giờ chục
Tắt hết các LED 7 đoạn
NN_GIO=1
Bật LED giờ
chục
RET

MOV A,GIO MOV A,GIO_AL
MODE_HGI
O
ACALL HT_CHUC
Đ
Đ
Đ
ĐS
S
S
S
14
Trang
Điều chỉnh giờ,
phút, giây
INC DEM
DEM=
74
DEM0=
4
RET
- DEM = 0
- INC DEM0
- Gọi hàm điều
chỉnh thời gian
- DEM0 = 0
Đ
Đ
S
S

15
Trang
Điều chỉnh thời
gian
- GIAY = 0
- INC PHUT
GIAY=6
0
RET
- PHUT = 0
- INC GIO
INC GIAY
PHUT=6
0
GIO=24
GIO = 0
Đ
Đ
Đ
S
S
S
16
4.2 Xử lý bấm phím
Trang
Xử lý bấm phím
BT_GIA
M?
BT_CGI
O?

BT_TAN
G?
BT_HGI
O?
Delay, vào chế độ
chỉnh giờ
Delay, vào chế độ
hẹn giờ
Delay, xóa cờ hẹn
giờ
Delay, thiết lập cờ
hẹn giờ
Đ
Đ
Đ
Đ
S
S
S
S
17
Trang
Chế độ chỉnh
giờ
- MODE_CGIO = 1
- VT_TD = 0
- Gọi hàm thiết lập R0
BT_TAN
G?
BT_GIA

M?
BT_CGI
O?
RET
- MODE_CGIO = 0
- NN_GIO = 0
VT_TD
= 2
Delay, gọi hàm
giảm thông số
trong R0
Delay, gọi hàm
tăng thông số
trong R0
- Delay
- NN_PHUT = 0
- INC VT_TD
Gọi hàm thiết lập
R0
Đ
Đ
Đ
Đ
S
S
S
S
18
Trang
Chế độ hẹn

giờ
- MODE_HGIO = 1
- VT_TD = 0
- Gọi hàm thiết lập R0
BT_TAN
G?
BT_GIA
M?
BT_HGI
O?
RET
- MODE_HGIO = 0
- NN_GIO = 0
VT_TD
= 2
Delay, gọi hàm
giảm thông số
trong R0
Delay, gọi hàm
tăng thông số
trong R0
- Delay
- NN_PHUT = 0
- INC VT_TD
Gọi hàm thiết lập
R0
Đ
Đ
Đ
Đ

S
S
S
S
19
Trang
Thiết lập R0
MODE_CGI
O
VT_TD
= 0
VT_TD
= 0
MOV R0, #PHUT
MOV R0, #GIO
MOV R0, #GIO_AL
MOV R0, #PHUT_AL
RET
Đ
Đ
Đ
S
S
S
20
Trang
Giảm thông số
trong R0
VT_TD
= 0

@R0 =
0
DEC @R0
MOV @R0,#59
MOV @R0,#23
RET
@R0 =
0
Đ
Đ
Đ
S
S
S
Tăng thông số
trong R0
VT_TD
= 0
@R0 =
59
INC @R0
MOV @R0,#0
MOV @R0,#0
RET
@R0 =
23
Đ
Đ
Đ
S

S
S
21
2. TOÀN BỘ CODE ĐỒNG HỒ
Trang
22

×