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

Thiết kế mạch hiển thị thời gian theo thời gian hệ thống của máy tính

12 485 0

Đ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 12
Dung lượng 480 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bộ UART Universal Ansynchronous Receiver and Transmitter 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 cổng COM của máy tính.. Gồm có một bộ Timer 14 bit

Trang 1

PHẦN I: Mở đầu

I Đặt vấn đề

- Thiết kế mạch hiển thị thời gian theo thời gian hệ thống của máy tính.

II Mục đích thiết kế

- Phát huy, ứng dụng được kiến thức đã học vào môi trường thực tế

- Qua đây có thêm nhiều kinh nghiệm giúp ích sau khi ra trường có thể hòa nhập với công nghệ tiên tiến trên xã hội

III Nội dung đề tài

1 Đề tài

2.Chức năng của hệ thống

- Cập nhật giờ hệ thống của máy tính

- Thay đổi được ngày, giờ hệ thống

+ Giờ/Phút

+ Tháng/Ngày

+ Năm/Tháng

- Cập nhật lên tục cho mạch

- Mạch hiển thị các nội dung yêu cầu

PHẦN II : CƠ SỞ LÝ THUYẾT

Trang 2

I Sơ đồ khối và chức năng các khối của AT89S52:

Bộ vi điều khiển AT89S52 gồm các khối:

1.1 CPU ( Central Processing Unit):

- Thanh ghi tích lũy A

- Thanh ghi tích lũy phụ B, dùng cho phép nhân và phép chia

- Đơn vị logic học ( ALU: Arithmetic Logical Unit)

- Từ trạng thái chương trình (PSW: Program Status Word)

- Bốn băng thanh ghi

- Con trỏ ngăn xếp

1.2 Bộ nhớ chương trình (Bộ nhớ ROM) gồm 8Kb Flash.

1.3 Bộ nhớ dữ liệu (Bộ nhớ RAM) gồm 256 bytes.

1.4 Bộ UART (Universal Ansynchronous Receiver and Transmitter)

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 cổng COM của máy tính

1.5 3 bộ Timer/Counter 16 bit thực hiện các chức năng định thời và

đếm sự kiện

1.6 WDT (Watch Dog Timer): được dùng để hồi phục lại hoạt động

của CPU khi nó bị treo bởi 1 nguyên nhân nào đó Gồm có một bộ Timer 14 bit, một bộ Timer 7 bit, thanh g hi WDTPRG (WDT programable) điều khiển Timer 7 bit và một thanh ghi chức năng WDTRST (WDT resister)

Trang 3

2.1 Port 0 (P0.0 – P0.7)

Port 0 gồm 8 chân, ngoài chức năng xuất nhập ra, Port 0 còn là Bus đa hợp dữ liệu và địa chỉ (AD0-AD7), chức năng này sẽ được sử dụng khi AT89S52 giao tiếp với các thiết bị ngoài có kiến trúc Bus

2.2 Port 1 (P1.0 – P1.7)

Đối với 8051, chức năng duy nhất của Port 1 là chức năng xuất nhập, cũng như các Port khác, Port 1 có thể xuất nhập theo bit và theo byte

2.3 Port 2 (P2.0 – P2.7)

Port 2 là một Port công dụng kép: là các đường xuất nhập hoặc là byte cao của bus địa chỉ đối với các thiết kế dùng bộ nhớ mở rộng

2.4 Port 3 (P3.0 – P3.7)

Mỗi chân trên Port 3 ngoài các chức năng xuất nhập thì còn một chức năng riêng cụ thể như sau:

2.5 PSEN (Program Store Enable) : điều khiển đọc bộ nhớ ngoài.

2.6 ALE (Address Latch Enable) : dùng để cho phép mạch chốt bên

ngoài

2.7 EA (External Access) : chọn bộ nhớ chương trình Khi ở mức cao

thì chọn ROM trong, ngược lại ở mức thấp chọn ROM ngoài

3 Các thiết kế sử dụng ngắt

AT89s52 có 6 nguồn ngắt:

Trang 4

 Ngắt do bộ timer 0.

6 nguồn ngắt này được xoá khi Reset và được đặt riêng bằng phần mềm bởi các bit trong các thanh ghi cho phép ngắt(IE), thanh ghi ưu tiên ngắt (IP)

Thanh ghi cho phép ngắt IE

Bit Ký hiệu Mô tả( 1cho phép , o cấm)

IE.7 EA Cho phép hoặc cấm toàn bộ.

IE.6 - Không được địng nghĩa.

IE.5 ET5 Cho phép ngắt từ timer 2.

IE.4 ES Cho phép ngắt từ port nối tiếp.

IE.3 ET1 Cho phép ngắt từ timer 1.

IE.2 EX1 Cho phép ngắt ngoài 1.

IE.1 ET0 Cho phép ngắt từ timer 0.

IE.0 EX0 Cho phép ngắt ngoài 0.

Thanh ghi ưu tiên ngắt IP.

II.IC MAX232

Trang 5

Bảng so sánh điện áp của các mức logic giữa RS232 va TTL

TƯƠNG ỨNG Cổng Com

(Mức RS232)

Vi điều khiển

(Mức TTL)

Khắc phục vấn đề này, người ta sử dụng vi mạch MAX232 để chuyển đổi mức điện áp giữa hai chuẩn Vi mạch này có chứa hai bộ chuyển đổi mức logic từ TTL sang RS232 va ngược lại

III.CÔNG NỐI TIẾP

Cổng nối tiếp là một giao diện rất phổ biến trên máy tính, cổng này còn có một số tên gọi thông dụng như Com, RS232

Sự trao đổi của các đường dẫn tín hiệu

Trên máy tính có 1 vi mach UART (Universal Asynchronous Receiver/ Transmitter) đảm trách việc truyền nhận dữ liệu thông qua cổng nối tiếp UART phổ biến nhất là vi mạch 8250cuar hãng Intel và các phiên bản cao hơn của vi mạch này như 16450,16660,16750…Vi mạch này thường được hàn cố định trên main gần giao diện cổng nối tiếp Việc trao đổi dữ

U 5

M A X 2 3 2

1

3

4

5

2

6

1 2 9

1 1

1 0

1 3

8

1 4 7

C 1 +

C 1

-C 2 +

C 2

-V +

V

-R 1 O U T

R 2 O U T

T 1 I N

T 2 I N

R 1 I N

R 2 I N

T 1 O U T

T 2 O U T

Trang 6

liệu qua cổng nối tiếp thực chất là việc truy xuất các thanh ghi của vi mach này Và điều đầu tiên khi lập trình với cổng Com là phải tìm hiểu các thanh ghi của bộ UART tương ứng trên máy tính

Thanh ghi điều khiển đường truyền 3F8 +3

Thanh ghi trang thái đương truyền 3F8 + 5

Thanh ghi chứa số chia tốc độ baud (byte thấp) 3F8

Thanh ghi chứa số chia tốc độ baud (byte cao) 3F8+1

Trang 7

T2/P1.0 1 T2 EX/P1.1 2 P1.2 3 P1.3 4 P1.4 5 MOSI/P1.5 6 MISO/P1.6 7 SCK/P1.7 8 RESET 9 RXD/P3.0 10 TXD/P3.1 11 INT0/P3.2 12 INT1/P3.3 13 T0/P3.4 14 T1/P3.5 15 WR/P3.6 16 RD/P3.7 17 XTAL1 18 XTAL2

19 P2.0/A8P2.1/A9 2122

P2.2/A10 23 P2.3/A11 24 P2.4/A12 25 P2.5/A13 26 P2.6/A14 27 P2.7/A15PSEN 28 29 ALE/PROGEA/VPP 30 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

R16 10k

C1 10uF

VCC

X1

GND

C2 104

1

HD1

VCC

470 R17 D1

VCC

VCC

L4

L1

220 R5 220 R6 220 R7 220 R8 220 R9 220 R10 220 R14 220 R15

a c e f g

b c d e f g h

a a b c d e f g h

Q4 A1015 Q3 A1015 Q2 A1015

R4 1k R3 R2

VCC

L3

b c d e f g h

L2

b c d e f g h

Q1 A1015

R1

C1+ 1

VS+

C2+

4

C2-5

VS- 6

T2OUTR2IN 7

8 R2OUT

9

T2IN

10

T1IN

11 R1OUT

T1OUT 14

IC2 MAX232

C4

10uF

C3 10uF C5

10uF

C6

10uF

VCC

1 2 3 4 5

6 7 8 9

11 10

COM1

RXD

VCC

RXD

2 1

SW1

9

10

11

12

13

14

15

16

8

7

6

5

4

3

2

1

2

1

8

6 2

7 3 4

9

2 1

2 1

2

1

2

1

1 2

2 1

1 2

1

2

1 2

1 2

1 2

11

21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

20 19 18 17 16 15 14 13 9

8 7

6 5

3 2

2

1

1

2 2 1

2 1

2

1

5

6 8 9

6 8 9

5

6 8 9

6 8 9

3 2 1

3 2 1

3 2 1

3

2

1

1 2

1 2

1 2

1 2

1 2

1 2

1 2

1 2

1 2

PHẦN III : MẠCH VÀ CODE.

1 Sơ đồ mạch nguyên lý.

2 Mạch PCB

Trang 8

3 Thiết kế giao diện

3.1 Code VB6

Option Explicit

Dim x1, x2, x3, x4 As String

Dim X, dd4, dd3, dd2, dd1 As Integer

Private Sub Command1_Click()

' thoat khoi chuong trinh

End

End Sub

Private Sub Command2_Click() ' thay doi ngay he thong

Date = DTPicker1.Value

' thay doi gio he thong

Time = DTPicker2.Value

Trang 9

End Sub

Private Sub Form_Load()

' - COM1

With MSComm1

.Settings = "9600,N,8,1"

.CommPort = 1

.RThreshold = 1

.SThreshold = 0

.InputMode = 0

.InputLen = 0

.Handshaking = comNone

.InBufferSize = 1024

.OutBufferSize = 1024

If PortOpen = False Then

PortOpen = True

End If

End With

End Sub

Private Sub Timer1_Timer()

'lay ngay gio he thong

Text5 = Format(Now, "ddd dd/mm/yy" & " ^ " & "hh:nn:ss")

'chon che do phut/giay

If (Option1.Value = True) Then

Text6 = (Format(Now, "nn") \ 10)

Text7 = (Format(Now, "nn") Mod 10)

Text8 = (Format(Now, "ss") \ 10)

Text9 = (Format(Now, "ss") Mod 10)

End If

'chon che do gio/phut

If (Option2.Value = True) Then

Text6 = (Format(Now, "hh") \ 10)

Text7 = (Format(Now, "hh") Mod 10)

Text8 = (Format(Now, "nn") \ 10)

Trang 10

Text9 = (Format(Now, "nn") Mod 10)

End If

'chon che do thang/ngay

If (Option3.Value = True) Then

Text6 = (Format(Now, "mm") \ 10)

Text7 = (Format(Now, "mm") Mod 10)

Text8 = (Format(Now, "dd") \ 10)

Text9 = (Format(Now, "dd") Mod 10)

End If

'chon che do nam/thang

If (Option4.Value = True) Then

Text6 = (Format(Now, "yy") \ 10)

Text7 = (Format(Now, "yy") Mod 10)

Text8 = (Format(Now, "mm") \ 10)

Text9 = (Format(Now, "mm") Mod 10)

End If

End Sub

Private Sub Timer2_Timer()

'bien doi cac text co so can truyen ve kieu so nguyen

dd1 = Val(Text6.Text)

dd2 = Val(Text7.Text)

dd3 = Val(Text8.Text)

dd4 = Val(Text9.Text)

'bien doi cac so nguyen ve kieu ky tu

x1 = Chr(dd1)

x2 = Chr(dd2)

x3 = Chr(dd3)

x4 = Chr(dd4)

'truyen xuong mach

MSComm1.Output = "@"

MSComm1.Output = x1

MSComm1.Output = x2

MSComm1.Output = x3

MSComm1.Output = x4

Trang 11

End Sub

4 Code phần mềm cho 89s52

#include<reg52.h>

#include<stdio.h>

#include<math.h>

sbit LED1=P1^1; // quet led hang don vi

sbit LED2=P1^0; // quet led hang chuc

sbit LED3=P1^3; // quet led hang tram

sbit LED4=P1^2; // quet led hang nghin

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=LED4=1;

P0=m[so1];

LED1=0; //

break;

case 1:

LED1=LED3=LED4=1;

P0=M[so2];

LED2=0; // LED hang chuc break;

case 2:

LED1=LED2=LED4=1;

P0=M[so3];

LED3=0; // led hang tram

case 3:

Trang 12

LED1=LED2=LED3=1;

P0=M[so4];;

LED4=0; // led hang nghin

}

if(++dem==4)dem=0;

}

void main()

{

SCON=0x52;

TMOD=0x20;

TH1=TL1=-3;

TR1=1;

TH0=0xF8;

TL0=0x30;

TR0=1;

ET0=EA=1;

PT0=1;

tg =10;

while(1)

{

do

{

tg =_getkey();

}

while(tg!='@');

so1=_getkey();

so2=_getkey();

so3=_getkey();

so4=_getkey();

};

}

Ngày đăng: 30/09/2016, 14:30

HÌNH ẢNH LIÊN QUAN

1. Sơ đồ mạch nguyên lý. - Thiết kế mạch hiển thị thời gian theo thời gian hệ thống của máy tính
1. Sơ đồ mạch nguyên lý (Trang 7)

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w