ng hồ hiện thị thời gian thực trên Led 7 đoạn - Pdf 12

Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
LỜI NÓI ĐẦU
Ngày nay, với những ứng dụng của khoa học kỹ thuật tiên tiến, thế giới của
chúng ta đã và đang ngày một thay đổi, văn minh và hiện đại hơn. Sự phát triển của
kỹ thuật điện tử đã tạo ra hàng loạt những thiết bị với các đặc điểm nổi bật như sự
chính xác cao, tốc độ nhanh, gọn nhẹ là những yếu tố rất cần thiết góp phần cho hoạt
động của con người đạt hiệu quả cao.
Các bộ điều khiển sử dụng vi điều khiển tuy đơn giản nhưng để vận hành và sử
dụng được lại là một điều rất phức tạp. Các bộ vi điều khiển theo thời gian cùng với
sự phát triển của công nghệ bán dẫn đã tiến triển rất nhanh, từ các bộ vi điều khiển 4
bit đơn giản đến các bộ vi điều khiển 32 bit, rồi sau này là 64 bit. Điện tử đang trở
thành một ngành khoa học đa nhiệm vụ. Điện tử đã đáp ứng được những đòi hỏi
không ngừng từ các lĩnh vực công – nông – lâm – ngư nghiệp cho đến các nhu cầu
cần thiết trong hoạt động đời sống hằng ngày.
Có thể nói sự phát triển của vi điều khiển từ thủa sơ khai cho tới ngày nay là cả
một chặng đường lớn của nghành điện tử. Một trong những ứng dụng thiết thựccủa vi
điều khiển là ứng dụng vi điều khiển thiết kế đồng hồ hiện thị thời gian. Đây là một
ứng dụng thường thấy nhất trong cuộc sống,
Là những sinh viên trẻ đam mê điện tử, để thỏa mãn nhu cầu tìm tòi và nghiên
cứu của mình trong việc hoc tập. Đây chính là động lực và lý do thúc đẩy em chọn đề
tài thiết kế đồng hồ hiện thị thời gian thực bằng AT89C51 sử dụng led 7 đoạn để hiển
thị giờ, phút, giây, ngày, tháng, năm làm đồ án học phần Đồ án vi xử lý.
Bố cục đồ án gồm có 2 chương:
Chương I: Sơ lược về Chíp và các linh kiện điện
Chương II: Quy trình làm mạch đồng hồ thực tế dung IC AT89c51 và DS1307
hiện thị trên led 7 đoạn.
Trong quá trình thực hiện sẽ không tránh khỏi những thiếu sót. Rất mong nhận
được sự góp ý của thầy cô và các bạn.
Em xin chân thành cảm ơn thầy ………… đã tận tình hướng dẫn em trong suốt
quá trình làm bài!
GVHD:……………… Trang i

2.2.2 Sơ đồ mạch in: 19
2.2.3 Sơ đồ thuật toán 20
KẾT LUẬN 22
DANH MỤC BẢNG
Bảng 2.1: Thanh ghi điều khiển SQW/OUT: 13
Bảng 2.2: Sự phụ thuộc của tần số sóng vuông với Bit RS0 và RS1 14
Bảng 2.3 Trạng thái của tất cả các thanh ghi trong 89C51 sau khi reset hệ thống:
18
GVHD: Trần Trung Tín Trang ii
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
DANH MỤC HÌNH
Hình 1.1 Các loại chíp điện tử 1
Hình 1.2 Sơ đồ khối của AT89C51 3
Hình 1.3 Sơ đồ chân 89C51 3
Hình 1.4 Sơ đồ chân IC AT89C52 4
Hình 1.5 Sơ đồ chân ATMEGA16 6
Hình 1.6 Sơ đồ chân ATMEGA32 7
Hình 1.7 Sơ đồ chân PIC 16F877A 8
Hình 2.1 Sơ đồ chân DS1307 10
Hình 2.2 Mạch điện đơn giản sử dụng DS1307 11
Hình 2.3 Thanh ghi DS1307 12
Hình 2.4 Sơ đồ định địa chỉ các thanh ghi trong DS1307 12
Hình 2.5 Led 7 đoạn 14
Hình 2.6 Led Anode chung 15
Hình 2.7 Led Cathode chung 15
Hình 2.8 Sơ đồ chân 89C51 15
Hình 2.9 Mạch dao động 17
Hình 2.10 Mạch reset tự động 18
Hình 2.11 Mạch reset bằng tay 18
Hình 2.12 Sơ đồ nguyên lý mạch đồng hồ 19

Intel sản xuất. Các IC tiêu biểu cho họ MSC -51 là: 8051, 8031, 89C51, 892051,
8751, 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 nhiều chế độ truy xuất dữ liệu nhanh trên RAM nội. Tập lệnh cung cấp một
bảng tiện dụng của những lệnh số học 8Bit gồm cả tập lệnh cộng, trừ, nhân, chia. Nó
cung cấp những hỗ trợ mở rộng trên Chip dùng cho những biến một Bit như là kiểu
dữ liệu riêng biệt cho phép quản lý và kiểm tra Bit trực tiếp trong điều khiển.
89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất lượng
cao, với 4 KB EEPROM (Flash Programmable and erasable read only memory). Thiết
bị này được chế tạo bằng cách sử dụng bộ nhớ không bốc hơi mật độ cao của
ATMEL và tương thích với chuẩn công nghiệp MCS -51 về tập lệnh và các chân ra.
ATMEL AT89C51 là một vi điều khiển mạnh (có công suất lớn) mà nó cung cấp một
sự linh động cao và giải pháp về giá cả đối với nhiều ứng dụng vi điều khiển.
Các đặc điểm của 89C51 được tóm tắt như sau:
+ 4 KB bộ nhớ có thể lập trình lại nhanh, có khả năng tới 1000 chu kỳ ghi xóa
+ Tần số hoạt động từ: 0 Hz đến 24 MHz.
+ 3 mức khóa bộ nhớ lập trình
+ 2 bộ Timer/counter 16 Bit
+ 128 Byte Ram nội.
+ 4 port xuất/ nhập I/O 8 bit.
+ Giao tiếp nối tiếp
+ 64 KB vùng nhớ mã ngoài
+ 64 KB vùng nhớ dữ liệu ngoại
+ Xử lý Boolean (hoạt động trên bit đơn).
+ 210 vị trí nhớ có thể định vị bit.
+ 4 µs cho hoạt động nhân hoặc chia.
GVHD: Trần Trung Tín Trang 2
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
* Sơ đồ cấu hình AT89C51
Hình 1.2 Sơ đồ khối của AT89C51
Hình 1.3 Sơ đồ chân 89C51

GVHD: Trần Trung Tín Trang 4
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
+ Với 131 lệnh – Với khả năng thực hiện mỗi lệnh trong vong một chu kỳ xung
clock
+ 32 x 8 thanh ghi đa dụng
+ Full static operation
+ Tốc độ làm việc 16MPIS, với thạch anh 16MHz
+ On – chip 2 cycle multipler
- Bộ nhớ:
+ ISP Flash với khả năng 10.000 lần ghi xóa
+ EEROM
+ RAM
- Giao tiếp JTAG:
+ Khả năng quét toàn diện theo chuẩn JTAG
+ Hổ trợ khả năng Debug onchip
+ Hỗ trợ lập trình Flash, EEROM, fuse…
+ Lock bít qua giao tiếp JTAG
- Ngoại vi :
+ Timer / Counter 8 bít với các chế độ: so sánh và chia tần số
+ Timer / Counter 16 bit với các chế độ: so sánh, chia tần số, capture, PWM
+ Timer thời gian thực (Real time Clock) với bộ dao động riêng biệt.
+ Các kênh PWM
+ Kênh biến đổi ADC 10 bít
+ Hỗ trợ giao tiếp I2C
+ Bộ giao tiếp nối tiếp lập trình được USART
+ Giao tiếp SPI
+ Watch_dog timer với bộ dao động on_chip riêng biệt
- Những thuộc tính đặc biệt:
+ Power on reset và Brown – out detection
+ Chế độ hiệu chỉnh bộ sai số cho bộ dao động RC on chíp

- Board mạch xuyên lớp chất lượng cao, dễ dàng thích nghi với vỏ hộp.
* Sơ đồ cấu hình:
Hình 1.6 Sơ đồ
chân ATMEGA32
1.2.3 PIC
1.2.3.1 PIC
16F877A
Đây là vi điều
khiển thuộc họ
PIC16Fxxx với tập
lệnh gồm 35 lệnh co độ dài 14 bit. Mỗi lệnh đều được thực thi trong một chu kì xung
clock. Tốc độ hoạt động tối đa cho phép là 20 MHz với một chu kì lệnh là 200ns. Bộ
nhớ chương trình 8Kx14 bit, bộ nhớ dữ liệu 368x8 byte RAM và bộ nhớ dữ liệu
EEPROM với dung lượng 256x8 byte. Số PORT I/O lầ 5 với 33 pin I/O.
* Tính năng cơ bản
- Timer 0: Bộ đếm 8 bít với bộ chia tần số 8 bit.
- Timer 1: Bộ đếm 16 bít với bộ chia tần số, có thể thực hiện chức năng đếm dựa
vào xung clock ngoại vi ngay khi điều khiển hoạt động ở chế độ sleep.
- Timer 2: Bộ đếm 8 bít và bộ chia tần số, bộ postcaler
- Hai bộ Capture/ So sánh/ điều chế độ rộng xung
- Các chuẩn giao tiếp nối tiếp SSP (Synchronous Serial Port), SPI và I2C
- Chuẩn giao tiếp nối tiếp USATR với 9 bít địa chỉ.
- Cổng giao tiếp song song PSP (Parallel Slave Port) với các chân điều khiển RD,
WR, CS ở bên ngoài.
- Các đặc tính ANALOG:
+ 8 kênh chuyển đổi ADC 10 bít
+ Hai bộ so sánh
Bên cạnh đó là một vài đặc tính khác của vi điều khiển như:
- Bộ nhớ Flash với khả năng ghi xóa 100.000 lần
- Bộ nhớ EEPROM với khả năng ghi xóa được 1.000.000 lần

truyền. Nếu đơn vị Chủ muốn truyền thông với đơn vị khác nó sẽ gửi kèm thông tin
địa chỉ của đơn vị mà nó muốn truyền trong dữ liệu truyền. Đơn vị Tớ đều được gán
và đánh địa chỉ thông qua đó đơn vị Chủ có thể thiết lập truyền thông và trao đổi dữ
liệu. Bus dữ liệu được thiết kế để cho phép thực hiện nhiều đơn vị Chủ và Tớ ở trên
cùng Bus.
Quá trình truyền thông I2C được bắt đầu bằng tín hiệu start tạo ra bởi đơn vị
Chủ. Sau đó đơn vị Chủ sẽ truyền đi dữ liệu 7 bit chứa địa chỉ của đơn vị Tớ mà nó
muốn truyền thông, theo thứ tự là các bit có trọng số lớn nhất MSB sẽ được truyền
trước. Bit thứ tám tiếp theo sẽ chứa thông tin để xác định đơn vị Tớ sẽ thực hiện vai
trò nhận (0) hay gửi (1) dữ liệu. Tiếp theo sẽ là một bit ACK xác nhận bởi đơn vị nhận
đã nhận được 1 byte trước đó hay không. Đơn vị truyền (gửi) sẽ truyền đi 1 byte dữ
liệu bắt đầu bởi MSB. Tại điểm cuối của byte truyền, đơn vị nhận sẽ tạo ra một bit xác
nhận ACK mới. Khuôn mẫu 9 bit này (gồm 8 bit dữ liệu và 1 bit xác nhận) sẽ được lặp
lại nếu cần truyền tiếp byte nữa. Khi đơn vị Chủ đã trao đổi xong dữ liệu cần nó sẽ
quan sát bit xác nhận ACK cuối cùng rồi sau đó sẽ tạo ra một tín hiệu dừng STOP để
kết thúc quá trình truyền thông. I2C là một giao diện truyền thông đặc biệt thích hợp
cho các ứng dụng truyền thông giữa các đơn vị trên cùng một bo mạch với khoảng
cách ngắn và tốc độ thấp.
GVHD: Trần Trung Tín Trang 9
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
Ví dụ như truyền thông giữa CPU với các khối chức năng trên cùng một bo
mạch như EEPROM, cảm biến, đồng hồ tạo thời gian thực… Hầu hết các thiết bị hỗ
trợ I2C hoạt động ở tốc độ 400Kbps, một số cho phép hoạt động ở tốc độ cao vài
Mbps. I2C khá đơn giản để thực thi kết nối nhiều đơn vị vì nó hỗ trợ cơ chế xác định
địa chỉ.
2.1.2 Giao tiếp DS1307 – DS 1308
DS1307 là chip đồng hồ thời gian thực (RTC : Real-time clock), khái niệm thời
gian thực ở đây được dùng với ý nghĩa thời gian tuyệt đối mà con người đang sử dụng,
tình bằng giây, phút, giờ… DS1307 là một sản phẩm của Dallas Semiconductor (một
công ty thuộc Maxim Integrated Products). Chip này có 7 thanh ghi 8-bit chứa thời

thanh ghi này thông qua giao diện I2C. Như đã trình bày, bộ nhớ DS1307 có tất cả 64
thanh ghi 8-bit được đánh địa chỉ từ 0 đến 63 (từ 00H đến 3FH theo hệ HexaDecimal).
Tuy nhiên, thực chất chỉ có 8 thanh ghi đầu (00H – 07H) là dùng cho chức
năng “đồng hồ” (RTC) còn lại 56 thanh ghi bỏ trống có thể được dùng chứa biến tạm
như RAM nếu muốn. 7 thanh ghi đầu tiên chứa thông tin về thời gian của đồng hồ bao
gồm: giây (SECONDS), phút (MINUETS), giờ (HOURS), thứ (DAY), ngày (DATE),
tháng (MONTH) và năm (YEAR).
Việc ghi giá trị vào 7 thanh ghi này tương đương với việc “cài đặt” thời gian
khởi động cho RTC. Việc đọc giá trị từ 7 thanh ghi là đọc thời gian thực mà chip tạo
ra.
GVHD: Trần Trung Tín Trang 11
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
Thanh ghi thứ 8 (CONTROL) là thanh ghi điều khiển xung ngõ ra SQW/OUT
(chân 6). Tuy nhiên, do chúng ta không dùng chân SQW/OUT nên có thề bỏ qua thanh
ghi thứ 8.
7 thanh ghi đầu tiên là quan trọng nhất trong hoạt động của DS1307, chúng ta
sẽ khảo sát các thanh ghi này một cách chi tiết. Trước hết hãy quan sát tổ chức theo
từng bit của các thanh ghi này như trong hình:
Hình 2.3 Thanh ghi DS1307
Địa chỉ các thanh ghi trong DS1307
Hình 2.4 Sơ đồ định địa chỉ các thanh ghi trong DS1307
Thanh ghi giây (SECONDS): Là thanh ghi đầu tiên trong bộ nhớ của DS1307,
địa chỉ của nó là 0×00. 4 bit thấp của thanh ghi này chứa mã BCD 4-bit của chữ số
hàng đơn vị của giá trị giây. Do giá trị cao nhất của chữ số hàng chục là 5 (không có
GVHD: Trần Trung Tín Trang 12
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
giây 60) nên chỉ cần 3 bit (các bit SECONDS 6:4) là có thể mã hóa được (số 5 =101, 3
bit).
Bit cao nhất là bit 7, trong thanh ghi này là 1 thanh ghi điều khiển có tên CH
(Clock halt – treo đồng hồ), nếu bit này được set bằng 1 bộ dao động trong chip bị vô

Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
OUT (Output control): Đây là Bit điều khiển đầu ra của Pin 7 (SQW/OUT)
dưới dạng sóng vuông. Mặc định là Disable
Nếu OUT = 0 thì đầu ra Pin 7 (SQW) được đặt lên mức Logic 0
Nếu OUT = 1 thì đầu ra Pin 7 (SQW) được đặt lên mức Logic 1
SQWE (Square Wave Enable): Khi thiết lập để logic 1, sẽ cho phép đầu ra
dao động. Các tần số Sóng vuông ở đầu ra dao động phụ thuộc vào 2 Bit RS0 & RS1
theo bảng dưới
RS (Rate Select): Đây là Bit điều khiển tần số dao động sóng vuông cho đầu ra SQW
(Pin 7) như bảng sau đây có thể chọn các tần số thích hợp
Bảng 2.2: Sự phụ thuộc của tần số sóng vuông với Bit RS0 và RS1
RS1 RS0 SQW OUTPUT FREQUENCY
0 0 1Hz
0 1 4.096 kHz
1 0 8.192 kHz
1 1 32.768 kHz
2.1.3 LED 7 đoạn
Cấu trúc và mã hiển thị dữ liệu trên Led 7 đoạn
- Dạng Led:
Hình 2.5 Led 7 đoạn
GVHD: Trần Trung Tín Trang 14
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
- Led Anode chung:
Hình 2.6 Led Anode chung
Đối với dạng Led anode chung, chân COM phải có mức logic 1 và muốn
sáng Led thì tương ứng các chân a – f, dp sẽ ở mức logic 0.
- Led Cathode chung:
Hình 2.7 Led Cathode chung
Đối với dạng Led Cathode chung, chân COM phải có mức logic 0 và
muốn sáng Led thì tương ứng các chân a – f, dp sẽ ở mức logic 1.

dùng làm ngõ vào xung lập trình (PROG) trong thời gian lập trình Flash.
Khi hoạt động bình thường, xung của ngõ ra ALE luôn luôn có tần số bằng 1/6
tần số của mạch dao động trên chip, có thể được sử dụng cho các mục đích định thời
từ bên ngoài và tạo xung clock. Tuy nhiên cần lưu ý là một xung ALE sẽ bị bỏ qua
trong mỗi chu kỳ truy xuất bộ nhớ dữ liệu ngoài.
Khi cần, hoạt động cho phép chốt byte thấp của địa chỉ sẽ được vô hiệu hóa
bằng cách set bit 0 của thanh ghi chức năng đặc biệt có địa chỉ byte là 8EH. Khi bit
này được set, ALE chỉ tích cực tron thời gian thực thi lệnh MOVX hoặc MOVC.
GVHD: Trần Trung Tín Trang 16
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
Ngược lại chân này sẽ được kéo lên mức cao. Việc set bit không cho phép hoạt động
chốt byte thấp của địa chỉ sẽ không có tác dụng nếu bộ vi điều khiển đang chế độ thực
thi chương trình ngoài.
• PSEN:
Chân cho phép bộ nhớ chương trình PSEN (program store enable) điều khiển
truy xuất bộ nhớ chương trinhg ngoài. Khi AT89C51 đang thực thi chương trình trong
bộ nhớ chương trình ngoài, PSEN tích cực 2 lần cho mooic chu ký máy, ngoại trừ
trường hợp 2 tác động của PSEN bị bỏ qua cho mỗi truy xuất bộ nhớ dữ liệu ngoài.
• EA/ Vpp:
Chân cho phép truy xuất bộ nhớ ngoài EA (external access enable) phải được
nối với GND để cho phép chip vi điều khiển tìm nạp lệnh từ các vị trí nhớ của bộ nhớ
chương trình ngoài, bắt đầu từ địa chỉ 0000H cho đến FFFFH. Tuy nhiên cần lưu ý là
nếu có bit khóa (clock bit 1) được lập trình, EA sẽ được chốt bên trong khi reset
EA nên nối với Vcc để thực thi chương trình trong chip.
Chân EA/Vcc còn nhận điện áp cho phép lập trình Vpp trong thời gian lập trình
cho Flash, điện áp này cấp cho các bộ phận có yêu cầu điện áp 12V.
• XTAL 1:
Ngõ vào đến mạch khuếch đại đảo dao động và ngõ vào đến mạch tạo xung
clock bên trong chip.
• XTAL 2:

Các thanh ghi định thời 00H
GVHD: Trần Trung Tín Trang 18
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
SCON SBUF 00H
PCON (HMOS) 0XXX XXXXH
PCON (SMOS) 0XXX 0000 B
• Thanh ghi quan trọng nhất là thanh ghi bộ đếm chương trình PC được reset tại
địa chỉ 0000H. Khi ngõ vào RST xuống mức thấp, chương trình luôn bắt đầu tại địa
chỉ 0000H của bộ nhớ chương trình. Nội dung của RAM trên chip không bị thay đổi
bởi tác động của ngõ vào reset.
2.2 Sơ đồ nguyên lý, mạch in của mạch đồng hồ
2.2.1 Sơ đồ nguyên lý của mạch
Hình 2.12 Sơ đồ nguyên lý mạch đồng hồ
2.2.2 Sơ đồ mạch in:
GVHD: Trần Trung Tín Trang 19
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
Hình 2.13 Sơ đồ mạch in
2.2.3 Sơ đồ thuật toán
GVHD: Trần Trung Tín Trang 20
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
Hình 2.14 Lưu đồ thuật toán
GVHD: Trần Trung Tín Trang 21
Đồ án vi xử lý Đồng hồ hiện thị thời gian thực trên Led 7 đoạn
KẾT LUẬN
- Ưu điểm: mạch mô phỏng gần như đầy đủ chức năng của đồng hồ vạn niên
- Khuyết điểm: thiết kế mạch to, nhiều jum.
- Ứng dụng: có thể thay thế cho đồng hồ đang sử dụng
- Hướng phát triển: Thiết kế mạch 2 lớp để giảm nhỏ diện tích mạch van tăng
tính thẩm mĩ, dùng hiển thị ngày giờ trên bảng led điển tử được láp đặt trong công ty
hay nơi công cộng, thời gian thực còn sử dụng trong các cột đèn tín hiệu giao thông….


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status