Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA ĐIỆN TỬ VIỄN THÔNG
---o0o---
BÁO CÁO THÍ NGHIỆM
KỸ THUẬT VI XỬ LÝ
& VI ĐIỀU KHIỂN
Giáo viên hướng dẫn
Danh Sách SVTH
Nhóm
Nhóm:07-24A
: Phạm Xuân Trung
:Lê Trị An
Trần Lê Nhật Bình
Phạm Văn Công
Phạm Văn Hải
Nguyễn Mạnh Hổ
Cao Mạnh Hùng
: 07- 24A
Trang: 1
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
Đà Nẵng Tháng 12-2010
BÀI THÍ NGHIỆM SỐỐ 1: A LED-TURNING ON/OFF, FLASHING
1.1 MỤC ĐÍCH
-Kiểm tra khả năng truy xuất I/O của thiết bị thông qua 1 led đơn báo hiệu được mắc ở ngoài.
Tính toán trể.
1.2. Yêu cầu:
- Sử dụng được Kit PICDEM2 Plus.
- Sử dụng được bộ công cụ lập trình MPLAB.
- Viết giả thuật và chương trình bật, tắt và nháy một led đơn.
- Nắm cấu trúc phần cứng của PIC16F877A.
1.3 Sơ đồ khối chung:
BỘ XỬ
LÝ
TRUNG
TÂM
BỘ DAO
ĐỘNG
OUTPUT
Sơ đồ nguyên lí giản lược cho PIC16F877A
OSC2
RB1
PIC16f877A
OSC1
Vcc GND
1.4 Xây dựng sơ đồ khối:
1.4.1: Tính toán trể 1ms (DELAY) bằng phương pháp giảm thanh ghi:
Chu kỳ dao động của thạch anh t0 : t0 =
1
f0
Thời gian thực hiện xong một lệnh ti : ti = 4*t0.
Sử dụng thạch anh 4Mhz, thời gian thực hiện xong một lệnh là: ti = 4*
Vậy 1ms = 5*(199 + 1)*1 s
Nhóm:07-24A
1
= 1 s
4 *10 6
Trang: 2
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
1.4.2 Bật, tắt và nháy một led đơn:
BẮT ĐẦU
XÓA PORTB
CHỌN BANK1
XÓA TRISB
CHỌN BANK0
BẬT RB1
DELAY
TẮT RB1
DELAY
Nhóm:07-24A
Trang: 3
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
1.4.3 Chương trình con DELAY1MS:
DELAY
COUNT1
199
COUNT2
1
GIẢM COUNT2
COUNT2
= 0?
N
Y
GIẢM COUNT1
N
COUNT1
=0?
Y
RETURN
Nhóm:07-24A
Trang: 4
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
1.5 Viết chương trình bằng ngôn ngữ ASEMBLY:
; Khai bao vi dieu khien
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC &
_WRT_OFF & _LVP_ON & _CPD_OFF
COUNT1 EQU 0X20
COUNT2 EQU 0X21
;Bat dau chuong trinh
ORG 0X0000
GOTO START
START
CLRF PORTB
BSF STATUS,RP0
BCF STATUS,RP1
CLRF TRISB
BCF STATUS,RP0
LOOP
MOVLW 0X02
MOVWF PORTB
CALL DELAY
CLRF PORTB
CALL DELAY
GOTO LOOP
DELAY
MOVLW D'199'
MOVWF COUNT1
LOOP1
MOVLW D'1'
MOVWF COUNT2
DECFSZ COUNT2,1
GOTO $+2
DECFSZ COUNT1,1
GOTO LOOP1
RETURN
END
Nhóm:07-24A
Trang: 5
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
BÀI THÍ NGHIỆM SỐ 2: BIN COUTING,TURNING ON ODD/EVEN NUMBERED
LEDs
2.1:MỤC ĐÍCH
-Kiểm tra khả năng truy xuất I/O của thiết bị thông qua 4 led đơn báo hiệu được mắc ở ngoài và
trể tạo bởi phần mềm.
2.2. Yêu cầu:
- Sử dụng được Kit PICDEM2 Plus
- Sử dụng được bộ công cụ lập trình MPLAB
- Viết giả thuật và chương trình bật, tắt 4 led đơn theo số lẻ, số chẳn và đếm nhị phân.
- Nắm cấu trúc phần cứng của PIC16F877A.
2.3 Sơ đồ khối chung:
BỘ XỬ
LÝ
TRUNG
TÂM
BỘ DAO
ĐỘNG
OUTPUT
Sơ đồ nguyên lí giản lược cho PIC16F877A
OSC2
RB0
PIC16f877A
OSC1
RB1
RB2
RB3
Vcc GND
2.4 Xây dựng sơ đồ khối:
2.4.1 Tính toán trể 1s (DELAY) bằng phương pháp giảm thanh ghi:
1
Chu kỳ dao động của thạch anh t0 : t0 = f
0
Thời gian thực hiện xong một lệnh ti : ti = 4*t0.
Sử dụng thạch anh 4Mhz, thời gian thực hiện xong một lệnh là: ti = 4*
Vậy 1s = 4*250*(199 + 1)*5*1 s
Nhóm:07-24A
1
= 1 s
4 *10 6
Trang: 6
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
2.4.1 Bật, tắt 4 led đơn theo số lẻ, số chẳn:
ĐẾM CHẴN
ĐẾM LẺ
SETUP PORTB
SETUP PORTB
XÓA COUNT
XÓA COUNT
W
W
COUNT
GỌI TABLE
PORTB
W
COUNT
GỌI TABLE
`
PORTB
W
DELAY
DELAY
ALY
TĂNG W
TĂNG W
W XOR 8
W XOR 8
Z=0?
Z=0?
N
Y
TĂNG COUNT
Nhóm:07-24A
TĂNG COUNT
Trang: 7
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
2.4.2:Đếm nhị phân:
BẮT ĐẦU
XÓA PORTB
XÓA COUNT
W
COUNT
GỌI TABLE
PORTB
W
DELAY
TĂNG W
W XOR 15
N
Z=0?
Y
TĂNG COUNT
Nhóm:07-24A
Trang: 8
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
2.4.3 Chương trình con DELAY:
DELAY
COUNT1
4
COUNT2
250
COUNT3
199
COUNT4
1
GIẢM COUNT4
COUNT4
=0
?
GIẢM COUNT3
COUNT3
=0
?
GIẢM COUNT2
COUNT2
=0
?
Y
GIẢM COUNT1
Nhóm:07-24A
COUNT1
=0
?
RETURN
Trang: 9
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
2.5 Viết chương trình bằng ngôn ngữ ASEMBLY:
2.5.1 Bật, tắt 4 led đơn theo số chẵn:
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON
&_XT_OSC &_WRT_OFF & _LVP_OFF & _CPD_OFF
COUNT1 EQU 0X20
COUNT2 EQU 0X21
COUNT3 EQU 0X22
COUNT4 EQU 0X23
ORG 0X0000
GOTO START
START
CLRF PORTB
BCF STATUS,RP1
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
LOOP
CLRF COUNT
LOOP0
MOVF COUNT,0
CALL TABLE
MOVWF PORTB
CALL DELAY
INCF COUNT,0
XORLW D'8'
BTFSC STATUS,Z
GOTO LOOP
INCF COUNT4,1
GOTO LOOP0
TABLE
ADDWF PCL,1
RETLW b’00000000’
RETLW b’00000010’
RETLW b’00000100’
RETLW b’00000110’
RETLW b’00001000’
RETLW b’00001010’
RETLW b’00001100’
Nhóm:07-24A
Trang: 10
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
RETLW b’00001110’
DELAY
MOVLW D'4'
MOVWF COUNT1
LOOP2
MOVLW D'250’
MOVWF COUNT2
LOOP1
MOVLW D'199'
MOVWF COUNT3
LOOP0
MOVLW D'1'
MOVWF COUNT4
DECFSZ COUNT4,1
GOTO $+2
DECFSZ COUNT3,1
GOTO LOOP0
DECFSZ COUNT2,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP2
RETURN
END
2.5.2: Bật, tắt 4 led đơn theo số lẻ:
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC
&_WRT_OFF & _LVP_OFF & _CPD_OFF
COUNT1 EQU 0X20
COUNT2 EQU 0X21
COUNT3 EQU 0X22
COUNT4 EQU 0X23
ORG 0X0000
GOTO START
START
CLRF PORTB
BCF STATUS,RP1
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
LOOP
CLRF COUNT
LOOP0
MOVF COUNT,0
CALL TABLE
MOVWF PORTB
Nhóm:07-24A
Trang: 11
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
CALL DELAY
INCF COUNT,0
XORLW D'8'
BTFSC STATUS,Z
GOTO LOOP
INCF COUNT4,1
GOTO LOOP0
TABLE
ADDWF PCL,1
RETLW b’00000001’
RETLW b’00000011’
RETLW b’00000101’
RETLW b’00000111’
RETLW b’00001001’
RETLW b’00001011’
RETLW b’00001101’
RETLW b’00001111’
DELAY
MOVLW D'4'
MOVWF COUNT1
LOOP2
MOVLW D'250’
MOVWF COUNT2
LOOP1
MOVLW D'199'
MOVWF COUNT3
LOOP0
MOVLW D'1'
MOVWF COUNT4
DECFSZ COUNT4,1
GOTO $+2
DECFSZ COUNT3,1
GOTO LOOP0
DECFSZ COUNT2,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP2
RETURN
END
2.5.3:Đếm nhị phân:
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC &_WRT_OFF & _LVP_OFF & _CPD_OFF
COUNT EQU 0X20
COUNT1 EQU 0X21
COUNT2 EQU 0X22
Nhóm:07-24A
Trang: 12
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
COUNT3 EQU 0X23
ORG 0X0000
GOTO START
START
CLRF PORTB
BCF STATUS,RP1
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
LOOP
CLRF COUNT
LOOP0
MOVF COUNT,0
CALL TABLE
MOVWF PORTB
CALL DELAY
INCF COUNT,0
XORLW D'15'
BTFSC STATUS,Z
GOTO LOOP
INCF COUNT4,1
GOTO LOOP0
TABLE
ADDWF PCL,1
RETLW b’00000001’
RETLW b’00000010’
RETLW b’00000011’
RETLW b’00000100’
RETLW b’00000101’
RETLW b’00000110’
RETLW b’00000111’
RETLW b’00001000’
RETLW b’00001001’
RETLW b’00001010’
RETLW b’00001011’
RETLW b’00001100’
RETLW b’00001101’
RETLW b’00001110’
RETLW b’00001111’
DELAY
MOVLW D'4'
MOVWF COUNT1
LOOP2
MOVLW D'250’
MOVWF COUNT2
LOOP1
MOVLW D'199'
Nhóm:07-24A
Trang: 13
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
MOVWF COUNT3
LOOP0
MOVLW D'1'
MOVWF COUNT4
DECFSZ COUNT4,1
GOTO $+2
DECFSZ COUNT3,1
GOTO LOOP0
DECFSZ COUNT2,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP2
RETURN
END
Nhóm:07-24A
Trang: 14
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
BÀI THÍ NGHIỆM SỐ 3: LEFT AND RIGHT SCROLLING LEDs
3.1:MỤC ĐÍCH
-Kiểm tra khả năng truy xuất I/O của thiết bị thông qua 1 led đơn báo hiệu được mắc ở ngoài và
trể tạo bởi phần mềm.
3.2. Yêu cầu:
- Sử dụng được Kit PICDEM2 Plus
- Sử dụng được bộ công cụ lập trình MPLAB
- Viết giả thuật và chương trình quét 4 led đơn từ phải sang và từ trái sang.
- Nắm cấu trúc phần cứng của PIC16F877A.
3.3 Sơ đồ khối chung:
BỘ XỬ
LÝ
TRUNG
TÂM
BỘ DAO
ĐỘNG
OUTPUT
Sơ đồ nguyên lí giản lược cho PIC16F877A
OSC2
RB0
PIC16f877A
OSC1
RB1
RB2
RB3
Vcc GND
3.4 Xây dựng sơ đồ khối:
Nhóm:07-24A
Trang: 15
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
3.4.1: Tính toán trể 1s (DELAY) bằng phương pháp giảm thanh ghi:
1
Chu kỳ dao động của thạch anh t0 : t0 = f
0
Thời gian thực hiện xong một lệnh ti : ti = 4*t0.
Sử dụng thạch anh 4Mhz, thời gian thực hiện xong một lệnh là: ti = 4*
Vậy 2s = 8*250*(199 + 1)*5*1 s
1
= 1 s
4 *10 6
3.4.2: Sơ đồ khối:
BẮT ĐẦU
SETUP PORTB
SET BIT C
DỊCH TRÁI
PORTB
DELAY
RB3=1
?
DỊCH PHẢI
PORTB
DELAY
RB0=1
?
Nhóm:07-24A
Trang: 16
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
DELAY
3.4.2:Chương trình con DELAY:
COUNT1
8
COUNT2
250
COUNT3
199
COUNT4
1
GIẢM COUNT4
COUNT4
=0
?
GIẢM COUNT3
COUNT3
=0
?
GIẢM COUNT2
COUNT2
=0
?
GIẢM COUNT1
Nhóm:07-24A
COUNT1
=0
?
RETURN
Trang: 17
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
3.5:Chương tình ASEMBLY:
processor 16f877a
include
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON &
_XT_OSC &_WRT_OFF & _LVP_OFF & _CPD_OFF
COUNT1 EQU 0X20
COUNT2 EQU 0X21
COUNT3 EQU 0X22
COUNT4 EQU 0X23
ORG 0X0000
GOTO START
START
CLRF PORTB
BCF STATUS,RP1
BSF STATUS,RP0
CLRF PORTB
BCF STATUS,RP0
BCF STATUS,C
LEFT
RLF PORTB,f
CALL DELAY
BTFSS PORTB,3
GOTO LEFT
RIGHT
RRF PORTB,f
CALL DELAY
BTFSS PORTB,0
GOTO RIGHT
GOTO LEFT
DELAY
MOVLW D'8'
MOVWF COUNT1
LOOP2
Nhóm:07-24A
Trang: 18
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
MOVLW D'250’
MOVWF COUNT2
LOOP1
MOVLW D'199'
MOVWF COUNT3
LOOP0
MOVLW D'1'
MOVWF COUNT4
DECFSZ COUNT4,1
GOTO $+2
DECFSZ COUNT3,1
GOTO LOOP0
DECFSZ COUNT2,1
GOTO LOOP1
DECFSZ COUNT1,1
GOTO LOOP2
RETURN
END
Nhóm:07-24A
Trang: 19
Báo cáo thí nghiệm VXL&VDK
Trung
GVHD: Phạm Xuân
BÀI THÍ NGHIỆM SỐ 4: BUTTON CONTROL
4.1MỤC ĐÍCH
-Kiểm tra khả năng truy xuất I/O của thiết bị thông qua 1 led đơn báo hiệu được mắc ở ngoài và
trể tạo bởi phần mềm.
4.2. Yêu cầu:
- Sử dụng được Kit PICDEM2 Plus
- Sử dụng được bộ công cụ lập trình MPLAB
- Viêt giải thuật và chương trình dùng nút bấm để chuyển đổi các chế độ quét 4 LED đã
làm ở bài thí nghiệm số 4.
- Nắm cấu trúc phần cứng của PIC16F877A.
4.3 Sơ đồ khối chung:
BỘ DAO
ĐỘNG
BỘ XỬ
LÝ
TRUNG
TÂM
OUTPUT
INPUT
Sơ đồ khối và sơ đồ nguyên lý giản lược cho PIC16F877A
-
Sơ đồ khối:
Nhóm:07-24A
Trang: 20