Thiết kế đồng hồ số LED 7 đoạn dùng VĐK 8051
Trang 1ĐẠ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
Trang 2MỞ ĐẦ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 3MỤ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
Trang 41 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 52 Thiết kế mạch
Trang 5
Trang 63 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
Trang 7Cá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
Trang 84 Lưu đồ thuật toán
4.1 Chương trình con phục vục ngắt
Kiểm tra hẹn giờ
Hiển thị đồng hồ
Điều chỉnh giờ, phút, giây
RETI
Trang 9Tắt alarm LED
Đảo alarm LEDBật alarm LED
9
Trang 10Hiể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
Thiết lập nhấp
nháy phút hoặc giờ
Đảo NN_PHUT
DEM=7
RETĐảo NN_GIO
Đ
S
S
Đ
Trang 11Hiể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
RETINC VI_TRI
Trang 12Hiển thị giây đơn vị
Hiển thị giây chục
S
Trang 13Hiển thị phút chục
13
Trang 14Hiển thị giờ đơn vị
Bật LED giờ
Hiển thị giờ chục
Bật LED giờ chục
S S
S
Trang 15- Gọi hàm điều
chỉnh thời gian
- DEM0 = 0
Đ
Đ
S S
15
Trang 16Điều chỉnh thời
Trang 174.2 Xử lý bấm phím
Trang
Xử lý bấm phím
BT_GIAM?
BT_CGIO?
BT_TANG?
BT_HGIO?
Delay, vào chế độ
17
Trang 18Chế độ chỉnh
Trang 21S S
21
Trang 222 TOÀN BỘ CODE ĐỒNG HỒ