1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Kiểm tra tx2 VĐK HaUI

11 5 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 đề Kiểm Tra Tx2 VĐK HaUI
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Điện tử
Thể loại đề thi
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 11
Dung lượng 227,27 KB

Nội dung

Đề và đáp án kiểm tra thường xuyên 2 Vi điều khiển HaUI Code và lưu đồ cho Ngắt ngoài, Timer, ADC, PWM và UART trong vi điều khiển STM32 F103C8

Trang 1

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 04 LED 7 thanh ; 01 nút nhấn

thường mở (BT1)

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng ngắt ngoài, đếm số lần nhấn BT1

- Hiển thị số lần nhấn BT1 trên 04 LED 7 thanh (sử dụng phương pháp quét LED)

Giả thiết số lần nhấn không quá 1999 lần

Ghi chú:

- Nếu chương trình có không quá 2 lỗi cú pháp và project được tạo đúng: GV sửa lỗi và chấm điểm các phần 4,5,6 đồng thời

trừ 1 điểm/lỗi

- Nếu chương trình có 3 lỗi trở lên hoặc tạo sai project: Điểm của phần 3,4,5,6 bằng 0.

Begin

Khời tạo: dem=0, maled, ngắt

PB0-PB11: ra BT1-PA1: vào

Dem<

=1999

9

Đ

Hiển thị số lần nhấn BT1 trên 4 LED 7 thanh

Begin

Dem++

End

Trang 2

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở; 03 nút nhấn thường mở (BT1)

- Công cụ truyền thông nối tiếp Virtual Terminal

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Mô phỏng bãi đỗ xe, cảm biến vào kết nối với nút nhấn BT1, cảm biến ra kết nối với nút nhấn

BT2, nút RESET về giá trị ban đầu kết nối BT3 (yêu cầu viết được chương trình đọc nút nhấn)

- Hiển thị lên Virtual Terminal với tốc độ Baud 9600bps: số xe vào, số xe ra, số xe có trong bãi Giả thiết số bãi xe chứa được tối đa 1000 xe

Begin

Khởi tạo: vào/ ra Thiết lập UART: Chế độ Asynchronous

Baud rate: 9600 Khai báo bien dem,dem1,dem2=0;

Uint32_t hienthi[100];

Khởi tạo UART HAL_UART_Start

Dem<=1000

Đ BT1 nhấn

Dem1++

BT2 nhấn

Dem2++

Truyền và hiển thị lên màn hình: số xe ra/vào, còn Sprinf();

HAL_UART_Transmit();

Trang 3

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 04 LED 7 thanh ; 01 nút nhấn thường mở (BT1)

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 1 chế độ đếm, đếm số lần nhấn BT1-TI1FP1 (yêu cầu viết được chương trình đọc nút nhấn sử dụng chế độ đếm của Timer)

- Hiển thị số lần nhấn BT1 trên 04 LED 7 thanh(sử dụng phương pháp quét LED)

Giả thiết số lần nhấn không quá 1234 lần

Begin

Khởi tạo vào/ra Thiết lập Timer1:

Prescaler: 0; Period: 1234 Khai báo biến dem;

Khởi tạo Timer1 HAL_TIM_Base_Start(&htim1);

Gán giá trị trả về của Timer vào biến dem Dem= HAL_TIM_GET_COUNTER(&htim1);

Hiển thị số lần nhấn BT1 lên 4 led 7 thanh

Trang 4

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32; 01 nút nhấn thường mở (BT1)

- Công cụ máy hiện sóng Oscilloscope hoặc công cụ đo tần số Counter Timer

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 2 để tạo xung

- Khi nhấn nút BT1 lần thứ 01 xung trên chân PB0 có tần số 5KHz; khi nhấn nút BT1 lần thứ 02 xung trên chân PB0 có tần số 1KHz

- Khi nhấn nút BT1 lần thứ 03 xung trên chân PB0 có tần số 10KHz; khi nhấn nút BT1 lần thứ 04 quay lại lần nhấn thứ 01

Giả thiết bộ tạo dao động chế độ HSI với tấn số 8MHz

Begin

Khởi tạo: BT1: vào, PB0: ra, dem=0

Thiết lập Timer 2: Cho phép ngắt

Prescaler: 0, Period: 799

Khởi tạo Timer2 HAL_TIM_Base_Start_IT

BT1 nhấn?

Dem++;

Dem==?

Thay đổi giá trị Timer theo biến dem HAL_TIM_SetAutoreload

Đ

S

Begin

Đảo mức logic trên chân PB0

End

Trang 5

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 01 biến trở; 04 Led 7 thanh,

01 Led đơn

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Đọc giá trị ADC1-IN1 trên chân PA1, hiển thị giá trị ADC đo được dưới dạng volt (ví dụ 1.345) trên 04 LED 7 thanh (sử dụng phương pháp quét LED)

- LED1 sáng khi điện áp trên IN1 nằm trong khoảng từ 1V đến 2V, tắt khi điện áp trên IN2 nằm ngoài khoảng từ 1V đến 2V

Begin

Khởi tạo vào/ra Thiết lập ADC1-IN1/PA1:

Bật chế độ: Continuous Conversion Mode và Right Alignment

Khai báo biến adc,x,volt

Khởi tạo ADC HAL_ADC_Start(&hadc1);

Chờ ADC chuyển đổi HAL_ADC_PollForConversion(&hadc1,10);

Gán giá trị của ADC vào biến adc adc=HAL_ADC_GET_VALUE ();

Chuyển kết quả sang volt volt=(float)adc/4095*3.3 x=volt*1000;

Hiển thị giá trị của ADC đo được dạng volt lên 4 led 7 thanh

1<=volt<=2?

S

LED1 tắt

Đ LED1 sáng

Trang 6

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 02 LED 7 thanh ; 01 nút nhấn thường mở (BT1)

- Công cụ máy hiện sóng Oscilloscope hoặc công cụ đo tần số Counter Timer

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 3 tạo xung PWM có tần số 4 KHz trên kênh CH1.Yêu cầu độ rông xung Ton: Sau khi cấp nguồn Ton=10%Tpwm; Khi nhấn nút BT1 lần thứ 01 Ton=20%Tpwm

- Khi nhấn nút BT1 lần thứ 02 Ton=60%Tpwm; khi nhấn nút BT1 lần thứ 03 Ton=90%Tpwm; khi nhấn nút BT1 lần thứ 04 quay lại lần nhấn thứ 01

Giả thiết bộ tạo dao động chế độ HSI với tấn số 8MHz

Begin

Khời tạo vào/ra: BT1: vào Khai báo biến dem=0;

Thiết lập Timer 3: Chế độ xung nội Prescaler: 0, Period: 1999 PWM kênh 1, Pulse: 200

BT1 nhấn?

Dem++;

Dem%3==1

Thay đổi Pulse Ton=20%Tpwm (Setcompare)

Dem%3==2

Thay đổi Pulse Ton=60%Tpwm (Setcompare)

Dem%3==0

Thay đổi Pulse Ton=90%Tpwm (Setcompare)

Đ

Đ

Đ

Trang 7

07 Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở; 01 nút nhấn thường mở (BT1)

- Công cụ truyền thông nối tiếp Virtual Terminal

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Khi nhấn BT1 lần thứ 01 truyền lên Virtual Terminal “ Họ và tên”; khi nhấn BT1 lần thứ 02 truyền lên Virtual Terminal “ Mã sinh viên”

- Khi nhấn BT1 lần thứ 03 xóa toàn bộ màn hình; khi nhấn BT1 lần thứ 04 lặp lại lần nhấn thứ 01 Với tốc độ Baud 19200bps Giả thiết số lần nhấn không quá 2255 lần

Begin

Khởi tạo vào/ra: BT1: vào PA9-PA10: Chiều ra dữ liệu UART;

Cấu hình UART1: Chế độ Asynchronous, Baud rate: 19200bps

Khai báo mảng truyền, nhận: n, m…

Khai báo biến dem=0;

Khởi tạo ADC HAL_UART_Start(&huart1);

Dem<=2255

Dem++;

Đ BT1 nhấn?

S

Đ

Truyền dữ liệu qua UART theo giá trị của biến dem

HAL_UART_Transmit ();

Trang 8

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 04 LED 7 thanh ; 01 nút nhấn thường mở (BT1)

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 3 chế độ đếm, đếm số lần nhấn BT1-TI1FP1 (yêu cầu viết được chương trình đọc nút nhấn sử dụng chế độ đếm của Timer)

- Hiển thị số lần nhấn BT1 trên 4 LED 7 thanh (bằng phương pháp quét Led)

Giả thiết số lần nhấn không quá 1220 lần

BEGIN

Khời tạo vào/ra: 4 LED: ra, BT1: vào

Khai báo biến dem=0;

Thiết lập Timer 3 chế độ đếm TI1FP1

Khai báo mảng ma_led

Khởi tạo Timer 3 HAL_TIM_Base_Start ();

Gán giá trị trả về của Timer 3 vào biến dem Dem= HAL_TIM_GET_VALUE ();

Hiển thị số lần nhấn lên 4 LED 7 thanh

Trang 9

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32; 01 nút nhấn thường mở (BT1)

- Công cụ máy hiện sóng Oscilloscope hoặc công cụ đo tần số Counter Timer

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 1 để tạo xung trên chân PA1 có tần số 10KHz; sau 2 giây có tần số 4KHz; sau 2 giây có tần số 1KHz

- Sử dụng Timer 3 để tạo xung trên chân PA2 có tần số 5KHz sau 2 giây có tần số 2KHz; sau 2 giây có tần số 500Hz

Giả thiết bộ tạo dao động chế độ HSI với tấn số 8MHz

Begin

Khởi tạo vào/ra: PA1: ra

Thiết lập ngắt Timer1: Chế độ xung nội

Prescaler=0, Period=399;

Thiết lập ngắt Timer3: Chế độ xung nội

Prescaler=0, Period=799;

Khởi tạo Timer1, Timer3

HAL_TIM_Base_Start_IT ();

Sau 2 giây, tần số thay đổi

HAL_TIM_SetAutoreload ();

HAL_TIM_SET_PRESCALER ();

Begin

Đảo mức logic trên chân PA1 Đảo mức logic trên chân PA2

END

Trang 10

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 01 biến trở; 4 Led 7 thanh

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Đọc giá trị ADC1-IN3 trên chân PA3, hiển thị giá trị ADC đo được dưới dạng volt (ví dụ 1.345) trên 04 LED 7 thanh (sử dụng phương pháp quét LED)

- LED13 sáng khi điện áp trên IN3 nằm trong khoảng từ 2V đến 3V, tắt khi điện áp trên IN3 nằm ngoài khoảng từ 2V đến 3V

Begin

Khởi tạo vào/ra: 4 LED: ra Thiết lập ADC1-IN3/PA3: Bật chế độ

Continuous Conversion Mode, Right

Alignment Khai báo biến adc, x, float=0;

Khai báo mảng ma_led

Khởi tạo ADC HAL_Adc_start ();

Chờ ADC chuyển đổi xong HAL_ADC_PollForConversion ();

Gán giá trị của ADC vào biến adc adc=HAL_ADC_GET_VALUE ();

Chuyển kết quả sang volt volt=(float)adc/4095*3.3 x=volt*1000;

Hiển thị giá trị đo được lên 4 led 7 thanh

2482<=adc<=3723

LED13 sáng

Đ

S

LED13 tắt

Trang 11

Câu 1:

a Thiết kế mạch điện như sau:

- Các linh kiện được sử dụng: 01 vi điều khiển STM 32, các điện trở, 02 LED 7 thanh ; 01 nút nhấn thường mở (BT1)

- Công cụ máy hiện sóng Oscilloscope hoặc công cụ đo tần số Counter Timer

b Lập lưu đồ thuật toán và viết chương trình theo yêu cầu như sau:

- Sử dụng Timer 1 tạo xung PWM trên 2 kênh CH1 và CH2 có tần số 5 KHz , khi không nhấn BT1

độ rộng xung Ton1=10%Tpwm, Ton2=60%Tpwm;

- Khi nhấn BT1 sau 2s Ton1=90%Tpwm, Ton2=40%Tpwm

Giả thiết bộ tạo dao động chế độ HSI với tấn số 8MHz

CTC

Begin

Khởi tạo vào/ra: PA0: vào

PA8, PA9: ra

Thiết lâp Timer 1

Ngày đăng: 05/05/2024, 09:39

w