Professional Documents
Culture Documents
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)
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.
3
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.
4
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.
5
LCD 20x04 xanh lá
- 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
6
Cách đọc và ghi vào LCD 2004
Quy trình ghi vào LCD 2004 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.
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 lên 1 để đọc dữ liệu
7
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.
counter.
Table0 6
Return 0 0 0
Instructions
0 0 0
(cont)
0 1 — Sets DDRAM address 0 in 1.52 ms
home address counter. Also returns
Execution Time
display from being shifted to (max) (when fcp or
Code
original position. DDRAM
RS R/: DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 fOSC is 270 kHz)
Instruction Description
contents remain unchanged.
Write data 1 0 Write data Writes data into DDRAM or 37 µs
Entry 0 0 0 0 0 0 0 1 I/D S Sets cursor move direction 37 µs
mode setto CG or and specifies display
CGRAM. shift. tADD = 4 µs*
DDRAM These operations are
Read data 1 1 Read data Readsduring
performed data from
dataDDRAM
write or 37 µs
from CG or CGRAM.
and read. tADD = 4 µs*
DDRAM
Display 0 0 0 0 0 0 1 D C B Sets entire display (D) on/off, 37 µs
on/off cursor on/off (C), and blinking
control of cursor position character
(B).
Set 0 0 0 1 ACG ACG ACG ACG ACG ACG Sets CGRAM address. 37 µs
CGRAM CGRAM data is sent and
8
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ố.
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.
9
Thông số kĩ thuật
Để 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.
10
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:
11
Cách truyền dữ liệu cho module LCD I2C PCF8574
Lệnh ghi lên LCD I2C
<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.
12
Lệnh đọc LCD I2C
<S> <slave address + read> <ACK> <data in> <ACK> <data in> <ACK> … … <data
in> <ACK> <P>
13
2, Cấu hình cho I2C:
14
3,Cài đặt và điều chỉnh thông số của đồng hồ
15
16
17