Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 27 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
27
Dung lượng
311,53 KB
Nội dung
Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 ĐỒ ÁN VI XỬ LÝ Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 MỤC LỤC HÌNH Hình 1: Mô hình giao diện Hình 2: Sơ đồ khối tổng quát Hình 3: Khối điều khiển Hình 4: Khối hiển thị Hình 5: Sơ đồ xử lí trung tâm Hình 6: Sơ đồ chi tiết nút nhấn POWER Hình 7: Sơ đồ chi tiết nút nhấn RESET Hình 8: Sơ đồ chi tiết nút nhấn CONTROL, MODE… Hình 9: Sơ đồ tổng hợp nút nhấn CONTROL, MODE… Hình 10: Sơ đồ chi tiết phần hiển thị phút 10 Hình 11: Sơ đồ chi tiết phần hiển thị giây 10 Hình 12: Sơ đồ chi tiết phần loa báo thức 10 Hình 13: Sơ đồ chi tiết phần tạo xung 11 Hình 14: Sơ đồ chân IC89C51 11 Hình 15: Sơ đồ thi công toàn mạch 12 Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Phần 1: THIẾT KẾ Ý NIỆM I GIỚI THIỆU CHUNG ĐỀ TÀI II Ý TƯỞNG THIẾT KẾ Mô hình giao diện Quy trình sử dụng Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 I GIỚI THIỆU CHUNG VỀ ĐỀ TÀI: - Mạch đồng hồ sử dụng 98c51 hiển thị Ma trận led (2 ma trận led 5x7) - Yêu cầu thực mạch Đồng hồ điện tử dùng IC89C51 II Ý TƯỞNG THIẾT KẾ: Mô hình giao diện: LED HIỂN THỊ GIỜ PHÚT GIÂY Control Mode Reset Power Descrement Increment Loa Hình 1: Mô hình giao diện Trong đó: - Led hiển thị phút giây gồm ma trận led (5x7) hiển thị phút đèn led hiển thị giây đặt ma trận led trên, đươc bố trí sau: hh : mm với - - + hh : chữ số thể + mm : chữ số thể phút Switch Power dùng cung cấp nguồn cho mạch (5 VDC) Đi kèm với Power có đèn led báo hiệu có nguồn hay không Phím nhấn Resert dùng để khởi động lại 00:00 Phím nhấn Mode, Control, Increment Descrement sử dung kết hợp cho phép người sử dụng lựa chọn chế độ cho đồng hồ Cụ thể: + Nhấn phím Mode cho phép chọn chế độ: báo thức, chỉnh Theo thứ tự nhấn phím: báo thức Æ chỉnh Æ chế độ thường + Nhấn phím Control cho phép lựa chọn hay phút để chinh chế dộ tương ứng theo thứ tự nhấn: phút Ægiờ Æ phút… Mỗi lần nhấn phím led led phút chớp nháy + Phím nhấn Increment Descrement dùng để tăng (increment) hay giảm (descrement) số hiển thị led hay phút Loa thể báo thức chế độ hẹn Tất thành phần mô hình giao diện giao tiểp với IC89c51 Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Quy trình sử dụng: - Bước 1: Cấp nguồn cho mạch hoạt động switch Power Kiểm tra led Power: sáng nguồn đươc cấp cho mạch - Bước 2: Trong lúc mạch hoạt động chọn chế độ sau: + Phím nhấn Mode, Control, Increment Descrement sử dung kết hợp cho phép người sử dụng lựa chọn chế độ cho đồng hồ Cụ thể: + Nhấn phím Mode cho phép chọn chế độ: báo thức, chỉnh Theo thứ tự nhấn phím: báo thức Æ chỉnh Æ chế độ thường + Nhấn phím Control cho phép lựa chọn hay phút để chinh chế dộ tương ứng theo thứ tự nhấn: phút Ægiờ Æ phút… Mỗi lần nhấn phím led led phút chớp nháy + Phím nhấn Increment Descrement dùng để tăng (increment) hay giảm (descrement) số hiển thị led hay phút - Bước 3: Muốn mạch ngưng hoạt động gạt nút Power (đèn Power tắt) Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Phần 2: THIẾT KẾ MẠCH I SƠ ĐỒ KHỐI II SƠ ĐỒ CHI TIẾT TỪNG KHỐI Khối điều khiển Khối hiển thị Bộ xử lý trung tâm III MÔ PHỎNG Khối điều khiển Khối hiển thị Bộ xử lý trung tâm Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 I SƠ ĐỒ KHỐI: - Mạch cấu thành từ khối KHỐI HIỂN THỊ KHỐI ĐIỀU KHIỂN BỘ XỬ LÝ TRUNG TÂM Hình 2: Sơ đồ khối tổng quát - Chức khối: + Khối điều khiển: phần giao tiếp trực tiếp người sử dụng mạch đồng hồ Người sử dung chọn chế độ trình bày + Khối hiển thị: phần hiển thị kết chọn người sử dụng với mạch + Bộ xử lý trung tâm: khối quan trọng mạch, nhận yêu cầu từ người sử dụng, xử lý yêu cầu hiến thị kết thông qua Khối hiển thị II SƠ ĐỒ CHI TIẾT TỪNG KHỐI: Khối điều khiển: Power Mode Increment Reset Control Descrement Hình 3: Khối điều khiển - Với định nghĩa khối điều khiển gồm nút nhấn, lần lược có kí hiệu: Power, Reset, Mode, Control, Increment Descrement Nút nhấn Power: cung cấp nguồn cho mạch hoạt động Nút nhấn Reset: cho mạch hệ thống người thiết kế đặt Các nút nhấn Mode, Control, Increment Descrement dùng chọn chế độ: chỉnh phút, hẹn báo thức Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 - Ngoài khối có thêm đèn Led Power dùng báo có nguồn mạch hay chưa Nếu sáng mạch hoạt động Khối hiển thị: HIỂN THỊ GIỜ HIỂN THỊ GIÂY HIỂN THỊ PHÚT LOA BÁO THỨC Hình 4: Khối hiển thị - Trong phần Hiển thị hiển thị phút ma trận led 5x7, ma trận led hiển thị chữ số, cụ thể: từ đến 23 giờ, phút từ 00 đến 59 phút Phần hiển thị giây gồm đèn led chớp nháy 60 lần phút (mỗi lần chớp nháy giây) Bộ xử lý trung tâm: - Khối gồm thành phần: IC89C51 phần tạo xung thạch anh - Chức khối: + Phần tạo xung: cung cấp tín hiệu clock cho Bộ xử lí (ở IC89C51) + IC89C51: chứa chương trình giao tiếp với khối điều khiển nhậ yêu cầu xử lí yêu cầu vả hiển thị khối hiển thị - Sơ đồ khối Bộ xử lí trung tâm: PHẦN TẠO XUNG IC89C51 Hình 5: Sơ đồ xử lí trung tâm Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 III MÔ PHỎNG: Khối điều khiển: - Nút nhấn POWER: với chức cung cấp nguồn cho mạch + Các linh kiện sử dụng: switch, điện trở R = 560 led + Sơ đồ kết nối có sơ đồ sau: SW6 R15 SW_POWER 560 D3 JUMPER LED PowerLed GND Hình 6: Sơ đồ chi tiết nút nhấn POWER - Nút nhấn RESET: + Linh kiện sử dụng: điện trở R1 = 100, R2 = 10K, switch 1C = 10pF + Sơ đồ kết nối sau: +5V R2 C3 100 10pF SW5 SW_RESET R1 10K GND Hình 7: Sơ đồ chi tiết nút nhấn RESET - Ngõ sơ đồ nối vào chân (RST) IC89C51 Các nút nhấn CONTROL, MODE, INCREMENT DESCREMENT có sơ đồ kết nối sau: +5V R3 10K SW1 GND Hình 8: Sơ đồ chi tiết nút nhấn CONTROL, MODE… * Sơ đồ tổng hợp phím nhấn: + Linh kiện sử dụng: điện trở R = 10K switch +5V R3 10K R4 10K SW1 Mode GND GND KEY R6 10K SW4 Inc Control GND KEY R5 10K SW3 SW2 Dec GND KEY KEY Hình 9: Sơ đồ tổng hợp nút nhấn CONTROL, MODE… Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Ngõ CONTROL, MODE, INCREMENT DECREMENT nối vào chân 39, 38, 37, 36 ic89c51 Khối hiển thị: - Phần hiển thị giờ, phút giây: gồm ma trận Led 5x7 dùng hiển thị phút, đèn led thường dùng hiển thị giây Transistor 2N2222, điện trở R = 220 điện trở R = 220 ** Sơ đồ sau: + Phần hiển thị phút: có 17 ngõ vào chân: 1, 2, 3, 4, 5, 6, 7, 21, 22, 23, 24, 25, 26, 27, 28, 32 33 Do tín hiệu xuất từ IC89C51 yếu nên sử dụng thêm Transistor để khuếch đại dòng cung cấp cho ma trận Led G.2 G.0 G.1 Ph.2 Ph.0 Ph.1 Q7 Q6 C1 C0 H3 10 11 Q5 Q4 2N2222 R12 220 Q3 2N2222 R10 220 H0 H1 Q2 Q1 2N2222 R9 220 H2 C3 Ph.3 2N2222 R11 220 H4 C4 Ph.4 2N2222 R13 220 H0 H1 H2 G.3 U3 Led Array C3 G.4 H4 C4 Led Array C2 C1 H6 U2 H5 12 C0 H3 10 C2 11 H6 Ph.0 Ph.1 Ph.2 Ph.3 Ph.4 G.0 G.1 G.2 H5 12 G.4 G.3 2N2222 R8 220 2N2222 R7 220 +5V H6 H5 H4 H3 H2 H0 H1 Hình 10: Sơ đồ chi tiết phần hiển thị phút + Phần hiển thị giây: gồm đèn led thường với ngõ vào từ chân 34 D1 +5V R14 LED D2 270 Hình 11: Sơ đồ chi tiết phần hiển thị giây - Phần loa báo thức: ngõ vào nối từ chân ic89c51, dùng Transistor 2N2222, điện trở R = 220 loa +5V R16 220 Q8 U6 1 2N2222 + - GNDSpeaker Hình 12: Sơ đồ chi tiết phần loa báo thức Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 10 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Phần 3: HIỆN THỰC MẠCH I LINH KIỆNN SỬ DỤNG TRONG MẠCH II THI CÔNG MẠCH Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 13 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 I LINH KIỆN SỬ DỤNG TRONG MACH: - Mạch thực toàn phần giới thiệu - Linh kiện sử dụng mạch gồm: Tên Linh Kiện IC89C51 Ma trận Led (5x7) Nút nhấn Transistor Led Điện trở Loa Tụ điện Thạch anh Socket Tổng cộng Kí Hiệu AT89C51 HDSP – F211 2222A R C Số Lượng 16 4 46 II THI CÔNG MẠCH: - Vẽ mạch in Orcad 9.0: Capture Layout Plus - Chương trình viết phần mềm ASM51 - Sử dụng mạch ghi ROM Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 14 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Phần 4: CHƯƠNG TRÌNH ASM51 I GIỚI THIỆU GIẢI THUẬT Tổ chức liệu Kĩ thuật quét phím Xử lý phần hiển thị II MÃ NGUỒN Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 15 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 I GIỚI THIỆU GIẢI THUẬT: Tổ chức liệu: Kĩ thuật quét phím: Xử lí phần hiển thị: Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 16 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 II MÃ NGUỒN: ;CHUONG TRINH DONG HO DUNG 89C51 ;*************************************************** ; DUNG 10 O NHO TU 30H DEN 39H DE CHUA DU LIEU CAN XUAT CHO HAI DEN ; R0 SE LA CON CHAY CHAY TU 39 H DEN 30 H ; R1 DINH THOI CHO 0,5 GIAY DE CHOP TAT DEN ; R2 DINH THOI CHO MOT PHUT DE TANG R4 ; R3 CHUA GIO HIEN TAI ; R4 CHUA PHUT HIEN TAI ; R5 CHUA GIA TRI INDEX CUA COT CAN XUAT CAC COT SE DUOC LAY TRONG ;BANG TU DUOI LEN ; R6 DUNG DE DINH THOI SAU 5*40 mili giay CHO PHEP XU LY PHIM NEU ;PHIM VAN DUOC NHAN ; R7 DINH THOI SAU 40 mili giay KIEM TRA VIEC NHAN PHIM ; 20H,21H,22H: CAC O NHO DUNG TEST PHIM ; CHI NHAN PHIM NHAN NEU O NHO 20H VA 21H CO GIA TRI BANG NHAU ; 22H: CHUA TRANG THAI CUOI CUNG CUA PHIM NHAN DUOC NHAN ; NEU 22H=21H THI KHONG CAN XU LY PHIM NHAN ; NGUOC LAI NEU 22H21H THI CO NGHIA LA CO TRANG THAI MOI, CHU Y ;CHI LAY BYTE CAO CUA PORT P0 ; 26H LUU GIA TRI BIT CHO COT CAN HIEN THI DEN SE DUOC QUET TU ;PHAI SANG TRAI ; 63H CHUA GIO REO ; 64H CHUA PHUT DINH THOI REO ;*************************************************** ; CHUONG TRINH DA SU DUNG CAC BYTE VA BIT SAU: ; BIT: ; 20H=1 :CHINH GIO PHUT DONG HO REO ; 21H=1 :CHINH GIO PHUT ; 22H=1 :CHE DO BINH THUONG,HIEN THI GIO PHUT HIEN TAI ; 18H=1 : CHON GIO,CO CHOP DEN ; 19H=1 : CHON PHUT,CO CHOP DEN ; 1AH=1 : BINH THUONG,KHONG CHOP DEN ; 50H,51H,52H,53H : PHUC VU CHO VIEC NHAY DEN ; 54H : CO CHO NGAT ;BYTE: ; 7FH : CAT TAM GIA TRI B ; 7EH=5 : DINH THOI CHO REO TRONG PHUT ; 61H,62H : CAT TAM R1,R2 (PUSH) $DEBUG $NOPAGING $NOSYMBOLS $MOD51 Org JMP main ORG 0Bh JMP timer_int0 ORG 1Bh JMP timer_int1 ORG 30h Main: ;KHOI TAO GIA TRI CHO CAC THANH GHI MOV R7,#20 ;sau 20ms kiem tra viec nhan phim MOV R5,#1 ;chua index cua cot can xuat MOV R2,#5 ; MOV 26H,#7FH ;gia tri bit o cot can hien thi MOV R6,#3 MOV R0,#39H ;cho tro du lieu den cuoi buffer Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 17 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 MOV R1,#1 ;****************************************** MOV R3,#25 ;phut mac dinh MOV R4,#13 ;gio mac dinh MOV 23H,#4H ;tuong duong voi viec set bit 1ah=1 MOV 24H,#4H ;tuong duong voi viet set bit 22h=1 CALL LOAD_GIO CALL LOAD_PHUT ;****************************************** MOV 63H,#0 ;mac dinh gio hen la MOV 64H,#0 ;mac dinh phut hen la ; MOV TMOD,#11H ;chon mode cho hai bo dem deu o che dinh thoi 16 bit MOV IE,#8AH ;cho phep ngat MOV P0,#0FFH ;xuat ffh port0 de co the doc du lieu vao duoc MOV DPTR,#1000 ;chi den dia chi cua du lieu SETB TF0 ;ngat vao chuong trinh SJMP $ ;*************************************************** ; DUNG BO DEM CU MOI miliGiay (500HZ)SE XU LI VIEC HIEN THI (VA ;NHAN PHIM) ;*************************************************** timer_int0: CLR TR0 ;du'`ng bo dinh thoi ; QUET VOI TAN SO 250HZ MOV TH0,#HIGH(-1988) ;chon ~2000 micro giay ~2 mili giay MOV TL0,#LOW(-1988) ; SETB TR0 ;cho phep bo dinh thoi tiep tuc hoat dong ;*************************************************** ; XU LY NHAN PHIM ;*************************************************** DJNZ R7,TIEP_R7_1 MOV R7,#20 ;cu 20*2=40mili giay thi xu li phim mot lan ; -; XU LY NHAY DEN ; -JNB 19H,THOAT_111 ;neu chon phut (bit 19h=1) thi se nha'y phut CPL 50H ;bit 50h se bat/tat cho moi lan nha'y de`n phut JB 50H,THOAT_112 CALL CLEAR_PHUT JMP THOAT_111 THOAT_112: CALL LOAD_PHUT THOAT_111: JNB 18H,THOAT_211 ;neu chon gio (bit 18h=1) thi se nha'y gio CPL 51H ;bit 51h se bat/tat cho moi lan nha'y de`n gio JB 51H,THOAT_212 CALL CLEAR_GIO JMP THOAT_211 THOAT_212: CALL LOAD_GIO THOAT_211: ; -;SAU CHU KY * R7 THI XOA 22H DE CHO PHEP PHIM NHAN Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 18 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 ; -DJNZ R6,TIEP_R6 MOV R6,#3 MOV 22H,#0FH JMP TIEP_R6 TIEP_R7_1: JMP TIEP_R7 TIEP_R6: MOV 20H,P0 ;doc tin hieu phim nhan tu port0 vao byte 20h de xu li MOV A,20H ; ; LOC DU LIEU NIBBLE CAO ; ANL A,#0FH CJNE A,21H,NOT_EQUAL ;can phai kiem tra lai lan nua co phim nhan thuc su khong CJNE A,22H,THUC_THI ;xac dinh dung la co phim nhan NOT_EQUAL: MOV 21H,A JMP TIEP_R7 ;ket thuc xu li phim THUC_THI: MOV 22H,21H ;chuyen ket qua cuoi cung vao byte 22h MOV R6,#5 ;chuyen gia tri vao R6 de xu li truong hop nhan phim qua 5*40 miligiay ; ; XU LY PHIM NHAN TANG ; JB 22H,SKIP1 ;che binh thuong->nhay den xu ly chon che JB 1AH,SKIP1 ;khong chop den->nhay den xu ly chon che JB 0H,SKIP0 ;co phim nhan giam JB 19H,PHUT_00 ;dang o che chon chinh phut JB 18H,GIO_00 ;dang o che chon chinh gio JMP EXIT PHUT_00: INC R3 CJNE R3,#60,SKIP000 MOV R3,#0 SKIP000: CALL LOAD_PHUT SETB 55H ;bit 55h ghi nho la da co nhan phim JMP EXIT GIO_00: INC R4 CJNE R4,#24,SKIP001 MOV R4,#0 SKIP001: CALL LOAD_GIO SETB 55H ;bit 55h ghi nho la da co nhan phim JMP EXIT ; -; XU LY PHIM NHAN GIAM ; -SKIP0: JB 1H,SKIP1 ;khong phai phim nhan giam nhay toi chon che Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 19 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 JB 19H,PHUT_11 JB 18H,GIO_11 JMP EXIT PHUT_11: DEC R3 CJNE R3,#-1,SKIP010 MOV R3,#59 SKIP010: CALL LOAD_PHUT SETB 55H ;bit 55h ghi nho la da co nhan phim JMP EXIT GIO_11: DEC R4 CJNE R4,#-1,SKIP011 MOV R4,#23 SKIP011: CALL LOAD_GIO SETB 55H ;bit 55h ghi nho la da co nhan phim JMP EXIT ; -; XU LY PHIM NHAN CHON CHE DO ; -SKIP1: JB 2H,SKIP2 ;khong phai la phim chon che JB 22H,SET_20 ;nhay den che chinh gio reo JB 20H,SET_21 ;nhay den che chinh gio hien tai JB 21H,SET_22 JMP KET_THUC_01 ;CHE DO CHINH GIO HIEN TAI SET_21: ;PHUC HOI DU LIEU GIO HIEN TAI ;CAT GIO REO VAO O NHO 63H,64H MOV A,63H XCH A,R3 MOV 63H,A MOV A,64H` XCH A,R4 MOV 64H,A JB 55H,SET_22 ;CO SU THAY DOI KHI CHINH REO SETB 21H CLR 22H CLR 20H JMP SET_19 ;CHO NHAY DEN JMP KET_THUC_01 ;CHE DO CHINH GIO REO SET_20: SETB 20H ;dang o che chinh gio reo CLR 21H CLR 22H ; load gio phut reo buffer la byte 63h va 64h MOV A,63H XCH A,R3 MOV 63H,A MOV A,64H XCH A,R4 MOV 64H,A Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 20 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 CALL LOAD_GIO CALL LOAD_PHUT JMP SET_19 JMP KET_THUC_01 SET_22: SETB 22H CLR 20H CLR 21H CLR 55H ;cho phep nhay den ;xoa co xac nhan co phim nhan neu co CALL LOAD_GIO CALL LOAD_PHUT JMP SET_1A ;cam nhay den KET_THUC_01: JMP EXIT ; ; XU LY PHIM NHAN CHON GIO PHUT ; SKIP2: ;neu chuong dang reo thi tat chuong JNB TR1,KHONG_REO CLR TR1 KHONG_REO: JB 3H,EXIT ;khong phai phim chon gio phut JB 22H,EXIT JB 1AH,SET_19 ;day la doan code de hoan doi viec chon gio/phut/binh thuong JB 19H,SET_18 JB 18H,SET_19 JMP KET_THUC_00 ;neu nhan phim chuyen qua chon phut SET_19: SETB 19H CLR 1AH CLR 18H JMP KET_THUC_00 ;neu nhan phim chuyen qua chon gio SET_18: SETB 18H CLR 19H CLR 1AH JMP KET_THUC_00 ;chon tro lai trang thai binh thuong SET_1A: SETB 1AH CLR 19H CLR 18H KET_THUC_00: CALL LOAD_PHUT CALL LOAD_GIO ; -EXIT: ;*************************************************** -;GIAM R5 NEU BANG KHONG THI THIET LAP LAI GIA TRI R5, ; R5 DUNG DE CHON DU LIEU CHO COT Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 21 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 ;*************************************************** TIEP_R7: DJNZ R5,TIEP_R5 MOV R5,#10 MOV 26H,#7FH ;chuan bi cho viec xuat chon cot MOV R0,#39H ;chuan bi cho viec xuat du lieu bang cach dua chay ve cuoi bang SETB P0.7 ;hai bit cua port0 dung cho viec xuat gio SETB P0.6 ; -; XU LY CHO DINH THOI GIAY ; -DJNZ R1,TIEP_R1 MOV R1,#25 ;25*20=500 mili giay nhay den chi giay mot lan ; DAO BIT P0.5 NOI RA DEN CPL P0.5 JB P0.5,TIEP_R11 DJNZ R2,TIEP_R2 MOV R2,#60 INC R3 ; KIEM TRA XEM VUOT QUA 60 CJNE R3,#60,KHONG_R3 MOV R3,#0 INC R4 ; KIEM TRA GIO CJNE R4,#24,KHONG_R4 MOV R4,#0 KHONG_R4: CALL LOAD_GIO KHONG_R3: CALL LOAD_PHUT ; ; XU LY HEN GIO ; MOV A,R4 CJNE A,64H,KHONG_HEN_GIO ;so sanh gio hen bo nho voi gio hien tai MOV A,R3 CJNE A,63H,KHONG_HEN_GIO MOV 7EH,#5 SETB TF1 JMP EXIT_REO KHONG_HEN_GIO: MOV A,7EH DEC A CJNE A,#0,KHAC_KHONG00 CLR TR1 JMP EXIT_REO KHAC_KHONG00: MOV 7EH,A EXIT_REO: TIEP_R2: TIEP_R11: TIEP_R1: TIEP_R5: CJNE R5,#2,KHONG_P07 ;xet xem co can dung p0.7 de hien thi khong Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 22 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 MOV P2,#0FFH CLR P0.7 JMP EXIT_9 KHONG_P07: CJNE R5,#1,kHONG_P06 ;xet xem co can dung p0.6 de hien thi khong MOV P2,#0FFH CLR P0.6 SETB P0.7 JMP EXIT_9 KHONG_P06: ;XUAT BIT RA COT DANG QUET MOV A,26H ;lay gia tri cua 26h- o nho chua cot dang quet RL A MOV P2,A MOV 26H,A EXIT_9: ;XUAT GIA TRI MOV A,@R0 DEC R0 MOV P1,A BOQUA: RETI ;**************************************************** timer_int1: CLR TR1 ;tan so cua chuong la 1000/(0.5+0.3) ~ 1250hz CPL 54H JB 54H,TANSO1 MOV TH1,#HIGH(-500) ;o muc cao(hoac thap) thoi gian 0.5 mili giay MOV TL1,#LOW(-500) JMP EXIT_31 TANSO1: MOV TH1,#HIGH(-300) MOV TL1,#LOW(-300) ;o muc thap(hoac cao) thoi gian 0.3 mili giay EXIT_31: CPL P1.7 SETB TR1 RETI ;***************************************************-; CHUONG TRINH CON TINH DO DOI TRONG DPTR ; TUONG UNG VOI CHI SO TRONG A ; TRA VE DPTR TUONG UNG ;***************************************************-DO_DOI: CLR C MOV DPTR,#1000 MOV B,#5 MUL AB ADD A,DPL MOV DPL,A MOV A,DPH ADDC A,B Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 23 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 MOV DPH,A RET ;*************************************************** ;CHUONG TRINH LOAD DU LIEU CHO GIO DUOC LUU TRONG ; O NHO 29H ;*************************************************** LOAD_GIO: MOV 62H,R2 ;tam luu gia tri R1,R2 vao bo nho MOV 61H,R1 CLR C MOV A,R4 ;doan kiem tra xem hang chuc cua gio co bang khong MOV B,#10 DIV AB MOV 7FH,B ;byte 7fh se chua gia tri hang chuc cua phut CJNE A,#0H,KHAC_KHONG MOV 30H,#0 ;neu so hang chuc bang thi khong hien thi MOV 31H,#0 MOV 32H,#0 MOV 33H,#0 MOV 34H,#0 JMP EXIT_8 ;LAY SO HANG CHUC KHAC_KHONG: CALL DO_DOI ;CAT R2 MOV R2,#0 ;R2 la bien dem de doc du lieu(chay tu 0-4) MOV R1,#30H ;R1 tro den dia chi se chep du lieu vao (tu 30h-34h) LAP_8: CJNE R1,#35H,DONE_8 ;dua so hang chuc vao cac o nho tu 30h-34h JMP EXIT_8 DONE_8: MOV A,R2 MOVC A,@A+DPTR SWAP A ;DUA DU LIEU VAO BYTE CAO MOV @R1,A INC R2 INC R1 JMP LAP_8 EXIT_8: MOV A,7FH ;lay so hang chuc cua gio dua vao xu li CALL DO_DOI MOV R2,#0 MOV R1,#30H LAP_88: CJNE R1,#35H,DONE_88 JMP EXIT_88 DONE_88: MOV A,R2 MOVC A,@A+DPTR ;DUA DU LIEU VAO BYTE THAP ADD A,@R1 MOV @R1,A Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 24 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 INC R2 INC R1 JMP LAP_88 EXIT_88: MOV R2,62H MOV R1,61H RET ;*************************************************** ;CHUONG TRINH LOAD DU LIEU CHO PHUT DUOC LUU TRONG ; O NHO 28H ;*************************************************** LOAD_PHUT: MOV 62H,R2 MOV 61H,R1 CLR C MOV A,R3 MOV B,#10 DIV AB MOV 7FH,B ;byte 7fh se chua gia tri hang chuc cua phut ;LAY SO HANG CHUC CALL DO_DOI MOV R2,#0 MOV R1,#35H LAP_7: CJNE R1,#3AH,DONE_7 JMP EXIT_7 DONE_7: MOV A,R2 MOVC A,@A+DPTR SWAP A ;DUA DU LIEU VAO BYTE CAO MOV @R1,A INC R2 INC R1 JMP LAP_7 EXIT_7: MOV A,7FH ;lay so hang chuc cua phut dua vao xu li CALL DO_DOI MOV R2,#0 MOV R1,#35H LAP_77: CJNE R1,#3AH,DONE_77 JMP EXIT_77 DONE_77: MOV A,R2 MOVC A,@A+DPTR ;DUA DU LIEU VAO BYTE THAP ADD A,@R1 MOV @R1,A INC R2 INC R1 JMP LAP_77 EXIT_77: MOV R2,62H MOV R1,61H RET ;*************************************************** ; CLEAR NHAM PHUC VU CHO CHUONG TRINH NHAY DEN Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 25 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 ;*************************************************** CLEAR_GIO: MOV 30H,#0H MOV 31H,#0H MOV 32H,#0H MOV 33H,#0H MOV 34H,#0H RET ;*************************************************** CLEAR_PHUT: MOV 35H,#0H MOV 36H,#0H MOV 37H,#0H MOV 38H,#0H MOV 39H,#0H RET ;*************************************************** ORG 1000 CHAR_0: DB 7,5,5,5,7 CHAR_1: DB 1,1,1,1,1 CHAR_2: DB 7,4,7,1,7 CHAR_3: DB 7,1,7,1,7 CHAR_4: DB 1,1,7,5,5 CHAR_5: DB 7,1,7,4,7 CHAR_6: DB 7,5,7,4,7 CHAR_7: DB 1,1,1,1,7 CHAR_8: DB 7,5,7,5,7 CHAR_9: DB 1,1,7,5,7 END Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 26 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 Phần 6: TÀI LIỆU THAM KHẢO Tài liêu tham khảo: The 8051 MicroController (2nd Edition, I.Scott MacKenzie, Prentice Hall) Họ vi diều khiển 8051 (Tống văn Ơn – Hoàng Đức Hải, NXB Lao Động – Xã Hội – Hà Nội – 2001) Giáo viên hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 27 [...]... hiển thị: Giáo vi n hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 16 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 II MÃ NGUỒN: ;CHUONG TRINH DONG HO DUNG 89C51 ;*************************************************** ; DUNG 10 O NHO TU 30H DEN 39H DE CHUA DU LIEU CAN XUAT CHO HAI DEN ; R0 SE LA CON CHAY CHAY TU 39 H DEN 30 H ; R1 DINH THOI CHO 0,5 GIAY DE CHOP TAT DEN ; R2 DINH THOI CHO MOT PHUT... ; XU LY PHIM NHAN TANG ; JB 22H,SKIP1 ;che do binh thuong->nhay den xu ly chon che do JB 1AH,SKIP1 ;khong chop den->nhay den xu ly chon che do JB 0H,SKIP0 ;co phim nhan giam JB 19H,PHUT_00 ;dang o che do chon chinh phut JB 18H,GIO_00 ;dang o che do chon chinh gio JMP EXIT PHUT_00: INC R3 CJNE R3,#60,SKIP000 MOV R3,#0 SKIP000: CALL LOAD_PHUT SETB 55H ;bit 55h ghi nho la da co nhan... DJNZ R5,TIEP_R5 MOV R5,#10 MOV 26H,#7FH ;chuan bi cho viec xuat chon cot MOV R0,#39H ;chuan bi cho viec xuat du lieu bang cach dua con chay ve cuoi bang SETB P0.7 ;hai bit nay cua port0 dung cho viec xuat gio SETB P0.6 ; -; XU LY CHO DINH THOI GIAY ; -DJNZ R1,TIEP_R1 MOV R1,#25 ;25*20=500 mili giay nhay den chi giay mot lan ; DAO BIT P0.5 NOI RA DEN CPL P0.5 JB P0.5,TIEP_R11... COT CAN XUAT CAC COT SE DUOC LAY TRONG ;BANG TU DUOI LEN ; R6 DUNG DE DINH THOI SAU 5*40 mili giay CHO PHEP XU LY PHIM NEU ;PHIM VAN DUOC NHAN ; R7 DINH THOI SAU 40 mili giay KIEM TRA VIEC NHAN PHIM ; 20H,21H,22H: CAC O NHO DUNG TEST PHIM ; CHI NHAN PHIM NHAN NEU 2 O NHO 20H VA 21H CO GIA TRI BANG NHAU ; 22H: CHUA TRANG THAI CUOI CUNG CUA PHIM NHAN DUOC NHAN ; NEU 22H=21H THI KHONG CAN XU LY PHIM NHAN... giay thi xu li phim mot lan ; -; XU LY NHAY DEN ; -JNB 19H,THOAT_111 ;neu chon phut (bit 19h=1) thi se nha'y phut CPL 50H ;bit 50h se bat/tat cho moi lan nha'y de`n phut JB 50H,THOAT_112 CALL CLEAR_PHUT JMP THOAT_111 THOAT_112: CALL LOAD_PHUT THOAT_111: JNB 18H,THOAT_211 ;neu chon gio (bit 18h=1) thi se nha'y gio CPL 51H ;bit 51h se bat/tat cho moi lan nha'y de`n gio JB 51H,THOAT_212 CALL... R5,#2,KHONG_P07 ;xet xem co can dung p0.7 de hien thi khong Giáo vi n hướng dẫn: TS PHẠM TƯỜNG HẢI Trang 22 Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51 MOV P2,#0FFH CLR P0.7 JMP EXIT_9 KHONG_P07: CJNE R5,#1,kHONG_P06 ;xet xem co can dung p0.6 de hien thi khong MOV P2,#0FFH CLR P0.6 SETB P0.7 JMP EXIT_9 KHONG_P06: ;XUAT BIT 0 RA COT DANG QUET MOV A,26H ;lay gia tri cua 26h- o nho chua... TRI BIT 0 CHO COT CAN HIEN THI DEN SE DUOC QUET TU ;PHAI SANG TRAI ; 63H CHUA GIO REO ; 64H CHUA PHUT DINH THOI REO ;*************************************************** ; CHUONG TRINH DA SU DUNG CAC BYTE VA BIT SAU: ; BIT: ; 20H=1 :CHINH GIO PHUT DONG HO REO ; 21H=1 :CHINH GIO PHUT ; 22H=1 :CHE DO BINH THUONG,HIEN THI GIO PHUT HIEN TAI ; 18H=1 : CHON GIO,CO CHOP DEN ; 19H=1 : CHON PHUT,CO CHOP DEN ;... R3,#60,KHONG_R3 MOV R3,#0 INC R4 ; KIEM TRA GIO CJNE R4,#24,KHONG_R4 MOV R4,#0 KHONG_R4: CALL LOAD_GIO KHONG_R3: CALL LOAD_PHUT ; ; XU LY HEN GIO ; MOV A,R4 CJNE A,64H,KHONG_HEN_GIO ;so sanh gio hen trong bo nho voi gio hien tai MOV A,R3 CJNE A,63H,KHONG_HEN_GIO MOV 7EH,#5 SETB TF1 JMP EXIT_REO KHONG_HEN_GIO: MOV A,7EH DEC A CJNE A,#0,KHAC_KHONG00 CLR TR1 JMP EXIT_REO KHAC_KHONG00:... ;*************************************************** ; DUNG BO DEM 1 CU MOI 2 miliGiay (500HZ)SE XU LI VIEC HIEN THI (VA ;NHAN PHIM) ;*************************************************** timer_int0: CLR TR0 ;du'`ng bo dinh thoi 0 ; QUET VOI TAN SO 250HZ MOV TH0,#HIGH(-1988) ;chon ~2000 micro giay ~2 mili giay MOV TL0,#LOW(-1988) ; SETB TR0 ;cho phep bo dinh thoi 0 tiep tuc hoat dong ;*************************************************** ; XU LY NHAN... SKIP2: ;neu chuong dang reo thi tat chuong JNB TR1,KHONG_REO CLR TR1 KHONG_REO: JB 3H,EXIT ;khong phai phim chon gio phut JB 22H,EXIT JB 1AH,SET_19 ;day la doan code de hoan doi viec chon gio/phut/binh thuong JB 19H,SET_18 JB 18H,SET_19 JMP KET_THUC_00 ;neu nhan phim chuyen qua chon phut SET_19: SETB 19H CLR 1AH CLR 18H JMP KET_THUC_00 ;neu nhan phim chuyen qua chon gio SET_18: SETB 18H CLR