Professional Documents
Culture Documents
BTL VXL
BTL VXL
Mạch mô phỏng
CODE
1.Linh kiện sử dụng :
Vi điều khiển STM32F401VE :
- Là vi điều khiển 32bit, thuộc họ F1 của dòng chip STM21 hang ST.
- Lõi ARM Cortex M4 .
- Tốc độ tối đa 84MHz.
- Bộ nhớ :
+128 đến 512 kbytes cho Flash.
+96kbytes cho SRAM.
- Điện áp cấp 5VDC qua cổng Micro USB sẽ được chuyển đổi thành
3.3VDC qua IC nguồn và cấp cho Vi điều khiển chính .
- Sử dụng thạch anh ngoài .
Điện trở thanh
Giá trị điện trở 150 Ohm
Led
Nguồn
Đất
Mạch nạp: ST Link V2
2. Mạch mô phỏng :
2. Mạch mô phỏng :
Mạch được thiết kế:
*Đèn led:
- Chân “+” được điều khiển bởi mạch, chân “–” được nối đất.
- Mỗi đèn led sẽ được nối với 1 điện trở 150 ôm.
- Các đèn led từ 1 đến 16 sẽ được nối lần lượt từ chân PD0 đến chân PD15 của mạch.
- Các đèn led từ 17 đến 22 sẽ được nối lần lượt từ chân PE0 đến chân PE5 của mạch.
*Mạch STM32F401VE:
- Mạch được cấp nguồn thông qua chân VDDA và chân VREF “+”.
- Chân VREF “-” của mạch sẽ được nối đất.
2. Mạch mô phỏng :
Mạch được thiết kế:
*Đất:
- Mục đích chính của việc nối đất là đảm bảo an toàn cho người sử dụng và bảo vệ thiết
bị khỏi các rủi ro như điện giật, chập điện...
*Nguồn:
- Nguồn thông qua chân VDDA, NRST và chân VREF “+” nối với mạch STM32.
*Điện trở:
- Số liệu: 150 ôm, dùng để hạn chế cường đồ dòng điện chảy qua, tránh làm cháy
bóng led.
3. Code STM32 :
- Phần mềm lập trình:
STM32CubeIDE là một nền tảng
phát triển C / C ++ tiên tiến với các
tính năng cấu hình ngoại vi, tạo
mã, biên dịch mã và gỡ lỗi cho vi
điều khiển và vi xử lý STM32.
begin Khai báo các hàm While
HAL_Delay
hiển thị Sanghetled();
(1000);
HAL_Delay
(1000); hiển thị Tathetled();
HAL_Delay
hiển thị Sangduoi
(1000);
bentrai();
HAL_Delay
(1000);
CODE :
void Sangduoibenphai(){
TatHetLed();
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_11, GPIO_PIN_SET); //Sáng Đèn D12
HAL_Delay(100); HAL_GPIO_WritePin (GPIOE, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D22
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_10, GPIO_PIN_SET); //Sáng Đèn D11 HAL_Delay(100);
HAL_Delay(100); HAL_GPIO_WritePin (GPIOE, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D21
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_9, GPIO_PIN_SET); //Sáng Đèn D10 HAL_Delay(100);
HAL_Delay(100); HAL_GPIO_WritePin (GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D20
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_8, GPIO_PIN_SET); //Sáng Đèn D9 HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D19
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_7, GPIO_PIN_SET); //Sáng Đèn D8
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D18
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_6, GPIO_PIN_SET); //Sáng Đèn D7
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D6 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D17
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D5 HAL_GPIO_WritePin (GPIOD, GPIO_PIN_15, GPIO_PIN_SET); //Sáng Đèn D16
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D4 HAL_GPIO_WritePin (GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //Sáng Đèn D15
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D3 HAL_GPIO_WritePin (GPIOD, GPIO_PIN_13, GPIO_PIN_SET); //Sáng Đèn D14
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D2 HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12, GPIO_PIN_SET); //Sáng Đèn D13
HAL_Delay(100); HAL_Delay(100) ;
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D1 }
HAL_Delay(100);
CODE :
void Sangduoibentrai() { TatHetLed();
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12, GPIO_PIN_SET); //Sáng Đèn D13
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_13, GPIO_PIN_SET); //Sáng Đèn D14
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D4
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //Sáng Đèn D15
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D5
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_15, GPIO_PIN_SET); //Sáng Đèn D16
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D6
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D17
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_6, GPIO_PIN_SET); //Sáng Đèn D7
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D18
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_7, GPIO_PIN_SET); //Sáng Đèn D8
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D19
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_8, GPIO_PIN_SET); //Sáng Đèn D9
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D20
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_9, GPIO_PIN_SET); //Sáng Đèn D10
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D21
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_10, GPIO_PIN_SET); //Sáng Đèn D11
HAL_Delay(100);
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D22
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_11, GPIO_PIN_SET); //Sáng Đèn D12
HAL_Delay(100);
HAL_Delay(100);}
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D1
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D2
HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D3
HAL_Delay(100);
CODE :
void SangHetLed(){
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D1
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D2
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D3
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D4
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D5
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D6
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_6, GPIO_PIN_SET); //Sáng Đèn D7
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_7, GPIO_PIN_SET); //Sáng Đèn D8
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_8, GPIO_PIN_SET); //Sáng Đèn D9
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_9, GPIO_PIN_SET); //Sáng Đèn D10
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_10, GPIO_PIN_SET); //Sáng Đèn D11
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_11, GPIO_PIN_SET); //Sáng Đèn D12
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12, GPIO_PIN_SET); //Sáng Đèn D13
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_13, GPIO_PIN_SET); //Sáng Đèn D14
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //Sáng Đèn D15
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_15, GPIO_PIN_SET); //Sáng Đèn D16
//Led13------------------------------------------------------------------ //Led18------------------------------------------------------------------
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12, GPIO_PIN_SET); //Sáng Đèn D11 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_1, GPIO_PIN_SET); //Sáng Đèn D16
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_12, GPIO_PIN_RESET); //Tắ t Đèn D11 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_1, GPIO_PIN_RESET); //Tắ t Đèn D16
//Led14------------------------------------------------------------------ //Led19------------------------------------------------------------------
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_13, GPIO_PIN_SET); //Sáng Đèn D12 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_2, GPIO_PIN_SET); //Sáng Đèn D17
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_13, GPIO_PIN_RESET); //Tắ t Đèn D12 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_2, GPIO_PIN_RESET); //Tắ t Đèn D17
//Led15------------------------------------------------------------------ //Led20------------------------------------------------------------------
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_14, GPIO_PIN_SET); //Sáng Đèn D13 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_3, GPIO_PIN_SET); //Sáng Đèn D18
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_14, GPIO_PIN_RESET); //Tắ t Đèn D13 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_3, GPIO_PIN_RESET); //Tắ t Đèn D18
//Led16------------------------------------------------------------------ //Led21------------------------------------------------------------------
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_15, GPIO_PIN_SET); //Sáng Đèn D14 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_4, GPIO_PIN_SET); //Sáng Đèn D19
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOD, GPIO_PIN_15, GPIO_PIN_RESET); //Tắ t Đèn D14 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_4, GPIO_PIN_RESET); //Tắ t Đèn D19
//Led17------------------------------------------------------------------ //Led22-----------------------------------------------------------------
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_0, GPIO_PIN_SET); //Sáng Đèn D15 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_5, GPIO_PIN_SET); //Sáng Đèn D20
HAL_Delay(100); HAL_Delay(100);
HAL_GPIO_WritePin (GPIOE, GPIO_PIN_0, GPIO_PIN_RESET); //Tắ t Đèn D15 HAL_GPIO_WritePin (GPIOE, GPIO_PIN_5, GPIO_PIN_RESET); //Tắ t Đèn D20
}
Thank for watching Presentations !!!