GIỚI THIỆU NỘI DUNG ĐỀ TÀI
Vấn đề thời gian thực đề cập đến thời gian tuyệt đối mà con người sử dụng Đồng hồ đếm thời gian thực rất hữu ích vì nó cho phép chúng ta biết chính xác thời gian hiện tại, ngay cả khi không có nguồn điện Khi bật nguồn lại, đồng hồ vẫn hoạt động chính xác nhờ vào IC đếm thời gian thực được cung cấp năng lượng từ pin.
NHIỆM VỤ VÀ PHÂN TÍCH NHIỆM VỤ
N HIỆM VỤ
Báo cáo môn học kỹ thuật vi điều khiển 1 tập trung vào việc thiết kế mạch đồng hồ thời gian thực, có khả năng hiển thị giờ, phút, giây cùng với ngày, tháng, năm trên màn hình LCD.
P HÂN TÍCH NHIỆM VỤ
Các nội dung cần nắm bắt:
- Hiểu và vận dụng được các linh kiện có trong mạch, từ đó tìm ra nguyên lí hoạt động của mạch.
- Biết các nguyên lí hoạt động của PIC 16F877A, thời gian thực DS1307, và màn hình hiển thị LCD
TỔNG QUAN SƠ LƯỢC LÝ THUYẾT
PIC 16F877A
PIC16F877A là một vi điều khiển 40 chân, phổ biến trong các dự án và ứng dụng nhúng Nó được trang bị năm cổng, từ cổng A đến cổng E, cho phép kết nối linh hoạt với các thiết bị ngoại vi.
E Nó có ba bộ định thời trong đó có 2 bộ định thời 8 bit và 1 bộ định thời là 16 Bit Nó hỗ trợ nhiều giao thức giao tiếp như giao thức nối tiếp, giao thức song song, giao thức I2C PIC16F877A hỗ trợ cả ngắt chân phần cứng và ngắt bộ định thời b) Các thông số kỹ thuật:
Kích thướ c bộ nhớ chương trình (Kbyte) 14
Tốc độ CPU t ối đa (MHz) 20
Chọ n chân ngo i vi (PPS) ạ Không
Bộ t ạo dao độ ng bên trong Không
Số kênh ADC 14 Độ phân gi i ADC t ả ối đa (bit) 10
Số b chuy ộ ển đổ i DAC 0 Độ phân gi i DAC t ả ối đa 0
Tham chi ếu điệ n áp n i b ộ ộ Có
Bộ nh th đị ời đo tín hiệ u 0
Bộ nh th i đị ờ giới h n ph n c ạ ầ ứng 0
Số đầu ra PWM 0 Độ phân gi i PWM t ả ối đa 10
Bộ nh th i góc đị ờ Không
Bộ tăng tố c toán h c ọ Không
Bộ nh th i giám sát có c a s (WWDT) đị ờ ử ổ Không
Bộ t ạo dao động được điề u khi n b ng s ể ằ ố 0
Nhiệt độ hoạt động tối thiểu (* C) -40
Nhiệt độ hoạt động t ối đa (* C) 125 Điệ n áp ho ạt độ ng t ố i thi u (V) ể 2 Điện áp ho ạt độ ng t ối đa (V) 5.5 c) Trình phiên dịch của PIC16F877A:
- Trình biên dịch chính thức của vi điều khiển PIC là trình biên dịch MPLAB C18, có trên trang web chính thức của Microchip
Chúng ta viết mã trong trình biên dịch PIC và biên dịch để tạo ra file hex File này sẽ được tải lên bộ vi điều khiển PIC16F877A qua cổng nối tiếp.
- PIC16F877a có một cổng nối tiếp trong đó được sử dụng để giao tiếp dữ liệu
Chân số 25 hoạt động tương tự như TX, do đó nếu bạn muốn thực hiện giao tiếp nối tiếp, chân này sẽ được sử dụng để gửi dữ liệu nối tiếp.
Chân 26 của PIC16F877A hoạt động tương tự như RX, cho phép thực hiện giao tiếp nối tiếp để nhận dữ liệu Giao tiếp I2C của PIC16F877A cũng hỗ trợ việc truyền tải dữ liệu hiệu quả.
- PIC16F877a cũng có một cổng I2C có thể dễ dàng thực hiện giao tiếp I2C + Chân số 18 hoạt động như SCL, viết tắt của Serial Clock Line
+ Chân số 23 hoạt động như SDA, là chữ viết tắt của Serial Data Line
Cổng C trên PIC16F877A hỗ trợ cả cổng nối tiếp và cổng I2C, cho phép lập trình viên linh hoạt sử dụng cổng này cho nhiều mục đích khác nhau Việc sử dụng cổng C có thể đơn giản hoặc phức tạp, tùy thuộc vào cách lập trình của người sử dụng.
PIC16F877A hỗ trợ 8 nguồn ngắt, cho phép xử lý các sự kiện như bộ đếm thời gian hoặc thay đổi trạng thái chân Các ngắt này có thể được kích hoạt sau mỗi giây hoặc khi có sự thay đổi trạng thái, giúp tăng cường khả năng tương tác và phản hồi của hệ thống.
Vì vậy, ngắt PIC16F877a có thể được tạo ra bằng 8 cách sau:
Ngắt bộ định thời (Timer0 / Timer1).
Thay đổi trạng thái cổng B
Cổng Slave Song song Đọc / Ghi
REAL TIME CLOCK DS1307
Module DS1307 là một trong những module RTC phổ biến và giá cả phải chăng nhất Nó là một IC tích hợp giúp cung cấp thông tin chính xác về thời gian, bao gồm thứ, ngày, tháng, năm, giờ, phút và giây.
DS1307 là một vi mạch được chế tạo bởi Dallas, có 7 thanh ghi 8 bit lưu trữ thông tin về thứ, ngày, tháng, năm, giờ, phút và giây Chip này cung cấp nhiều tính năng quan trọng cho việc quản lý thời gian.
- Khả năng tạo sóng vuông có thể lập trình
- Dòng điện thấp, dưới 500mA trong chế độ sao lưu pin
- Khả năng thiết lập ngày đến năm 2100
- Sử dụng chuẩn giao tiếp I2C
- Module DS1307 sử dụng pin CR2023 3 volt Bộ nhớ EEPROM 24c32 nhúng trên mô- đun này có thể tiết kiệm 32kb dữ liệu
- Ngoài ra, các bạn có thể đo nhiệt độ môi trường bằng cách sử dụng cảm biến DS18B20 đã được tích hợp sẵn trên board mạch
DS1307 là IC thời gian thực với nguồn cung cấp thấp, có khả năng cập nhật thời gian và ngày tháng cùng với 56 bytes SRAM Địa chỉ và dữ liệu được truyền qua 2 đường bus 2 chiều, cung cấp thông tin về giờ, phút, giây, thứ, ngày, tháng và năm IC này tự động điều chỉnh ngày cuối tháng cho các tháng có ít hơn 31 ngày và hỗ trợ nhảy năm Đồng hồ có thể hoạt động ở chế độ 24h hoặc 12h với chỉ thị AM/PM Ngoài ra, DS1307 còn tích hợp mạch cảm biến điện áp để phát hiện lỗi và tự động ngắt nguồn pin khi cần thiết.
DS1307 hoạt động như một thiết bị slave trên bus nối tiếp, cho phép truy cập thông qua chỉ thị START và mã thiết bị được xác định bởi địa chỉ các thanh ghi Sau đó, các thanh ghi sẽ được truy cập liên tục cho đến khi chỉ thị STOP được thực hiện.
- X1 và X2 : là 2 ngõ kết nối với 1 thạch anh 32.768KHz làm nguồn tạo dao động cho chip
- V BAT : cực dương của một nguồn pin 3V nuôi chip
- GND: chân mass chung cho cả pin 3V và Vcc
- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển
Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)
SQW/OUT là chân ngõ phụ của DS1307, có chức năng tạo xung vuông (Square Wave / Output Driver) với tần số lập trình được Tuy nhiên, chân này không liên quan đến chức năng chính của DS1307 là đồng hồ thời gian thực, vì vậy chúng ta có thể bỏ qua chân này khi kết nối mạch.
- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C mà chúng ta đã tìm hiểu trong bài TWI của AVR.
LCD LMD16L
Màn hình tinh thể lỏng (LCD) là một loại mô-đun màn hình điện tử được sử dụng rộng rãi trong nhiều thiết bị như điện thoại di động, máy tính và TV Cấu tạo của LCD bao gồm các tinh thể lỏng được đặt giữa hai lớp kính, cho phép hiển thị hình ảnh với độ sáng và độ tương phản cao Chức năng chính của LCD là chuyển đổi tín hiệu điện thành hình ảnh, mang lại trải nghiệm người dùng tốt trong việc xem nội dung đa phương tiện.
- Điện áp hoạt động của màn hình LCD này là 4.7V -5.3V Nó bao gồm hai hàng trong đó mỗi hàng có thể tạo ra 16 ký tự
- Việc sử dụng dòng điện là 1mA không có đèn nền
- Mọi nhân vật đều có thể được tạo bằng hộp 5 × 8 pixel
- Bảng chữ cái & số trên màn hình LCD chữ và số
- Là màn hình có thể hoạt động trên hai chế độ như 4-bit & 8-bit
- Chúng có thể đạt được với Đèn nền xanh lam & xanh lục.
- 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, còn gọi là chân cho phép (Enable), đóng vai trò quan trọng trong việc xử lý tín hiệu Khi các tín hiệu được đặt lên bus DB0 - DB7, lệnh chỉ được chấp nhận khi có một xung cho phép từ chân E Cụ thể, trong chế độ ghi, dữ liệu trên bus sẽ được LCD chuyển vào thanh ghi bên trong khi phát hiện một xung từ cao xuống thấp (high - to low transition) của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu sẽ được LCD xuất ra từ DB0 đến DB7 khi phát hiện cạnh lên (chuyển từ mức thấp sang cao) tại chân E, và LCD sẽ giữ dữ liệu trên bus cho đến khi chân E trở về mức thấp.
Chân số 7 đến 14 D0 đến D7 là 8 đường bus dữ liệu dùng để trao đổi thông tin với MPU Có hai chế độ sử dụng cho 8 đường bus này: chế độ 8 bit, trong đó dữ liệu được truyền trên cả 8 đường với bit MSB là bit DB7, và chế độ 4 bit, nơi dữ liệu được truyền trên 4 đường từ DB4 đến DB7, với 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 c) Nguyên lý hoạt động
Mô-đun LCD 16x2 đi kèm với một bộ hướng dẫn lệnh chuẩn, trong đó mỗi lệnh thực hiện một nhiệm vụ cụ thể Các lệnh thường dùng và chức năng của chúng được trình bày rõ ràng trong bảng dưới đây.
0F LCD b t, con tr b t, con tr ậ ỏ ậ ỏ nhấ p nháy b t ậ
0E Màn hình b t, con tr ậ ỏ nhấp nháy t t ắ
80 Bật con tr ỏ trở v v ề ị trí đầ u tiên c a hàng 1 ủ
C0 Bắt con tr ỏ trở v v ề ị trí đầ u tiên c a hàng 2 ủ
38 Sử d ng 2 hàng và ma tr n 5x7 ụ ậ
08 Tắt màn hình hi n th và con tr ể ị ỏ
C1 Nhảy đến dòng 2 vị trí 1
OC Bật màn hình hi n th , t t con tr ể ị ắ ỏ
C2 Nhảy đến hàng 2, vị trí 2
Các bước khởi tạo màn hình LCD được trình bày dưới đây là những quy trình chung cho hầu hết các ứng dụng.
- B1: Gửi 38H đến dòng dữ liệu 8 bit để khởi tạo
- B2: Gửi 0FH để bật LCD, con trỏ BẬT và con trỏ nhấp nháy ON
- B3: Gửi 06H để tăng vị trí con trỏ.
- B4: Gửi 01H để xóa màn hình và trả về con trỏ Đưa dữ liệu vào LCD
Để gửi dữ liệu đến mô-đun LCD, bạn cần chú ý đến các chân RS, R/W và E Trạng thái logic của những chân này giúp mô-đun xác định xem đầu vào dữ liệu là lệnh hay dữ liệu cần hiển thị.
- Đặt RS = 0 nếu byte dữ liệu là lệnh và tạo RS = 1 nếu byte dữ liệu là dữ liệu sẽ được hiển thị
- Đặt byte dữ liệu trên thanh ghi dữ liệu
- Xung E từ cao xuống thấp
- Lặp lại các bước trên để gửi dữ liệu khác d) Ứng dụng
Công nghệ màn hình tinh thể lỏng (LCD) hiện đang được ứng dụng rộng rãi trong nhiều thiết bị như smartphone, máy tính, laptop và tivi siêu mỏng Đặc biệt, trong lĩnh vực quảng cáo và trình chiếu chuyên dụng, công nghệ LCD đóng vai trò quan trọng trong việc sản xuất màn hình quảng cáo chuyên dụng.
Mặc dù các công nghệ tiên tiến như OLED, AMOLED và Super AMOLED đang phát triển nhanh chóng, công nghệ LCD vẫn giữ vai trò quan trọng nhất nhờ vào chi phí sản xuất hợp lý và độ bền tối ưu.
T HẠCH ANH
Trong mạch ta sẽ sử dụng hai thạch anh, một loại 12Mhz để tạo dao động cho AT89C51, một loại 32,768 Mhz để tạo dao động cho DS1307
Thạch anh 12 Mhz Thạch anh 32,768 Mhz
Đ IỆN TRỞ
Điện trở là một linh kiện quan trọng trong thiết bị điện tử, được chế tạo từ hợp chất cacbon và kim loại Tùy thuộc vào tỷ lệ pha trộn, người ta có thể sản xuất các loại điện trở với trị số khác nhau.
THIẾT KẾ PHẦN THIẾT BỊ
M ẠCH VI ĐIỀU KHIỂN VÀ MẠCH THỜI GIAN THỰC
Về mạch vi điều khiển, ta thấy:
- Được kích bởi thạch anh 32,768 KHz, các Port D được sử dụng để kết nối LCD
- Các Port A kết nối với mạch thời gian thực
Trong mạch thời gian thực, chân SDA và SCL được kết nối với chân SDA và SCL của VDK Mss của DS1307, đồng thời nối với mass của VDK và cực âm của pin 3V.
Cổng Slave Song song Đọc / Ghi
Ghi EEPROM là một thao tác phổ biến trong việc lưu trữ dữ liệu IC này được sử dụng chủ yếu để cung cấp thông tin chính xác về thời gian, bao gồm thứ, ngày, tháng, năm, giờ, phút và giây.
DS1307 là một chip do Dallas chế tạo, bao gồm 7 thanh ghi 8 bit, mỗi thanh ghi lưu trữ thông tin về thứ, ngày, tháng, năm, giờ, phút và giây Chip này có nhiều tính năng quan trọng.
- Khả năng tạo sóng vuông có thể lập trình
- Dòng điện thấp, dưới 500mA trong chế độ sao lưu pin
- Khả năng thiết lập ngày đến năm 2100
- Sử dụng chuẩn giao tiếp I2C
- Module DS1307 sử dụng pin CR2023 3 volt Bộ nhớ EEPROM 24c32 nhúng trên mô- đun này có thể tiết kiệm 32kb dữ liệu
- Ngoài ra, các bạn có thể đo nhiệt độ môi trường bằng cách sử dụng cảm biến DS18B20 đã được tích hợp sẵn trên board mạch
DS1307 là một IC thời gian thực với nguồn cung cấp thấp, có khả năng cập nhật thời gian và ngày tháng, đồng thời tích hợp 56 bytes SRAM Thông tin về giờ, phút, giây, thứ, ngày, tháng và năm được truyền qua 2 đường bus 2 chiều IC này tự động điều chỉnh ngày cuối tháng cho các tháng có ít hơn 31 ngày và hỗ trợ nhảy năm Đồng hồ có thể hoạt động ở chế độ 24h hoặc 12h với chỉ thị AM/PM Ngoài ra, DS1307 còn trang bị mạch cảm biến điện áp để phát hiện lỗi điện áp và tự động ngắt nguồn pin khi cần thiết.
DS1307 hoạt động như một thiết bị slave trên bus nối tiếp, cho phép truy cập thông qua chỉ thị START và mã thiết bị xác định từ địa chỉ các thanh ghi Sau đó, các thanh ghi sẽ được truy cập liên tục cho đến khi chỉ thị STOP được thực hiện.
- Vcc: nguồn cho giao diện I2C, thường là 5V và dùng chung với vi điều khiển
Chú ý là nếu Vcc không được cấp nguồn nhưng VBAT được cấp thì DS1307 vẫn đang hoạt động (nhưng không ghi và đọc được)
SQW/OUT là chân phụ tạo xung vuông (Square Wave / Output Driver) với tần số lập trình được Chân này không liên quan đến chức năng chính của DS1307, là đồng hồ thời gian thực, vì vậy chúng ta sẽ để chân này trống khi kết nối mạch.
- SCL và SDA là 2 đường giao xung nhịp và dữ liệu của giao diện I2C mà chúng ta đã tìm hiểu trong bài TWI của AVR.
Màn hình tinh thể lỏng (LCD) là một loại mô-đun màn hình điện tử phổ biến, được sử dụng rộng rãi trong nhiều thiết bị như điện thoại di động, máy tính và tivi Cấu tạo của LCD bao gồm các tinh thể lỏng được điều khiển bởi điện áp, cho phép hiển thị hình ảnh và thông tin một cách sắc nét và rõ ràng Chức năng chính của màn hình LCD là cung cấp hình ảnh chất lượng cao với mức tiêu thụ điện năng thấp, phù hợp với nhu cầu sử dụng hiện đại.
- Điện áp hoạt động của màn hình LCD này là 4.7V -5.3V Nó bao gồm hai hàng trong đó mỗi hàng có thể tạo ra 16 ký tự
- Việc sử dụng dòng điện là 1mA không có đèn nền
- 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 (Enable) là chân cho phép trong mạch LCD, chỉ chấp nhận lệnh khi có xung cho phép từ chân này Khi ở chế độ ghi, dữ liệu trên bus DB0 - DB7 sẽ được chuyển vào thanh ghi bên trong LCD khi phát hiện xung chuyển từ cao sang thấp (high - to low transition) của tín hiệu chân E.
Khi ở chế độ đọc, dữ liệu sẽ được LCD xuất ra từ DB0 đến DB7 khi phát hiện sự chuyển tiếp từ thấp sang cao ở chân E, và dữ liệu sẽ được giữ trên bus cho đến khi chân E trở về mức thấp.
Chân số 7 đến 14 D0 đến D7 là 8 đường bus dữ liệu dùng để trao đổi thông tin với MPU Có hai chế độ sử dụng cho 8 đường bus này: chế độ 8 bit, trong đó dữ liệu được truyền trên cả 8 đường với bit MSB là DB7, và chế độ 4 bit, khi dữ liệu được truyền trên 4 đường từ DB4 đến DB7, với bit MSB cũng 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 c) Nguyên lý hoạt động
Mô-đun LCD 16x2 đi kèm với một bộ hướng dẫn lệnh đã được xác định trước, trong đó mỗi lệnh thực hiện một nhiệm vụ cụ thể Các lệnh phổ biến và chức năng của chúng được trình bày rõ ràng trong bảng dưới đây.
0F LCD b t, con tr b t, con tr ậ ỏ ậ ỏ nhấ p nháy b t ậ
80 Bật con tr ỏ trở v v ề ị trí đầ u tiên c a hàng 1 ủ
C0 Bắt con tr ỏ trở v v ề ị trí đầ u tiên c a hàng 2 ủ
38 Sử d ng 2 hàng và ma tr n 5x7 ụ ậ
08 Tắt màn hình hi n th và con tr ể ị ỏ
C1 Nhảy đến dòng 2 vị trí 1
OC Bật màn hình hi n th , t t con tr ể ị ắ ỏ
C2 Nhảy đến hàng 2, vị trí 2
Các bước khởi tạo màn hình LCD dưới đây là quy trình chung cho hầu hết các ứng dụng.
- B1: Gửi 38H đến dòng dữ liệu 8 bit để khởi tạo
- B2: Gửi 0FH để bật LCD, con trỏ BẬT và con trỏ nhấp nháy ON
- B3:Gửi 06H để tăng vị trí con trỏ
- B4: Gửi 01H để xóa màn hình và trả về con trỏ Đưa dữ liệu vào LCD
Để gửi dữ liệu đến mô-đun LCD, cần chú ý đến các chân RS, R/W và E Trạng thái logic của những chân này giúp mô-đun xác định liệu dữ liệu đầu vào là lệnh hay thông tin cần hiển thị.
- Đặt RS = 0 nếu byte dữ liệu là lệnh và tạo RS = 1 nếu byte dữ liệu là dữ liệu sẽ được hiển thị
- Đặt byte dữ liệu trên thanh ghi dữ liệu
Công nghệ màn hình tinh thể lỏng (LCD) hiện đang được ứng dụng rộng rãi trong các thiết bị như smartphone, máy tính, laptop và tivi siêu mỏng Đặc biệt, trong lĩnh vực quảng cáo và trình chiếu chuyên dụng, công nghệ LCD đóng vai trò quan trọng trong việc sản xuất màn hình quảng cáo chuyên dụng.