Thiết kế đồng hồ hiển thị giờ, phút, giây trên led ma trận sử dụng AT89C51 - Pdf 37

TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
KHOA ĐIỆN – ĐIỆN TỬ

BÀI TẬP LỚN
VI XỬ LÝ

Đề 23: Thiết kế đồng hồ hiển thị giờ, phút, giây trên led ma trận
sử dụng AT89C51

HÀ NỘI
Tháng 07 năm 2016


MỤ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

Page | 1


1. Thiết kế.

thấp, đầu ra là bám vào mức độ dữ liệu đã được thiết lập.
Page | 2


Tá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.
VCC :Cung cấp điện áp.
GND:Nối đất.
Cổng 0:
Port 0 là một 8-bit mở cống hai chiều I / O port. Như một cổng ra mỗi pin có thể

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
Page | 4


Thiế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
PSEN
Chương trình Cửa hàng Enable là nhấp nháy đọc để bên ngoài ủng hộ bộ nhớ
gram.
Cổng Pin:
Chức năng thay thế
P3.0
RXD (cổng đầu vào nối tiếp)
P3.1

h38
h39
h40
h41
h42
h43
h44
h45
h46
h47
h48

h17
h18
h19
h20
h21
h22
h23
h24
h25
h26
h27
h28
h29
h30
h31
h32
c1
c2

c6
c7
c8

h1
h2
h3
h4
h5
h6
h7
h8
h9
h10
h11
h12
h13
h14
h15
h16
c1
c2
c3
c4
c5
c6
c7
c8
c1
c2

R1

U7
giam

19

XTAL1

P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7

10K
18

9

R6

R5

4k7

4k7


1
l1 11

OE
LE
74S373

PSEN
ALE
EA

P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7

P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD


14
15
16
17

l1
l2
l3
l4
l5
l6

AT89C51

U1
D0
D1
D2
D3
D4
D5
D6
D7

P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13

2

SDA

29
30
31

XTAL2

U2
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

2
5
6
9
12
15
16
19

h1


U3
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

2 h9
5 h10
6 h11
9 h12
12 h13
15 h14
16 h15
19 h16

d1 3
d2 4
d3 7
d4 8
d5 13
d6 14
d7 17
d8 18
1
l3 11

19 h24

d1 3
d2 4
d3 7
d4 8
d5 13
d6 14
d7 17
d8 18
1
l4 11

D0
D1
D2
D3
D4
D5
D6
D7
OE
LE
74S373

U5
Q0
Q1
Q2
Q3

D5
D6
D7
OE
LE
74S373

U6
Q0
Q1
Q2
Q3
Q4
Q5
Q6
Q7

2 h33
5 h34
6 h35
9 h36
12 h37
15 h38
16 h39
19 h40

d1 3
d2 4
d3 7
d4 8

15 h46
16 h47
19 h48

OE
LE
74S373

Page | 6


1.4 Sơ đồ mạch in.

Page | 7


2. 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
void Caidat();
void Hiengio();
void Hienngay();
void Display_hour();
void Display_min();

0xFF,0xB0,0x76,0x76,0x76,0x76,0x8E,0xFF,
0xFF,0x81,0x6E,0x76,0x76,0x76,0x8D,0xFF,
0xFF,0xFF,0xFE,0x1E,0xEE,0xF6,0xF8,0xFF,
0xFF,0x89,0x76,0x76,0x76,0x76,0x89,0xFF,
0xFF,0xB1,0x6E,0x6E,0x6E,0x6E,0x81,0xFF}; //9
unsigned char mang[50];
sbit SDA=P1^0;
sbit SCL=P1^1;
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"
Page | 9


sbit giam=P1^5;

// Khai bao chan nut nhan "giam"

unsigned char bcd_dec(unsigned char bcd)
{
return((bcd/16)*10+(bcd%16));
}

//vd bcd=66 -> dec =42}


// Ham ket thuc giao tiep I2C

{
SDA=0;SCL=1;
delay(1);
SDA=1;
}
void send(unsigned char x) // Ham gui 1 byte du lieu tu 8051 vào DS1307
{
unsigned char temp,i;
for(i=0;i
return P;
}
void Ghi(unsigned char add,char number)
DS1307

// Ghi 1 gia tri vao 1 dia chi trong

{
start();
send(0xd0);
send(add);
send(number);
Page | 13


stop();
}
void Docgio() // Doc gio tu DS1307
{
giay=bcd_dec(Read(0x00));
phut=bcd_dec(Read(0x01));
gio =bcd_dec(Read(0x02));
ngay=bcd_dec(Read(0x04));
thang=bcd_dec(Read(0x05));
nam=bcd_dec(Read(0x06));
}
void tach()

// tach cac gia tri thoi gian thanh cac chu so de hien thi


{
mang[i+32]=hang[s1*8+i];
}
for(i=0;i
}
}
Page | 17


void Hienngay()

// Che do hien thi ngay

{
xuly2();
for(k=0;k

void Display_day()

// Hien ngay

{
tach();
xuly2();
for(k=0;k
}
void Display_month()

// Hien thang

{
tach();
xuly2();
for(k=0;k
// Hien nam

{
tach();
xuly2();
for(k=0;k


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