Tải bản đầy đủ (.doc) (11 trang)

ĐỒ ÁN KỸ THUẬT VI ĐIỀU KHIỂN: Điều khiển tăng giảm 00:99 trên led 7 thanh 2 số

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.03 MB, 11 trang )

TRƯỜ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

ThS. NGUYỄN THẾ LỰC

HOÀNG ĐÌNH TUẤN

HÀ NỘI, THÁNG 6 NĂM 2017


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,…

2


II.

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

3


III.

Lưu đồ thuật toán:

4



IV.

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

5


DONVI EQU 0x21
BIEN1 EQU 0x22
BIEN2 EQU 0x23
W_SAVE EQU 0x24
STATUS_SAVE EQU 0x25

RES_VECT CODE
GOTO

0x0000


START

; processor reset vector
; 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'

6


BTFSS STATUS,Z
GOTO NHAY

;Neu chu so hang don vi <9 thi hien thi ra led

INCF CHUC,1
MOVLW d'1'

;So sanh DONVI voi 11

;Neu chu so hang don vi >9 thi tang hang chuc len 1 don vi
;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

7


GOTO 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'

8


MOVWF 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

9


MANG_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

10


VI.
STT
1
2
3
4
5
6
7
8
9

10
11
12

Các linh kiện sử dụng
Tên linh kiện
C1815 C092 Transistor NPN
Thạch anh 4M
Điện trở 680 Ohm
Điện trở 330 Ohm
Led 7 thanh 0.56 2 số 6 chân
Nút nhấn 2 chân
Điện trở 10K Ohm
Jam nguồn đực
PIC 16F877A + đế
Tụ gốm 15P
Tụ hóa 0,1uF
Phích đồng

Số lượng
2
1
2
2
1
3
3
1
1
2

1
1

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!

11



×