THIẾT KẾ ĐỒNG HỒ ĐIÊN TỬ SỬ DỤNG CỔNG NỐI TIẾP HIỂN THỊ BẰNG LED 7 ĐOẠN (ĐỒ ÁN MÔN HỌC ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH ( ĐỒ ÁN MÔN HỌC ĐO LƯỜNG VÀ ĐIỀU KHIỂN BẰNG MÁY TÍNH) - Pdf 23

Bộ Công Thương
Trường:Đại Học Công Nghiệp Hà Nội
Khoa:Điện Tử
ĐỒ ÁN MÔN HỌC ĐO LƯỜNG VÀ
ĐIỀU KHIỂN BẰNG MÁY TÍNH
ĐỀ TÀI:THIẾT KẾ ĐỒNG HỒ ĐIÊN TỬ
SỬ DỤNG CỔNG NỐI TIẾP HIỂN THỊ
BẰNG LED 7 ĐOẠN
GVHD: VŨ THỊ THU HƯƠNG
SVTH: PHAN XUÂN BẮC
PHẠM TIẾN BÁCH
NGUYỄN ĐỨC THÔNG
NhËn xÐt cña gi¸o viªn híng dÉn

Do thời gian và trình độ còn hạn chế, còn thiếu kinh nghiệm thực
tế nên không tránh khỏi những sai sót. Chúng em rất mong nhận được
những ý kiến và đóng góp của các thầy cô và các bạn để chúng em có thể
hoàn thiện thiết kế hơn nữa
Xin chân thành cảm ơn !
PHẦN 1
I,CẤU TRÚC VI ĐIỀU KHIỂN 8051
I-Giới thiệu tổng quan về họ 8051 (AT 89S52)
Họ vi điều khiển 8051 (còn gọi là C51) là một trong những họ vi điều
khiển thông dụng nhất. Đây là các bộ vi điều khiển 8 bít được sản xuất
theo công nghệ CMOS. Một số loại vi điều khiển thuộc họ 8051 thông
dụng nhất: AT89C2051, AT89C4051, AT89C51, AT89S52… Trong đó
AT89S52 là một bộ vi điều khiển thông dụng giá rẻ có nhiều chức năng
và đặc biệt có tích hợp sẵn bộ nạp trên chíp.
Bộ vi điều khiển AT89S52 gồm các khối chức năng chính sau đây:
CPU (Central Processing Unit) bao gồm:
- Thanh ghi tích luỹ A
- Thanh ghi tích luỹ phụ B, dùng cho phép nhân và phép chia
- Đơn vị logic học (ALU: Arithmetic Logical Unit)
- Thanh ghi từ trạng thái chương trình (PSW: Progam Status
Word)
- Bốn băng thanh ghi
- Con trỏ ngăn xếp
Bộ nhớ chương trình (Bộ nhớ ROM) gồm 8Kb Flash.
Bộ nhớ dữ liệu (Bộ nhớ RAM) gồm 256 bytes.
Bộ UART (Universal Ansynchronous Receiver and Tranmitter)
làm chức năng truyền nhận nối tiếp, nhờ khối này AT89S52 có thể giao
tiếp với máy tính qua cổng COM.
3 bộ Timer /Counter 16 bít thực hiện các chức năng định thời và
đếm sự kiện.

Port 3 ngoài chức năng xuất nhập ra còn có một chức năng riêng:

Bit Tên Chức năng
P3.0 RXD Dữ liệu nhận cho Port nối tiếp
P3.1 TXD Dữ liệu truyền cho Port nối tiếp
P3.2 INT0 Ngắt 0 bên ngoài
P3.3 INT1 Ngắt 1 bên ngoài
P3.4 T 0 Ngõ vào của Timer/Counter 0
P3.5 T 1 Ngõ vào của Timer/Counter 1
P3.6 WR Xung ghi bộ nhớ dữ liệu bên
ngoài
P3.7 RD Xung đọc bộ nhớ dữ liệu bên
ngoài

5. RST (Reset- chân 9):
Mức tích cực của chân này là mức 1, để reset ta phải đưa mức 1(5V) đến
chân này với thời gian tối thiểu 2 chu kỳ máy( tương đương 2µs đối với
thạch anh 12MHz.
6. XTAL1, XTAL2:
AT89S52 có một bộ dao động trên chip, nó thường được nối với một bộ
dao động thạch anh có tần số lớn nhất là 33MHz, thông thường là
12MHz.
7. EA (External Access):
EA thường được mắc lên mức cao (+5V) hoặc mức thấp (GND). Nếu ở
mức cao, bộ vi điều khiển thi hành chương trình từ ROM nội. Nếu ở mức
thấp, chương trình chỉ được thi hành từ bộ nhớ mở rộng.
8. ALE (Address Latch Enable):
ALE là tín hiệu để chốt địa chỉ vào một thanh ghi bên ngoài trong nửa
đầu của chu kỳ bộ nhớ. Sau đó các đường port 0 dùng để xuất hoặc nhập
dữ liệu trong nửa chu kỳ sau của bộ nhớ.

Hình 6: Truyền thông qua cổng nối tiếp

Như vậy thực chất của việc truyền thông qua cổng nối tiếp thực chất là
việc truyền mã ASCII của ký tự.Để gửi cho máy tính các kí tự từ ‘0’ đến
‘9’ ta phải truyền mã ASCII của chúng lần lượt từ 0x30 đến 0x39.
Để kiểm tra xem máy tính có nhận được các kí tự mà vi điều khiển
truyền tới chưa, ta phải cho máy tính thi hành. Chương trình nhận số liệu
qua cổng nối tiếp chương trình này có thể viết bằng ngôn ngữ lập trình
Basic, Pascal, C, C++ Trong Windows có cung cấp sẵn cho chúng ta
một công cụ truyền tin qua cổng nối tiếp là Hyper Terminal.
PHẦN 2: THIẾT KẾ PHẦN CỨNG
I,SƠ ĐỒ NGUYÊN LÝ
T2/P1.0
1
T2 EX/P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5/MOSI
6
P1.6/MISO
7
P1.7/SCK
8
RESET
9

P2.5/A13
26
P2.6/A14
27
P2.7/A15
28
PSEN
29
ALE/PROG
30
EA/VPP
31
P0.0/AD0
39
P0.1/AD1
38
P0.2/AD2
37
P0.3/AD3
36
P0.4/AD4
35
P0.5/AD5
34
P0.6/AD6
33
P0.7/AD7
32
IC1
AT89S52

R5
R6
R7
R8
R9
R10
R12
C1+
1
VS+
2
C1-
3
C2+
4
C2-
5
VS-
6
T2OUT
7
R2IN
8
R2OUT
9
T2IN
10
T1IN
11
R1OUT

4
g
5
6
b
7
8
9
f
10
a
11
12
DS1
7SEGQ
Q1
A1015
Q2
A1015
Q3
A1015
Q4
A1015
R1
1k
R2
1k
R3
1k
R4

1 2 3 4
1234
TX
RX
RxD
TxD TX
RX
5
9
4
8
3
7
2
6
1
J1
COM 9
GND
RxD
TxD
VCC
II,SƠ ĐỒ MẠCH IN
III,CHƯƠNG TRÌNH ĐIỀU KHIỂN 1,PHẦN VISUA BASIC
Dim gio As Integer
Dim phut As Integer
Dim giay As Integer

End Sub
Private Sub Command6_Click()
End
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 0
MSComm1.PortOpen = True
Timer1.Enabled = True
Timer2.Enabled = True
End Sub
Private Sub Timer1_Timer()
Text3.Text = Format(Now, " hh:nn:ss")
Text1.Text = Format(Now, " dd/mm/yyyy")
If (Option1.Value = True) Then
N4 = (Format(Now, "HH") \ 10)
N3 = (Format(Now, "HH") Mod 10)
N2 = (Format(Now, "nn") \ 10)
N1 = (Format(Now, "nn") Mod 10)
End If
If (Option2.Value = True) Then
N4 = (Format(Now, "nn") \ 10)
N3 = (Format(Now, "nn") Mod 10)
N2 = (Format(Now, "ss") \ 10)
N1 = (Format(Now, "ss") Mod 10)
End If
If (Option3.Value = True) Then

#include<reg52.h>
#include<stdio.h>
#include<math.h>
sbit LED1=P1^0; // quet led hang nghin
sbit LED2=P1^1; // quet led hang tram
sbit LED3=P1^2; // quet led hang chuc
sbit LED4=P1^3; // quet led hang don vi
int so4, so3,so2,so1,i,j,tg;
unsigned char dem=0;
unsigned char M[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //
ma led 7 thanh
void timer0 (void) interrupt 1
{
TH0=0xF8;
TL0=0x40;
switch(dem)
{
case 0:
LED2=LED3=LED1=0;
P0=M[so1];
LED4=1; // LED hang don vi
break;
case 1:
LED1=LED2=LED4=0;
P0=M[so2];
LED3=1; // LED hang chuc
break;
case 2:
LED1=LED3=LED4=0;
P0=M[so3];

so2=_getkey();
so3=_getkey();
so4=_getkey();
}
}
PHẦN 3
KẾT LUẬN
1,ƯU ĐIỂM :
- Mạch hiển thị đầy đủ các giá trị ngày, giờ, phút, giây, tháng, năm.
- Mạch hiển thị rõ ràng các giá trị trên led 7 đoạn.
- Thiết kế mạch nhỏ gọn dễ sử dụng.
2,NHƯỢC ĐIỂM :
- Mạch hiển thi được 2 giá trị cùng một lúc nên muốn xem cái giá trị
còn lại ta phải điều khiển.
3,ỨNG DỤNG :
- Mạch thiết kế đơn giản hiển thị rõ ràng nên có thể ứng dụng làm
đồng hồ điện tử trong thực tế.

- Cơ cấu hiển thị số của mạch giúp nâng cao độ chính xác khi đọc giá trị.

- Có thể nói trong khuôn khổ của một mạch đồng hồ điện tử chỉ sử
dụng được rất ít hiệu năng làm việc của các linh kiện có trong mạch, vì
vậy để mạch điện có thể ứng dụng rộng rãi trong thực tế ta có thể tích hợp
thêm nhiều tính năng khác cho mạch, để mạch điện có hiệu năng làm việc
cao và có nhiều ứng dụng.

- Bằng cách nâng cấp phần cứng và thay đổi phần mềm, mạch điện
hoàn toàn có thể tích hợp thêm tính năng như hiển thị lịch vạn niên
các giá trị giờ, phút, giây, ngày, tháng âm lịch cũng như dương lịch
trên cùng một diện tích.


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