You are on page 1of 3

IHW#I.5.

1
1.1. Yêu cầu:
- Vẽ mạch điện mô phỏng như hình dưới:

U1
VR1 23 81
PA0 PD0
24 82
PA1 PD1
25 83
PA2 PD2
26 84
50%

PA3 PD3
29 85
PA4 PD4
30 86
PA5 PD5
31 87
PA6 PD6
1k 32 88
PA7 PD7
67 55 220
PA8 PD8
68 56 220
PA9 PD9
69 57 220
PA10 PD10
70 58 220
PA11 PD11
71 59 220
PA12 PD12
72 60 220
PA13 PD13
76 61 220
PA14 PD14
77 62 220
PA15 PD15
35 97
PB0 PE0
36 98
PB1 PE1
37 1
PB2 PE2
89 2
PB3 PE3
90 3
PB4 PE4
91 4
PB5 PE5
92 5
PB6 PE6
93 38
PB7 PE7
95 39
PB8 PE8
96 40
PB9 PE9
47 41
PB10 PE10
42
PE11
51 43
PB12 PE12
52 44
PB13 PE13
53 45
PB14 PE14
54 46
PB15 PE15
15 12
PC0 PH0/OSC_IN
16 13
PC1 PH1/OSC_OUT
17
PC2
18 22
PC3 VDDA
33 21
PC4 VREF+
34 20
PC5 VSSA/VREF-
63
PC6
64 14
PC7 NRST
65
PC8
66 6
PC9 VBAT
78
PC10
79 94
PC11 BOOT0
80
PC12
7 48
PC13 VCAP_1
8 73
PC14-OSC32_IN VCAP_2
9
PC15-OSC32_OUT
STM32F401VE

- Đọc giá trị ADC1-IN3 trên chân PA3, chuyển đổi giá trị ADC sang điện áp đơn vị
(Volt).
- Hiển thị giá trị ADC đo được trên 4 LED 7 thanh (ví dụ: 2.354); Nếu điện áp trong
khoảng (3.0V ÷ 3.3V), 4 LED 7 thanh hiển thị “FULL”.
1.2. Gợi ý thực hiện
- Thực hiện cấu hình, lập trình chuyển đổi ADC tương tự Ví dụ 2
- Thiết lập kênh đầu vào ADC1-IN3
- Khai báo biến toàn cục “float dienap;”
- Thiết lập mã LED 7 thanh hiển thị “FULL”..
- Thực hiện chuyển đổi sang điện áp và điều khiển LED D11:
uint32_t AD, dienap;
float volt;
volt= ((float)AD * 3.3)/4095;
dienap=volt*1000;
if (dienap >= 3 && dienap = <3.3 )
ma_led_full();
else
{
//Nghin
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3, GPIO_PIN_RESET);

hienthi_7seg(ma_led[dienap/1000]);
HAL_GPIO_WritePin(GPIOD,GPIO_PIN_15, GPIO_PIN_RESET);
HAL_Delay(2);
//Tram
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3, GPIO_PIN_RESET);

hienthi_7seg(ma_led[dienap%1000/100]);
HAL_Delay(2);
//Chuc
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2, GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3, GPIO_PIN_RESET);

hienthi_7seg(ma_led[dienap%1000%100/10]);
HAL_Delay(2);
//Don vi
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2, GPIO_PIN_RESET);
HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3, GPIO_PIN_SET);
hienthi_7seg(ma_led[dienap%1000%100%10]);
HAL_Delay(2);
}

1.3. Hình thức nộp bài tập: Nộp 1file PDF trong đó bao gồm 3 file ảnh, ảnh 1 thể
hiện màn hình viết code, ảnh 2 với điện áp tương tự đầu vào nhỏ hơn 3V và ảnh 3 với
điện áp đầu vào lớn hơn 3V.

You might also like