− Bắt đầu chuyển dữ liệu: Sự thay đổi trạng thái của SDA, từ cao xuống thấp, trong khi SCL ở mức cao được định nghĩa là điều kiện Start.cao, trong khi SCL ở mức cao được định nghĩa là đi
Trang 1Giáo trình Cấu trúc phần cứng của vi
điều khiển 8951
Trang 2MỤ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 3a) 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 4Chương 1
GIỚI THIỆU VÀ MÔ TẢ CHỨC NĂNG
1.1-Giới thiệu:
được giờ bằng các phím “mode”, “date”, “up”, “down” Vì có sử dụng IC thời gian thực DS1307 nên thời gian luôn hiển thị chính xác ngay cả khi mất nguồn chính
1.2-Sơ đồ mạch:
Hình 1.1: Sơ đồ mạch đồng hồ số
Trang 51.3-Mô tả chức năng:
tăng giờ lên, nhấn phím “down”để giảm giờ xuống
tăng phút lên,nhấn phím “down” để giảm phut xuống
Trang 6Chươ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:
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ư:
Trang 7− 8052 8 KB PROM 256 byte 3
Hình 2.1: Khối vi xử lý
Trang 82.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
điều khiển quá trình hoạt động của hệ thống
cho các khối trong chip hoạt động
(INT0\, INT1\), từ bộ định thời (TIMER0, TIMER1) và từ cổng nối tiếp (SERIAL PORT), lần lượt đưa các tín hiệu ngắt này đến CPU để xử lý
xuất/nhập, trạng thái làm việc của các khối trong chip trong suốt quá trình hoạt động của hệ thống
Trang 9− RAM (Random Access Memory - Bộ nhớ dữ liệu trong chip): lưu trữ các dữ liệu.
chương trình hoạt động của chip
nhập dữ liệu dưới dạng song song giữa trong và ngoài chip thông qua các port P0, P1, P2, P3
dạng nối tiếp giữa trong và ngoài chip thông qua các chân TxD, RxD
đếm sự kiện (đếm xung) thông qua các chân T0, T1
bus và việc di chuyển thông tin trên hệ thống bus
nhau
Trang 102.1.2-Sơ đồ chân và chức năng các chân của chip 89C51:
Trang 11Hình 2.3 - Sơ đồ chân chip 89C51
a. Port 0:
ngoài
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
của dữ liệu (D0 – D7) (SGK, tr 333-352)
b. Port 1:
dụng bộ nhớ ngoài
của địa chỉ byte thấp (A0 – A7) (SGK, tr 333-352)
c. Port 2:
Trang 12+ Port xuất nhập dữ liệu (P2.0 – P2.7) _ không sử dụng bộ nhớ ngoài.
của địa chỉ byte cao (A8 – A11) và các tín hiệu điều khiển
d. Port 3:
ngoài hoặc các chức năng đặc biệt
năng đặc biệt
của các tín hiệu điều khiển (SGK, tr 333-352)
e. Chân XTAL1, XTAL2:
bên ngoài, cung cấp tín hiệu xung clock cho chip hoạtđộng
Lưu ý: fTYP = 12MHZ fOSC = f CLK2
Trang 13− fTYP: taàn soá danh ñònh.
Trang 14liệu với các thiết bị khác như vi xử lý, vi điều khiển Dữ liệu hiển thị thời gian, lịch là mã BCD nén, thêm vào đó có 56 byte SRAM bên trong Địa chỉ và dữ
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ày cuố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 152.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 thanh ghi thích hợp Địa chỉ và chức năng của các thanh ghi được liệt kê trong bảng sau:
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ủa thanh 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,
SCL ở 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:
Trang 16− Bắt đầu chuyển dữ liệu: Sự thay đổi trạng thái của SDA, từ cao xuống thấp, trong khi SCL ở mức cao được định nghĩa là điều kiện Start.
cao, trong khi SCL ở mức cao được định nghĩa là điều kiện Stop
sau khi bắt đầu điểu kiện Start, SDA phải ở trạng thái ổn định trong suốt quá trình ở mức cao của xung clock SDA chỉ được thay đổi suốt chu 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ỗi byte có 1 bit Acknowledge (bit thứ 9)
biết đã nhận đối với mỗi byte Thiết bị Master phải tạo thêm 1 xung clock 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ủa Slave Trong trường hợp này, thiết bị Slave phải cho đường data lên mức cao để cho phép master tạo ra điều kiện Stop
Trang 17Hình 10: Dữ liệu truyền trn BUS I 2 C
chỉ của Slave Tiếp theo sau là 1 số byte cần truyền Slave trả về bit thừ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
đầu tiên Slave trả về bit thừa nhận (ACK) Slave truyền một số byte cầ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ối cùng Thiết bị Master tạo tất cả các xung clock cũng như điều kiện Start, Stop Sự truyền dữ liệu bắt đầu với điều kiện Start và kết thúc với điều kiện Stop Từ khi điều Start bắt đầu nó cũng bắt đầu quá trình mớ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 bit nhận được có 1 bit thừa nhận được truyền đi Điều kiện Start, Stop ghi nhận việc bắ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ỉ sau khi địa chỉ của thiết bị Slave, bit chỉ phương truyền (Nhìn hình 5) Byte chứa địa
Trang 18chỉ 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 Master chỉ 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ệu ngay 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ệc ghi 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 1 bit thừa nhận (Ack) trên SDA DS1307 bắt đầu truyền dữ liệu bắt đầu với địa chỉ thanh ghi đã được trỏ bởi con trỏ thanh ghi Con trỏ thanh ghi tự động tăng sau mỗi byte được đọc DS1307 phải nhận 1 bit Ack để kết thúc việc đọc
Trang 20Cấ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ên khố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 đúng như 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ồ
giá trị cần hiệu chỉnh: giờ, phút, giây… mỗi khi ta nhấn cho nối mass mộ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ă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ỉnh tă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”
hiệu chỉnh sau mỗi lần nhấn cho nối mass
khi hiệu chỉnh sau mỗi lần nhấn cho nối mass
trên khối vi điều khiển
2.4-Khối Hiển Thị:
Trang 21Trong đó 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ột led cấp nguồn hoạt động Phương pháp điều khiển trong trường hợp này là phải tiế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 đượ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 đó; 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à ta thấy được các led dường như sáng cùng một lúc
Trang 222.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 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
Trang 23sá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ừ
Trang 24- 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 25RET
CHUYỂN MẢ BCD QUA MẢ 7 ĐOẠN XÓA ĐƠN VỊ
Trang 26GHI ĐỊA CHỈ CẦN ĐỌC
GỞI
NHÂN GIÁ TRỊ TỪ RTC
LƯU VAO THANH GHI A
START ĐỌC DATA
RET
Trang 27RET
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 28BÁO GIỜ
HẸN GIỜ
HIỆU CHỈNH RTC
P3.2 =0
Trang 29HIỆ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
Trang 30Chương trình:
;################################################
;chuong trinh giao tiep VDK 89c51 va RTC ds1307.
;noi dung: 1 cho hien thi gia tri
; cua gio-phut-giay
; len 6 led 7 doan anod chung.
Trang 32;BIT 7= 1 > DS1307 KO HOAT DONG -> KHONG TOT
;BIT 7= 0 > DS1307 HOAT DONG
Trang 34DOCDATA:
Trang 52
; -;CTC DELAY 2,5MS DE QUET LED
Trang 53; -DELAY:
Trang 57mạch orcard
Trang 58TÀI LIỆU THAM KHẢO
- Datasheet của AT89C51.