Page 1 of 47
THIẾT KẾ ĐỒNG HỒ ĐIỆN TỬ
Thiết kế đồng hồ điện tử
Page 2 of 47
MỤC LỤC
Thiết kế đồng hồ điện tử
Page 3 of 47
DANH MỤC CÁC HÌNH VẼ
Hình 1-1 Hình 1-1: Sơ đồ khối hệ thống............................................................................6
Hình 1-2: Sơ đồ thuật toán.................................................................................................7
Hình 2-1: Sơ đồ chân AT89C52.........................................................................................9
Hình 2-2: Tóm tắt các vùng bộ nhớ của 8952...................................................................12
Hình 2-3: Sơ đồ chân DS1307...........................................................................................13
Hình 2-4: Tổ chức bộ nhớ DS1307....................................................................................14
Hình 2-5: Chi tiết các thanh ghi.........................................................................................14
Hình 2-6: Sơ đồ chân LCD................................................................................................15
Hình 2-7:Sơ đồ kết nối......................................................................................................17
Hình 2-8 Quá trình truyền/ nhận dữ liệu giữa chủ/ tớ.......................................................18
Hình 2-9: Điều kiện START/STOP của I2C ....................................................................18
Hình 2-10: Định dạng dữ liệu truyền.................................................................................19
Hình 2-11: Lưu đồ thuật toán quá trình truyền/ nhận dữ liệu ...........................................20
Hình 2-12: hướng truyền dữ liệu trên bus I2C...................................................................21
-Thiết kế dồng hồ hiển thị ngày, tháng, năm, giờ, phút, giây, hẹn giờ
-Thi công phần cứng
1.2 Mục đích thực hiện
Thiết kế ra sản phẩm ứng dụng vào đời sống thực tế, phục vụ đời sống con người dựa
trên những kiến thức đã được học.
1.3 Sơ đồ khối
Khối Nguồn
Khối Xử Lý
Khối Thời
Gian Thực
Khối Hiển
Thị
Khối Giao Tiếp
Phím Bấm
Hình 1-1: Sơ đồ khối hệ thống
Khối nguồn: Cung cấp nguồn cho hệ thống
Khối Xử Lý: Dùng vi điều khiển AT89C52 lấy dữ liệu từ khối thời gian thực, lưu trữ và
xuất ra khối hiển thị, nhận tín hiệu điều khiển từ khối giao tiếp
Khối thời gian thực: Lưu trữ thời gian
Khối Hiển Thị: Hiển thị kết quả được xuất ra từ khối xử lý
Khối giao tiếp phím bấm: Thực hiện việc cài đặt ngày, giờ, báo thức thông qua khối xử lý
1.4.Sơ đồ thuật toán
Thiết kế đồng hồ điện tử
Thiết kế đồng hồ điện tử
Đặt thời gian mặc
định
Page 7 of 47
AT89C52 là vi điều khiển do hãng Atmel sản xuất dùng cho việc điều khiển. Nó được chế
tạo theo công nghệ CMOS. AT89C52 được chế tạo bằng cách sử dụng kỹ thuật bộ nhớ
không bốc hơi mật độ cao của hãng và tương thích với chuẩn công nghiệp MCS-51 TM về
tập lệnh và các chân ra.Việc xử lý trên byte và các toán số học ở cấu trúc dữ liệu được
thực hiện bằng chế độ truy xuất dữ liệu nhanh trên RAM nội. Nó cung cấp, hỗ trợ mở
rộng trên chip dùng cho những biến 1 bit như kiểu dữ liệu riêng cho phép quản lý, kiểm
tra bit trực tiếp trong hệ thống điều khiển.
Đặc điểm:
-Tương thích với họ MCS-51TM của Intel
- Bộ nhớ: 8Kb Flash, 256 Bytes RAM
-Độ bền:1000 lần ghi/ xóa
-Hoạt động ở tần số: 0Hz-24Mhz
- 3 chế độ khóa bộ nhớ
- Timer/ Counter: 3 bộ 16 bit
- 4 port, 32 chân I/O lập trình được
- 8 nguồn ngắt
-Kiểu chân: PDIP40
2.1.2 Sơ đồ chân AT89C52
Thiết kế đồng hồ điện tử
P3.7
TXD
INTO\
INT1\
T0
T1
WR\
RD\
Dữ liệu xuất cho port nối tiếp
Ngắt ngoài 0
Ngắt ngoài 1
Ngõ vào Timer/Counter 0
Ngõ vào Timer/Counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài
2.1.3Các ngõ tín hiệu điều khiển
AT89C52 có 4 tín hiệu điều khiển:
a/ PSEN\( Program Store Enable):
PSEN\ là tín hiệu ra trên chân 29 là tín hiệu điều khiển cho phép bộ nhớ chương trình mở
rộng.PSEN\ sẽ ở mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương trình
được đọc từ EPROM qua bus dữ liệu và chốt vào thanh ghi của 8952 để giải mã. PSEN\
sẽ ở mức cao nếu thực hiện chương trình trong ROM nội
b/ ALE( Address Latch Enable):
ALE là tín hiệu trên chân 30 dùng làm tín hiệu điều khiển để giải đa hợp các đường địa
chỉ và dữ liệu khi kết nối với IC chốt.
Khi port 0 dùng trong chế độ chuyển đổi, ALE là tín hiệu được dùng để chốt byte thấp
địa chỉ vào một thanh ghi bên ngoài trong nửa đầu chu kỳ bộ nhớ. Các port 0 dùng để
Hình 2-2: Tóm tắt các vùng bộ nhớ của 8952
Ta cần lưu ý hai đặc tính sau:
Thiết kế đồng hồ điện tử
Page 11 of 47
- Các thanh ghi và các port đã được xếp trong bộ nhớ, có thể truy xuất trực tiếp giống như
-
các địa chỉ bộ nhớ khác.
Bên trong RAM nội ngăn xếp nhỏ hơn bên trong RAM ngoại so với các bộ xử lý khác
2.1.5Bộ nhớ dữ liệu
AT89C52 có 256 byte bộ nhớ RAM on chip, trong đó 128 byte có cùng địa chỉ với thanh
ghi chức năng nhưng có cấu tạo riêng biệt
2.1.6Các chế độ hoạt động:
-Chế độ lười: CPU rơi vào trạng thái “ ngủ” trong khi các thiết bị ngoại vi vẫn hoạt động
tích cực. Nội dung của RAM và vai trò của các SFR vẫn được giữ nguyên. Kết thúc chế
độ lười bằng cách kích hoạt một ngắt hoặc reset phần cứng.
-Chế độ hạ nguồn: Bộ dao động ngừng, lệnh hạ nguồn là lệnh cuối cùng được thực thi.
RAM và SFR duy trì giá trị của nó cho đến khi hạ nguồn. Kết thúc chế độ hạ nguồn bằng
cách reset phần cứng, reset sẽ tạo lại giá trị cho SFR nhưng không thay đổi nội dung của
RAM. Không nên reset trước khi Vcc phục hồi mức điện áp thông thường của nó và phải
giữ đủ lâu để bộ dao động phục hồi ổn định.
2.2 IC thời gian thực DS1307
2.2.1Giới thiệu chung
DS1307 là chip đồng hồ thời gian thực, là ý nghĩa thời gian tuyệt đối mà con người đang
sử dụng, được tính bằng giờ, phút, giây... DS1307 được sản xuất bởi hãng Dallas
Semiconducter. Chip có 7 thanh ghi 8 bit chứa giá trị thời gian là thứ, ngày, tháng, năm,
giờ, phút, giây. DS1307 có 1 thanh ghi điều khiển ngõ ra phụ và 56 thanh ghi trống được
Chức năng
Kết nối đến thạch anh 32.768Khz làm nguồn dao động cho chip
Kết nối đến cực dương của pin nuôi chip có điện áp khoảng 3v
Kết nối đến Mass
Chân dữ liệu khi kết nối đến bus I2C
Chân nhận xung clock đồng bộ khi kết nối đến bus I2C
Ngõ xuất xung vuông
Nguồn cấp chính, khoảng 5VDC
2.2.3 Tổ chức bộ nhớ của DS1307 và chi tiết các thanh ghi
Thiết kế đồng hồ điện tử
Page 13 of 47
Hình 2-4: Tổ chức bộ nhớ DS1307
Hình 2-5: Chi tiết các thanh ghi
Tên thanh ghi
SECONDS
Địa chỉ thanh ghi
0x00
MINUTES
HOURS
0x01
0x02
Chứa giá trị năm
2.3.1 Giới thiệu chung
LCD là một thiết bị ngoại vi dùng để giao tiếp với người dùng. Nó có khả năng hiển thị
tất cả các ký tự trong bảng mã ASCII , dễ dàng đưa vào mạch ứng dụng nhiều giao thức
giao tiếp khác nhau, tốn ít tài nguyên và giá không quá cao. Do vậy, ngày nay LCD được
dùng rất nhiều trong các ứng dụng của vi điều khiển.
2.3.2 Sơ đồ chân LCD
Hình 2-6: Sơ đồ chân LCD
Chân
1
2
3
4
Ký hiệu
VSS
VDD
VEE
RS
5
RW
6
E
4bit: Dữ liệu truyền trên 4 đường D4-D7, bit MSB là D7
Nguồn dương cho đèn nền
GND cho đèn nền
Thiết kế đồng hồ điện tử
Page 15 of 47
2.4 Chuẩn giao tiếp I2C
2.4.1 Giới thiệu chung
Ngày nay, trong các hệ thống điện tử hiện đại, rất nhiều các thiết bị ngoại vi cần phải giao
tiếp với các thiết bị khác- giao tiếp với người dùng. Để đạt được hiệu quả cao cho phần
cứng với mạch điện đơn giản, Phillips phát triển một hệ thống giao tiếp nối tiếp 2 dây
I2C(Inter-Intergrated Circuit-Bus) giao tiếp giữa các IC với nhau.
I2C được rất nhiều nhà sản xuất IC trên thế giới sử dụng. I2C trở thành chuẩn cho các
giao tiếp điều khiển. Bus I2C được sử dụng làm bus giao tiếp ngoại vi cho rất nhiều loại
IC khác nhau như 8051, PIC, AVR,IC điều khiển LCD, LED...
2.4.2 Đặc điểm giao tiếp I2C
Gồm 2 dây: SDA và SCL.SDA là đường truyền dữ liệu hai hướng, SCL là đường truyền
xung đồng hồ và chỉ theo một hướng. Khi một thiết bị kết nối vào I2C thì chân SDA của
nó sẽ nối với SDA của bus, chân SCL nối với chân SCL.
Dây SDA và SCL đều được nối với điện áp dương của nguồn thông qua một điện trở kéo.
Điện trở kéo này là cần thiết vì chân giao tiếp I2C của các thiết bị ngoại vi thường là
dạng cực máng hở. Giá trị trở dao động từ 1KΩ-4.7KΩ
Hình 2-7: Sơ đồ kết nối
-Các chế độ hoạt động của I2C:
Thiết kế đồng hồ điện tử
Khi chưa thực hiện việc giao tiếp, SDA và SCL đều ở mức cao. Lúc này bus I2C được coi
là rỗi, sẵn sàng cho việc giao tiếp.
Điều kiện START: Chuyển đổi trạng thái từ high xuống low trên đường SDA khi SCL ở
mức cao.
Điều kiện STOP: Chuyển đổi trạng thái từ low lên high trên đường SDA khi SCL ở mức
cao.
Hai điều kiện trên được tạo bởi thiết bị chủ, sau tín hiệu START, bus I2C sẽ được coi như
đang ở trạng thái làm việc. BUS I2C sẽ rỗi sau khi nhận tín hiệu STOP từ thiết bị chủ
2.4.4 Định dạng dữ liệu truyền
Dữ liệu được truyền theo từng bit,bit dữ liệu được truyền tại phần dương của xung đồng
hồ trên dây SCL, quá trình thay đổi bit dữ liệu xảy ra khi SCL ở mức thấp.
Hình 2-10: Định dạng dữ liệu truyền
Thiết kế đồng hồ điện tử
Page 18 of 47
Mỗi byte dữ liệu được truyền có độ dài 8bits. Số lượng byte có thể truyền trong một lần
là không hạn chế. Mỗi byte được truyền sẽ chờ tín hiệu phản hồi là một bit ACK để báo
hiệu nhận dữ liệu.Mỗi lần I2C sẽ truyền đi 8 bits và nhận lại 1 bit, bit có trọng số cao
nhất sẽ truyền đi đầu tiên, các bit được truyền đi lần lượt. Sau 8 xung clock trên SCL, 8
bits dữ liệu đã được truyền đi. Sau khi thiết bị nhận đủ 8 bit dữ liệu sẽ kéo SDA xuống
mức thấp tạo xung ACK ứng với xung clock thứ 9 trên SDA để báo hiệu nhận đủ 8 bits.
Thiết bị truyền khi nhận bit ACK sẽ tiếp tục quá trình truyền dữ liệu hoặc kết thúc.
Truyền
Nhận
Page 19 of 47
Hình 2-11: Lưu đồ thuật toán quá trình truyền/ nhận dữ liệu
STOP
Một byte truyền đi có kèm theo ACK là điều kiện bắt buộc, nhằm đảm bảo cho quá trình
truyền nhận được diễn ra chính xác. Khi không nhận đúng địa chỉ hay muốn kết thúc quá
trình giao tiếp, thiết bị gửi xung Not-ACK( SDA mức cao).
2.4.4 Định dạng địa chỉ thiết bị
Mỗi thiết bị tham gia vào chuẩn giao tiếp I2C đều có một giá trị riêng có độ dài 7 bit,
Trên một bit I2C ta có thể phân biệt 128 thiết bị. Khi thiết bị chủ muốn giao tiếp với các
thiết bị khác trên bus I2C, nó sẽ gửi 7 bit địa chỉ của thiết bị đó ra bus ngay sau xung
START. Byte đầu tiên được gửi sẽ gồm 7 bit địa chỉ và bit thứ 8 điều khiển hướng truyền.
Mỗi thiết bị ngoại vi có một địa chỉ riêng do nhà sản xuất quy định, địa chỉ đó có thể cố
định hoặc thay đổi. Bit điều khiển hướng sẽ quy định chiều truyền dữ liệu.Bit=0, byte dữ
liệu tiếp theo được truyền từ chủ đến tớ. Bit=0, byte dữ liệu tiếp theo được truyền từ tớ
đến chủ. Việc thiết lập giá trị bit do thiết bị chủ thực hiện, thiết bị tớ sẽ tùy theo giá trị đó
mà có sự phản hồi tương ứng.
Thiết kế đồng hồ điện tử
Page 20 of 47
2.4.5 Truyền dữ liệu trên bus I2C, chế độ Master-Slaver
Việc truyền dữ liệu diễn ra giữa hai thiết bị chủ-tớ; Dữ liệu truyền có thể theo hai hướng
khác nhau. Hướng truyền được quy định bởi bit thứ 8 trong byte đầu tiên được truyền đi.
Hình 2-12: hướng truyền dữ liệu trên bus I2C
Chế độ giao tiếp Master-Slaver là một chế độ cơ bản trong bus I2C, toàn bộ bus được
Page 23 of 47
TÀI LIỆU THAM KHẢO
[1] Giáo trình họ vi điều khiển 8051- Tống Văn On
[2]Bài giảng vi xử lý, vi điều khiển- Đại học Kỹ Thuật Công Nghiệp
[3] />[4] />[5] />
Thiết kế đồng hồ điện tử
Page 24 of 47
PHỤ LỤC A
Thiết kế đồng hồ điện tử
Page 25 of 47
Thiết kế đồng hồ điện tử