ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỂN THÔNG VIỆT – HÀN Khoa Kỹ thuật máy tính và Điện tử BÁO CÁO MÔN HỌC VI ĐIỀU KHIỂN Sinh viên thực hiện: Lớp: Vi điều
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỂN
THÔNG VIỆT – HÀN Khoa Kỹ thuật máy tính và Điện tử
BÁO CÁO MÔN HỌC
VI ĐIỀU KHIỂN
Sinh viên thực hiện:
Lớp: Vi điều khiển (5)
Giảng viên hướng dẫn: ThS Nguyễn Thị Huyền Trang
Đà Nẵng, tháng 04 năm 2023
Nhóm: Robo Ranger
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỂN
THÔNG VIỆT – HÀN Khoa Kỹ thuật máy tính và Điện tử
BÁO CÁO MÔN HỌC
VI ĐIỀU KHIỂN
Sinh viên thực hiện:
Lớp: Vi điều khiển (5)
Giảng viên hướng dẫn: ThS Nguyễn Thị Huyền Trang
Đà Nẵng, tháng 04 năm 2023
Nhóm: Robo Ranger
Trang 3NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Chữ ký GVHD
ThS Nguyễn Thị Huyền Trang
Nhóm: Robo Ranger
Trang 4LỜI CẢM ƠN
Trước hết, nhóm em xin gửi lời cảm ơn sâu sắc đến cô Nguyễn Thị Huyền Trang -người trực tiếp hướng dẫn đã dành nhiều thời gian, công sức hướng dẫn nhóm em trong suốt quá trình thực hiện nghiên cứu và hoàn thành môn học Vi điều khiển
Nhóm em xin trân trọng cảm ơn các Quý thầy cô thuộc Khoa Kỹ thuật máy tính & Điện tử, cũng như toàn thể thầy cô giáo trong trường Đại học Công nghệ thông tin và Truyền thông Việt – Hàn, đã tận tình truyền đạt những kiến thức quý báu, giúp đỡ tụi em trong quá trình học tập và nghiên cứu
Tuy đã có nhiều cố gắng, nhưng bài báo cáo này không thể tránh khỏi những thiếu sót Nhóm em kính mong Quý thầy cô có những ý kiến đóng góp, giúp đỡ để thực hiện báo cáo này được hoàn thiện hơn
Nhóm em xin chân thành cảm ơn!
Nhóm: Robo Ranger
Trang 5MỤC LỤC
Contents
LỜI CẢM ƠN 4
MỤC LỤC 5
CHƯƠNG 1: LAB 1 6
1.1 Mô phỏng 8 LED nhấp nháy với PIC18F4550 6
1.2 Lưu đồ thuật toán 6
1.3 Code và giải thích 6
CHƯƠNG 2: LAB 2 7
2.1 Mô phỏng LED sáng với PIC18F4550 và Button 7
2.2 Lưu đồ thuật toán 7
2.3 Code và giải thích 7
CHƯƠNG 3: LAB 3 8
3.1 Mô phỏng LED 7 đoạn với PIC18F4550 8
3.2 Lưu đồ thuật toán 9
3.3 Code và giải thích 9
CHƯƠNG 4: LAB 4 11
4.1 Mô phỏng LED matrix với PIC16F877A 11
4.2 Lưu đồ thuật toán 11
4.3 Code và giải thích 11
CHƯƠNG 5: LAB 5 12
5.1 Mô phỏng LCD program với PIC16F887 12
5.2 Lưu đồ thuật toán 12
5.3 Code và giải thích 12
Nhóm: Robo Ranger
Trang 6CHƯƠNG 1: LAB 1
1.1 Mô phỏng 8 LED nhấp nháy với PIC18F4550
- yêu cầu bài tập lab 1: điều khiển 8 Led đơn nhấp nháy với PIC18F4550
- Led từ 0-7 sẽ nối với các chân từ RD0-RD7
1.2 Lưu đồ thuật toán
1.3 Code và giải thích
Nhóm: Robo Ranger
Trang 8CHƯƠNG 2: LAB 2
2.1 Mô phỏng LED sáng với PIC18F4550 và Button 2.2 Lưu đồ thuật toán
2.3 Code và giải thích
Nhóm: Robo Ranger
Trang 9CHƯƠNG 3: LAB 3
3.1 Mô phỏng LED 7 đoạn với PIC18F4550
Nhóm: Robo Ranger
Trang 103.2 Lưu đồ thuật toán
3.3 Code và giải thích
a) Source code:
#include <xc.h>
#include "stdio.h" // Configuration bits file stored in a header file
#define _XTAL_FREQ 20000000 //define crystal frequency to 20MHz // This array stores binary bit pattern that will be send to PORTB
unsigned char
binary_pattern[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; void main(void)
Nhóm: Robo Ranger
Trang 11TRISB = 0x00; //define PORTB as a output pin
while(1)
{
//this loop sends all binary patterns to PORTB
for (int i=0;i<10;i++)
{
PORTB = binary_pattern[i];
delay_ms(100); //add delay of 0.1 second
}
for (int i=8;i>0;i )
{
PORTB = binary_pattern[i];
delay_ms(100); //add delay of 0.1 second
}
}
return;
}
b) Explanation
xc.h và stdio.h là các tệp tiêu đề Các tệp tiêu đề xc.h chứa định nghĩa về các thanh ghi bên trong của vi điều khiển PIC18F4550
Mặt khác, tệp tiêu đề stdio.h chứa các cài đặt bit cấu hình
Mảng binary_pattern bao gồm các mẫu số nhị phân để hiển thị bảy đoạn loại catốt chung
Mảng này lưu trữ mẫu bit nhị phân sẽ được gửi tới PORTB
unsigned char
binary_pattern[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
Sau đó, đặt PORTB của vi điều khiển PIC18F4550 làm đầu ra kỹ thuật số bằng cách sử dụng thanh ghi điều khiển hướng TRISB
TRISB = 0x00; //define PORTB as a output pin
Đây là phần chính của chương trình gửi giá trị của mảng binary_pattern đến PORTB sau mỗi một giây vòng lặp while(1) sẽ tiếp tục thực thi vô thời hạn
while(1)
{
// vòng lặp này gửi tất cả các mẫu nhị phân đến PORTB for (int i=0;i<10;i++)
{
PORTB = binary_pattern[i];
delay_ms(100); //add delay of 0.1 second
}
// vòng lặp này đếm ngược lại trong PORTB
for (int i=0;i<8;i )
{
PORTB = binary_pattern[i];
delay_ms(100); //add delay of 0.1 second
}
Nhóm: Robo Ranger
Trang 12CHƯƠNG 4: LAB 4
4.1 Mô phỏng LED matrix với PIC16F877A
4.2 Lưu đồ thuật toán
4.3 Code và giải thích
Nhóm: Robo Ranger
Trang 13CHƯƠNG 5: LAB 5
5.1 Mô phỏng LCD program với PIC16F887
5.2 Lưu đồ thuật toán
5.3 Code và giải thích
Nhóm: Robo Ranger