1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Bài tập lớn môn kỹ thuật vi xử lý đề tài đồng hồ led giờ,phút giây bằng led kép (7 đoạn)

16 26 0

Đ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 đề Đồng Hồ Led: Giờ, Phút Giây Bằng Led Kép (7 Đoạn)
Người hướng dẫn Thầy Trương Cao Dũng
Trường học Học Viện Công Nghệ Bưu Chính Viễn Thông
Chuyên ngành Kỹ Thuật Vi Xử Lý
Thể loại Bài Tập Lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 16
Dung lượng 1,23 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong đó STM32F1x là một loại rất phổ biến được sử dụng trong nhiều loại thiết bị, nó cũng cung cấp các phương tiện để liên kết với nhiều loại vi điều khiển khác.. Cùng với những hiểu bi

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

BÀI TẬP LỚN MÔN KỸ THUẬT VI XỬ LÝ

ĐỀ TÀI : ĐỒNG HỒ LED: GIỜ,PHÚT GIÂY BẰNG LED KÉP (7

ĐOẠN)

Giảng viên hướng dẫn : Thầy Trương Cao Dũng

Nhóm môn học: 02

Nhóm bài tập lớn:06

Hà Nội – 11/2023

Trang 2

LỜI NÓI ĐẦU

Hiện nay, khoa học công nghệ ngày càng phát triển, vi điều khiển ARM đang

ngày càng thông dụng và phát triển hơn Trong đó STM32F1x là một loại rất phổ biến được sử dụng trong nhiều loại thiết bị, nó cũng cung cấp các phương tiện để liên kết với nhiều loại vi điều khiển khác Dòng MCU STM32flx do

STMicroelectronics tạo ra bao gồm lõi xử lí ARM Cortex-M3 32 bit và hỗ trợ các ngoại vi thông dụng như I2C, SPI, RTC, Ngôn ngữ lập trình vô cùng dễ

sử dụng tương thích với ngôn ngữ C và thư viện rất phong phú và

được chia sẻ miễn phí Chính vì những lý do như vậy nên ARM

hiện đang dần phổ biến và được phát triển ngày càng mạnh mẽ

trên toàn thế giới

Trên cơ sở kiến thức đã học trong môn học: Kỹ thuật vi xử lý, hệ thống nhúng, Cùng với những hiểu biết của mình về các thiết bị diện tử, nhóm em dã quyết định thực hiện đề tài: Sử dụng vi điều khiển STM32F103C8T6 thiết kế đồng hồ

đo điện áp, hiển thị giá trị lên led 7 thanh dải đo từ 1 - 12V, sử dụng 1 nút

nhãn chuyển thang do giữa V và mV với mục đích để tìm hiểu thêm về ARM, làm quen với các thiết bị diện tử,cách lập trình và nâng cao hiểu biết cho bản thân Trong quá trình thực hiện có lẽ khó có thể tránh khỏi những thiếu sót, hạn chế vì thể nhóm em rất mong có được sự góp ý và nhắc nhở từ thầy giáo để có thể hoàn thiện đề tài của mình

Em xin chân thành cảm ơn!

Trang 3

PHẦN 1 TỔNG QUAN

Trong phần bài tập lớn này nhóm em sử dụng những thành phần sau:

1) Vi điều khiển STM32F103C8T6

I,Giới thiệu tổng quan:

 Là vi điều khiển 32bit, thuộc họ F1 của dòng chip STM32 hãng ST

 Lõi ARM COTEX M3

 Tốc độ tối đa 72Mhz

Bộ nhớ :

 64 kbytes bộ nhớ Flash

 20 kbytes SRAM

 Clock, reset và quản lý nguồn

Điện áp hoạt động từ 2.0 → 3.6V

Sử dụng thạch anh ngoài từ 4Mhz → 20Mhz

Thạch anh nội dùng dao động RC ở mode 8Mhz hoặc 40Khz

Chế độ điện áp thấp:

Có các mode: ngủ, ngừng hoạt động hoặc hoạt động ở chế độ chờ

Cấp nguồn ở chân Vbat bằng pin ngoài để dùng bộ RTC và sử dụng dữ liệu được lưu trữ khi mất nguồn cấp chính 2 bộ ADC 12 bit với 9 kênh cho mỗi bộ

Khoảng giá trị chuyển đổi từ 0 – 3.6 V

Có chế độ lấy mẫu 1 kênh hoặc nhiều kênh

DMA:

7 kênh DMA

Có hỗ trợ DMA cho ADC, UART, I2C, SPI

7 bộ Timer:

3 Timer 16 bit hỗ trợ các mode Input Capture/ Output Compare/ PWM

1 Timer 16 bit hỗ trợ để điều khiển động cơ với các mode bảo vệ ngắt Input, dead-time

2 Watchdog Timer để bảo vệ và kiểm tra lỗi

1 Systick Timer 24 bit đếm xuống cho hàm Delay,…

Có hỗ trợ 9 kênh giao tiếp:

2 bộ I2C

3 bộ USART

2 SPI

1 CAN

USB 2.0 full-speed interface

Kiểm tra lỗi CRC và 96-bit ID

Trang 4

II Giới thiệu về kit STM32F103C8T6

Kit phát triển STM32F103C8T6 Blue Pill ARM Cortex-M3 là loại được sử dụng để nghiên cứu về ARM nhiều nhất hiện nay

Trang 5

Các thông số kĩ thuật:

Đ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

Tích hợp sẵn thạch anh 8Mhz

Tích hợp sẵn thạnh anh 32Khz cho các ứng dụng RTC

Ra chân đầy đủ tất cả các GPIO và giao tiếp: CAN, I2C, SPI, UART, USB,

Tích hợp Led trạng thái nguồn, Led PC13, Nút Reset

Kích thước: 53.34 x 15.24mm

2,Màn hình LCD 16x2

Ngày nay, thiết bị hiển thị LCD 1602 (Liquid Crystal Display) được sử dụng trong rất nhiều các ứng dụng của VĐK LCD 1602 có rất nhiều ưu điểm so với các dạng hiển thị khác như: khả năng hiển thị kí tự đa dạng (chữ, số, kí tự đồ họa); dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức giao tiếp khác nhau, tiêu tốn rất ít tài nguyên hệ thống, giá thành rẻ,…

Thông số kĩ thuật của sản phẩm LCD 1602:

- Điện áp MAX : 7V

- Điện áp MIN : - 0,3V

- Hoạt động ổn định : 2.7-5.5V

- Điện áp ra mức cao : > 2.4

- Điện áp ra mức thấp : <0.4V

- Dòng điện cấp nguồn : 350uA - 600uA

- Nhiệt độ hoạt động : - 30 - 75 độ C

Trang 6

LCD 1602 xanh lá

Chức năng của từng chân LCD 1602:

- Chân số 1 - VSS : chân nối đất cho LCD được nối với GND của mạch điều khiển

- Chân số 2 - VDD : chân cấp nguồn cho LCD, được nối với VCC=5V của mạch điều khiển

- Chân số 3 - VE : điều chỉnh độ tương phản của LCD

- Chân số 4 - RS : chân chọn thanh ghi, được nối với logic "0" hoặc logic "1":

+ Logic “0”: Bus DB0 - DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi”

- write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)

+ Logic “1”: Bus DB0 - DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD

- Chân số 5 - R/W : chân chọn chế độ đọc/ghi (Read/Write), được nối với logic “0”

để ghi hoặc nối với logic “1” đọc

- Chân số 6 - E : chân cho phép (Enable) Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân này như sau: + Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung (high-to-low transition) của tín hiệu chân E

+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp

- Chân số 7 đến 14 - D0 đến D7: 8 đường của bus dữ liệu dùng để trao đổi thông tin với MPU Có 2 chế độ sử dụng 8 đường bus này là: Chế độ 8 bit (dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7) và Chế độ 4 bit (dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7)

- Chân số 15 - A : nguồn dương cho đèn nền

- Chân số 16 - K : nguồn âm cho đèn nền

Trang 7

Sơ đồ khối LCD1602

DISPLAY DATA RAM (DD RAM): Bộ nhớ hiển thị dữ liệu

Điều khiển LCD1602 chính là thay đổi giá trị của DD RAM, mỗi ô trên DD RAM tương ứng với một vị trí của màn hình

Với LCD1602 chúng có 2 line

 Line 1: từ 0x80 tới 0x8F

 Line 2: từ 0xC0 tới 0xCF

Ví dụ: Nếu bạn muốn hiển thị ở Line 1 ô đầu tiên, Chúng ta sẽ thay đổi giá trị của ô nhớ địa chỉ 0x80 Giá trị được ghi sẽ so sánh với bảng mã trong CG ROM, từ đó hiển thị ra đúng kí tự được lưu trên đó

Lệnh để nhảy giữa các ô nhớ là Set cursor ( con trỏ)

Character Generator ROM (CG ROM): Bộ nhớ kí tự chỉ đọc

Đây là bộ nhớ đươc ghi sẵn của LCD, trong đó chứa các kí tự mà lcd hỗ trợ Có hai mẫu Character mà LCD1602 hỗ trợ đó là 5×8 và 5×10

Character Generator RAM (CG RAM): Bộ nhớ kí tự có thể lập trình

Đây là bộ nhớ để người sử dụng có thể tự tạo ra các font chữ riêng trên LCD của mình

Trang 8

ơ đồ Display RAM LCD1602

Cách đọc và ghi vào LCD1602

Quy trình ghi vào LCD1602 như sau:

1 Chân RS kéo xuống 0 nếu gửi Lệnh (Command) điều khiển LCD, lên 1 gửi data (ghi vào DD RAM)

2 Chân R/W: Kéo xuống 0 ghi dữ liệu

3 Các chân D0 – D7: Khi ghi dữ liệu, các chân D0-D7 của LCD sẽ ở chế độ Input, chân MCU kết nối vào sẽ ở chế độ OutPut

4 Chân EN sẽ được kéo lên 1 để chốt dữ liệu vào LCD, sau đó lại nhả về 0 Khi lập trình chúng ta sẽ sử dụng bảng Timing để delay thời gian cho phù hợp

Timing Diagram Write Mode – Cách ghi dữ liệu vào LCD

Bảng Timing ghi vào LCD1602

Trang 9

1 Chân RS kéo xuống 0 nếu gửi Lệnh (Command) điều khiển LCD, lên1 gửi data (ghi vào DD RAM)

2 Chân R/W: Kéo lên 1 để đọc dữ liệu

3 Các chân D0 – D7: Khi đọc dữ liệu, các chân D0-D7 của LCD sẽ ở chế độ Output, chân MCU kết nối vào sẽ ở chế độ Input

4 Chân EN sẽ được kéo lên 1 để chốt dữ liệu vào LCD, sau đó lại nhả về 0 Khi lập trình chúng ta sẽ sử dụng bảng Timing để delay thời gian cho phù hợp

Timing Diagram Read Mode – Cách đọc dữ liệu từ LCD

Các lệnh trong LCD1602

Để ghi các lệnh vào LCD1602 chúng ta sử dụng bảng lệnh sau:

Các bit 1 tương ứng với lệnh, và các bit sau bit 1 tương ứng với tham số

VD: Khi gửi lệnh INPUT SET chúng ta sẽ sử dụng lệnh 0x40, sau đó AND với 2bit I/D và

S và set các chân RS và R/W về 0

Trang 10

Quy trình khởi tạo LCD1602

Để khởi tạo LCD1602 chế độ 4 bit chúng ta sẽ lập trình theo trình tự sau:

Trang 11

Với chế độ 4bit, để gửi 1byte (8bit) chúng ta sẽ gửi 2 lần 4bit.

 

3,Module LCD I2C PCF8574

LCD có quá nhiều nhiều chân gây khó khăn trong quá trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển Chính vì vậy module PCF8574 ra đời Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối

Trang 12

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4,

…),

Module PCF8574 cũng đươc thiết kế để hàn một cách nhanh chóng vào các loại LCD16x2, 20×4… Khiến việc đấu nối trở nên dễ dàng hơn rất nhiều

Thông số kĩ thuật

 Điện áp hoạt động: 2.5-6V DC

 Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)

 Giao tiếp: I2C

 Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)

 Tích hợp Jump chốt để bật/tắt đèn nền LCD

 Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD

Cách kết nối với LCD và vi điều khiển

Hàn trực tiếp module PCF8574 vào sau LCD như hình sau:

Để kết nối với vi điều khiển, chúng ta chỉ sử dụng các chân SDA và SCL và 2 đường nguồn và cấp nguồn 5V

Trang 13

Cách điều khiển Module LCD I2C PCF8574:

Sơ đồ khối

Nhìn vào sơ đồ khối của PCF8574 chúng ta thấy, đầu ra của nó gồm 8 chân P0-P7 Tương ứng với 4 bit RS, RW, BL (Back Light), EN và 4 bit Data D4 – D7 trên LCD

Đầu vào sẽ gồm 2 chân SDA và SCL giao tiếp với vi điều khiển, 3 chân A0, A1, A2

để thay đổi địa chỉ cho PCF8574 Nghĩa là ta có thể mắc nối tiếp 8 thiết bị PCF8574 trên cùng 1 bus I2C

Các bit 4-7 được fix sẵn, chỉ có các bit 1 2 3 tương ứng với A2,A1,A0 có thể được sửa đổi, khi hàn các chân trên Board (Mặc định là 1 1 1) Để tính toán địa chỉ chúng

ta dựa vào bảng sau:

Trang 14

Cách truyền dữ liệu cho module LCD I2C PCF8574

Lệnh ghi lên LCD I2C

Để ghi lên LCD I2C chúng ta sẽ làm theo các bước:

<S> <slave address + write> <ACK> <data out> <ACK> <data out> <ACK> … … <data out> <ACK> <P>

Khi bắt đầu truyền dữ liệu, MCU sẽ truyền địa chỉ vào mạn I2C, nếu Module nào có cùng địa chỉ, chúng sẽ gửi ACK, sau đó MCU sẽ gửi các data tương ứng với Command và

Paragram truyền vào LCD theo chế độ 4 BIT

Trang 15

Lệnh đọc LCD I2C

Để đọc từ LCD I2C chúng ta sẽ làm theo các bước:

<S> <slave address + read> <ACK> <data in> <ACK> <data in> <ACK> … … <data in> <ACK> <P>

Trang 16

KẾT LUẬN

Sau khi làm bài tập lớn, chúng em càng thấy được môn vi xử lí thú vị Để làm được bài tập này, chúng em đã phải nghiên cứu, tìm tòi, vận dụng rất nhiều kiến thức Nhưng cũng nhờ đó mà em thấy môn học này vô cùng hữu ích và thiết thực không hề khô khan Tuy còn có nhiều khuyết điểm nên chúng em mong thầy thông cảm Lời cuối xin được cảm ơn thầy đã dành thời gian để xem bài tập của chúng em

Ngày đăng: 05/12/2023, 05:34

HÌNH ẢNH LIÊN QUAN

Sơ đồ khối - Bài tập lớn môn kỹ thuật vi xử lý đề tài  đồng hồ led giờ,phút giây bằng led kép (7 đoạn)
Sơ đồ kh ối (Trang 13)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w