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

(Tiểu luận) đề tài đồng hồ hiện giờ, phút, giây và ngày, tháng năm

36 10 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 đề (Tiểu luận) đề tài đồng hồ hiện giờ, phút, giây và ngày, tháng năm
Tác giả Nguyễn Thành Lan, Trần Trí Cường, Bùi Việt Đức, Viên Vĩ Hào, Nguyễn Tiến Phát, Tài Trương, Lâm Minh Thiện, Trương Nguyễn Bảo Trâm
Người hướng dẫn TS. Trần Công Thịnh
Trường học Trường Đại Học Tôn Đức Thắng
Chuyên ngành Kỹ thuật vi điều khiển
Thể loại báo cáo
Năm xuất bản 2022
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 36
Dung lượng 3,27 MB

Cấu trúc

  • I. GIỚI THIỆU NỘI DUNG ĐỀ TÀI (10)
  • II. NHIỆM VỤ VÀ PHÂN TÍCH NHIỆM VỤ (10)
    • 1. N HIỆM VỤ (10)
    • 2. P HÂN TÍCH NHIỆM VỤ (10)
  • III. TỔNG QUAN SƠ LƯỢC LÝ THUYẾT (11)
    • 1. PIC 16F877A (11)
    • 2. REAL TIME CLOCK DS1307 (14)
    • 3. LCD LMD16L (16)
    • 4. T HẠCH ANH (20)
    • 5. Đ IỆN TRỞ (20)
  • IV. THIẾT KẾ PHẦN THIẾT BỊ (21)
    • 1. M ẠCH VI ĐIỀU KHIỂN VÀ MẠCH THỜI GIAN THỰC (21)
    • 2. M ẠCH HIỂN THỊ LCD (22)
  • V. THIẾT KẾ PHẦN MỀM (23)
    • 1. L ƯU ĐỒ MÔ TẢ HOẠT ĐỘNG THIẾT BỊ (23)
    • 2. V IẾT CHƯƠNG TRÌNH (23)

Nội dung

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 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 trở lại, đồng hồ vẫn hoạt động chính xác nhờ vào IC đếm thời gian thực được cấp nguồn bởi 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 và 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à vi điều khiển 40 chân phổ biến, thường được sử dụng trong các dự án và ứng dụng nhúng Nó có năm cổng, từ cổng A đến cổng E, cho phép kết nối linh hoạt với nhiều thiết bị khác nhau.

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:

2 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 sử dụng trình biên dịch PIC để viết và biên dịch mã, từ đó tạo ra file hex để tải lên bộ vi điều khiển PIC Một trong những tính năng quan trọng là cổng nối tiếp của PIC16F877A, cho phép giao tiếp hiệu quả với các thiết bị khác.

- 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ư chân 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 trên PIC16F877A cũng rất quan trọng, hỗ trợ việc truyền tải thông tin giữa các thiết bị một cách 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 của PIC16F877A hỗ trợ cả cổng nối tiếp và giao tiếp I2C, cho phép lập trình viên linh hoạt sử dụng cổng này như một cổng đơn giản hoặc thực hiện cả hai giao tiếp thông qua các chân của nó.

PIC16F877A sở hữu 8 nguồn ngắt, bao gồm các sự kiện như bộ đếm thời gian, ví dụ ngắt được tạo ra sau mỗi giây, và các thay đổi trạng thái chân, khi trạng thái chân thay đổi sẽ kích hoạt ngắt.

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 cho việc theo dõi thời gian, cung cấp độ chính xác cao cho thông tin về thứ, ngày, tháng, năm, giờ, phút và giây.

DS1307 là một chip được sản xuất bởi Dallas, 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, giúp quản lý thời gian một cách hiệu quả.

- 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 nhỏ, có khả năng cập nhật thời gian và ngày tháng, cùng với 56 bytes SRAM Nó truyền địa chỉ và dữ liệu 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 nhỏ hơn 31 ngày và hỗ trợ nhảy năm Đồng hồ 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ị từ địa chỉ các thanh ghi Quá trình truy cập các thanh ghi diễn ra 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 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ẽ không sử dụng 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 đ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à 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ới độ sắc nét cao Chức năng chính của màn hình LCD là cung cấp hình ảnh rõ ràng và tiết kiệm năng lượng, làm cho nó trở thành lựa chọn phổ biến trong công nghệ hiển thị 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

- 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ế độ -

Trong chế độ "đọc", tín hiệu "ghi" sẽ được kết nối với bộ đếm địa chỉ của LCD Logic "1" cho phép bus DB0 đến DB7 kết 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, hay còn gọi là chân cho phép (Enable), đóng vai trò quan trọng trong việc xác nhận các lệnh trên bus DB0-DB7 Khi tín hiệu được đưa lên bus, LCD chỉ chấp nhận lệnh 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 chuyển vào thanh ghi bên trong của LCD khi phát hiện xung chuyển 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 từ LCD sẽ được xuất ra các chân DB0 đến DB7 khi phát hiện sự chuyển đổi từ mức thấp sang mức cao ở chân E, và dữ liệu này sẽ được giữ lại trên bus cho đến khi chân E trở lại mức thấp.

Chân số 7 đến 14 D0 đến D7 của bus dữ liệu gồm 8 đường truyền thông tin với MPU, có hai chế độ sử dụng: 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, nơi 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 yêu cầu mô-đun thực hiện một nhiệm vụ cụ thể Các lệnh thường được sử 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.

LCD b t, con tr b t, con tr nhp nháy b t

Màn hình b t, con tr nh p nháy t t

B t con tr tr v v u tiên c a hàng 1

B t con tr tr v v u tiên c a hàng 2

S d ng 2 hàng và ma tr n 5x7

T t màn hình hi n th và con tr

B t màn hình hi n th , t t con tr

Các bước khởi tạo màn hình LCD được trình bày dưới đây là những bước phổ biến 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 đầu vào dữ liệu là lệnh hay dữ liệu để 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 nay được sử dụng

Mặc dù các công nghệ tiên tiến hơn như OLED, AMOLED và Super AMOLED đang ngày càng phát triển, 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 carbon và kim loại Tùy thuộc vào tỷ lệ pha trộn của các thành phầ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, hai 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.

M ẠCH HIỂN THỊ LCD

LCD dùng để hiển thị giờ phút giây và ngày tháng năm theo yêu cầu đề tài.

THIẾT KẾ PHẦN MỀM

V IẾT CHƯƠNG TRÌNH

#include //khai bao thu vien pic16f877a

#device * ADC // su dung ADC 10 bit

#use delay(clock M) //Tan so giao dong cua thach anh la 20MHz

#FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT

#use i2c(Master, sda = PIN_A1, scl=PIN_A2, FAST000) //Su dung I2C o che do Master, toc do truyen nhanh,chi dinh chan SDA la RA1, chi dinh chan SCL la RA2

#use FIXED_IO( D_outputs=PIN_D7,PIN_D6,PIN_D5,PIN_D4 ) //Thiet lap cac chân output tuong ung port D

#use FIXED_IO( E_outputs=PIN_E2,PIN_E1,PIN_E0 ) //Thiet lap cac chân output tuong ung port E

#include "lcd.c"//khai bao thu vien LCD

#include "RTC.c"//khai bao thu vien DS1307

#define Write 0 void send(int8 a);

BYTE sec,min,hrs,day,month,yr,dow; void main()

{ enable_interrupts(INT_EXT); //cho phep ngat RB0 ext_int_edge(0,H_TO_L); //dat suon ngat enable_interrupts(GLOBAL); //cho phep ngat toan cuc

LCD_init(); //Khoi tao LCD delay_ms(1); ds1307_init(); // khoi tao DS1307, tao xung 1Hz o chan 7 DS1307 //ds1307_set_date_time(2,12,22,6,19,27,0); /// Cai thoi gian bat dau dem while(true)

{ ds1307_get_date(day,month,yr,dow); ///Lay du lieu ngay, thang, nam, thu ds1307_get_time(hrs,min,sec); /// Lay du lieu gio, phut, giay

LCD_PutCmd(0x80); //Ðua con tro ve vi tri dau dong 1

LCD_PutChar("TIME"); //Hien thi chu TIME

LCD_PutChar(":");//Hien thi dau :

LCD_PutChar(" " );//Hien thi khoang cach

LCD_PutChar(hrs/10+48);//Hien thi so hang chuc cua gio hien tai

LCD_PutChar(hrs%10+48);//Hien thi so hang don vi cua gio hien tai

LCD_PutChar(":");//Hien thi dau :

LCD_PutChar(min/10+48);//Hien thi so hang chuc cua phut hien tai

LCD_PutChar(min%10+48);//Hien thi so hang don vi cua phut hien tai

LCD_PutChar(":");//Hien thi dau :

LCD_PutChar(sec/10+48);//Hien thi so hang chuc cua giay hien tai

LCD_PutChar(sec%10+48);//Hien thi so hang don vi cua giay hien tai

LCD_PutChar(" " );//Hien thi khoang cach

LCD_PutCmd(0xc0);//Ðua con tro ve vi tri dau dong 2

LCD_PutChar("DATE");//Hien thi chu DATE

LCD_PutChar(":");//Hien thi dau :

LCD_PutChar(" " );//Hien thi khoang cach

LCD_PutChar(day/10+48);//Hien thi so hang chuc cua ngay hien tai

LCD_PutChar(day%10+48);//Hien thi so hang don vi cua ngay hien tai

LCD_PutChar("/");//Hien thi dau /

LCD_PutChar(month/10+48);//Hien thi so hang chuc cua thang hien tai

LCD_PutChar(month%10+48);//Hien thi so hang don vi cua thang hien tai LCD_PutChar("/");//Hien thi dau /

LCD_PutChar("2");//Hien thi so 2

LCD_PutChar("0");//Hien thi so 0

LCD_PutChar(yr/10+48);//Hien thi so hang chuc cua nam hien tai

LCD_PutChar(yr%10+48);//Hien thi so hang don vi cua nam hien tai

#define void LCD_Init ( void );// ham khoi tao LCD

#define void LCD_SetPosition ( unsigned int cX );//Thiet lap vi tri con tro

#define void LCD_PutChar ( unsigned int cX );// Ham viet1kitu/1chuoi len LCD

#define void LCD_PutCmd ( unsigned int cX) ;// Ham gui lenh len LCD

#define void LCD_PulseEnable ( void );// Xung kich hoat

#define void LCD_SetData ( unsigned int cX );// Dat du lieu len chan Data

#use standard_io (D) void LCD_SetData ( unsigned int cX )

{ output_bit ( LCD_D4, cX & 0x01 ); output_bit ( LCD_D5, cX & 0x02 ); output_bit ( LCD_D6, cX & 0x04 ); output_bit ( LCD_D7, cX & 0x08 );

{ output_high ( LCD_EN ); delay_us ( 1 ); // was 10 output_low ( LCD_EN ); delay_ms ( 1); // was 5

} void LCD_PutCmd ( unsigned int cX )

/* this subroutine works specifically for 4-bit Port A */

LCD_SetData ( swap ( cX ) ); /* send high nibble */

LCD_SetData ( swap ( cX ) ); /* send low nibble */

} void LCD_PutChar ( unsigned int cX )

/* this subroutine works specifically for 4-bit Port A */ output_high ( LCD_RS );

LCD_PutCmd( cX ); output_low ( LCD_RS );

//khoi tao LCD********************************************** void LCD_Init ( void )

LCD_SetData ( 0x00 ); delay_ms(200); /* wait enough time after Vdd rise >> 15ms */ output_low ( LCD_RS );// che do gui lenh

LCD_SetData ( 0x03 ); /* init with specific nibbles to start 4-bit mode */ LCD_PulseEnable();

LCD_SetData ( 0x02 ); /* set 4-bit interface */

LCD_PulseEnable(); /* send dual nibbles hereafter, MSN first */

LCD_PutCmd ( 0x2C ); /* function set (all lines, 5x7 characters) */

LCD_PutCmd ( 0x0C ); /* display ON, cursor off, no blink */

LCD_PutCmd ( 0x06 ); /* entry mode set, increment & scroll left */

} void LCD_SetPosition ( unsigned int cX )

/* this subroutine works specifically for 4-bit Port A */

BYTE bin2bcd(BYTE binary_value);

BYTE bcd2bin(BYTE bcd_value); void ds1307_init(void)

To initialize the RTC, start by setting the year to 0 and initiating an I2C start condition Write to the RTC at address 0xD0 to access register 0, followed by reading the current time values: seconds, minutes, hours, day of the week, day, month, and year, ensuring to apply BCD to binary conversion for each After reading, stop the I2C communication and introduce a brief delay Next, restart the I2C, write to the RTC again to set the initial time values back to the RTC using BCD format Finally, configure the control register to enable a 1Hz square wave output before stopping the I2C communication.

} void ds1307_set_date_time(BYTE day, BYTE mth, BYTE year, BYTE dow, BYTE hr, BYTE min, BYTE sec)

To set the time using I2C communication, first, ensure the seconds, hours, and other time values are within their valid ranges by applying bitwise operations Begin the I2C transmission with the address 0xD0, followed by writing to the appropriate registers starting from REG 0 for seconds, REG 1 for minutes, REG 2 for hours, REG 3 for the day of the week, REG 4 for the day of the month, REG 5 for the month, and REG 6 for the year Finally, configure REG 7 to enable the 1Hz square wave output pin before stopping the I2C communication.

The function `ds1307_get_date` retrieves the date from the DS1307 real-time clock It initiates communication via I2C by starting the process and writing the device address followed by the register address for the day of the week After switching to read mode, it extracts the day of the week, day, month, and year by converting the binary-coded decimal (BCD) values to binary format Finally, it ends the I2C communication.

} void ds1307_get_time(BYTE &hr, BYTE &min, BYTE &sec)

{ i2c_start(); i2c_write(0xD0); i2c_write(0x00); // Start at REG 0 - Seconds i2c_start(); i2c_write(0xD1); sec = bcd2bin(i2c_read() & 0x7f); min = bcd2bin(i2c_read() & 0x7f); hr = bcd2bin(i2c_read(0) & 0x3f); i2c_stop();

BYTE bin2bcd(BYTE binary_value)

BYTE retval; temp = binary_value; retval = 0; while(TRUE)

// Get the tens digit by doing multiple subtraction

// of 10 from the binary value if(temp >= 10)

} else // Get the ones digit by adding the remainder.

BYTE bcd2bin(BYTE bcd_value)

BYTE temp; temp = bcd_value;

// Shifting upper digit right by 1 is same as multiplying by 8 temp >>= 1;

// Isolate the bits for the upper digit. temp &= 0x78;

// Now return: (Tens * 8) + (Tens * 2) + Ones return(temp + (temp >> 2) + (bcd_value & 0x0f));

3 Giải thích chương trình: Để led nào được sáng thì ta kích tín hiệu từ VDK ra là mức 1 vì ở đây dùng Tranzito pnp nên có tín hiệu mức 1 từ VDK vào chân B của tranzito nào thì con đó sẽ thông và LCD được cấp nguồn, và phụ thuộc vào các chân dữ liệu xuất mã ra để hiển thị được số thông qua mã đó.

Trong quá trình thiết lập ban đầu, dữ liệu được truyền xuống DS1307 bằng cách phát tín hiệu bắt đầu, tiếp theo là địa chỉ của DS1307 và địa chỉ thanh ghi của nó Sau đó, thời gian thực được lấy từ DS1307 và hiển thị trên màn hình LCD.

Tôi đã thiết kế một chiếc đồng hồ thời gian thực ổn định, có chế độ dành cho đồng hồ thể thao và tính năng hẹn giờ trong quá trình làm việc Qua quá trình thực hiện, tôi nhận thấy nhiều sai sót đã xảy ra, nhưng đã được khắc phục và tôi cũng học hỏi được nhiều kinh nghiệm quý báu.

557 đi ệ n-đi ệ n t ử Đại học Tôn Đức…

Mathvn toán cao cấp điện- điện tử 100% (4) 160

Focus on Ielts Foundation điện- điện tử 100% (4) 179

5 Thí nghi ệ m Vi đi ề u khi ể n điện- điện tử 100% (4) 33

TDT- BAI TAP AN TOAN DIEN 2020 điện- điện tử 100% (3) 10 baotram…

THI Tnvdk - Tài li ệ u ôn thi Thí nghi ệ m … điện-điện tử None

23 tài li ệ u đi ề u khi ể n quá trình

Cơ sở dữ liệu None

4 Đ Ạ I S Ố Boole h ệ th ố ng s ố điện-điện tử 100% (1)

Báo cáo cu ố i kỳ - Báo cáo cu ố i kì… định hướng… 100% (1) 29

Ngày đăng: 19/12/2023, 15:17

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

TÀI LIỆU LIÊN QUAN

w