Bao Cao 2
Bao Cao 2
Câu 1: Dùng vi điều khiển STM32F103 điều khiển 8 led đơn sáng dần rồi tắt dần từ phải sang trái.
GPIOA -> ODR = 0xFF; /*chon PA0 -> PA7 o muc cao */
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_1);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_2);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_3);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_4);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_6);
HAL_Delay(200);
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_7);
HAL_Delay(200);
Câu 2: Dùng vi điều khiển STM32F103 kết nối với 2 led 7 đoạn anode chung và viết chương trình đếm từ 00
đến 99 với thời gian trễ tùy chọn.
#include "stm32f1xx_hal.h"
#endif
Code:
LED7_Number1(i1); /* 2 led hiển thị 00, hai biến l1 = 0 */
LED7_Number2(i2);
l1++;
if (l1 > 9) {
l1 = 0;
l2++;
}
if (l2 > 9) {
l2 = 0;
}
HAL_Delay(100);
Câu 3:Hãy viết chương trình thực hiện đếm từ 000 đến 999 hiển thị trên 3 led 7 đoạn, thời gian trễ tùy chọn, bắt
đầu cho đếm từ 95 và 995.
Tạo dữ liệu led7.h:
#ifndef LED7_H
#define LED7_H
#include "stm32f1xx_hal.h"
#endif
uint8_t LED7_HEX[] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};
Code:
LED7_Number1(i1); /* 2 led hi?n th? 00, hai bi?n l1 = 0 */
LED7_Number2(i2);
LED7_Number3(i3);
i1++;
if (i1 > 9) {
i1 = 0;
i2++;
}
if (i2 > 9) {
i2 = 0;
}
i3++;
if (i3 > 9) {
i3 = 0;
}
HAL_Delay(100);