Khối vi điều khiển được thiết kế để cho phép người sử dụng thuận tiện thực hành thí nghiệm đối với các loại vi điều khiển họ 89 của hãng Atmel ở mọi chế độ làm việc khả thi, gồm c
Trang 1NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN :
Trang 2
Đánh giá của giáo viên phản biện 2
I - Mở Đầu Lời mở đầu 3
II -Nội Dung a-Sơ đồ nguyên lí 4
Khối vi điều khiển 6
Khối hiển thị 8
Khối nguồn 9
Khối nút nhấn 11
b - Hướng dẫn sử dụng 12
Lưu đồ giải thuật 21
c - Chương trình 34
III – Kết luận 35
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN :
………
………
………
………
………
………
………
Trang 4
………
………
………
………
………
………
………
Trang 5I - LỜI MỞ ĐẦU
Trong cuộc sống của chúng ta có những thứ không thể dùng vật chất mà mua được Chúng là vô giá nhưng có những người biết quí trọng nó, sử dụng nó một cách hiệu quả Nhưng có người không biết dùng nó đúng cách mà sử dụng nó một cách không hiệu quả để rồi khi nó qua đi rồi người ta mới thấy luyến tiếc Đó chính là thời gian, thời gian trôi đi không bao giờ quay trở lại và ta không thể làm cho nó dừng lai hay chạy theo y của chúng ta vậy làm thế nào để chúng ta có thể biết được thời gian
để có thể sử dụng nó một cách có hiệu quả nhất Ngày nay con người chúng ta đã có nhiều thứ dùng để đo thời gian Như đồng hồ chẳng hạn … Nhưng nếu tự mình làm gia cho mình một chiếc đồng hồ phù hợp với túi tiền của mình thì thật là hạnh phúc
Và lại chúng em cũng muốn vận dụng những gì mà chúng em được học để hoàn thiện niềm mơ ước của mình Chính vì vậy mà chúng em đã chọn đế tài : "Đồng hồ số"
Chúng em đã cố gắng hết mình để hoàn thiện tốt đề tài của mình Chúng em
xin chân thành cảm ơn thầy Phan Tuấn Anh đã giúp chúng em hoàn thiện đề tài của
mình
Trang 6R 4
H I
P O R T 01 2 3 4 5 6 7 8
R 7
8 k 2 R
P O R T 2 1
2 3
C 5
C A P
P O R T 11 2 3 4 5 6 7 8
3 3 p 1
Giới thiệu chung :
Trang 7Khối vi điều khiển được thiết kế để cho phép người sử dụng thuận tiện thực hành thí nghiệm đối với các loại vi điều khiển họ 89 của hãng Atmel ở mọi chế
độ làm việc khả thi, gồm các loại điều khiển 40 chân
-Vi điều khiển cần thí nghiệm sẽ được gắn vào socket 40 chân-Tần số hoạt động của chip là Y1: 12 kHz
- Các Port xuất nhập dữ liệu :
+ Port 0 : ( P0.0 – P0.7)
- Có số chân từ 32 đến 39
- Port 0 có 2 chức năng :
P0.7) : Không sử dụng bộ nhớ ngoài
2 Byte thấp của bus dữ liệu đa hợp ( AD0 – AD7) : có sử dụng
bộ nhớ ngoàiLưu ý :
- Khi Port 0 đóng vai trò là Port xuất nhập dữ liệu thì phải sử dụng các đện trở kéo lên bên ngoài(10K)
- Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò
là ngõ vào của dữ liệu (D0 – D7)
+ Port 1 : ( P1.0 – P1.7 )
- Có số chân từ 1 đến 8
- Port 1 có chức năng là port xuất nhập dữ liệu ( P1.0 – P1.7) : sử dụng hoặc không sử dụng bộ nhớ ngoài
- Khi lập trình cho ROM trong chip thì port 1 đóng vai trò
là ngõ vào của địa chỉ byte thấp ( A0 – 7)
+ Port 2 :( P2.0 – P2.7)
- Có số chân từ 21 đến 28
- Port 2 có 2 cức năng :Port xuất nhập dữ liệu (P2.0 – P2.7) : không sử dụng bộ nhớ ngoàiByte cao của bus dữ liệu đa hợp (A8 - A15) : có sử dụng bộ nhớ ngoài
- Khi lập trình cho ROM trong chip thì port 2 đóng vai trò
là ngõ vào của địa chỉ byte cao (A8 - A11) và các tín hiệu điều khiển
Trang 8Port xuất nhập dữ liệu ( P3.0 – P3.7) : không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt
Các tín hiệu điều khiển : có sử dụng bội nhớ ngoài hoặc các chức năng đặc biệt
- Khi lập trình cho ROM trong chip thì port 3 đóng vai trò
là ngõ vào của các tín hiệu điều khiển
- Để Reset chip ta sử dụng nút nhấn SW1
Trang 9KHỐI LED 7 ĐOẠN
Sơ đồ nguyên lý :
D G
F
F
Q 5
R 2 R
R 1 4
R 9
R 6 R
Q 2
C
R 4 R
C D
P O R T 0
1 2 3 4 5 6 7 8
Trang 10Giới thiệu chung :
Khối Led 7 đoạn bao gồm 8 Led 7 đoạn loại Anod chung kết hợp lại với nhau theo 2 cách thiết kế khác nhau Các khối Led này đều được cấp nguồn thông qua các transistor Q1 – Q8 đóng vai trò như các công tắc và được điều khiển thông qua các tín hiệu điều khiển tích cực mức thấp
Các Led này được điều khiển theo phương pháp đa hợp :Phương pháp này là phương pháp mà tất cả các đoạn của các led sẽ được nối chung vào nhau và vào một port điểu khiển còn Anode của tất cả các led sẽ được nối vào một port điều khiển khác và được cấp tín hiệu quét led một cách tuần tự (tại một thời điểm chỉ có một led sáng) Ngõ vào tín hiệu 7 đoạn đa hợp của tất cả các led
sẽ được nối đến port điều khiển Ngõ vào tín hiệu điều khiển cấp nguồn cho các led, ở chế độ này thì sẽ được nối đến một port điều khiển khác cung cấp tín hiệu quét led để cấp nguồn tuần tự cho các led Phương pháp điều khiển trong trường hợp này là phải tiến hành tuần tự qua các giai đoạn : cấp một tín hiệu quét led sao cho nó chỉ có led đầu tiên rồi đưa mã 7 đoạn tương ứng cả số cần hiển thị ra led 7 đoạn đó, kế đó cấp một tín hiệu quét led sao cho chỉ có led thứ 2 được cấp nguồn rồi đưa mã 7 đoạn tương ứng của số cần hiển thị ra led 7 đoạn đó, quá trình diễn ra liên tục như vậy và
do hiện tượng lưu ảnh của mắt nên ta thấy như nó hiển thị cùng lúc
Phương pháp này thường được sử dung nhiều trong thực tế
Trang 11J 7
C O N 3
1 2 3
J 4
C O N 3
1 2 3
J 2
C O N 3
1 2 3
Giới thiệu chung :
Trong mạch sử dụng 3 bộ nguồn : 5V,12V và -12V Ta sử dụng ICổn áp họ 78XX để tạo nguồn dương và 79XX để tạo nguồn âm
Trang 12KHỐI NHIỆT ĐỘ
-U 1 A
T L 0 8 2 3
2 1
P O R T 3 1 2 3 4 5 6 7 8
Giới thiệu chung :
Để mở rộng các ứng dụng giao tiếp giữa vi điều khiển với môitrường bên ngoài và các ứng dụng mang tính thực tế hơn Vì thế, khối cảm biến nhiệtvới độ phân giải là 0.5V để người sử dụng có thể nghiên cứu và thiết kế và lập trình viđiều khiển các hệ thống nhiệt độ môi trường
LM335 là IC cảm biến nhiệt độ có thể hoạt động đến 150oC Tươngứng với nhiệt độ 0oK thì LM335 cho ra điện áp 0V Cứ tăng 1oC thì điện áp ra nàytăng 10mV Như vậy, với 0oC thì điện áp ra là 2.73V Để dễ dàng cho việc xử lý
chương trình thì với điện áp với 0oC ra là 0V Như vậy thì phải có thêm mạch khuếchđại hiệu để trừ bớt đi 2.73V
Cân chỉnh:
Cho chân số 1 vào nước đá đang tan và điều chỉnh biến trở tạichân số 3 của IC TL082 sao cho V= 2.73V
Trang 13KHỐI NÚT NHẤN
2 3
3
Trang 14HƯỚNG DẪN SỬ DỤNG
Cấp nguồn cho khối vi điều khiển hoạt động bằng cách bật cộng tắc trên khối vi điều khiển và chương trình sẽ bắt đầu chạy Ban đầu, chương trình sẽ chạyđồng hồ từ 00:00:00 và ngày tháng năm sẽ bắt đầu từ 01:01:06, chương trình chạy nhưvậy là do mặc định ban đầu của chương trình Muốn chương rtình chạy đúng như thực
tế thì ta phải hiệu chỉnh bằng các nút nhấn nằm bên tay phải
Khối nút nhấn gồm 3 nút để hiệu chỉnh đồng hồ và ngày tháng năm
+ Nút MODE kết nối với P2.0 vi điều khiển: dùng để nhảyđến các giá trị cần hiệu chỉnh : giờ, phút , ngày, tháng… mỗi khi ta nhấn cho nối massmột lần thì nó sẽ nhảy đến giá trị cần hiệu chỉnh :
3 Khi nhấn nút MODE lần 3: thì chương trình sẽ cho ta hiệu chỉnh giây và chương trình sẽ RESET giây về 00 mà thôi bằng cách nhấn nút UP
4 Khi nhấn nút MODE lần 4: thì chương trình sẽ cho ta hiệu chỉnh ngày và ta muốn tăng hay giảm ngày thì chỉ cần nhấn nút UP hoặc DOWN
5 Khi nhấn nút MODE lần 5: thì chương trình sẽ cho tahiệu chỉnh tháng và ta muốn tăng hay giảm tháng thì chỉ cần nhấn nút UP hoặc DOWN
6 Khi nhấn nút MODE lần 1: thì chương trình sẽ cho
ta hiệu chỉnh năm và ta muốn tăng hay giảm năm thì chỉ cần nhấn nút UP hoặc DOWN
+ Nút UP kết nối với P2.1 vi điều khiển : dùng để tăng giá trị khi hiệu chỉnh sau mỗi lần nhấn cho nối mass
+ Nút DOWN kết nối với P2.2 vi điều khiển : dùng để giảm giá trị khi hiệu chỉnh sau mỗi lần nhấn cho nối mass
Trang 15Khi muốn trở về chương trình mặc định ban đầu thì ta nhấn nút RESET trên khối vi điều khiển
LƯU ĐỒ GIẢI THUẬT
Trang 16KT nút MODSTART
Nút MOD=0?
Chống nhiễu nút MOD
Chống nhiễu
Nút MODE nhấn?
R2+1
MODE lần1?
Trang 17Nút DOWNnhấn?
30H=00?
Hiệu chỉnh giờ
Hiển thị giờ
Nút UP nhấn?
N
N
YY
N
YY
Trang 18Hiệu chỉnh phút
Hiển thị phút
Hiệu chỉnh giây MODE
Trang 19Hiệu chỉnh giây
Hiển thị giây
Hiệu chỉnh ngày
MODE lần3?
Nút UP nhấn?
RESET về 00Y
Y
N
N
Trang 20N35H=xem
tháng mấy?
Hiệu chỉnh ngày
Hiển thị ngày
Hiệu chỉnh tháng MODE
N
N
YY
N
YY
NN
35H=0
YY
Trang 21Hiệu chỉnh tháng
Hiển thị tháng
MODE lần5?
Y
N
Y
YY
Hiệu chỉnh năm
N
NN
YN
Y
Trang 22Hiệu chỉnh năm
Hiển thị năm
MODE lần6?
Nút UP nhấn?
Nút DOWNnhấn?
Hiển thị
N
Y
Trang 24IN phút
IN giờ
Xem phút=60?
Xem giờ=24?
N
NNN
Y
YYY
A
B
Trang 26CHƯƠNG TRÌNH PHẦN MỀM
$MOD51 nut_mode bit p2.0
nut_up bit p2.1
nut_down bit p2.2
ljmp main
ljmp chuongtrinh_dem_giay
main:
mov sp,#5fh
mov tmod,#11h
setb ea
setb et0
mov th0,#high(-50000)
mov tl0,#low(-50000) setb tr0
mov r0,#20
lcall reset
chuongtrinh_chinh:
lcall kiemtra_nut_mode_chon_hay_khong
lcall goi_chuongtrinh_dongho lcall xem_du_5phut_chua mov a,31h
cjne a,51h,chuongtrinh_chinh
chuongtrinh_chinh1:
lcall kiemtra_nut_mode_chon_hay_khong
lcall goi_chuongtrinh_duonglich
chuongtrinh_con:
lcall kiemtra_nut_mode_chon_hay_khong
lcall goi_chuongtrinh_duonglich
mov a,30h
cjne a,#30,chuongtrinh_con
mov a,31h
add a,#5
mov 51h,a
sjmp chuongtrinh_chinh
;========= HAM XET PHUT THU MAY DE NHAY SANG NGAY ========================= xem_du_5phut_chua:
mov a,51h
cjne a,#60,xet_tiep_phut1
mov 51h,#0
ret
xet_tiep_phut1:
cjne a,#61,xet_tiep_phut2
mov 51h,#1
ret
xet_tiep_phut2:
Trang 39;========= GIO PHUT GIAY MAC DINH LA 0 ===========
setb 00h ; bit trung gian de nhan biet la da dem xong ngay mov 30h,#0 ; gia tri de tang giay
mov 31h,#0 ; giatri de tang phut
mov 32h,#0 ; gia tri de tang gio
;========= NGAY THANG NAM MAC DINH NGAY 01 THANG 01 NAM 08
mov 33h,#08 ; gia tri de tang nam_duonglich
mov 34h,#01 ; gia tri de tang thang_duonglich
mov 35h,#01 ;gia tri de tang ngay_duonglich
;========= CAC O NHO DE XUAT LED HIEN THI GIO_PHUT_GIAY_NGAY_THANG_NAM ==== mov 39h,#0 ; hang don vi cua giay
mov 3ah,#0 ; hang chuc cua giay
mov 3bh,#0 ; hang don vi cua phut
mov 3ch,#0 ; hang chuc cua phut
mov 3dh,#0 ; hang don vi cua gio
mov 3eh,#0 ; hang chuc cua gio
mov 3fh,#0 ; hang don vi cua nam_duonglich
mov 40h,#0 ; hang chuc cua nam_duonglich
mov 41h,#0 ; hang don vi cua thang duong_lich
mov 42h,#0 ; hang chuc cua thang duong_lich
mov 43h,#0 ; hang don vi cua ngay_duong_lich
mov 44h,#0 ; hang chuc cua ngay_duonglich
Trang 40BÁO CÁO
Sau một thời gian nhận làm đề tài : “ ĐỒNG HỒ SỐ – NGÀY- THÁNG- NĂM
và NHIỆT ĐỘ ” chúng em đã được thầy hướng dẫn tận tình, qua tìm hiểu tài liệu và
từ bạn bè đến nay chúng em làm xong phần “ ĐỒNG HỒ SỐ – NGÀY THÁNGNĂM ”và thử nghiệm thành công ,chương trình chạy ổn định, hiệu chỉnh được nhưyêu cầu và hiện chưa phát hiện sai xót
Phần “ NHIỆT ĐỘ ” Do thời gian nghiên cứu hạn chế chúng em chỉ có thể làmxong phần cứng và chưa viết được phần mềm để kết nối với khối vi điều khiển Chúng
em sẽ cố gắng nghiên cứu tiếp để hoàn thiện đề tài này hơn nữa
Xin chân thành cảm ơn thầy đã tận tình hướng dẫn và giúp đỡ em làm
đề tài này Thành thật biết ơn thầy