1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo bài tập lớn chương 1 Hệ thống điều khiển nhúng

13 25 2

Đ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 bài tập lớn chương 1: Đo độ rộng xung và hiển thị LED 7 đoạn
Tác giả Nguyễn Tấn Lộc, Vương Gia Long, Lê Bá Nam, Nguyễn Ngọc Nhân
Người hướng dẫn GV. Nguyễn Vĩnh Hảo
Trường học Đại học Quốc gia Thành phố Hồ Chí Minh, Trường Đại học Bách khoa
Chuyên ngành Hệ thống điều khiển nhúng
Thể loại bài tập lớn
Năm xuất bản 2021
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 13
Dung lượng 1,49 MB
File đính kèm HTDKN_Nhom6.zip (3 MB)

Nội dung

Báo cáo bài tập lớn chương 1 môn Hệ thống Điều khiển Nhúng, Đại học Bách Khoa ĐHQG TPHCM, do thầy Ts. Nguyễn Vĩnh Hảo phụ trách. Đo độ rộng xung Hiển thị LED 7 đoạn Điều rộng xung Vẽ lại mạch giải mã ở Slide15 trên QuartusBlock Diagram Vẽ lại mạch giải mã ở và Slide19 trên Quartus Block Diagram

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

- -

BÁO CÁO BÀI TẬP LỚN CHƯƠNG I

GVGD: Nguyễn Vĩnh Hảo Lớp: L02

Nguyễn Tấn Lộc (1914023)

Vương Gia Long (1810311)

TPHCM, tháng 9 năm 2021

Link full source: https://drive.google.com/file/d/1OkE0N1Xbp9W6UgzPhAntY (Ph ầ n đ uôi ở

cu ố i tài li ệ u)

Trang 2

BÀI TẬP LỚN CHƯƠNG 1

1 Đo độ rộng xung

- Đầu vào xung PulseIn, clk (1us)

- Đầu ra D[15:0] chỉ độ rộng xung PulseIn (đơn vị us)

- Sử dụng khối lpm_counter trong Megafunctions/Arithmetic

Mạch schematic:

Giải thích:

Bộ lpm_counter: chế độ counter up 16 bit Khi chân PulseIn lên 1, qua cổng not sẽ làm chân clear về 0, cho phép bộ đếm đếm lên theo chu kì xung clock Ngõ ra của bộ đếm (Q[15:0]) sẽ nối tới dữ liệu vào (D[8:1]) của hai mạch chốt 74374 (tương ứng byte cao và byte thấp của ngõ ra bộ đếm) để chốt số xung đếm được

IC 74374: Khi PulseIn có xung cạnh xuống qua cổng not sẽ đưa vào chân CLK của hai IC74374 cho phép IC này chốt kết quả đếm của khối lpm_counter (byte cao và byte thấp) Chân OEN (output enabled được nối đất (luôn cho phép chốt dữ liệu, chỉ phụ thuộc vào tín hiệu xung clock)

Tiến hành mô phỏng:

Xung clk có chu kì 1us, duty cycle = 50%:

Trang 3

Xung PulseIn có chu kì 100us, duty cycle = 50%:

Trang 4

Kết quả thực hiện:

Khi PulseIn có xung cạnh xuống, dữ liệu được chốt ra ngõ ra Q của hai IC74374

Ngõ ra D[15:0] của bộ lpm_counter:

Ngõ ra Q[15:0] được chốt có giá trị nhị phân 00110010 tương đương giá trị thập phân là

50

Nhận xét: Mạch schematic cho kết quả mô phỏng đúng theo lý thuyết, PulseIn có chu kì

100us và duty cycle = 50%, nên độ rộng xung là 50us tương ứng với 50 chu kì xung clock

Trang 5

2 Hiển thị LED 7 đoạn

-Đầu vào xung clk (1us)

-Đầu ra D[6:0]: dữ liệu LED 7 đoạn (cực âm chung)

-Số LED hiển thị: 1

-Hiển thị từ 0ms – 9ms, sau đó lặp lại

-Giải mã LED bằng IC 7447

Mạch schematic

Giải thích:

Bộ lpm_counter0: chế độ counter up 10bit, đếm lên modulus 1000 (0 – 999) Có nhiệm vụ chuyển đổi 1us ➔ 1ms cout của lpm_counter0 sẽ lên mức 1 khi lpm_counter0 đếm đủ modulus 1000, đồng thời sẽ là xung kích hoạt cho lpm_counter1

Bộ lpm_counter1: chế độ counter up 4bit, đếm lên modulus 10 (0 – 9) Có nhiệm vụ đếm

từ 0ms – 9ms Ngõ ra q[3 0] sẽ có giá trị từ 0 – 9 được nối tới ICgiải mã LED 7447

IC 7447: Giải mã BCD sang LED 7 đoạn Ngõ vào q[3 0] cho DCBA, các chân LTN, RBIN, BIN kích hoạt mức thấp ➔ nối lên Vcc Do yêu cầu cực âm chung ➔ cần thêm cổng not ở ngõ ra của IC 7447

Bảng mô tả cách tạo ra các chữ để hiển thị lên LED 7 đoạn cực âm chung

Trang 6

Số

Số nhị phân

HEX

Tiến hành mô phỏng:

Cài đặt xung clock 1us, thời gian mô phỏng 20ms

Kết quả mô phỏng trong 20ms:

Trang 7

Nhận xét: Kết quả ngõ ra của LED giống với bảng mô tả led 7 đoạn cực âm chung Tuy

nhiên có 2 số khác biệt

3 Điều rộng xung

- Đầu vào T (8bit), Ton (8bit), clk (1us)

- Đầu ra PwmOut

Trang 8

- Độ phân giải 8 bit (255 mức)

- Ton, T chỉ thay đổi 1 lần đầu lúc khởi động, T =10 hoặc 1 giá trị bất kỳ Ton = 0 – T

- Sử dụng Khối lpm_counter và lpm_compare trong Megafunctions\Arithmetic

Mạch schematic:

Giải thích:

Điều rộng xung PWM bằng cách sử dụng 2 khối lpm_compare, 1 khối lpm_counter và IC74374 để chốt dữ liệu khi Ton thay đổi và cập nhật ở chu kì sau:

- Khối lpm_counter0 thực hiện mode đếm lên binary 8 bit và sẽ được được reset về 0 khi chân aclr=1

- Khối lmp_compare0 sẽ tạo ra xung PWM có chu kì T bằng cách so sánh giữa giá trị đếm của lpm_counter0 (D[7 0]) và giá trị T, khi D[7 0]=T thì sẽ làm tích cực chân aclr

và lmp_counter0 sẽ thực hiện đếm lên lại từ 0

- Khối lpm_compare1 sẽ thực hiện so sánh Ton và D[7 0], nếu D[7 0]Ton thì xung PWM có giá trị bằng 1 và ngược lại xung PWM bằng 0

- IC74374 thực hiện chốt dữ liệu khi Ton thay đổi và cập nhật ở chu kì tiếp theo

Kết quả mô phỏng:

- Với T=10, Ton=0

Trang 9

Nhận xét:

Khi T=10, Ton=0 thì duty cycle=0%, xung PWM=0

- Với T=10, Ton=1

Trang 10

Nhận xét: Khi T=10, Ton=1 thì duty cycle=10%, thời gian mức 1 của xung PWM nhỏ hơn

so với thời gian mức 0

- Với T=10, Ton=9

Nhận xét: Khi T=10, Ton=9 thì duty cycle=90%, thời gian mức 1 của xung PWM lớn hơn

thời gian mức 0

- Với T=10, thực hiện thay đổi Ton

Trang 11

Nhận xét:

Khi T=10, thực hiện thay đổi giá trị của Ton ở chu kì thứ 2 từ 5→8 thì giá trị Ton=8 được cập nhật ở chu kì thứ 3 của xung PWM, ở chu kì thứ 3 cũng thực hiện hay đổi Ton từ 8→

5→1→4 giá trị Ton =4 được cập nhật ở chu kì thứ 4 (Do Ton sẽ được cập nhật ở chu kì sau của xung PWM nên tất cả các trường hợp mô phỏng thì xung PWM sẽ luôn bằng 0 ở chu kì đầu tiên)

4 Vẽ lại mạch giải mã ở Slide15 trên Quartus/Block Diagram

- Số kênh nhiều nhất là 6 (module PWM và Encoder) nên cần 3 đường địa chỉ để giải mã các kênh A[2 0]

- Có tất cả 5 module nên cần 3 đường địa chỉ để giải mã các module A[6 4]

- Dùng IC74138 để giải mã địa chỉ đến từng Module:

+ A[6:4] nối vào các ngõ vào C, B, A, còn dư lại A[7] nối vào ngõ G2AN tích cực thấp, chỉ cho phép IC hoạt động khi A[7]=0, khi bit này lên mức cao thì IC bị bất hoạt

+ Các ngõ vào cho phép G1, G2BN còn lại lần lượt nối lên VCC và GND để cho phép IC luôn hoạt động và chỉ phụ thuộc vào bit A[7]

+ 5 ngõ ra từ Y0N – Y4N nối đến chân CS của từng module

- Tầm địa chỉ hoạt động của các module:

CS_ADC: 0x00 – 0x03

CS_DAC: 0x10 – 0x11

Trang 12

CS_PWM: 0x20 – 0x25

CS_ENC: 0x30 – 0x35

CS_DI: 0x40 – 0x41

Mạch Schematic:

Nhận xét:

Thực hiện compile trên quartus không xuất hiện lỗi, mạch được vẽ đúng

5 Vẽ lại mạch giải mã ở và Slide19 trên Quartus/ Block Diagram

- Số kênh nhiều nhất là 16 kênh (module ADC) nên cần 4 đường địa chỉ A[3 0] để giải

mã các kênh

- Có tất cả 9 module nên cần 4 đường địa chỉ A[7 4] để giải mã các module

- Dùng IC74138 và 1 cổng NOT để giải mã địa chỉ đến từng Module:

+ A[6:4] nối vào các ngõ vào C, B, A; A[7] vừa qua cổng NOT làm đường giải mã địa chỉ module thứ 9, vừa nối vào ngõ vào cho phép G2AN để chỉ cho phép tại 1 địa chỉ có 1 module hoạt động (khi A[7]=0, IC giải mã 8 module đầu; khi A[7]=1, IC bị bất hoạt làm cho chỉ có module thứ 9 hoạt động)

+ Các ngõ vào cho phép G1, G2AN, G2BN lần lượt nối lên VCC và GND như hình để cho phép IC luôn hoạt động

+ Các ngõ ra từ nối đến các module

-Tầm địa chỉ hoạt động của các module:

CS_ADC: 0x00 – 0x0F

Trang 13

CS_DAC: 0x10 – 0x11

CS_PWM: 0x20 – 0x23

CS_ENC: 0x30 – 0x33

CS_DI: 0x40 – 0x43

CS_DO: 0x50 – 0x51

CS_CAP: 0x60 – 0x65

CS_SPI: 0x70

CS_I2C: 0x80

Mạch Schematic:

Nhận xét:

Thực hiện compile trên quartus không xuất hiện lỗi, mạch được vẽ đúng

Link full source: https://drive.google.com/file/d/1OkE0N1Xbp9W6UgzPhAntYQBR-mmerXyh/view?usp=sharing

Ngày đăng: 20/03/2024, 10:10

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w