Professional Documents
Culture Documents
MỤC ĐÍCH
Qua bài thực hành này, sinh viên có khả năng:
- Vận dụng và lập trình cho các bộ định thời của PIC18F bằng cả Assembly và C18.
- Vận dụng và lập trình cho các bộ đếm của PIC18F bằng cả Assembly và C18.
- Biết cách điều chỉnh các bit cấu hình của VĐK phù hợp cho các ứng dụng.
- Nâng cao kỹ năng lập trình dùng phần mềm MPLAB IDE và MPLAB C18 để lập
trình các ứng dụng ngắt cho vi điều khiển PIC 18F4550.
THIẾT BỊ VÀ PHẦN MỀM SỬ DỤNG
- Máy vi tính.
- Bộ thực hành BASIC-PIC18F TRAINER.
- Bộ “nạp/gỡ rối” PICKIT3.
- Phần mềm MPLAB IDE V8.92.
- Phần mềm MPLAB C18 V3.47.
- Phần mềm nạp chương trình PICKIT3.
5.1 KHẢO SÁT BỘ ĐỊNH THỜI
5.1.1 Thực hành 5-1: tạo sóng vuông bằng Timer0 dùng Assembly
Yêu cầu
Cho chương trình sau được viết bằng Assembly sẽ tạo sóng vuông tại chân RB.5.
Sử dụng Timer0 ở chế độ 16-bit, Timer0 không sử dụng prescaler. Hệ thống dùng
XTAL = 20 MHz.
;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
processor p18f4550
include <p18f4550.inc>
org 0x00
goto START
START bcf TRISB, 5
movlw 0x08
movwf T0CON
HERE movlw 0x76
Cho chạy kiểm tra chương trình trên hệ thống BASIC-PIC18F TRAINER và tiến
hành các bước sau:
(a) Nghe tín hiệu dao động từ loa buzzer trên module 13.
(b) Dùng máy hiện sóng đo tần số của sóng vuông được phát ra tại chân RB.5.
(c) Tính tần số dao động bằng phân tích chương trình Assembly trên.
Module thực hành trên BASIC-PIC18F TRAINER
- Module 9: PIC 18F4550
- Module 13: SOUND
- Module 4: POWER SUPPLY
Hướng dẫn
Trình tự thực hiện theo các bước sau:
Thực hiện đấu nối phần cứng
Tắt nguồn dc (công tắc S3) trên Module 4.
Ghim dây nguồn vào jack J8.
Thực hiện nối dây giữa các module theo đúng chỉ dẫn của hình 5.1.
RB.5(JP17)-J37
5V
Hình 5.1: nối cáp giữa các module của thực hành 5-1
Hợp dịch chương trình bằng MPLAB IDE: chọn Build All
Nạp chương trình vào 18F4550
Tắt nguồn dc bằng công tắc nguồn S3 trên Module 4.
Ghim PICKIT3 đúng chiều quy định (không đúng chiều sẽ làm chết
PIC18F4550 trên bộ thực hành) vào đầu cắm ICD là J15 hoặc J16 trên Module
9.
Chạy phần mềm PICKIT3.
Nhập file.hex đã hợp dịch.
Đặt các bit cấu hình.
CONFIG1 = 0x0C18; CONFIG2 = 0x1E1E
CONFIG3 = 0x8100; CONFIG4 = 0x0081
Xuất ra file_CF.hex để lưu cả các bit cấu hình vào file mã chương trình.
Chọn Program để tiến hành nạp chương trình (có chứa đựng các bit cấu hình)
vào bộ nhớ Flash của PIC 18F4550..
Kiểm tra chương trình trên BASIC-PIC18F TRAINER
Rút kit nạp PICKIT3 ra khỏi hệ thống.
Bật công tắc nguồn S3 trên Module 4.
Quan sát hoạt động của hệ thống.
Viết kết quả thực hiện vào báo cáo thực hành.
5.1.2 Thực hành 5-2: tạo sóng vuông có tần số 2 Hz bằng Timer0 dùng C18
Yêu cầu
Viết chương trình bằng C18 để phát ra tần số 2 Hz ở chân RB.5. Sử dụng
Timer0, 8-bit để tạo delay.
Module thực hành trên BASIC-PIC18F TRAINER
- Module 9: PIC 18F4550.
- Mofule 13: SOUND.
- Module 4: POWER SUPPLY.
Hướng dẫn
Trình tự thực hiện theo các bước sau:
Thực hiện đấu nối phần cứng
Tắt nguồn dc (công tắc S3) trên Module 4.
Ghim dây nguồn vào jack J8.
Thực hiện nối dây giữa các module theo đúng chỉ dẫn của hình 5.1.
Chương trình mẫu
/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
#include <p18f4550.h>
void T0M8Delay(void);
#define mybit PORTBbits.RB5
void main(void)
{
unsigned char x, y;
TRISBbits.TRISB5 = 0;
while(1)
{
mybit ^= 1; // Toggle PORTB.5.
for (x = 0; x < 250; x++) //
for (y = 0; y < 35; y++) // Get 35 (not 39).
T0M8Delay();
}
}
void T0M8Delay()
{
T0CON = 0x45; // Timer0, 8-b, 1:64 prescaler.
TMR0L = -1; //
T0CONbits.TMR0ON = 1; //
while (INTCONbits.TMR0IF == 0); //
T0CONbits.TMR0ON = 0; //
INTCONbits.TMR0IF = 0; //
}
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Biên dịch chương trình bằng MPLAB C18
Nạp chương trình vào 18F4550
Tắt nguồn dc bằng công tắc nguồn S3 trên Module 4.
Ghim PICKIT3 đúng chiều quy định (không đúng chiều sẽ làm chết
PIC18F4550 trên bộ thực hành) vào đầu cắm ICD là J15 hoặc J16 trên Module
9.
Chạy phần mềm PICKIT3.
Nhập file.hex đã biên dịch.
Đặt các bit cấu hình.
CONFIG1 = 0x0C18; CONFIG2 = 0x1E1E
CONFIG3 = 0x8100; CONFIG4 = 0x0081
Xuất ra file_CF.hex để lưu cả các bit cấu hình vào file mã chương trình.
Chọn Program để tiến hành nạp chương trình (có chứa đựng các bit cấu hình)
vào bộ nhớ Flash của PIC 18F4550.
Kiểm tra chương trình trên BASIC-PIC18F TRAINER
Rút kit nạp PICKIT3 ra khỏi hệ thống.
Bật công tắc nguồn S3 trên Module 4.
Quan sát trạng thái hoạt động của hệ thống.
Luyện tập 5-1:
Yêu cầu:
Thực hiện lại bài thực hành 5-1, nhưng TIMER0 sử dụng prescaler = 1:32.
Viết kết quả thực hiện vào báo cáo thực hành.
Luyện tập 5-2:
Yêu cầu:
Thực hiện lại bài thực hành 5-2, nhưng TIMER0 hoạt động 16-bit.
Viết kết quả thực hiện vào báo cáo thực hành.
Vị trí
jumper
5V
Hình 5.3: nối cáp giữa các module của thực hành 5-3