1. Trang chủ
  2. » Giáo án - Bài giảng

Giáo trình thực hành vi xử lý kỹ thuật vi xử lý CD ROM

385 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Giáo Trình Thực Hành Vi Xử Lý Kỹ Thuật Vi Xử Lý
Tác giả Phạm Quang Trí
Trường học Khoa Công Nghệ Điện Tử
Chuyên ngành Điện Tử Máy Tính
Thể loại Giáo Trình
Năm xuất bản 2012
Định dạng
Số trang 385
Dung lượng 35,88 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Microsoft Word Document1 GIÁO TRÌNH THỰC HÀNH VI XỬ LÝ KỸ THUẬT VI XỬ LÝ BỘ MÔN ĐIỆN TỬ MÁY TÍNH KHOA CÔNG NGHỆ ĐIỆN TỬ BÀI GIẢNG THỰC HÀNH VI XỬ LÝ PIC December 22, 2012 Biên soạn Phạm Quang Trí pqtri2002gmail com 1 BÀI 1 LẬP TRÌNH ĐIỀU KHIỂN XUẤT NHẬP CƠ BẢN LED ĐƠN MỤC ĐÍCH � Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp chương trình vào vi điều khiển và sử dụng Mô hình thí nghiệm PIC để kiểm chứng � Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển PIC.

Trang 1

GIÁO TRÌNH THỰC HÀNH

VI XỬ LÝ/ KỸ THUẬT VI XỬ LÝ

BỘ MÔN ĐIỆN TỬ MÁY TÍNH _ KHOA CÔNG NGHỆ ĐIỆN TỬ

Trang 2

BÀI 1 LẬP TRÌNH ĐIỀU KHIỂN XUẤT NHẬP CƠ BẢN:

LED ĐƠN

MỤC ĐÍCH:

 Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp chương trình vào vi điều khiển và sử dụng Mô hình thí nghiệm PIC để kiểm chứng

 Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển PIC

 Điều khiển xuất nhập cơ bản sử dụng LED đơn

YÊU CẦU:

 Nắm vững cấu trúc và tập lệnh của vi điều khiển PIC

 Nắm vững cấu trúc của LED đơn

 Nắm được sơ đồ và nguyên lý hoạt động của Modul LED đơn trên Mô hình thí nghiệm PIC

 Nắm được nguyên lý điều khiển LED đơn ở các chế độ khác nhau

 Biết cách viết các chương trình điều khiển LED đơn ở hoạt động theo nhiều kiểu khác nhau

Trang 7

1.2.2.1 Sơ đồ nguyên lý:

 Bước 1: Thiết kế sơ đồ nguyên lý của mạch điều khiển

Hình 1.10: Sơ đồ nguyên lý của mạch điều khiển.

1.2.2.2 Lưu đồ giải thuật:

 Bước 2: Thiết kế lưu đồ giải thuật của chương trình điều khiển

Hình 1.11: Lưu đồ giải thuật của chương trình điều khiển.

1.2.2.3 Chương trình điều khiển:

 Bước 3: Sử dụng phần mềm MPLAB và công cụ biên dịch Hi-Tech, dựa vào lưu đồ giải thuật

của chương trình điều khiển đã thiết kế để thực hiện việc viết chương trình, biên dịch và kiểm tra lỗi

cú pháp của chương trình

Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì mới thực hiện tiếp theo các phần nội dung dưới đây

Trang 8

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Chuong trinh chinh

void main (void)

 Bước 4: Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô phỏng

quá trình hoạt động của hệ thống vi điều khiển

Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học

Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả trên màn hình máy tính.Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do giải thuật chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính

Trang 9

xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây

Sơ đồ mô phỏng mạch điều khiển như sau:

Hình 1.12: Sơ đồ mô phỏng của mạch điều khiển.

1.2.2.5 Sơ đồ kết nối:

 Bước 5: Sử dụng các Modul có sẵn trên Mô hình thí nghiệm PIC, đã giới thiệu ở phần đầu của bài thực hành, để lắp ráp mạch theo thiết kế bên trên Lưu ý chiều cắm của các dây cáp dữ liệu

(có dấu ký hiệu ô vuông màu trắng trong hình vẽ)

Thực hiện qui trình kết nối các Modul theo sơ đồ dưới đây:

 Tắt nguồn AC cấp cho Mô hình thí nghiệm PIC

 Dùng dây cáp USB kết nối giữa cổng USB của máy tính với đầu nối USB của Modul lập trình PICkit2

 Dùng dây cáp 6 kết nối giữa đầu nối ICSP của Modul lập trình PICkit2 với đầu nối ICSP của Modul vi điều khiển

 Dùng dây cáp 8 kết nối giữa đầu nối PORT D của Modul vi điều khiển với đầu nối INPUT 1 của Modul đệm – đảo

 Dùng dây cáp 8 kết nối giữa đầu nối OUTPUT 1 của Modul đệm – đảo với đầu nối BARLED 1 của Modul LED đơn

 Dùng 3 dây cáp 3 kết nối giữa đầu nối POWER của Modul vi điều khiển, Modul LED đơn và Modul đệm – đảo với đầu nối +5V của Modul nguồn cung cấp

D0

D7 D5 D3

D1 D0D2 D4 D6

RD7

RB2

RD6 RD4 RD2 RD0

RD0 RB4 RD1RB5 RD2RB6 RD3RB7 RD4RC0 RD6RC1 RD7RC2

RC7 RC5 RC3

RB3 RB0

D2

R3 330 +5V

D3

R4 330 +5V

D4

R5 330 +5V

D5

R6 330 +5V

D6

R7 330 +5V

D7

R8 330 +5V

D8

R9 330 +5V

1B 1 2B 2 3B 3 4B 4 5B 5 6B 6 7B 7 8B 8

1C 182C 173C 164C 155C 146C 137C 128C 11

COM 10U2

ULN2803

+5V

2 4 6 8

1

RP2 10K +5V

R1

100R

R10 10k

C3 0.1uF

2 RA1/AN1 3 RA2/AN2/VREF-/CVREF 4

RA4/T0CKI/C1OUT 6

RA5/AN4/SS/C2OUT 7

RE0/AN5/RD 8

RE1/AN6/WR 9

RE2/AN7/CS 10

OSC1/CLKIN 13

OSC2/CLKOUT 14

RC1/T1OSI/CCP2 16RC2/CCP1 17RC3/SCK/SCL 18

RD0/PSP0 19RD1/PSP1 20

RB7/PGD 40RB6/PGCRB5 3938 RB4 37RB3/PGMRB2 3635 RB1 34RB0/INT 33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21

RC7/RX/DTRC6/TX/CK 2625 RC5/SDO 24RC4/SDI/SDA 23

RA3/AN3/VREF+

5

RC0/T1OSO/T1CKI 15

MCLR/Vpp/THV 1

U1

PIC16F877A

Trang 10

Hình 1.13: Sơ đồ kết nối của mạch điều khiển.

 Bước 6: Sử dụng phần mềm MPLAB hoặc PICkit2 để thực hiện việc nạp chương trình cho vi

điều khiển PIC16F877A trên Mô hình thí nghiệm PIC

Thực hiện qui trình nạp chương trình cho PIC:

 Bật nguồn AC cấp cho Mô hình thí nghiệm PIC

 Khởi động phần mềm nạp chương trình (MPLAB hoặc PICkit2)

 Chọn tập tin của chương trình điều khiển cần nạp

 Reset lại mạch nạp PICkit2

 Nạp chương trình vào vi điều khiển

 Reset lại vi điều khiển để chạy chương trình và quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC

Quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành

Trang 11

1.3 Bài tập:

1.3.1 Câu hỏi thảo luận:

Xem và trả lời các câu hỏi lý thuyết trong phần “Ex1: Point LED Lab” của quyển “Câu hỏi

chuẩn bị kiến thức bài thực hành”

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Điều khiển 8 LED đơn được nối với Port D (có sử dụng bộ đệm đảo) đếm lên nhị phân 8 bit

 Thời gian thay đổi trạng thái là 500ms với tần số dao động thạch anh là 4MHz

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Chuong trinh chinh

void main (void)

delay_ms(100);

delay_ms(100);

Trang 12

delay_ms(100);

delay_ms(100);

} }

}

1.3.3.2 Bài số 2:

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Điều khiển 8 LED đơn được nối với Port D (có sử dụng bộ đệm đảo) sáng dần lên và tắt hết

 Thời gian thay đổi trạng thái là 500ms với tần số dao động thạch anh là 4MHz

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Chuong trinh chinh

void main (void)

{

// Khai bao bien

unsigned char i,dat_D;

Trang 13

}

1.3.3.3 Bài số 3:

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Điều khiển 8 LED đơn được nối với Port D (có sử dụng bộ đệm đảo) sáng đuổi

 Thời gian thay đổi trạng thái là 500ms với tần số dao động thạch anh là 4MHz

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Chuong trinh chinh

void main (void)

{

// Khai bao bien

unsigned char i,dat_D;

// Chuong trinh

init_PORTD();

while(1)

{

Trang 14

}

1.3.3.4 Bài số 4:

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Điều khiển 8 LED đơn được nối với Port D (có sử dụng bộ đệm đảo) sáng dồn và tắt hết

 Thời gian thay đổi trạng thái là 500ms với tần số dao động thạch anh là 4MHz

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Chuong trinh chinh

void main (void)

{

// Khai bao bien

unsigned char i;

// Khai bao hang

const unsigned char a[] = {0x00,

Trang 15

0xF9,0xFA,0xFC,

0xFD,0xFE, 0xFF};

}

1.3.3.5 Bài số 5:

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Điều khiển 8 LED đơn được nối với Port D (có sử dụng bộ đệm đảo) thực hiện liên tục lần lượt các hoạt động:

 Thời gian thay đổi trạng thái là 500ms với tần số dao động thạch anh là 4MHz

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

Trang 16

// Ten CTC: choptat(n)

// Thong so dau vao: n - So lan lap lai cua chuong trinh

// Thong so dau ra:

// Cong dung: Thuc hien hoat dong chop tat 8 LED noi voi Port0

// ***************************************************

void choptat(unsigned char n)

{

// Khai bao bien

// Dinh nghia ham

while(n ) // Vong lap thuc hien

// Thong so dau vao: n - So lan lap lai cua chuong trinh

// Thong so dau ra:

// Cong dung: Thuc hien hoat dong dem len nhi phan 8 LED noi voi Port0

Trang 17

// Ten CTC: sangduoi(n)

// Thong so dau vao: n - So lan lap lai cua chuong trinh

// Thong so dau ra:

// Cong dung: Thuc hien hoat dong sang duoi 8 LED noi voi Port0

// ***************************************************

void sangduoi(unsigned char n)

{

// Khai bao bien

unsigned char i,dat_D;

// Thong so dau vao: n - So lan lap lai cua chuong trinh

// Thong so dau ra:

// Cong dung: Thuc hien hoat dong sang dan 8 LED noi voi Port0

// ***************************************************

void sangdan(unsigned char n)

{

// Khai bao bien

unsigned char i,dat_D;

// Dinh nghia ham

Trang 18

// Thong so dau vao: n - So lan lap lai cua chuong trinh

// Thong so dau ra:

// Cong dung: Thuc hien hoat dong sang don 8 LED noi voi Port0

// ***************************************************

void sangdon(unsigned char n)

{

// Khai bao bien

unsigned char i,tempo,dat_D;

// Chuong trinh chinh

void main (void)

Trang 19

BÀI 2 LẬP TRÌNH ĐIỀU KHIỂN XUẤT NHẬP CƠ BẢN:

LED 7 ĐOẠN

MỤC ĐÍCH:

 Thực hành lập trình ứng dụng trên máy tính, biên dịch chương trình, nạp chương trình vào vi điều khiển và sử dụng Mô hình thí nghiệm PIC để kiểm chứng

 Điều khiển thiết bị ngoại vi bằng các port của vi điều khiển PIC

 Điều khiển xuất nhập cơ bản sử dụng LED 7 đoạn được kết nối theo nhiều phương pháp khác nhau

 Hiển thị các thông tin và số liệu bằng cách sử dụng các bộ hiển thị dùng LED 7 đoạn

YÊU CẦU:

 Nắm vững cấu trúc và tập lệnh của vi điều khiển PIC

 Nắm vững cấu trúc của LED 7 đoạn

 Nắm được sơ đồ và nguyên lý hoạt động của Modul LED 7 đoạn trên Mô hình thí nghiệm PIC

 Nắm được nguyên lý điều khiển LED 7 đoạn ở các chế độ khác nhau:

 Không đa hợp và ngõ vào dữ liệu kiểu BCD (Non Multiplexed displays with BCD inputs)

 Không đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (Non Multiplexed displays with 7 segment inputs)

 Đa hợp và ngõ vào dữ liệu kiểu BCD (Multiplexed BCD input displays)

 Đa hợp và ngõ vào dữ liệu kiểu 7 đoạn (Multiplexed 7 segment input displays)

 Biết cách viết các chương trình điều khiển LED 7 đoạn ở hoạt động theo nhiều kiểu khác nhau

 Biết cách viết các chương trình điều khiển để hiển thị thông tin và số liệu trên các bộ hiển thị dùng LED 7 đoạn

Trang 24

2.2.1.3 Các hư hỏng thường gặp:

 Đèn chỉ báo nguồn AC không sáng Ö Kiểm tra lại nguồn điện AC220V, dây nguồn AC, công tắc nguồn AC

 Đèn chỉ báo nguồn DC không sáng Ö Kiểm tra lại cầu chì, công tắc nguồn DC

 Vi điều khiển bị nóng quá mức Ö Kiểm tra lại chiều cắm vi điều khiển trên mạch

 Cầu chì đứt liên tục khi bật nguồn Ö Kiểm tra lại cắm cáp POWER có bị lệch hay không

Hình 2.10: Cách cắm cáp nguồn (POWER) trên mô hình thí nghiệm PIC.

 Không nạp được chương trình cho vi điều khiển Ö Kiểm tra mạch nạp, dây cáp USB, dây cáp ICSP, vi điều khiển

 Mạch hoạt động (thường là không hoạt động) nhưng không như ý muốn Ö Kiểm tra lại chiều cắm của các cáp dữ liệu

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Sử dụng cấu hình “Bộ hiển thị không đa hợp – Ngõ vào dữ liệu kiểu 7 đoạn”

 Điều khiển 2 LED 7 đoạn được kết nối với Port C (LED hàng chục) và Port D (LED hàng đơn vị)

 Hiển thị tăng dần các giá trị số thập phân từ 00 đến 99

 Thời gian thay đổi giá trị 500ms với tần số dao động thạch anh là 4MHz

Trang 25

2.2.2.1 Sơ đồ nguyên lý:

 Bước 1: Thiết kế sơ đồ nguyên lý của mạch điều khiển

Hình 2.11: Sơ đồ nguyên lý của mạch điều khiển.

Trang 26

2.2.2.2 Lưu đồ giải thuật:

 Bước 2: Thiết kế lưu đồ giải thuật của chương trình điều khiển

Hình 2.12: Lưu đồ giải thuật của chương trình điều khiển.

Trang 27

2.2.2.3 Chương trình điều khiển:

 Bước 3: Sử dụng phần mềm MPLAB và công cụ biên dịch Hi-Tech, dựa vào lưu đồ giải thuật

của chương trình điều khiển đã thiết kế để thực hiện việc viết chương trình, biên dịch và kiểm tra lỗi

cú pháp của chương trình

Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì mới thực hiện tiếp theo các phần nội dung dưới đây

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port C

// Chuong trinh chinh

void main (void)

{

// Khai bao bien

unsigned char i,j;

// Khai bao hang

const unsigned char a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

Trang 28

{ for(j=0;j<=9;j++)

}

 Bước 4: Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mơ phỏng

quá trình hoạt động của hệ thống vi điều khiển

Mạch mơ phỏng này đã được thiết kế sẵn và lưu trong máy tính Vì thế người học cĩ thể tự vẽ thiết kế mạch mơ phỏng hoặc lấy mạch mơ phỏng cĩ sẵn trong cơ sở dữ liệu của mơn học

Thực hiện chạy mơ phỏng và quan sát trực tiếp kết quả trên màn hình máy tính.Nếu cĩ bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thơng thường do giải thuật chương trình khơng chính xác hoặc do mạch mơ phỏng vẽ khơng chính xác, cần phải được kiểm tra lại Nếu khơng cĩ lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây

Sơ đồ mơ phỏng mạch điều khiển như sau:

Hình 2.13: Sơ đồ mơ phỏng của mạch điều khiển.

 Bước 5: Sử dụng các Modul cĩ sẵn trên Mơ hình thí nghiệm PIC, đã giới thiệu ở phần đầu của bài thực hành, để lắp ráp mạch theo thiết kế bên trên Lưu ý chiều cắm của các dây cáp dữ liệu

(cĩ dấu ký hiệu ơ vuơng màu trắng trong hình vẽ)

Thực hiện qui trình kết nối các Modul theo sơ đồ dưới đây:

A2 C2 E2 F2 G2

A1 C1 E1 G1 A1

G1

B1 D1 F1 RD7

A2 C2 E2 F2 G2 56 56 56 56

56 56 56 56

RA4/T0CKI/C1OUT 6

RA5/AN4/SS/C2OUT 7

RE0/AN5/RD 8

RE1/AN6/WR 9

RE2/AN7/CS 10

OSC1/CLKIN 13

OSC2/CLKOUT 14

RB3/PGMRB2 3635

U1

PIC16F877A

(CẤU HÌNH KHÔNG ĐA HỢP, NGÕ VÀO 7 ĐOẠN)

Trang 29

 Tắt nguồn AC cấp cho Mô hình thí nghiệm PIC

 Dùng dây cáp USB kết nối giữa cổng USB của máy tính với đầu nối USB của Modul lập trình PICkit2

 Dùng dây cáp 6 kết nối giữa đầu nối ICSP của Modul lập trình PICkit2 với đầu nối ICSP của Modul vi điều khiển

 Dùng dây cáp 8 kết nối giữa đầu nối PORT C của Modul vi điều khiển với đầu nối 7SEG5 IN của Modul LED 7 đoạn

 Dùng dây cáp 8 kết nối giữa đầu nối PORT D của Modul vi điều khiển với đầu nối 7SEG4 IN của Modul LED 7 đoạn

 Dùng dây cáp 8 kết nối giữa đầu nối SEL LED IN của Modul LED 7 đoạn với đầu nối

SWITCH của Modul công tắc Các công tắc phải đặt ở vị trí ON

 Dùng 2 dây cáp 3 kết nối giữa đầu nối POWER của Modul vi điều khiển và Modul LED 7 đoạn với đầu nối +5V của Modul nguồn cung cấp

Hình 2.14: Sơ đồ kết nối của mạch điều khiển.

 Bước 6: Sử dụng phần mềm MPLAB hoặc PICkit2 để thực hiện việc nạp chương trình cho vi

điều khiển PIC16F877A trên Mô hình thí nghiệm PIC

Thực hiện qui trình nạp chương trình cho PIC:

 Bật nguồn AC cấp cho Mô hình thí nghiệm PIC

 Khởi động phần mềm nạp chương trình (MPLAB hoặc PICkit2)

 Chọn tập tin của chương trình điều khiển cần nạp

 Reset lại mạch nạp PICkit2

 Nạp chương trình vào vi điều khiển

 Reset lại vi điều khiển để chạy chương trình và quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC

Trang 30

Quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Sử dụng cấu hình “Bộ hiển thị không đa hợp – Ngõ vào dữ liệu kiểu BCD”

 Điều khiển 2 LED 7 đoạn được kết nối với Port D

 Hiển thị tăng dần các giá trị số thập phân từ 00 đến 99

 Thời gian thay đổi giá trị 500ms với tần số dao động thạch anh là 4MHz

 Bước 1: Thiết kế sơ đồ nguyên lý của mạch điều khiển

Hình 2.15: Sơ đồ nguyên lý của mạch điều khiển.

 Bước 2: Thiết kế lưu đồ giải thuật của chương trình điều khiển

Trang 31

Hình 2.16: Lưu đồ giải thuật của chương trình điều khiển.

 Bước 3: Sử dụng phần mềm MPLAB và công cụ biên dịch Hi-Tech, dựa vào lưu đồ giải thuật

của chương trình điều khiển đã thiết kế để thực hiện việc viết chương trình, biên dịch và kiểm tra lỗi

cú pháp của chương trình

Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì mới thực hiện tiếp theo các phần nội dung dưới đây

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

// ***************************************************

void init_PORTD(void)

{

PORTD = 0X00;

Trang 32

// Dau vao: x = Gia tri HEX (00 - 99)

// Dau ra: y = Gia tri BCD nen (00 - 99)

// Chuong trinh chinh

void main (void)

{

// Khai bao bien

unsigned char i,dat_D;

}

 Bước 4: Sử dụng phần mềm ISIS 7 Professional (Protues 7.10) để thực hiện việc mô phỏng

quá trình hoạt động của hệ thống vi điều khiển

Mạch mô phỏng này đã được thiết kế sẵn và lưu trong máy tính Vì thế người học có thể tự vẽ thiết kế mạch mô phỏng hoặc lấy mạch mô phỏng có sẵn trong cơ sở dữ liệu của môn học

Thực hiện chạy mô phỏng và quan sát trực tiếp kết quả trên màn hình máy tính.Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do giải thuật chương trình không chính xác hoặc do mạch mô phỏng vẽ không chính xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì thực hiện tiếp theo các phần nội dung dưới đây

Trang 33

Sơ đồ mơ phỏng mạch điều khiển như sau:

Hình 2.17: Sơ đồ mơ phỏng của mạch điều khiển.

 Bước 5: Sử dụng các Modul cĩ sẵn trên Mơ hình thí nghiệm PIC, đã giới thiệu ở phần đầu của bài thực hành, để lắp ráp mạch theo thiết kế bên trên Lưu ý chiều cắm của các dây cáp dữ liệu

(cĩ dấu ký hiệu ơ vuơng màu trắng trong hình vẽ)

Thực hiện qui trình kết nối các Modul theo sơ đồ dưới đây:

 Tắt nguồn AC cấp cho Mơ hình thí nghiệm PIC

 Dùng dây cáp USB kết nối giữa cổng USB của máy tính với đầu nối USB của Modul lập trình PICkit2

 Dùng dây cáp 6 kết nối giữa đầu nối ICSP của Modul lập trình PICkit2 với đầu nối ICSP của Modul vi điều khiển

 Dùng dây cáp 8 kết nối giữa đầu nối PORT D của Modul vi điều khiển với đầu nối BCD IN 1-2 của Modul giải mã 7 đoạn

 Dùng dây cáp 8 kết nối giữa đầu nối 7SEG OUT 1 của Modul giải mã 7 đoạn với đầu nối 7SEG IN 4 của Modul LED 7 đoạn

 Dùng dây cáp 8 kết nối giữa đầu nối 7SEG OUT 2 của Modul giải mã 7 đoạn với đầu nối 7SEG IN 5 của Modul LED 7 đoạn

 Dùng dây cáp 8 kết nối giữa đầu nối SEL LED IN của Modul LED 7 đoạn với đầu nối

SWITCH của Modul cơng tắc Các cơng tắc phải đặt ở vị trí ON

 Dùng 3 dây cáp 3 kết nối giữa đầu nối POWER của Modul vi điều khiển, Modul giải

mã 7 đoạn và Modul LED 7 đoạn với đầu nối +5V của Modul nguồn cung cấp

A1 C1 E1 G1

A1 C1 E1 G1

A2 C2 E2 G2

A2 C2 E2 G2

RD7

RB2

RD6 RD4 RD2

RD3 RD0 RD2

RB4 RB6 RD4 RB7 RD5

RC0 RD7 RC1

RC7

RD0 RC6 RC4

RB3 RB0

RA4/T0CKI/C1OUT 6

RA5/AN4/SS/C2OUT 7

RE0/AN5/RD 8 RE1/AN6/WR 9 RE2/AN7/CS 10

OSC1/CLKIN 13 OSC2/CLKOUT 14

RC1/T1OSI/CCP2 16RC2/CCP1 17RC3/SCK/SCL 18

RD0/PSP0 19RD1/PSP1 20

RB7/PGD 40RB6/PGCRB5 3938 RB4 37RB3/PGMRB2 3635 RB1 34RB0/INT 33

RD7/PSP7 30RD6/PSP6 29RD5/PSP5 28RD4/PSP4 27RD3/PSP3 22RD2/PSP2 21RC7/RX/DTRC6/TX/CK 2625 RC5/SDO 24RC4/SDI/SDA 23

RA3/AN3/VREF+

5

RC0/T1OSO/T1CKI 15

MCLR/Vpp/THV 1

U1

PIC16F877A (CẤU HÌNH KHÔNG ĐA HỢP, NGÕ VÀO BCD)

Trang 34

Hình 2.18: Sơ đồ kết nối của mạch điều khiển.

 Bước 6: Sử dụng phần mềm MPLAB hoặc PICkit2 để thực hiện việc nạp chương trình cho vi

điều khiển PIC16F877A trên Mô hình thí nghiệm PIC

Thực hiện qui trình nạp chương trình cho PIC:

 Bật nguồn AC cấp cho Mô hình thí nghiệm PIC

 Khởi động phần mềm nạp chương trình (MPLAB hoặc PICkit2)

 Chọn tập tin của chương trình điều khiển cần nạp

Trang 35

 Reset lại mạch nạp PICkit2

 Nạp chương trình vào vi điều khiển

 Reset lại vi điều khiển để chạy chương trình và quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC

Quan sát trực tiếp kết quả trên Mô hình thí nghiệm PIC Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thường do việc lắp ráp phần cứng không chính xác hoặc các linh kiện bị hư hỏng, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì hoàn tất bài thực hành

Nội dung: Viết chương trình, mô phỏng và lắp ráp mạch sử dụng PIC16F877A để thực hiện

các yêu cầu sau:

 Sử dụng cấu hình “Bộ hiển thị đa hợp – Ngõ vào dữ liệu kiểu 7 đoạn”

 Điều khiển 2 LED 7 đoạn được kết nối với Port B (Port chọn LED) và Port D (Port hiển thị)

 Hiển thị tăng dần các giá trị số thập phân từ 00 đến 99

 Thời gian thay đổi giá trị 500ms với tần số dao động thạch anh là 4MHz

 Bước 1: Thiết kế sơ đồ nguyên lý của mạch điều khiển

Hình 2.19: Sơ đồ nguyên lý của mạch điều khiển.

Trang 36

2.2.4.2 Lưu đồ giải thuật:

 Bước 2: Thiết kế lưu đồ giải thuật của chương trình điều khiển

BEGIN Main:

Cấu hình cho Port B Init_PORTB() Cấu hình cho Port D Init_PORTD()

Loop:

Tạo trễ 500ms (time_del = 500) delayscan(time_del)

Đặt giá trị ban đầu số đếm dat_disp = 0

Tăng giá trị số đếm dat_disp = dat_disp + 1

Số đếm 99 ?

Đ S

Đổi giá trị số đếm sang số BCD bcd1_dig = hex8tobcd99(dat_disp) Loop_Inc:

Đổi giá trị BCD sang mã 7 đoạn bcd2to7seg(bcd1_dig)

Hình 2.20: Lưu đồ giải thuật của chương trình điều khiển (Phần 1)

Trang 37

Hình 2.21: Lưu đồ giải thuật của chương trình điều khiển (Phần 2)

Trang 38

Xác định giá trị hàng CHỤC của

số HEX (X) CHỤC = X / 10 Xác định giá trị hàng ĐƠN VỊ của số HEX (X) ĐƠN VỊ = X % 10

END

Ghép hàng CHỤC và ĐƠN VỊ thành số BCD nén (Y)

Y = (CHỤC << 4) | ĐƠN VỊ

Hex8toBcd99

Input: X = Gia tri HEX.

Output: Y = Gia tri BCD nen.

Hình 2.22: Lưu đồ giải thuật của chương trình điều khiển (Phần 3).

 Bước 3: Sử dụng phần mềm MPLAB và công cụ biên dịch Hi-Tech, dựa vào lưu đồ giải thuật

của chương trình điều khiển đã thiết kế để thực hiện việc viết chương trình, biên dịch và kiểm tra lỗi

cú pháp của chương trình

Nếu có bất kỳ lỗi nào xuất hiện thì thực hiện việc hiệu chỉnh khắc phục các lỗi này Nguyên nhân phát sinh lỗi thông thường do cú pháp của các lệnh không chính xác, cần phải được kiểm tra lại Nếu không có lỗi xuất hiện thì mới thực hiện tiếp theo các phần nội dung dưới đây

Mã nguồn (Source Code) của chương trình điều khiển hệ thống như sau:

// ***************************************************

#include <htc.h>

#include <math.h>

// Cau hinh su dung dao dong noi 4MHz

CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS);

#define _XTAL_FREQ 4000000

// Khai bao bien

unsigned char ch_dig,dv_dig;

// ***************************************************

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port D

Trang 39

// Thong so dau vao:

// Thong so dau ra:

// Cong dung: Khoi tao Port B

// LED: Anode chung, kich hoat muc 0, 7 doan: DP (MSB) -> A (LSB)

// Du lieu hien thi chua trong o nho

// ***************************************************

// Dau vao: ch_dig,dv_dig = Gia tri hien thi (CHUC - DON VI)

// Dau ra: PortD = 7 doan LED - DP (MSB) -> A (LSB)

// ***************************************************

void disp7segmul2()

{

// Khai bao bien

unsigned char scancode,i;

unsigned char a[2];

// Dinh nghia ham

// LED: Anode chung, kich hoat muc 0, 7 doan: DP (MSB) -> A (LSB)

// Gia tri giai ma: 0 -> 9

// ***************************************************

Trang 40

unsigned char i;

// Khai bao hang

const char a[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

// Dinh nghia ham

// Dau vao: time_del: Thoi gian tre (ms)

// Dau vao: x = Gia tri HEX (00 - 99)

// Dau ra: y = Gia tri BCD nen (00 - 99)

// Khai bao bien

unsigned char bcd1_dig,dat_disp;

unsigned int time_del;

// Chuong trinh

Ngày đăng: 04/07/2022, 12:50

HÌNH ẢNH LIÊN QUAN

Sơ đồ mô phỏng mạch điều khiển như sau: - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Sơ đồ m ô phỏng mạch điều khiển như sau: (Trang 9)
Hình 1.13: Sơ đồ kết nối của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 1.13 Sơ đồ kết nối của mạch điều khiển (Trang 10)
Hình 2.11: Sơ đồ nguyên lý của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.11 Sơ đồ nguyên lý của mạch điều khiển (Trang 25)
Hình 2.16: Lưu đồ giải thuật của chương trình điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.16 Lưu đồ giải thuật của chương trình điều khiển (Trang 31)
Sơ đồ mô phỏng mạch điều khiển như sau: - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Sơ đồ m ô phỏng mạch điều khiển như sau: (Trang 33)
Hình 2.22: Lưu đồ giải thuật của chương trình điều khiển (Phần 3). - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.22 Lưu đồ giải thuật của chương trình điều khiển (Phần 3) (Trang 38)
Hình 2.24: Sơ đồ kết nối của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.24 Sơ đồ kết nối của mạch điều khiển (Trang 43)
Hình 2.26: Lưu đồ giải thuật của chương trình điều khiển (Phần 1). - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.26 Lưu đồ giải thuật của chương trình điều khiển (Phần 1) (Trang 45)
Hình 2.29: Sơ đồ kết nối của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 2.29 Sơ đồ kết nối của mạch điều khiển (Trang 50)
Hình 3.4: Phương pháp chỉ thị tĩnh áp dụng cho trường hợp  các điểm LED cần sáng nằm trên - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 3.4 Phương pháp chỉ thị tĩnh áp dụng cho trường hợp các điểm LED cần sáng nằm trên (Trang 75)
Hình 3.18: Lưu đồ giải thuật của chương trình điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 3.18 Lưu đồ giải thuật của chương trình điều khiển (Trang 83)
Hình 3.19: Sơ đồ mô phỏng của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 3.19 Sơ đồ mô phỏng của mạch điều khiển (Trang 86)
Hình 3.20: Sơ đồ kết nối của mạch điều khiển. - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Hình 3.20 Sơ đồ kết nối của mạch điều khiển (Trang 87)
Sơ đồ mô phỏng mạch điều khiển như sau: - Giáo trình thực hành vi xử lý   kỹ thuật vi xử lý CD ROM
Sơ đồ m ô phỏng mạch điều khiển như sau: (Trang 93)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm