1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO cáo VI điều KHIỂN môn VI điều KHIỂN

34 53 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

Định dạng
Số trang 34
Dung lượng 2,56 MB

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

Nội dung

BÀI TẬP MỨC ĐỘ 3Yêu cầu 1: Trình bày và vẽ sơ đồ kết nối phần cứng tối thiểu để vi điều khiển STM32 có thể hoạt động.... 3 Yêu cầu 2: Trong báo cáo trình bài rõ và chi tiết cách thiết lậ

Trang 1

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TPHCM

KHOA CÔNG NGHỆ ĐIỆN TỬ

19519351 Hoàng Trần Thiện

1download by : skknchat@gmail.com

Trang 2

BÀI TẬP MỨC ĐỘ 3

Yêu cầu 1: Trình bày và vẽ sơ đồ kết nối phần cứng tối thiểu để vi điều khiển STM32 có thể hoạt động 3 Yêu cầu 2: Trong báo cáo trình bài rõ và chi tiết cách thiết lập và các chức năng trong phần mềm CubeMX Cấu hình chức năng phải vừa đủ và sử dụng, không cấu hình các chân và chức năng không sử dụng 3 Yêu cầu 3: Trong báo cáo trình bày rõ lưu đồ giải thuật và mã nguồn của trương trình điều khiển 8 Yêu cầu 4: Sử dụng phần mềm Proteus để vẽ mạch mô phỏng và nạp chương trình vào vi điều khiển Thực hiện cho chạy thử trên mạch mô phỏng Quay video clip 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 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 19 Link youtube: 19

2download by : skknchat@gmail.com

Trang 3

Yêu cầu 1: Trình bày và vẽ sơ đồ kết nối phần cứng tối thiểu để vi điều khiển STM32 có thể hoạt động.

Sơ đồ nguyên lý kết nối phần cứng tối thiểu.

3download by : skknchat@gmail.com

Trang 4

Yêu cầu 2: Trong báo cáo trình bài rõ và chi tiết cách thiết lập và các chức năng trong phần mềm CubeMX Cấu hình chức năng phải vừa đủ và 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: Khởi động phần mềm CubeMX.

4download by : skknchat@gmail.com

Trang 5

Bước 2: Chọn STM32F103C6

Bước 3: Chọn mạch nạp SWDIO cho vi điều khiển Chân PA13 và

chân PA14 được dùng để kết nối.

5download by : skknchat@gmail.com

Trang 6

Bước 4: Chọn bộ thạch anh LSE ( thạch anh trong ) cho vi điều

khiển, chọn chân thạch anh bằng cách vào System core => RCC => Low Speed Clock ( HSE ) => Crytal/Ceramic Resonator Chân

PC14 và chân PC15 được khai báo.

6download by : skknchat@gmail.com

Trang 7

Bước 5: Cấu hình chức năng UART ta vào connectivity chọn UART1

chọn chế độ Ansynchnorous Chân PA9 và PA10 được khai báo.

- Chọn thông số cơ bản ta vào Parameter Settings hiệu chỉnh Baud Rate:

115200 Word length: 0 Bits Parity: none Stop Bits: 1

Chân PA10 là UART1_RX và Chân PA9 là UART1_TX.

7download by : skknchat@gmail.com

Trang 8

- Ta vào NVIC Settings tích chọn chế độ ngắt UART1 (USART global interrupt)

Bước 6: Cấu hình chức năng ADC, khai báo ngõ vào ADC (mode) ta

chọn IN1 tương ứng với chân PA1.

-Kiểu lưu trữ dữ liệu (data aglignment): chọn right alignment.

8download by : skknchat@gmail.com

Trang 9

Bước 7: Thiết lập tốc độ tần số cho vi điều khiển chọn tần số 8MHz tại HSI.

Bước 8 : Tạo Project đặt tên là BT_test chọn Toolchain/IDE là

SW4STM32 Sau khi hoàn tất việc cấu hình, từ phần mềm CubeMX chung ta

sẽ nhấp chuột vào nút “Generate code”.

9download by : skknchat@gmail.com

Trang 10

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

LƯU ĐỒ GIẢI THUẬT

10download by : skknchat@gmail.com

Trang 11

BƯỚC 1 BƯỚC 2

11download by : skknchat@gmail.com

Trang 12

BƯỚC 3 BƯỚC 4

12download by : skknchat@gmail.com

Trang 13

BƯỚC 5 BƯỚC 6

13download by : skknchat@gmail.com

Trang 14

BƯỚC 7 BƯỚC 8

14download by : skknchat@gmail.com

Trang 15

BƯỚC 9

15download by : skknchat@gmail.com

Trang 16

BƯỚC 10

16download by : skknchat@gmail.com

Trang 17

CHƯƠNG TRÌNH NGẮT

17download by : skknchat@gmail.com

Trang 18

CHƯƠNG TRÌNH KHỞI TẠO LCD

18download by : skknchat@gmail.com

Trang 19

19download by : skknchat@gmail.com

Trang 20

20download by : skknchat@gmail.com

Trang 21

* <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.

* All rights reserved.</center></h2>

#include "stdbool.h"

/* USER CODE END Includes */

/* Private typedef -*//* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define -*//* USER CODE BEGIN PD */

/* USER CODE END PD */

21download by : skknchat@gmail.com

Trang 22

/* Private macro - *//* USER CODE BEGIN PM */

/* USER CODE END PM */

/* Private variables - */ADC_HandleTypeDef hadc1;

TIM_HandleTypeDef htim2;

UART_HandleTypeDef huart1;

/* USER CODE BEGIN PV */

//unsigned char thien[];

uint8_t data[30];

uint8_t data_T[1];

bool flag_R=0;

uint8_t flag_step_1 = 0, flag_step_2 = 0,flag_step_3 = 0;

uint8_t flag_step_4 = 0, flag_step_5 = 0,flag_step_6 = 0;

uint8_t flag_step_7 = 0, flag_step_8 = 0,flag_step_9 = 0;

/* USER CODE END PV */

/* Private function prototypes - */void SystemClock_Config(void);

static void MX_GPIO_Init(void);

static void MX_ADC1_Init(void);

static void MX_USART1_UART_Init(void);

static void MX_TIM2_Init(void);

/* USER CODE BEGIN PFP */

/* USER CODE END PFP */

/* Private user code - */

22download by : skknchat@gmail.com

Trang 23

/* USER CODE BEGIN 0 */

void lcd_write_4bit(uint8_t rs,uint8_t data)

{

HAL_GPIO_WritePin(RS_GPIO_Port,RS_Pin,rs);

HAL_GPIO_WritePin(EN_GPIO_Port,EN_Pin,1);

HAL_GPIO_WritePin(D7_GPIO_Port,D7_Pin,((data>>3)&0x01));HAL_GPIO_WritePin(D6_GPIO_Port,D6_Pin,((data>>2)&0x01));HAL_GPIO_WritePin(D5_GPIO_Port,D5_Pin,((data>>1)&0x01));HAL_GPIO_WritePin(D4_GPIO_Port,D4_Pin,((data>>0)&0x01));HAL_Delay(1);

Trang 25

int main(void)

{

/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */

SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */

/* USER CODE END WHILE */

/* USER CODE BEGIN 3 */

25download by : skknchat@gmail.com

Trang 26

flag_step_1 = 1;

}

//step 2

if((flag_step_1 == 1) && (flag_step_2 == 0)){

if((flag_R== 1 ) && (data[0] == 'A') ){

flag_step_5 = 1;

26download by : skknchat@gmail.com

Trang 27

//step 6

if((flag_step_5 == 1) && (flag_step_6 == 0))

{ if((flag_R== 1 ) && (data[0] == 'B') ){

flag_step_6 = 1;

}}//step 8

if( (flag_step_6 == 1) && (flag_step_8 == 0)){

flag_step_10 = 1 ;}

// step 7

if((flag_step_5 == 1) && (flag_step_7 == 0)){

if((flag_R== 1 ) && (data[0] == 'D') ){

flag_step_7 = 1;

27download by : skknchat@gmail.com

Trang 28

}}// step 10

if( (flag_step_7 == 1) && (flag_step_10 ==0)){

lcd_clear_display();

lcd_gotoxy(0,7);

display_text("status5",7);

HAL_UART_Transmit(&huart1,(uint8_t*)"05\r\n" ,3, 1000);

flag_step_10 = 1;

}// kiem tra

Trang 29

RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;

RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;

RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;

if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK)

Trang 30

/* USER CODE BEGIN ADC1_Init 0 */ /*

USER CODE END ADC1_Init 0 */

ADC_ChannelConfTypeDef sConfig =

{0}; /* USER CODE BEGIN ADC1_Init 1

*/ /* USER CODE END ADC1_Init 1 */

/* USER CODE BEGIN ADC1_Init 2 */ /

* USER CODE END ADC1_Init 2 */

30download by : skknchat@gmail.com

Trang 31

/* USER CODE BEGIN TIM2_Init 0 */

/* USER CODE END TIM2_Init 0 */

TIM_ClockConfigTypeDef sClockSourceConfig =

{0}; TIM_MasterConfigTypeDef sMasterConfig = {0};

/* USER CODE BEGIN TIM2_Init 1 */

/* USER CODE END TIM2_Init 1 */

Trang 32

}

/* USER CODE BEGIN TIM2_Init 2 */

/* USER CODE END TIM2_Init 2 */

/* USER CODE BEGIN USART1_Init 0 */ /

* USER CODE END USART1_Init 0 */ /*

USER CODE BEGIN USART1_Init 1 */ /*

USER CODE END USART1_Init 1 */

/* USER CODE BEGIN USART1_Init 2 */ /

* USER CODE END USART1_Init 2 */

Trang 33

static void MX_GPIO_Init(void)

/*Configure GPIO pins : D4_Pin D5_Pin D6_Pin D7_Pin

/* USER CODE BEGIN 4 */

/* USER CODE END 4 */

Trang 34

/* USER CODE BEGIN Error_Handler_Debug */

/* User can add his own implementation to report the HAL error

*/

void assert_failed(uint8_t *file, uint32_t line)

{

/* USER CODE BEGIN 6 */

/* User can add his own implementation to report the file name and line number,

tex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */

/* USER CODE END 6 */

mô phỏng Quay video clip 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 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: https://youtu.be/wLCv6PKgkxU

34download by : skknchat@gmail.com

Ngày đăng: 16/04/2022, 16:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

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

w