1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo vi Điều khiển và ứng dụng bài 2 lập trình mô Đun gpio output

11 2 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Lập Trình Mô-Đun GPIO Output
Tác giả Nguyễn Minh Đức - 21104031, Hồ Ngọc Dũng - 21104131, Đinh Quốc Lập – 21133301
Người hướng dẫn Phạm Quang Trí
Trường học Trường Đại Học Công Nghiệp Tp.Hcm
Chuyên ngành Công Nghệ Điện Tử
Thể loại báo cáo
Năm xuất bản 2023
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 11
Dung lượng 2,65 MB

Nội dung

Cấu hình chức năng phải vừa đủ sử dụng, không cấu  Yêu cầu 3: Trong báo cáo trình bày rõ và chi tiết lưu đồ giải thuật và mã  Yêu cầu 4: Nạp chương trình vào vi điều khiển và thực hiện

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CÔNG NGHỆ ĐIỆN TỪ

BÁO CÁO

VI ĐIỀU KHIỂN VÀ ỨNG DỤNG

BÀI 2:

LẬP TRÌNH MÔ-ĐUN GPIO OUTPUT

Giáo viên hướng dẫn: Phạm Quang Trí Sinh viên thực hiện: Nhóm 3

Nguyễn Minh Đức - 21104031

Hồ Ngọc Dũng - 21104131 Đinh Quốc Lập – 21133301

Thành phố Hồ Chí Minh, tháng 8 năm 2023

Trang 2

Mục lục

Yêu cầu 1: Dựa vào yêu cầu của bài tập đã chọn, vẽ sơ đồ nguyên lý kết nối phần cứng tối thiểu của toàn hệ thống điều khiển dùng STM32 1

Yêu cầu 2: Trong báo trình bày rõ và chi tiết cách thiết lập các chức năng trong phần mềm CubeMX Cấu hình chức năng phải vừa đủ sử dụng, không cấu

Yêu cầu 3: Trong báo cáo trình bày rõ và chi tiết lưu đồ giải thuật và mã

Yêu cầu 4: Nạp chương trình vào vi điều khiển và thực hiện cho chạy thử trên kit phát triển trong phòng thực hành Quay video minh chứng kết quả thực hiện, tải lên Youtube và ghi liên kết vào báo cáo Trong video phải có mô tả thí nghiệm, kết quả thí nghiệm và nhận xét về kết quả thí nghiệm 9

Trang 3

BÁO CÁO KẾT QUẢ THỰC HÀNH

Bài tập mức độ 3: Viết chương trình điểu khiển 2 LED đơn nối vào chân bất kỳ

của STM32, đồng thời hoạt động lặp lại như sau LED 0 sáng 3s và tắt 9s; LED 1 sáng 7s và tắt 1s

Yêu cầu 1: Dựa vào yêu cầu của bài tập đã chọn, vẽ sơ đồ nguyên lý kết nối phần cứng tối thiểu của toàn hệ thống điều khiển dùng STM32

 CẤP NGUỒN:

- Để điều khiển STM32 ta cần cung cấp nguồn điện ổn định có giá trị là 3,3V cho vào tất cả các chân VDD và nối đất(0V) cho các chân VSS Chú ý, tuyệt đối không được đung nguồn có giá trị lớn hơn 3,3V nối trực tiếp vào các chân VDD

- Ngoài ra để vi điều khiển vận hành ổn định thì chúng ta cũng cần phải cấp thêm nguồn +3,3V và 0V cho các chân:

o Chân VBAT nối +3,3V, là nguồn dành cho mô-đun đồng hồ thời gian thực(Real Time Clock) được nhà sản xuất tích hợp sẵn Chúng ta có thể bỏ qua chân này nếu không sử dụng mô đun đồng hồ thời gian thực

o Chân VDDA nối +3,3V và VSSA nối đất (0V), là nguồn đanh cho mô-đun ADC được tích hợp sẵn Việc chúng ta kết nối nguồn cho các chân này là bắt buộc cho dù chúng ta có sử dụng hay không mô-đun ADC

- Ngoài ra, khi cần lọc nhiều cho các chân nguồn thì chúng ta cần phải gắn thêm các tụ điện

 MẠCH RESET: được dùng để khởi động lại các hoạt động của vi điều

khiển trong trường hợp lúc mới cấp nguồn cho hệ thống (sử dụng mạch điện gồm điện trở R3 và tụ điện C1) hoặc trong trường hợp khi người dùng mong muốn thực hiện bằng tay (sử dụng mạch điện gồm nút RESET

và điện trở R3) Mạch reset này được nối vào vi điều khiển thông qua chân NRST[7]

1

Trang 4

 MẠCH DAO ĐỘNG :

- Chúng ta có thể lấy từ mạch dao động bên trong hoặc chúng ta có thể lấy từ mạch dao động bên ngoài, khi đó cần phải gắn thêm thạch anh tại hai chân OSCIN[5] và OSCOUT[6], thạch anh này có giá trị tần số được tham khảo thêm bên trong datasheet (đối với vi điều khiển STM32F103RCT6 thì từ 4 – 16MHz)

- Xung cung cấp cho mô=đun đồng hood thời gian thực thì chúng ta có thể lấy từ mạch dao động bên ngoài, khi đó cần phải gắn thêm thạch anh tại hai chân OSC32[3] và OSC32[4] có giá trị tần số được tham khảo thêm trong datasheet (đối với vi điều khiển STM32F103RCT6 thì từ 0 – 1000KHz, thông thường là 32,768KHz)

 MẠCH NẠP: Hôm nay chúng ta nạp chương trình vào vi điều khiển

STM32 bằng hình thức JTAG Ta sẽ sử dụng các chân JTRST/PB4[56], JTDO/PB3[55], JTDI/PA15[50], JTCK/PA14[49] và JTMS/PA13[46]

 LED: Ta sử dụng hai led được nối vào chân LED/PA8[41] và chân

LED1/PD2[54]

2

Trang 5

Yêu cầu 2: Trong báo trình bày rõ và chi tiết cách thiết lập các chức năng trong phần mềm CubeMX Cấu hình chức năng phải vừa đủ sử dụng, không cấu hình các chân và chức năng không sử dụng

- Bước 1: Mở phần mềm CubeMX và tạo một Project mới.

- Bước 2: Tìm kiếm từ mã số của vi điều khiển là

STM32F103RCT6[1], chọn chính xác vào vi điều khiển[2] và cuối cùng chọn vào Start Project[3]

- Bước 3: Chọn bộ dao động và chọn loại mạch nạp.

3

Trang 6

- Bước 4: Cấu hình GPIO Output cho chân PA8/LED0 và PD2/LED1

4

Trang 7

- Bước 5: Chọn tần số hoạt động theo mong muốn.

5

Trang 8

- Bước 6: Lưu tên Project[1] lưu ý không dấu không khoảng cách, chọn

thư mục muốn lưu vào[2], chọn STM32CubeIDE[3] để kết nối với phần mêm CubeIDE để ta code và cuối cùng ta bấm GENERATE CODE[4]

Yêu cầu 3: Trong báo cáo trình bày rõ và chi tiết lưu đồ giải thuật và mã nguồn của chương trình điều khiển

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

6

Trang 9

 Giải thích lưu đồ giải thuật:

Begin: bắt đầu chương trình 2 led sáng tắt theo yêu cầu( LED0 sáng 3s

và tắt 9s, LED1 sáng 7s và tắt 1s)

Hàm main:

led=0, led1=0 : nhập dữ liệu kiểu số nguyên cho hai biến led và led1 Vòng lặp while

Bắt đầu câu lệnh rẽ nhánh đầu tiên:

Ở LED0:

Nếu điều kiện đúng thì LED0 sáng thời gian trễ là 1000ms tăng biến led lên 1 lần (VD từ 0 lên 1 từ 1 lên 2) sau đó trờ về và xét lại điều kiện đầu tiên trong vòng lặp while Nếu sai thì thực hiện tiếp điều kiện thứ hai

Điều kiện thứ hai đúng thì LED0 tắt thời gian trễ là 1000ms tăng biến led lên 1 lần sau đó trờ về và xét lại điều kiện đầu tiên trong vòng lặp while Nếu sai thực hiện tiếp điều kiện thứ ba

Điều kiện thứ ba đúng thì LED0 tắt sau đó reset biến led về bằng -1 thời gian trễ là 1000ms và tăng biến led lên 1 lần, sau đó quay trở về xét lại điều kiện ban đâu tròn vòng lặp while

7

Trang 10

Ở LED1:

Nếu điều kiện đúng thì LED1 sáng thời gian trễ là 1000ms tăng biến led1 lên 1 lần( VD từ 0 lên 1 từ 1 lên 2) sau đó trờ về và xét lại điều kiện đầu tiên Nếu sai thì thực hiện tiếp điều kiện thứ hai

Điều kiện thứ hai đúng thì LED1 tắt trong reset biến led1 về bằng -1 thời gian trễ là 1000ms và tăng biến led1 lên 1 lần, sau đó quay về xét lại điều kiện ban đầu trong vòng lặp while

Ghi chú: Cả 2 led thực hiện song song với nhau xong mỗi led đều có chế độ sáng tắt khác nhau ( LED0 sáng 3s và tắt trong 9s, LED1 sáng 7s và tắt trong 1s)

 Mã nguồn của chương trình:

int main(void)

{

int led=0, led1=0;

While(1)

{

if(led>=0 && led<3)

{

HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, 0); // Bật LED0

}

else if (led>=3 && led <11)

{

HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, 1); // Tắt LED0

}

else if(led=11)

{

HAL_GPIO_WritePin(LED0_GPIO_Port, LED0_Pin, 1); // Tắt LED0

8

Trang 11

}

// Kiếm tra và điểu khiển LED1

if (led1 >= 0 && led1 < 7)

{

HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 0); // Bật LED1

}

else if (led1 = 7)

{

HAL_GPIO_WritePin(LED1_GPIO_Port, LED1_Pin, 1); //Tắt LED1

led1=-1;

}

HAL_Delay(1000); // Đợi 1 giây

led++;

led1++;

}

}

Yêu cầu 4: Nạp chương trình vi đều khiển và thực hiện cho chạy thử trên kit phát triển trong phòng thực hành Quay video clip minh chứng kết quả thực hiện, tải lên Youtube và ghi kết liên kết vào báo cáo Trong video clip phải có mô tả thí nghiệm, kết quả thí nghiệm và nhận xét về kết quả thí nghiệm

Link Youtube: Lập trình mô-đun GPIO Output - YouTube

Link dự phòng: https://youtu.be/UenJXxaBBF0

9

Ngày đăng: 01/01/2025, 21:30

TỪ KHÓA LIÊN QUAN