I. Giới thiệu đề tài Đồ án là một trong những phần gây khó khăn cho các bạn sinh viên khi học tập, tuy nhiên đây cũng là phần được mong đợi và tạo nhiều hứng thú cho sinh viên. Đây là cơ hội để các bạn sinh viên vận dụng lý thuyết được học trên lớp một cách sáng tạo, giúp hiểu rõ và sâu về môn học đó, cũng như áp dụng vào thực tiễn, tạo tiền để cho các đồ án phức tạp và trong công việc thực tế sau này. Trong khuôn khổ môn học Kỹ thuật Vi điều khiển được giảng dạy bởi thầy giáo Nguyễn Thế Lực, em lựa chọn đề tài: “Điều khiển tăng giảm 00:99 bằng led 7 thành sử dụng PIC16F877A. Sở dĩ em lựa chọn đề tài này vì em muốn áp dụng nhiều nhất có thể những kiến thức được học ở trên lớp, bao gồm nút nhấn, led 7 thanh, chương trình ngắt, delay, … Tuy nhiên em không sao chép hay sử dụng lại những ví dụ trên lớp, em đã vận dụng sáng tạo chúng trên PIC 16F877A, ngắn RB, led 7 thanh đôi anot chung, sử dụng 2 transistor NPN để cấp nguồn dương cho chân điều khiển led 7 thanh. Ý tưởng này có thể được sử dụng để vận dụng trong thực tiễn như điều chỉnh độ sáng, độ mạnh yếu,…
Trang 1TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MÔN TỰ ĐỘNG HÓA XÍ NGHIỆP MỎ - DẦU KHÍ
BÁO CÁO ĐỒ ÁN
KỸ THUẬT VI ĐIỀU KHIỂN
Đề tài: Điều khiển tăng giảm 00:99 trên led 7 thanh 2 số
GIÁO VIÊN HƯỚNG DẪN NHÓM SINH VIÊN THỰC HIỆN
HÀ NỘI, THÁNG 6 NĂM 2017
Trang 2I Giới thiệu đề tài
Đồ án là một trong những phần gây khó khăn cho các bạn sinh viên khi học tập, tuy nhiên đây cũng là phần được mong đợi và tạo nhiều hứng thú cho sinh viên Đây là cơ hội để các bạn sinh viên vận dụng lý thuyết được học trên lớp một cách sáng tạo, giúp hiểu rõ và sâu về môn học đó, cũng như áp dụng vào thực tiễn, tạo tiền để cho các đồ
án phức tạp và trong công việc thực tế sau này.
Trong khuôn khổ môn học Kỹ thuật Vi điều khiển được giảng dạy bởi thầy giáo
Nguyễn Thế Lực, em lựa chọn đề tài: “Điều khiển tăng giảm 00:99 bằng led 7 thành
sử dụng PIC16F877A.
Sở dĩ em lựa chọn đề tài này vì em muốn áp dụng nhiều nhất có thể những kiến thức được học ở trên lớp, bao gồm nút nhấn, led 7 thanh, chương trình ngắt, delay, … Tuy nhiên em không sao chép hay sử dụng lại những ví dụ trên lớp, em đã vận dụng sáng tạo chúng trên PIC 16F877A, ngắn RB, led 7 thanh đôi anot chung, sử dụng 2
transistor NPN để cấp nguồn dương cho chân điều khiển led 7 thanh.
Ý tưởng này có thể được sử dụng để vận dụng trong thực tiễn như điều chỉnh độ sáng,
độ mạnh yếu,…
Trang 3II Mô phỏng trên proteus:
Trong đó:
- Chân RA0 là đầu ra điều khiển hàng đơn vị, chân RA1 là đầu ra điều khiển hàng chục
- Chân RB4 là đầu vào nút nhấn tăng
- Chân RB5 là đầu vào nút nhấn giảm
- Chân RC0 đến RC7 là đầu ra điều khiển led 7 thanh
Trang 4III Lưu đồ thuật toán:
Trang 5IV Code chương trình điều khiển:
Chương trình điều khiển sử dụng ngôn ngữ Assembly như sau:
; TODO INSERT CONFIG CODE HERE USING CONFIG BITS GENERATOR #include "p16f877a.inc"
; CONFIG
; config 0xFF31
CONFIG _FOSC_XT & _WDTE_OFF & _PWRTE_OFF & _BOREN_OFF
& _LVP_OFF & _CPD_OFF & _WRT_OFF & _CP_OFF
CHUC EQU 0x20
Trang 6DONVI EQU 0x21
BIEN1 EQU 0x22
BIEN2 EQU 0x23
W_SAVE EQU 0x24
STATUS_SAVE EQU 0x25
RES_VECT CODE 0x0000 ; processor reset vector GOTO START ; go to beginning of program
; TODO ADD INTERRUPTS HERE IF USED
INTR_VECT CODE 0x0004
;Bat dau chuong trinh ngat
MOVWF W_SAVE
SWAPF STATUS,0
MOVWF STATUS_SAVE
CLRF STATUS
;Chuong trinh ngat
BTFSS PORTB,4 ;Kiem tra nut tang
GOTO TANG
BTFSS PORTB,5 ;Kiem tra nut giam
GOTO GIAM
GOTO THOAT
TANG
INCF DONVI,1 ;Tang DONVI len 1
MOVF DONVI,0
XORLW d'11'
Trang 7BTFSS STATUS,Z ;So sanh DONVI voi 11
GOTO NHAY ;Neu chu so hang don vi <9 thi hien thi ra led
INCF CHUC,1 ;Neu chu so hang don vi >9 thi tang hang chuc len 1 don vi MOVLW d'1' ;Hang don vi =0
MOVWF DONVI
NHAY
MOVF CHUC,0
XORLW d'11'
BTFSS STATUS,Z ;So sanh CHUC voi 11
GOTO NHAY2 ;Neu chu so hang chuc <9 thi hien thi ra led
MOVLW d'1' ;Neu hang chuc >9 thì tro l?i 00
MOVWF CHUC
MOVWF DONVI
NHAY2
CALL MANG_MA_7SEG
GOTO THOAT
GIAM
DECFSZ DONVI,1 ;Giam DONVI xuong 1
GOTO NHAY2 ;Neu chu so hang don vi khac 0 thi hien thi ra led MOVLW d'10' ;Neu chu so hang don vi bang 0 thi hang don vi =9 MOVWF DONVI
DECFSZ CHUC,1 ;Giam chu so hang chuc xuong 1
GOTO NHAY2 ;Neu chu so hang chuc khac 0 thi hien thi ra led MOVLW d'10' ;Neu chu so hang chuc bang 0 thì quay lai 99
MOVWF CHUC
MOVWF DONVI
Trang 8GOTO NHAY2
THOAT
;Ket thuc chuong trinh ngat
SWAPF STATUS_SAVE,0
MOVWF STATUS
SWAPF W_SAVE,1
SWAPF W_SAVE,0
BCF INTCON,0 ;Xoa co ngat RB
RETFIE
MAIN_PROG CODE ; let linker place main program
ORG 0x50
START
BCF STATUS,RP1
BSF STATUS,RP0 ;CHON BANK1
CLRF TRISA
CLRF TRISC ;TRISA va TRISC là output
MOVLW 0x30
MOVWF TRISB ;Chan 4,5 c?a PORTB la input
BCF OPTION_REG,7
BCF STATUS,RP0 ;Chon bank 0
BCF INTCON,0 ;RBIF=0 ;Xoa co ngat RB
BSF INTCON,3 ;RBIE=1 ;Cho phep ngat RB
BSF INTCON,7 ;GIE=1 ;Cho phep ngat toan cuc
MOVLW d'1'
Trang 9MOVWF DONVI
MOVWF CHUC
CALL MANG_MA_7SEG ;Ban dau led hien thi so 00
LOOP ;Chuong trinh hien thi led 7 thanh
MOVLW 0x01
MOVWF PORTA
MOVF BIEN1,0
MOVWF PORTC
CALL DELAY
MOVLW 0x02
MOVWF PORTA
MOVF BIEN2,0
MOVWF PORTC
CALL DELAY
GOTO LOOP
MANG_MA_7SEG
MOVF DONVI,0
CALL MANG_MA
MOVWF BIEN1
MOVF CHUC,0
CALL MANG_MA
MOVWF BIEN2
RETURN
Trang 10MANG_MA
ADDWF PCL,1
DT 0xFF, 0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 RETURN
DELAY
MOVLW d'255'
MOVWF 0x0e
DECFSZ 0x0e,1
GOTO $-1
RETURN
END
V Vẽ mạch in
Trang 11VI Các linh kiện sử dụng
VII Kết luận:
Mặc dù đã rất cố gắng tìm hiểu và thực hiện, nhưng sản phẩm không tránh khỏi những thiếu sót Bản thân em nhận thấy rằng mình cần phát triển và cần tìm hiểu học hỏi những đề tài khó và sát với nhu cầu thực tiễn nhiều hơn
Em xin cam đoan sản phẩm này hoàn toàn do em tự tìm hiểu, không hề sao chép hay nhờ người làm hộ Em xin cảm ơn thầy đã hướng dẫn và giảng dạy tận tình để cho chúng em có cơ hội được áp dụng và thực hành những kiến thức lý thuyết vào thực tế
Em xin chân thành cảm ơn!