Trên tích cực quá trình chuyển đổi của đồng hồ, các kết quả đầu ra Q được thiết lập để trạng thái logic đã được thiết lập tại các đầu vào D.Schmitt-kích hoạt bộ đệm đầu vào tại cho phép
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐIỆN – ĐIỆN TỬ
Trang 2MỤC LỤC
1 Thiết kế 2
1.1 Mạch làm nhiệm vụ gì? 2
1.2 Các linh kiện dùng trong mạch 2
1.3 Sơ đồ mạch nguyên lý 6
1.4 Sơ đồ mạch in 7
2 Lập trình cho mạch điều khiển 8
2.1 Sơ bộ yêu cầu, nhiệm vụ 8
2.2 Sơ đồ khối toàn chương trình 8
2.3 Code 8
3 Kết quả đạt được 34
3.1 Mô phỏng trên protus 34
3.2 Mạch thật 34
Trang 3Các DS1307 nối tiếp đồng hồ thời gian thực (RTC) là năng lượng thấp, đầy đủ
số thập phân mã nhị phân (BCD) đồng hồ / lịch cộng với 56 byte của NV
SRAM Địa chỉ và dữ liệu chuyển nối tiếp thông qua một tôi 2C, bus hai chiều Đồng hồ lịch cung cấp giây, phút, giờ, ngày, ngày, tháng, năm và thông tin Sự kết thúc của ngày tháng được tự động điều chỉnh theo tháng có ít hơn 31 ngày, bao gồm cả điều chỉnh cho bước nhảy vọt năm Đồng hồ hoạt động hoặc là 24 giờ hoặc 12 giờ định dạng giờ với chỉ số AM / PM Các DS1307 được xây dựng trong mạch điện có ý nghĩa phát hiện mất điện và tự động chuyển sang cung cấp sao lưu Hoạt động chấm công tiếp tục trong khi phần hoạt động từ việc cung cấp sao lưu Real-Time Clock (RTC) Đếm Giây,Phút, giờ, ngày của tháng,
tháng, ngày của tuần và năm
Giao diện nối tiếp
Lập trình Quảng trường-Wave Đầu ra tín hiệu
Tự động Power-Fail Phát hiện và Chuyển Mạch
Tiêu thụ ít hơn 500nA trong Battery-Backup
Chế độ với dao động chạy
- Mô tả LS373
Những tính năng ghi 8-bit đầu ra 3 trạng thái thiết kế đặc biệt cho các driver có dung hoặc trở kháng tương đối thấp Các trở kháng cao và tăng-logic cấp cao ổ đĩa cung cấp các đăng ký với khả năng được kết nối trực tiếp và driver các
đường bus trong một hệ thống bus tổ chức mà không cần giao diện hoặc pullup thành phần Các thiết bị này đặc biệt hấp dẫn cho thực hiện đăng ký đệm, cổng I/O, bus hai chiều, và đăng ký làm việc 8 chốt của LS373 và S373 là minh bạch D-loại chốt, có nghĩa là trong khi (C hoặc CLK) đầu vào cho phép là cao, các kết quả đầu ra Q theo các dữ liệu đầu vào (D) Khi C hoặc CLK được thực hiện thấp, đầu ra là bám vào mức độ dữ liệu đã được thiết lập
Trang 4Tám flip-flops của LS374 và S374 được kích hoạt D-type flip-flops Trên tích cực quá trình chuyển đổi của đồng hồ, các kết quả đầu ra Q được thiết lập để trạng thái logic đã được thiết lập tại các đầu vào D.Schmitt-kích hoạt bộ đệm đầu vào tại cho phép / đồng hồ dòng của S373 và S374 thiết bị đơn giản hóa thiết kế hệ thống như ac và dc tiếng ồn từ chối được cải thiện bằng cách thường
400 mV do trễ đầu vào Một đệm đầu ra kiểm soát (OC) đầu vào có thể được sử dụng để đặt đầu ra 2 trong 8 trạng thái logic bình thường (logic cao hoặc thấp ) hoặc trạng thái trở kháng cao Trong trạng thái trở kháng cao, các kết quả đầu ra tải cũng không đáng kể OC không ảnh hưởng đến hoạt động nội bộ của các chốt hoặc dép xỏ ngón Đó là, các dữ liệu cũ có thể được giữ lại hoặc dữ liệu mới có thể được nhập vào, ngay cả khi các kết quả đầu ra đang tắt
-Mô tả AT89C51
Các AT89C51 là một năng lượng thấp, hiệu suất cao CMOS 8-bit vi tính với 4Kbyte của Flash lập trình và xóa được Read Only Memory (PEROM) Các thiết bị được sản xuất sử dụng công nghệ bộ nhớ không bay hơi mật độ cao của Atmel và tương thích với các tiêu chuẩn công nghiệp MCS-51 ™ hướng dẫn thiết lập và sơ đồ chân.Trên các chip Flash cho phép bộ nhớ chương trình được lập trình trong hệ thống hoặc một khái ventional lập trình bộ nhớ không bay hơi Bằng cách kết hợp một CPU 8-bit đa năng với Flash trên một chip nguyên khối, Atmel AT89C51 là một máy vi tính mạnh mẽ cung cấp một giải pháp hiệu quả rất linh hoạt và chi phí để kiểm soát nhiều nhúng application
CẤU TẠO CỦA AT89C51
sử dụng như trở kháng đầu vào cao
Port 0 cũng có thể được cấu hình để được ghép thấp
Trang 5Port 0 cũng nhận được byte mã trong chương trình Flash-ming, và kết quả đầu
ra các byte mã trong chương trình kiểm điểm hóa Pullups bên ngoài được yêu cầu trong chương trình kiểm điểm hóa
Cổng 1:
Cổng 1 là một 8-bit hai chiều cổng I / O với pullups nội bộ
Cổng 1 bộ đệm đầu ra có thể chìm / nguồn bốn đầu vào TTL
Khi 1s được ghi vào Port 1 chân họ được kéo cao bằng các pullups nội bộ và có thể được sử dụng như là đầu vào
Cổng 1 chân được bên ngoài bị kéo nguồn sẽ thấp hiện tại (tôi IL) Vì pullups nội
bộ
Cổng 1 cũng nhận được byte địa chỉ thấp trật tự trong lập trình flash và xác minh
Cổng 2:
Cổng 2 là một 8-bit hai chiều cổng I / O với pullups nội bộ
Cổng 2 bộ đệm đầu ra có thể chìm / nguồn bốn đầu vào TTL
Khi 1s được viết để Port 2 chân họ được kéo cao bằng các pullups nội bộ và có thể được sử dụng như là đầu vào Cổng 2 chân được bên ngoài bị kéo nguồn sẽ thấp hiện tại vì pullups nội bộ
Port 2 phát ra byte địa chỉ bậc cao trong quá trình nạp từ bộ nhớ chương trình bên ngoài và trong quá trình truy cập đến bộ nhớ dữ liệu bên ngoài mà sử dụng địa chỉ 16-bit (MOVX @ DPTR) Trong ứng dụng này nó sử dụng pullups nội
bộ mạnh mẽ
Cổng 3:
Cổng 3 là một 8-bit hai chiều cổng I / O với pullups nội bộ Cổng 3 bộ đệm đầu
ra có thể chìm / nguồn bốn đầu vào TTL
Khi 1s được viết để Port 3 chân họ được kéo cao bằng các pullups nội bộ và có thể được sử dụng như là đầu vào
Cổng 3 chân được bên ngoài bị kéo nguồn sẽ thấp hiện tại (tô I L) do pullups Port 3 cũng phục vụ các chức năng của các tính năng đặc biệt khác nhau của AT89C51 như được liệt kê dưới đây:
Port 3 cũng nhận được một số tín hiệu điều khiển cho Flash chuyên nghiệp
gramming và xác minh
RST
Trang 6Thiết lập lại đầu vào Một cao trên pin này cho hai chu kỳ máy trong khi dao
động đang chạy reset thiết bị
ALE / PROG
Địa chỉ chốt cho phép đầu ra xung cho chốt byte thấp của địa chỉ trong thời gian truy cập vào bộ nhớ bên ngoài Này pin cũng là đầu vào xung chương trình
(PROG) trong flash lập trình
Trong ALE hoạt động bình thường được phát ra với một tốc độ không đổi là 1/6 tần số dao động, và có thể được sử dụng cho bên ngoài timing hoặc các mục
đích ép xung Lưu ý, tuy nhiên, một ALE xung được bỏ qua trong mỗi truy cập
vào dữ liệu bên ngoài Mem
Trang 71.3 Sơ đồ mạch nguyên lý
giam tang menu mode
SCL SDA
SDA SCL mode tang giam
h1 h3 h5 h7
l1
d1 d3 d5 d7
l1 l3 l5
d1 d3 d5 d7
h9 h10 h12 h14 h16
l2
d1 d3 d5 d7
h17 h19 h21 h23
l3
d1 d3 d5 d7
h25 h27 h29 h31
l4
d1 d3 d5 d7
h33 h35 h37 h39
l5
d1 d3 d5 d7
h41 h43 h45 h47
l6
XTAL2 18 XTAL1 19
ALE 30 EA 31 PSEN 29
RST 9
P0.0/AD0 39P0.1/AD1 38P0.2/AD2 37P0.3/AD3 36P0.4/AD4 35P0.5/AD5 34P0.6/AD6 33P0.7/AD7 32
P1.0 1 P1.1 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8
P3.0/RXD 10P3.1/TXD 11P3.2/INT0 12P3.3/INT1 13P3.4/T0 14
P3.7/RD 17P3.6/WR 16P3.5/T1 15P2.7/A15 28
P2.0/A8 21P2.1/A9 22P2.2/A10 23P2.3/A11 24P2.4/A12 25 P2.5/A13 26P2.6/A14 27
X2 2
SCL 6 SDA 5
SOUT 7
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
14 Q5 15 D6
17 Q6 16 D7
18 Q7 19 OE 1 LE 11
U6
74S373
Trang 81.4 Sơ đồ mạch in
Trang 92 Lập trình cho mạch điều khiển
2.1 Sơ bộ yêu cầu, nhiệm vụ
Lập trình cho mạch điều khiển sau đó nạp chương trình cho chip AT89C51
2.2 Sơ đồ khối toàn chương trình
2.3 Code
#include<reg52.h>
// KHAI BAO NGUYEN MAU CHO CAC HAM
unsigned char bcd_dec(unsigned char bcd); // Ham chuyen doi so bcd-thap phan unsigned char dec_bcd(unsigned char dec); // chuyen doi thap phan-bcd
Trang 10bit
tang0=1,tang1=1,giam0=1,giam1=1,menu=0,Menu0=1,Menu1=1,chedo0=0,chedo1=1; // Khai bao cac bit cho nut nhan
char giay,phut,gio,h1,h2,m1,m2,s1,s2,ngay,thang,ng1,ng2,th1,th2,n1,n2; // Các gia tri thoi gian
int nam; // Nam
unsigned char cot[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
unsigned char code hang[]={
sbit chedo=P1^2; // chon che do hien ngay/gio
sbit Menu=P1^3; // Khai bao chan nut nhan "menu"
sbit tang=P1^4; // Khai bao chan nut nhan "tang"
Trang 11sbit giam=P1^5; // Khai bao chan nut nhan "giam"
unsigned char bcd_dec(unsigned char bcd)
Trang 12//////// CAC CHUONG TRINH GIANH CHO DS1307
void start() // Ham bat dau giao tiep I2C
Trang 14delay(1);
return temp;
}
////////// Doc du lieu tu 1 dia chi
unsigned char Read(unsigned char address)
Trang 19void Hienngay() // Che do hien thi ngay
Trang 21void Display_day() // Hien ngay
Trang 29if(tang0==0 && tang1==1)
Trang 31}
}
}
Ghi(0x00,dec_bcd(giay&0x7f)); //ghi cac
Ghi(0x01,dec_bcd(phut&0x7f)); //gia tri
// Gia tri khoi tao nay la tuy y
Ghi(0x00,dec_bcd(15)); // Khoi tao giay
Ghi(0x01,dec_bcd(9)); // Khoi tao phut
Ghi(0x02,dec_bcd(1)); // Khoi tao gio
Ghi(0x04,dec_bcd(25)); //
Trang 353 Kết quả đạt được
3.1 Mô phỏng trên protus
Chạy được theo đúng yêu cầu
3.2 Mạch thật
Do chi phí quá cao cũng như thiếu nhiều thiết bị phục vụ cho việc làm mạch thật nên mạch chỉ mô phỏng