1. Trang chủ
  2. » Luận Văn - Báo Cáo

thiết kế mạch đồng hồ số hiển thị giờ trên LED 7 đoạn

57 1,7K 5

Đ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

Định dạng
Số trang 57
Dung lượng 668 KB

Nội dung

thiết kế mạch đồng hồ số hiển thị giờ trên LED 7 đoạn

Trang 1

MỤC LỤC

Mở đầu

Chương 1: Giới Thiệu Và Mô Tả Chức Năng 3

1.1-Giới thiệu 3

1.2-Sơ đồ mạch 3

1.3-Mô tả chức năng 4

Chương 2: Khảo Sát Phần Cứng 5

2.1-Mô tả cấu trúc phần cứng của vi điều khiển 8951 5

2.1.1-Giới thiệu họ MCS51 5

2.1.2-Chức năng các khối của chip 89C51 7

2.1.3-Sơ đồ chân và chức năng chip 89C51 9

2.2-DS1307Serial Real Time Clock 12

2.2.1-Giới thiệu 12

2.2.2-Các thanh ghi của DS1307 13

2.2.3-Điều kiện của giao thức truyền I2C 13

Trang 2

a) Write mode 15

b) Read mode 16

2.3-Xử lý phím nhấn 18

2.3.1-Sơ đồ nguyên lý 18

2.3.2-Chức năng 19

2.4-Khối Hiển Thị 20

2.4.1-Sơ đồ nguyên lý 20

2.4.2-Chức năng và nguyên lý hoạt động 20

2.4.3-Cấu tạo LED 7 đoạn 21

2.4.4-Xây dựng module hiển thị LED 7 đoạn 22

Chương 3: Khảo Sát Phần Mềm 24

3.1-Lưu đồ giải thuật 24

3.2-Chương trình 29

Chương 4 : Thi Công Mạch Đồng Hồ 54

Trang 3

1.2-Sơ đồ mạch:

Hình 1.1: Sơ đồ mạch đồng hồ số

Trang 4

1.3-Mô tả chức năng:

 Thời gian sẽ tự lưu vào bộ nhớ ta chỉ cần cài đặt 1 lần là được

 Để chỉnh giờ nhấn “mode” lần thứ nhất, nhấn phím “up” để chỉnhtăng giờ lên, nhấn phím “down”để giảm giờ xuống

 Để chỉnh phút nhấn “mode” lần thứ 2, nhấn phím “up” để điều chỉnhtăng phút lên,nhấn phím “down” để giảm phut xuống

 Để chỉnh giờ hẹn giờ nhấn “mode” lần thứ 3

 Để chỉnh phút hẹn giờ nhấn “mode” lần thứ 4

 Để thoát ra thì nhấn phím “exit”

Trang 5

Chương 2

KHẢO SÁT PHẦN CỨNG

2.1-Mơ tả cấu trúc phần cứng của vi điều khiển 8951:

2.1.1-Giới thiệu chung IC 89C51:

MCS-51 là họ vi điều khiển của hãng Intel Vi mạch tổng quát của họMCS-51 là chip 8051 Chip 8051 có một số đặc trưng cơ bản sau:

 Bộ nhớ chương trình bên trong: 4 KB (ROM)

 Bộ nhớ dữ liệu bên trong: 128 byte (RAM)

 Bộ nhớ chương trình bên ngoài: 64 KB (ROM)

 Bộ nhớ dữ liệu bên ngoài: 64 KB (RAM)

 4 port xuất nhập (I/O port) 8 bit

 2 bộ định thời 16 bit

 Mạch giao tiếp nối tiếp

 Bộ xử lý bit (thao tác trên các bit riêng lẻ)

 210 vị trí nhớ được định địa chỉ, mỗi vị trí 1 bit

 Nhân / Chia trong 4 us

Ngoài ra, trong họ MCS-51 còn có một số chip vi điều khiền khác cócấu trúc tương đương như:

 Chip ROM trong RAM trong Bộ định thời

 8031 0 KB 128 byte 2

 8032 0 KB 256 byte 3

 8051 4 KB PROM 128 byte 2

Trang 6

 8052 8 KB PROM 256 byte 3

 8751 4 KB UV-EPROM 128 byte 2

 8752 8 KB UV-EPROM 256 byte 3

 8951 4 KB FLASH ROM 128 byte 2

 8952 8 KB FLASH ROM 256 byte 3

Hình 2.1: Khối vi xử lý

Trang 7

2.1.2-Chức năng các khối của chip 89C51

Hình 2.2: Sơ đồ khối của chip 89C51

 CPU (Central Processing Unit - Đơn vị xử lý trung tâm): tính toán vàđiều khiển quá trình hoạt động của hệ thống

 OSC (Oscillator - Mạch dao động): tạo tín hiệu xung clock cung cấpcho các khối trong chip hoạt động

 Interrupt control (Điều khiển ngắt): nhận tín hiệu ngắt từ bên ngoài(INT0\, INT1\), từ bộ định thời (TIMER0, TIMER1) và từ cổng nốitiếp (SERIAL PORT), lần lượt đưa các tín hiệu ngắt này đến CPUđể xử lý

 Other registers (Các thanh ghi khác): lưu trữ dữ liệu của các portxuất/nhập, trạng thái làm việc của các khối trong chip trong suốtquá trình hoạt động của hệ thống

Trang 8

 RAM (Random Access Memory - Bộ nhớ dữ liệu trong chip): lưu trữcác dữ liệu.

 ROM (Read Only Memory - Bộ nhớ chương trình trong chip): lưu trữchương trình hoạt động của chip

 I/O ports (In/Out ports - Các port xuất/nhập): điều khiển việc xuấtnhập dữ liệu dưới dạng song song giữa trong và ngoài chip thôngqua các port P0, P1, P2, P3

 Serial port (Port nối tiếp): điều khiển việc xuất nhập dữ liệu dướidạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD,RxD

 Timer 0, Timer 1 (Bộ định thời 0, 1): dùng để định thời gian hoặcđếm sự kiện (đếm xung) thông qua các chân T0, T1

 Bus control (Điều khiển bus): điều khiển hoạt động của hệ thốngbus và việc di chuyển thông tin trên hệ thống bus

 Bus system (Hệ thống bus): liên kết các khối trong chip lại vớinhau

Trang 9

2.1.2-Sơ đồ chân và chức năng các chân của chip 89C51:

Trang 10

Hình 2.3 - Sơ đồ chân chip 89C51

a. Port 0:

 Port 0 (P0.0 – P0.7) có số chân từ 32 – 39

 Port 0 có hai chức năng:

 Port xuất nhập dữ liệu (P0.0 - P0.7) _ không sử dụng bộ nhớngoài

 Bus địa chỉ byte thấp và bus dữ liệu đa hợp (AD0 – AD7)_ có sửdụng bộ nhớ ngoài

Lưu ý: Khi Port 0 đóng vai trò là port xuất nhập dữ liệu thì phải sử

dụng các điện trở kéo lên bên ngoài

 Khi lập trình cho ROM trong chip thì Port 0 đóng vai trò là ngõ vàocủa dữ liệu (D0 – D7) (SGK, tr 333-352)

b. Port 1:

 Port 1 (P1.0 – P1.7) có số chân từ 1 – 8

 Port 1 có một chức năng:

 Port xuất nhập dữ liệu (P1.0 – P1.7) _ sử dụng hoặc không sử dụng bộ nhớ ngoài

 Khi lập trình cho ROM trong chip thì Port 1 đóng vai trò là ngõ vào của địa chỉ byte thấp (A0 – A7) (SGK, tr 333-352)

c. Port 2:

 Port 2 (P2.0 – P2.7) có số chân từ 21 – 28

 Port 2 có hai chức năng:

Trang 11

 Port xuất nhập dữ liệu (P2.0 – P2.7) _ không sử dụng bộ nhớngoài.

 Bus địa chỉ byte cao (A8 – A15) _ có sử dụng bộ nhớ ngoài

 Khi lập trình cho ROM trong chip thì Port 2 đóng vai trò là ngõ vàocủa địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển

d. Port 3:

 Port 3 (P3.0 – P3.7) có số chân từ 10 – 17

 Port 0 có hai chức năng:

 Port xuất nhập dữ liệu (P3.0 – P3.7) _ không sử dụng bộ nhớ ngoài hoặc các chức năng đặc biệt

 Các tín hiệu điều khiển _ có sử dụng bộ nhớ ngoài hoặc các chứcnăng đặc biệt

 Khi lập trình cho ROM trong chip thì Port 3 đóng vai trò là ngõ vàocủa các tín hiệu điều khiển (SGK, tr 333-352)

 Chức năng của các chân Port 3:

e. Chân XTAL1, XTAL2:

 XTAL (Crystal): tinh thể thạch anh, chân số 18-19

 Chức năng:

 Dùng để nối với thạch anh hoặc mạch dao động tạo xung clockbên ngoài, cung cấp tín hiệu xung clock cho chip hoạtđộng

 XTAL1 _ ngõ vào mạch tạo xung clock trong chip

 XTAL2 _ ngõ ra mạch tạo xung clock trong chip

Lưu ý: fTYP = 12MHZ fOSC = f CLK2

Trang 12

 fTYP: tần số danh định.

 fOSC: tần số mạch dao động trên chip

 fCLK: tần số mạch dao động bên ngoài

 Là tín hiệu nhập, tích cực mức cao

 RST = 0 : Chip 8051 hoạt động bình thường

 RST = 1 : Chip 8051 được thiết lặp lại trạng thái ban đầu

Trang 13

có các thông tin về giây, phút, giờ, ngày, ngày trong tuần, tháng và năm Ngàycuối cùng của tháng thì tự động điều chỉnh nếu một vài tháng có 31 ngày, tương

tự với năm nhuận

Trang 14

2.2.2 Các thanh ghi của DS1307:

Việc lấy dữ liệu thời gian và lịch chỉ đơn giản là đọc dữ liệu từ các thanhghi thích hợp Địa chỉ và chức năng của các thanh ghi được liệt kê trong bảngsau:

Hình 2.5- Các thanh ghi RTC

DS12C887 có chạy ở cả 2 mode 12 giờ, hoặc chế độ 24 giờ Bit thứ 6 củathanh ghi giờ quyết định chế độ chạy chế độ 12 hoặc 24 Khi ở mức cao chế độ

12 giờ được chọn

2.2.3- Điều kiện của giao thức truyền I 2 C

Trong giao thức truyền này DS1307 được hiểu như một thiết bị Slave,điều kiện của giao thức I2C là:

 Dữ liệu bắt đầu truyển chỉ khi bus không bận

 Suốt quá trình truyền SDA phải ở trạng thái ổn định bất cứ khi nàoSCL ở mức cao Thay đổi SDA khi SCL ở mức cao sẽ được hiểu như

là 1 tín hiệu điều khiển Chi tiết hơn là như sau:

 Bus không bận: Cả hai đường SDA và SCL vẫn ổn định ở mức cao

Trang 15

 Bắt đầu chuyển dữ liệu: Sự thay đổi trạng thái của SDA, từ cao xuốngthấp, trong khi SCL ở mức cao được định nghĩa là điều kiện Start.

 Kết thúc chuyển dữ liệu: Sự thay đổi trạng thái của SDA, từ thấp lêncao, trong khi SCL ở mức cao được định nghĩa là điều kiện Stop

 Dữ liệu hợp lệ: Trạng thái của dữ liệu tiêu biểu cho giá trị hợp lệ khi,sau khi bắt đầu điểu kiện Start, SDA phải ở trạng thái ổn định trongsuốt quá trình ở mức cao của xung clock SDA chỉ được thay đổi suốtchu kì mức thấp của xung clock Có một xung clock trên 1 bit dữ liệu.mỗi lần truyền dữ liệu được bắt đầu bởi điều kiện Start và kết thúc bởiđiều kiện Stop, số byte được truyền giữa điều kiện Start, Stop là không

bị giới hạn, và được quyết định bởi thiết bị Master (89C51) Cuối mỗibyte có 1 bit Acknowledge (bit thứ 9)

 Công nhận: Mỗi thiết bị sau khi được định địa chỉ, thì báo cho Masterbiết đã nhận đối với mỗi byte Thiết bị Master phải tạo thêm 1 xungclock phụ liên kết với bit Acknowledged thiết bị thừa nhận phải kéođường data xuống mức thấp (SDA) phải ổn định ở mức thấp suốt chu

kì mức cao của xung clock) Dĩ nhiên thời gian thiết đặt và chờ phảiđược tính toán trước Thiết bị Master phải tạo 1 tín hiệu kết thúc dữliệu với Slave, bởi vì nếu không tạo ra bit Acknowledged cuối byte,Master vẫn tạo ra xung clock nhưng không có sự đáp ứng nào củaSlave Trong trường hợp này, thiết bị Slave phải cho đường data lênmức cao để cho phép master tạo ra điều kiện Stop

Trang 16

Hình 10: Dữ liệu truyền trn BUS I 2 C

 Dữ liệu truyền từ Master đến Slave: Byte đầu tiên được truyền là địachỉ của Slave Tiếp theo sau là 1 số byte cần truyền Slave trả về bitthừa nhận sau mỗi byte nhận được Dữ liệu được truyền với bit cótrọng số lớn nhất (MSB) đầu tiên

 Dữ liệu truyền từ Slave sang Master: Địa chỉ của Slave được truyềnđầu tiên Slave trả về bit thừa nhận (ACK) Slave truyền một số bytecần truyền Master trả về bit thừa nhận sau tất cả các byte đã nhậnđược, ngoại trừ byte cuối cùng Bit không thừa được gán cho byte cuốicùng Thiết bị Master tạo tất cả các xung clock cũng như điều kiệnStart, Stop Sự truyền dữ liệu bắt đầu với điều kiện Start và kết thúcvới điều kiện Stop Từ khi điều Start bắt đầu nó cũng bắt đầu quá trìnhmới, truyền dữ liệu

a) Write mode

Dữ liệu và xung clock được nhận thông qua SDA và SCL Sau mỗi bitnhận được có 1 bit thừa nhận được truyền đi Điều kiện Start, Stop ghi nhận việcbắt đầu truyền hay nhận dữ liệu Phần cứng thực hiện việc ghi nhận địa chỉ saukhi địa chỉ của thiết bị Slave, bit chỉ phương truyền (Nhìn hình 5) Byte chứa địa

Trang 17

chỉ Slave là byte đầu tiên được nhận sau khi Master tạo điều kiện Start Địa chỉSlave chứa 7-bit địa chỉ của DS12C887 là 1101000, theo sau đó là bit chiều (R/W), vì đây là chế độ Write nên bit này là 0 Sau khi nhận và giải mã địa chỉSlave, DS1307 xuất ra một bit thừa nhận trên SDA Công việc tiếp theo Masterchỉ việc truyền địa chỉ Word (đặt con trỏ thanh ghi cho DS1307, và DS1307 cóbit công nhận việc truyền này) Master có thể chuyển một hay nhiều byte dữ liệungay sau đó với sự công nhận sau mỗi byte của DS1307 Con trỏ thanh ghi tựđộng tăng sau mỗi byte được viết Master sẽ tạo điều kiện Stop để ngưng việcghi dữ liệu.

Hình 2.6- Ghi dữ liệu – Chế độ Slave làm bộ nhận b) Read mode

Byte đầu tiên được nhận và xử lý như chế độ Slave làm bộ nhận Mặt dùvậy, trong chế độ này bit chiều sẽ chỉ rõ chiều được đảo lại Điều kiện Start vàStop ghi nhận việc bắt đầu truyền và nhận dữ liệu Byte chứa địa chỉ Slave làbyte đầu tiên được chấp nhận sau khi bắt đầu điều kiện Start, tương tự như chế

độ Write, địa chỉ Slave là 1101000, theo sau là bit chiều (R/W), ứng với chế độRead nên bit này bằng 1 Sau khi nhận và giải mã địa chỉ Slave, DS1307 xuất 1bit thừa nhận (Ack) trên SDA DS1307 bắt đầu truyền dữ liệu bắt đầu với địa chỉ

Trang 18

thanh ghi đã được trỏ bởi con trỏ thanh ghi Con trỏ thanh ghi tự động tăng saumỗi byte được đọc DS1307 phải nhận 1 bit Ack để kết thúc việc đọc.

Hình 2.7- Đọc dữ liệu – Chế độ Slave phát2.3- Xử lý phím nhấn:

2.3.1-Sơ đồ nguyên lý:

Hình 2.8- Sơ đồ Xử lý phím nhấn

Trang 19

2.3.2-Chức năng:

Cấp nguồn cho khối vi điều khiển hoạt động bằng cách bật cộng tắc trênkhối vi điều khiển và chương trình sẽ bắt đầu chạy Ban đầu, chương trình sẽchạy theo đồng hồ từ máy tính xuất vào mạch Vi xử lý, chương trình chạy nhưvậy là do mặc định ban đầu của chương trình Muốn chương trình chạy đúngnhư thực tế thì ta phải hiệu chỉnh bằng các nút nhấn

Khối nút nhấn gồm 4 nút để hiệu chỉnh đồng hồ

 Nút MODE kết nối với P3.2 của vi điều khiển: dùng để nhảy đến cácgiá trị cần hiệu chỉnh: giờ, phút, giây… mỗi khi ta nhấn cho nối massmột lần thì nó sẽ nhảy đến giá trị cần hiệu chỉnh:

 Thời gian sẽ tự lưu vào bộ nhớ ta chỉ cần cài đặt 1 lần là được

 Để chỉnh giờ nhấn “mode” lần thứ nhất, nhấn phím “up” để chỉnh tănggiờ lên, nhấn phím “down”để giảm giờ xuống

 Để chỉnh phút nhấn “mode” lần thứ 2, nhấn phím “up” để điều chỉnhtăng phút lên,nhấn phím “down” để giảm phut xuống

 Để chỉnh giờ hẹn giờ nhấn “mode” lần thứ 3

Trang 20

Trong đó các led mắc theo kiểu phương pháp đa hợp có nghĩa là tất cả cácđoạn của các led sẻ được nối chung vào nhau và vào port điều khiển (Port 1),còn anode của tất cả các led sẽ được nối vào một port điều khiển khác (Port 0),

và được cấp tín hiệu quét led một cách tuần tự, tại một thời điểm thì chỉ có mộtled cấp nguồn hoạt động Phương pháp điều khiển trong trường hợp này là phảitiến hành tuần tự qua các giai đoạn: Cấp một tín hiệu quét led sao cho chỉ có ledđầu tiên được cấp nguồn, rồi đưa mã 7 đoạn tương ứng của số cần hiện thị ra led

7 đoạn đó; kế tiếp cần cấp một tín hiệu quét led sao cho chỉ có led thứ 2 đượccấp nguồn rối đưa mã 7 đoạn tương ứng của số cần hiện thị ra led 7 đoạn đó;

Trang 21

quá trình cứ diễn ra liên tục như vậy và do hiện tượng lưu ảnh của mắt mà tathấy được các led dường như sáng cùng một lúc.

2.4.3-Cấu tạo của LED 7 đoạn

Hình 2.10- Sơ đồ chân và cấu tạo LED 7 đoạn

LED 7 đoạn là một công cụ thông dụng được dùng để hiển thị các thông số dưới dạng các số từ 0 đến 9 Mặc dù công cụ LCD giúp ta thể hiện các thông số một cách linh động hơn nhưng LED 7 đoạn vẫn được sử dụng nhiều trong công nghiệp do các ưu thế của nó như: ít chịu ảnh hưởng của nhiệt độ, dễ tạo sự chú ý và góc nhìn rộng

LED 7 đoạn bao gồm 7 đoạn LED được đánh dấu là các kí tự a, b, c, d, e, f, g

và một dấu chấm thập phân kí hiệu là dp Ta có thể xem LED 7 đoạn là một tổ hợp gồm 8 LED 8 LED này có một đầu (Anode hoặc Cathode) được nối chung và được bố trí theo một qui tắc nhất định dùng để hiển thị các chữ số thập phân

Có hai loại LED 7 đoạn, đó là loại Anode chung (cực Anode của các LED được nối chung với nhau) và loại Cathode chung (cực Cathode của các LED được nối chung với

Trang 22

nhau) Tùy theo từng loại LED mà ta có các phương pháp điều khiển các LED trong tổ hợp đó sáng tắt một cách thích hợp Đối với loại Anode chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn LED đó là mức logic 0 Đối với loại Cathode

chung, một LED sẽ được bật sáng nếu mức logic đưa vào chân điều khiển đoạn LED

2.4.4 - Xây dựng module hiển thị trên LED 7 đoạn

Module ứng dụng sau đây được xây dựng dùng để hiển thị 2 chữ số thập phân trên 2

LED 7 đoạn sử dụng loại LED 7 đoạn Anode chung

Trước hết ta sẽ tiến hành kết nối phần cứng giữa vi điều khiển và LED 7 đoạn để từ

đó

xác định được dữ liệu cần đưa vào LED 7 đoạn để hiển thị một chữ số thập phân nào

đó

Trang 23

Thứ tự kết nối các chân như sau:

- Chân dp nối vào chân RD7

- Chân g nối vào chân RD6

- Chân f nối vào chân RD5

- Chân e nối vào chân RD4

- Chân d nối vào chân RD3

- Chân c nối vào chân RD2

- Chân b nối vào chân RD1

- Chân a nối vào chân RD0

Muốn điều khiển một đoạn LED nào đó sáng lên, ta đưa vào chân điều khiển LED đó

về mức logic 0.

Trang 24

Chương 3

KHẢO SÁT PHẦN MỀM3.1 Lưu đồ giải thuật:

HIỂN THỊ

CHUYỂN MẢ BCDQUA MẢ 7 ĐOẠN

SCANKED

RET

CHUYỂN MẢ BCD QUA MẢ 7 ĐOẠN XĨA ĐƠN VỊ

Trang 25

GHI ĐỊA CHỈ CẦN ĐỌC

GỞI

NHÂN GIÁ TRỊ TỪ RTC

LƯU VAO THANH GHI A

START ĐỌC DATA

RET

Trang 26

RET

XUẤT MÃ HIỂN THỊ RA PORT 0

DELAY LED 2.5ms BẬT BIT ĐIỀU KHIỂN

TẮT BIT ĐIỀU KHIỂN

Trang 27

BÁO GIỜ

HẸN GIỜ

HIỆU CHỈNH RTC

P3.2 =0

Trang 28

HIỆU CHỈNH RTC

P3.2 = 0

P3.4 = 0 P3.3 = 0

P3.5 = 0

THOÁT CHUYỂN

TĂNG GIÁ TRỊ

GIẢM GIÁ TRỊ

RET

Ngày đăng: 21/03/2016, 14:12

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w