ĐỒNG HỒ THỜI GIAN THỰC HIỂN THỊ LED 7 ĐOẠN
Trang 1PHẦN A:
GIỚI THIỆU
Xin chào quý thầy cô cùng các bạn sinh viên khoa Điện-Điện Tử trường ĐHSPKT Tp.Hcm.Em là Nguyễn Ngọc Trí sinh viên khoa điện-điện tử ngành công nghệ kỹ thuật máy tính khoá 2008.Trong đồ án môn học 1 này em chọn đề tài đồng hồ thời gian thực hiển thị led 7 đoạn.Mạch sử dụng vi xử lý AT89S52 lấy thời gian từ RealTime DS1307 vào bộ nhớ Ram và xuất lên các led 7 đoạn Mạch còn có dùng 4 nút nhấn để điều chỉnh thời gian và hẹn giờ.
GIỚI THIỆU
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM
KHOA ĐIỆN - ĐIỆN TỬ
BỘ MÔN ĐIỆN TỬ - VIỄN THÔNG
-ĐỒ ÁN MÔN HỌC 1 NGÀNH:CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
Đề tài ĐỒNG HỒ THỜI GIAN THỰC HIỂN THỊ LED 7 ĐOẠN
TP HỒ CHÍ MINH – 7/2011
SVTH :NGUYỄN NGỌC TRÍ MSSV:08119065
Trang 3NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
GIỚI THIỆU
Trang 4Lời cảm ơn
Để hoàn thành sản phẩm và bài báo cáo này em xin chân thành cảm ơn sự giúp
đỡ và hướng dẫn tận tình của quý thầy cô khoa điện – điện tử trường ĐHSPKT Tp.Hcm ,đặc biệt là thầy Đậu Trọng Hiển.Dù đã có nhiều cố gắng nhưng chắc chắn còn nhiều điểm thiếu sót và yếu kém.Rất mong sự đóng góp của quý thầy cô cũng như các bạn để em có thể hoàn thiện hơn trong những bài báo cáo sau.Xin cảm ơn.
Trang 5MỤC LỤC
Contents
PHẦN A: 1
GIỚI THIỆU 1
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 3
Lời cảm ơn 3
MỤC LỤC 3
Bảng liệt kê các hình 3
PHẦN B:NỘI DUNG 3
CHƯƠNG1:ĐỀ CẶP VẤN ĐỀ 3
CHƯƠNG2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT 3
2.1.Sơ lược giao tiếp I2C 3
2.2 IC thời gian thực RTC (Real Time Clock)_DS1307 3
2.3 LED 7 ĐOẠN 3
2.4 AT89S52 3
CHƯƠNG 3:LƯU ĐỒ GIẢI THUẬT 3
3.1 Lưu đồ Main 3
3.2 Lưu đồ đọc dữ liệu và lưu vào Ram 89S52 3
3.3 Lưu đồ hiển thị thời gian thực lên led 7 đoạn 3
3.4 Lưu đồ chỉnh sửa thời gian 3
3.5 Lưu đồ gửi dữ liệu vào Ram DS1307 3
3.6 Lưu đồ hẹn giờ : 3
CHƯƠNG 4 :SƠ ĐỒ NGUYÊN LÝ, LAYOUT 3
4.1 Sơ đồ nguyên lý 3
4.2 Sơ đồ layout 3
4.3 Nhận xét sản phẩm 3
CHƯƠNG 5 :MÃ NGUỒN CHƯƠNG TRÌNH 3
PHẦN C:PHỤ LỤC 3
Phụ Lục A: Tổ chức thanh ghi của DS1307 3
GIỚI THIỆU
Trang 6Phụ Lục C: Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các led đơn sáng ở
mức 1): 3 Phụ lục D:Hướng dẫn sử dụng sản phẩm 3 Phụ lục E:Tài liệu tham khảo 3
Bảng liệt kê các hình
Hình 2.1.1Cấu trúc chuỗi dữ liệu truyền theo chuẩn I2C ……… Trang7
Hình 2.2.1 Cấu trúc bộ nhớ của DS1307 ……… Trang8
Hình 2.2.2 Sơ đồ kết nối cho DS1307 ………Trang8
Hình 2.3.1 Kết nối Led 7 đoạn và vi điều khiển……… Trang9
Trang 7PHẦN B:NỘI DUNG
CHƯƠNG1:ĐỀ CẬP VẤN ĐỀ
Qua các môn đã được học : vi xử lý 1, kỹ thuật số, điện tử cơ bản 1,2,truyền số liệu….Với mục đích kiểm tra lại kiến thức về điện tử nên ở đồ án môn học 1,nên người thực hiện chọn thi công mạch đồng hồ số hiện thời gian thực dùng DS1307 để vận dụng các kiến thức cơ bản đã được học.
Ở đây, do được học nhiều về AT89S52 nên sẽ sử dụng vi xử lý AT89S52 để thi công mạch Về phần hiển thị thời gian có thể dùng led 7 đoạn, led ma trận, LCD để hiển thị Đối vối led ma trận thì khá phức tạp cho việc hiển thị, do đó người thực hiện
sử dụng led 7 đoạn cho việc hiển thị.
CHƯƠNG2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT 2.1.Sơ lược giao tiếp I2C
Việc truyền nhận thông qua hai đuờng dây SCL và SDA
SDA(Serial Data) là đường dây truyền dữ liệu từng bit theo 2 huớng.
SCL(Serial Clock) là đuờng truyền xung Clock chỉ theo 1 huớng được sử dụng
để tạo xung giữ nhịp cho quá trình truyền/nhận
Hình 2.1.1Cấu trúc chuỗi dữ liệu truyền theo chuẩn I2C
2.2 IC thời gian thực RTC (Real Time Clock)_DS1307
Là chip có bộ dao động và nguồn pin riêng,có chức năng tạo và lưu trữ thông số thời gian có độ chính xác cao.
Cấu tạo chip gồm 64 thanh ghi trong đó có các thanh ghi đầu tiên lưu trữ giá trị về giây,phút giờ,thứ,ngày, tháng ,năm,và thanh ghi điều khiển.các thanh ghi còn lại có vai trò như bộ ram ngoài.
Để có thể đọc thời gian cũng như chỉnh sửa thông của chip ta dung giao thức I2C để giao tiếp với chip thông qua 2 chân SDA và SCL.
CHƯƠNG 1:ĐỀ CẶP VẤN ĐỀ
Trang 8để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này
ở mức 0 Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuống Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.
Trang 9Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led Nếu kết nối với nguồn 5V có thể hạn dòng bằng điện trở 330Ω trước các chân nhận tín hiệu điều khiển.
Sơ đồ vị trí các led được trình bày như hình dưới:
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng điện qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b Tương tự với các chân và các led còn lại.
Hình 2.3.1 Kết nối Led 7 đoạn và vi điều khiển CHƯƠNG 2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT
Trang 102.4 AT89S52
Như đã biết vi xử lý là một thiết bị điện tử có khả năng lập trình được ,có ứng dụng rộng rãi và phổ biến.Cấu trúc của vi xử lý khá phức tạp bao gồm các chân giao tiếp ,bộ nhớ dữ liệu ,bộ nhớ chương trình,kết nối với thạch anh để tạo dao động riêng,các chân giao tiếp mở rộng bộ nhớ….Trong đồ án này vi xử lý được khai thác sử dụng các tính năng tương đối đơn giản.
Vi xử lý ở đây được sử dụng như bộ liên lạc giữa việc lấy thông tin từ DS1307 và hiển thị lên Led 7 đoạn.Với DS1307 thì AT89S52 đóng vai trò như thiết
bị chủ điều khiển 2 chân giao tiếp SDA và SCL của ds1307 thông qua 2 chân P1.0
và P1.1 bằng phương pháp giao tiếp I2C.Với Led 7 đoạn thì vi xử lý dùng P0 và các chân còn lại của P1 để điều khiển 14 led 7 đoạn dùng phương pháp quét.
Hinh 2.4.1 Minh hoạ kết nối đồng hồ thời gian thực hiển thị led 7 đoạn
CHƯƠNG 3:LƯU ĐỒ GIẢI THUẬT
Trang 113.1 Lưu đồ Main
CHƯƠNG 2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT
Trang 12Đầu tiên chương trình đọc thời gian từ DS1307 sau đó dùng dữ liệu đọc để quét led 7 đoạn Tiếp đó chương trình kiểm tra bit kiemtra có bằng 1 hay không nếu có bằng
1 thì chuông kêu Nếu không thì chương trình kiểm tra các nút mode, hengio để vào chế độ chỉnh thời gian hoặc hẹn thời gian báo thức, nếu có hẹn thời gian thì chương trình sẽ kiểm tra thời gian thực với thời gian được hẹn, nếu có thì bit kiểm tra sẽ bằng
1 Sau đó chương trình quay lại làm lại từ đầu.
3.2 Lưu đồ đọc dữ liệu và lưu vào Ram 89S52
Trang 13Đây là lưu đồ đọc dữ liệu và lưu dữ liệu vào Ram 89S52(Master) Để giao tiếp với DS1307(Slave) bằng cách gửi tín hiệu Start, tiếp đó gửi địa chỉ của Slave là 0D0H, báo cho Slave rằng Master muốn ghi dữ liệu, tiếp đó gửi địa chỉ của thanh ghi mà Master muốn đọc về và cuối cùng gửi tín hiệu Stop Để đọc dữ liệu về bằng cách Master gửi tiếp tín hiệu Start, tiếp đó gửi địa chỉ của Slave là 0D1, báo cho Slave rằng Master muốn đọc dữ liệu và Master tiến hành đọc dữ liệu từ địa chỉ thanh ghi mà được gửi ở trên.
Ví dụ: giả sử muốn đọc giá trị giây từ DS1307 Thực hiện, gửi Start, gửi 0D0 (chế độ ghi), gửi 0x00 và gửi Stop Để đọc, gửi Start, gửi 0D1 (chế độ đọc), đọc giá trị giây về và lưu vào Ram 89S52.
Dữ liệu được đọc ở các thanh ghi giây, phút, giờ, ngày, tháng, năm ứng với các địa chỉ 00h, 01h, 02h, 04h, 05h, 06h.
3.3 Lưu đồ hiển thị thời gian thực lên led 7 đoạn
CHƯƠNG 2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT
Trang 14Đây là lưu đồ chuyển mã thời gian thực đọc được từ led 7 đoạn và hiển thị, đề hiện thị giá trị thời gian lên led 7 đoạn, trước hết phải chuyển giá trị muốn hiển thị thành mã led 7 đoạn bằng cách sử dụng bảng mã led 7 đoạn anode chung Tiếp theo, xuất mã led ra và bật led tương ứng với mã đó(ví dụ: mã giây tương ứng với led giây),delay 1 khoảng thời gian sau đó tắt led đó đi Nhờ hiện tượng lưu ảnh của mắt khi
vi điều khiển quét led với tần số cao trên 60Hz thì mắt sẽ thấy các led sang cùng lúc
3.4 Lưu đồ chỉnh sửa thời gian
Để cài đặt thì các biến giờ , phút , giây , ngày , tháng , năm sẽ được tang giảm thong qua việc kiểm tra các nút “TANG” và “GIAM” Việc đổi cài đặt sang giá trị nào được thực hiện qua việc kiểm tra nút “MODE” Sau đó dữ liệu được lưu vào DS1307
để nó cập nhật giá trị thời gian mới.
Trang 153.5 Lưu đồ gửi dữ liệu vào Ram DS1307
CHƯƠNG 2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT
Trang 163.6 Lưu đồ hẹn giờ :
Tương tự chỉnh thời gian nhưng ở đây chỉ hẹn giờ và phút , dữ liệu sau khi được đặt xong thì giờ được lưu vào 0BH và phút được lưu vào 0AH của DS1307 Sau đó mỗi lần cập nhật dữ liệu để quét led 7 đoạn vi điều khiển sẽ cập nhật them dữ liệu 2 thanh ghi này để so sánh với thời gian thực và báo thức.
Trang 17CHƯƠNG 4 :SƠ ĐỒ NGUYÊN LÝ, LAYOUT 4.1 Sơ đồ nguyên lý.
CHƯƠNG 2:GIỚI THIỆU KHÁI QUÁT CÁC KIẾN THỨC CẦN THIẾT
Trang 184.2 Sơ đồ layout.
Mạch điều khiển
Mạch hiển thị 4.3 Nhận xét sản phẩm.
-Ưu điềm : mạch mô phỏng gần như đầy đủ chức năng của đồng hồ vạn niên -Khuyết điềm : thiết kế mạch to, nhiều jum.
-Ứng dụng: có thể thay thế cho đồng hồ đang sử dụng.
-Hướng phát triển: thiết kế mạch 2 lớp để giảm nhỏ diện tích mạch và tăng
tính thẩm mĩ,dùng hiển thị ngày giờ trên bảng led điện tử được lắp đặt trong công ty
hay nơi công cộng ,thời gian thực còn sử dụng trong các cột đèn tín hiệu giao thông…
Trang 19
CHƯƠNG 5 :MÃ NGUỒN CHƯƠNG TRÌNH
call nhanthoigiancall quetled7doanbaothuc:
jnb kiemtra,kiemtramodesetb p3.5
jb mode,kiemtramodecall t50ms
jnb mode,$
clr p3.5clr ttclr kiemtrajmp hienthiled7doankiemtramode:
jb mode,xcall t50msjnb mode,$
jmp chinhthoigianx:
jb hengio,kiemtra1call t50msjnb hengio,$
cjne a,demh1c,hienthiled7doancall nhanthoigian
call quetled7doanmov a,r4cjne a,demh1d,hienthiled7doancall nhanthoigian
call quetled7doanmov a,r3cjne a,demp1c,hienthiled7doancall nhanthoigian
call quetled7doanmov a,r2cjne a,demp1d,hienthiled7doan
CHƯƠNG 5:MÃ NGUỒN CHƯƠNG TRÌNH
Trang 20jb tang,kiemtragiamp1call t50ms
jnb tang,$
inc demp1mov a,demp1cjne a,#60,modep1mov demp1,#00jmp modep1kiemtragiamp1:
jb giam,kiemtramodes1call t50ms
jnb giam,$
dec demp1mov a,demp1cjne a,#0ffh,modep1mov demp1,#59jmp modep1kiemtramodes1:
jb hengio,modep1call t50msjnb hengio,$
mov tam2,demp1call chuyensangbcdmov r1,#52hmov r0,#53hxchd a,@r1swap axchd a,@r0mov dulieu,amov diachi,#0ahcall truyenmov tam2,demh1call chuyensangbcdmov r1,#52hmov r0,#53hxchd a,@r1swap axchd a,@r0mov dulieu,amov diachi,#0bhcall truyensetb tt
Trang 21jb mode,modehcall t50msjnb mode,$
mov 28h,#00modep:
call quetled7doanchoptatdec dem
mov a,demcjne a,#00,kiemtratangpmov dem,#020cpl phutkiemtratangp:
jb tang,kiemtragiampcall t50ms
jnb tang,$
inc dempmov a,dempcjne a,#60,modepmov demp,#00jmp modepkiemtragiamp:
jb giam,kiemtramodescall t50ms
jnb giam,$
dec dempmov a,dempcjne a,#0ffh,modepmov demp,#59jmp modepkiemtramodes:
jb mode,modepcall t50msjnb mode,$
mov 28h,#00modes:
call quetled7doanchoptatdec dem
mov a,demcjne a,#00,kiemtratangsmov dem,#020cpl giaykiemtratangs:
jb tang,kiemtragiamscall t50ms
jnb tang,$
inc demsmov a,demscjne a,#60,modesmov dems,#00jmp modeskiemtragiams:
jb giam,kiemtramodencall t50ms
jnb giam,$
CHƯƠNG 5:MÃ NGUỒN CHƯƠNG TRÌNH
Trang 22jb mode,modetcall t50msjnb mode,$
mov 28h,#00modenam:
call quetled7doanchoptatdec dem
mov a,demcjne a,#00,kiemtratangnammov dem,#020
cpl namkiemtratangnam:
jb tang,kiemtragiamnamcall t50ms
jnb tang,$
inc demndmov a,demndcjne a,#100,modenammov demnd,#00jmp modenamkiemtragiamnam:
jb giam,kiemtramodethoatcall t50ms
jnb giam,$
dec demndmov a,demndcjne a,#0ffh,modenammov demnd,#099jmp modenamkiemtramodethoat:
jb mode,modenamcall t50msjnb mode,$
call guithoigianjmp hienthiled7doan
Trang 24jb sda,truyenclr sclcall stopretsend:
mov r7,#08hlap_send:
rlc amov sda,csetb sclclr scldjnz r7,lap_sendret
Trang 25jb thang,nam1mov tam2,demtcall chuyensangbcdmov a,53hmovc a,@a+dptrmov p2,asetb p1.3call t50msclr p1.3mov a,52hmovc a,@a+dptrmov p2,asetb p1.2call t50msclr p1.2nam1:
jb nam,thoatquetmov tam2,demndcall chuyensangbcdmov a,53hmovc a,@a+dptrmov p2,asetb p1.7call t50msclr p1.7mov a,52hmovc a,@a+dptrmov p2,asetb p1.6call t50msclr p1.6mov a,#00hmovc a,@a+dptrmov p2,asetb p1.5call t50msclr p1.5mov a,#02hmovc a,@a+dptrmov p2,asetb p1.4call t50msclr p1.4retthoatquet:
Trang 26djnz 31h,$
djnz 30h,lappop 31hpop 30hret
mov 52h,amov b,52hmov a,#0ah
Trang 28PHẦN C:PHỤ LỤC
Phụ Lục A: Tổ chức thanh ghi của DS1307
Trang 29Phụ Lục B: Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung
Số hiển thị trên led 7 Mã hiển thị led 7 đoạn dạng Mã hiển thị led 7 đoạn dạng thập
CHƯƠNG 5:MÃ NGUỒN CHƯƠNG TRÌNH
Trang 30đoạn nhị phân lục phân
5 nút nhấn:
_ Nút “mode”:
+ Nhấn lần 1 vào chế độ tăng giảm giờ + Nhấn lần 2 vào chế độ tăng giảm phút + Nhấn lần 3 vào chế độ tăng giảm giây + Nhấn lần 4 vào chế độ tăng giảm ngày + Nhấn lần 5 vào chế độ tăng giảm tháng + Nhấn lần 6 vào chế độ tăng giảm năm + Nhấn lần 7 trở về trạng thái chạy bình thường.
*Khi chuông kêu nhấn “mode” để tắt.
_ Nút “up”:tăng chỉ số hiện tại trong chế độ cài đặt.
_ Nút “down”:giảm chỉ số hiện trong chế độ cài đặt.
_ Nút “hen gio”: vào chế độ hẹn thời gian báo thức.
_ Nút “reset”:đưa vi xử lý trở về trạng thái ban đầu trước khi chạy
Trang 31Phụ lục E:Tài liệu tham khảo