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

(TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN

34 8 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 đề Báo cáo Vi Điều Khiển
Tác giả Hoàng Trần Thiện
Người hướng dẫn PTS. Phạm Quang Trí
Trường học Trường Đại học Công nghiệp TPHCM
Chuyên ngành Vi Điều Khiển
Thể loại Báo cáo
Thành phố TPHCM
Đị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

1

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

2

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.

3

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.

4

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.

5

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.

6

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.

7

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.

8

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”.

9

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

10

Trang 11

BƯỚC 1 BƯỚC 2

11

Trang 12

BƯỚC 3 BƯỚC 4

12

Trang 13

BƯỚC 5 BƯỚC 6

13

Trang 14

BƯỚC 7 BƯỚC 8

14

Trang 15

BƯỚC 9

15

Trang 16

BƯỚC 10

16

Trang 17

CHƯƠNG TRÌNH NGẮT

17

Trang 18

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

18

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 */

21

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 - */

22

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 */

25

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;

26

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)){

lcd_clear_display();

lcd_gotoxy(0,7); display_text("status4",7);

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

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;

27

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 */

30

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 */

if (HAL_TIMEx_MasterConfigSynchronization(&htim2,

&sMasterConfig) != HAL_OK)

{

31

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

* @brief Reports the name of the source file and the source line number

* @param file: pointer to the source file name

* @param line: assert_param error line source number

* @retval None

*/

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

34

Ngày đăng: 06/12/2022, 06:25

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Thành phần hoỏ học của thộp CT45. - (TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN
Bảng 1.1 Thành phần hoỏ học của thộp CT45 (Trang 4)
Bước 5: Cấu hình chức năng UART ta vào connectivity chọn UART1 - (TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN
c 5: Cấu hình chức năng UART ta vào connectivity chọn UART1 (Trang 7)
Bước 6: Cấu hình chức năng ADC, khai báo ngõ vào ADC (mode) ta - (TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN
c 6: Cấu hình chức năng ADC, khai báo ngõ vào ADC (mode) ta (Trang 8)
Sau khi hồ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”. - (TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN
au khi hồ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” (Trang 9)
(Bảng 4-95/trang 374 :Sổ tay cụng nghệ chế tạo mỏy tập 1) - (TIỂU LUẬN) báo cáo VI điều KHIỂN môn VI điều KHIỂN
Bảng 4 95/trang 374 :Sổ tay cụng nghệ chế tạo mỏy tập 1) (Trang 15)

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