Tải bản đầy đủ (.pdf) (27 trang)

DA dong ho dien tu su dung vi xu ly

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (311.53 KB, 27 trang )

Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51

ĐỒ ÁN VI XỬ LÝ

Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ
DỤNG AT89C51

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 1


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51

MỤC LỤC HÌNH
Hình 1: Mô hình giao diện ........................................................................................ 4
Hình 2: Sơ đồ khối tổng quát .................................................................................... 7
Hình 3: Khối điều khiển ............................................................................................ 7
Hình 4: Khối hiển thị ................................................................................................ 8
Hình 5: Sơ đồ bộ xử lí trung tâm .............................................................................. 8
Hình 6: Sơ đồ chi tiết nút nhấn POWER .................................................................. 9
Hình 7: Sơ đồ chi tiết nút nhấn RESET .................................................................... 9
Hình 8: Sơ đồ chi tiết nút nhấn CONTROL, MODE… ............................................ 9
Hình 9: Sơ đồ tổng hợp các nút nhấn CONTROL, MODE… .................................. 9
Hình 10: Sơ đồ chi tiết phần hiển thị giờ và phút ................................................... 10
Hình 11: Sơ đồ chi tiết phần hiển thị giây .............................................................. 10
Hình 12: Sơ đồ chi tiết phần loa báo thức ............................................................... 10
Hình 13: Sơ đồ chi tiết phần tạo xung .................................................................... 11
Hình 14: Sơ đồ chân IC89C51 ................................................................................ 11
Hình 15: Sơ đồ thi công toàn mạch ......................................................................... 12


Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 2


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51

Phần 1:
THIẾT KẾ Ý NIỆM
I. GIỚI THIỆU CHUNG ĐỀ TÀI
II. Ý TƯỞNG THIẾT KẾ
1. Mô hình giao diện
2. Quy trình sử dụng

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 3


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
I. GIỚI THIỆU CHUNG VỀ ĐỀ TÀI:
- Mạch đồng hồ sử dụng 98c51 được hiển thị ra Ma trận led (2 ma trận led 5x7).
- Yêu cầu hiện thực mạch Đồng hồ điện tử dùng IC89C51.
II. Ý TƯỞNG THIẾT KẾ:
1. Mô hình giao diện:

LED HIỂN THỊ GIỜ PHÚT GIÂY
Control

Mode


Reset

Power

Descrement

Increment

Loa

Hình 1: Mô hình giao diện
Trong đó:
- Led hiển thị giờ phút giây gồm 2 ma trận led (5x7) hiển thị giờ phút và 2 đèn
led hiển thị giây đặt giữa 2 ma trận led trên, đươc bố trí như sau:

hh : mm
với

-

-

+ hh : là 2 chữ số thể hiện giờ
+ mm : là 2 chữ số thể hiện phút
Switch Power dùng cung cấp nguồn cho mạch (5 VDC). Đi kèm với Power
có một đèn led báo hiệu có nguồn hay không.
Phím nhấn Resert dùng để khởi động lại giờ về 00:00.
Phím nhấn Mode, Control, Increment và Descrement sử dung kết hợp cho
phép người sử dụng lựa chọn chế độ cho đồng hồ. Cụ thể:

+ Nhấn phím Mode sẽ cho phép chọn chế độ: báo thức, chỉnh giờ hiện tại.
Theo thứ tự nhấn phím: báo thức Æ chỉnh giờ Æ chế độ thường.
+ Nhấn phím Control sẽ cho phép lựa chọn giờ hay phút để chinh trong chế
dộ tương ứng theo thứ tự nhấn: phút Ægiờ Æ phút… Mỗi lần nhấn phím thì
led giờ hoặc led phút sẽ chớp nháy.
+ Phím nhấn Increment và Descrement dùng để tăng (increment) hay giảm
(descrement) số hiển thị trên led giờ hay phút.
Loa thể hiện của bộ báo thức trong chế độ hẹn giờ.
Tất cả các thành phần trong mô hình giao diện giao tiểp với IC89c51.

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 4


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
2. Quy trình sử dụng:
- Bước 1: Cấp nguồn cho mạch hoạt động bằng switch Power. Kiểm tra led
Power: nếu sáng thì nguồn đã đươc cấp cho mạch.
- Bước 2: Trong lúc mạch hoạt động có thể chọn chế độ như sau:
+ Phím nhấn Mode, Control, Increment và Descrement sử dung kết hợp
cho phép người sử dụng lựa chọn chế độ cho đồng hồ. Cụ thể:
+ Nhấn phím Mode sẽ cho phép chọn chế độ: báo thức, chỉnh giờ hiện tại.
Theo thứ tự nhấn phím: báo thức Æ chỉnh giờ Æ chế độ thường.
+ Nhấn phím Control sẽ cho phép lựa chọn giờ hay phút để chinh trong chế
dộ tương ứng theo thứ tự nhấn: phút Ægiờ Æ phút… Mỗi lần nhấn phím thì
led giờ hoặc led phút sẽ chớp nháy.
+ Phím nhấn Increment và Descrement dùng để tăng (increment) hay giảm
(descrement) số hiển thị trên led giờ hay phút.
- Bước 3: Muốn mạch ngưng hoạt động thì gạt nút Power (đèn Power tắt).


Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 5


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51

Phần 2:
THIẾT KẾ MẠCH
I. SƠ ĐỒ KHỐI
II. SƠ ĐỒ CHI TIẾT TỪNG KHỐI
1. Khối điều khiển
2. Khối hiển thị
3. Bộ xử lý trung tâm
III.

MÔ PHỎNG
1. Khối điều khiển
2. Khối hiển thị
3. Bộ xử lý trung tâm

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 6


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
I. SƠ ĐỒ KHỐI:
- Mạch được cấu thành từ 3 khối chính


KHỐI HIỂN THỊ
KHỐI
ĐIỀU KHIỂN

BỘ XỬ LÝ
TRUNG
TÂM

Hình 2: Sơ đồ khối tổng quát
-

Chức năng từng khối:
+ Khối điều khiển: đây là phần giao tiếp trực tiếp giữa người sử dụng và
mạch đồng hồ. Người sử dung có thể chọn chế độ như trình bày ở trên.
+ Khối hiển thị: là phần hiển thị kết quả chọn của người sử dụng với mạch.
+ Bộ xử lý trung tâm: đây là khối quan trọng nhất trong mạch, nhận yêu cầu
từ người sử dụng, xử lý yêu cầu và hiến thị kết quả thông qua Khối hiển thị.

II. SƠ ĐỒ CHI TIẾT TỪNG KHỐI:
1. Khối điều khiển:

Power

Mode

Increment

Reset


Control

Descrement

Hình 3: Khối điều khiển
-

Với định nghĩa trên thì khối điều khiển gồm 6 nút nhấn, lần lược có kí hiệu:
Power, Reset, Mode, Control, Increment và Descrement.
Nút nhấn Power: cung cấp nguồn cho mạch hoạt động.
Nút nhấn Reset: cho mạch về giờ hệ thống do người thiết kế đặt.
Các nút nhấn Mode, Control, Increment và Descrement dùng chọn 1 trong các
chế độ: chỉnh giờ phút, hẹn giờ báo thức.

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 7


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
-

Ngoài ra trong khối có thêm đèn Led Power dùng báo đã có nguồn trong mạch
hay chưa. Nếu sáng thì mạch có thể hoạt động.

2. Khối hiển thị:

HIỂN THỊ
GIỜ


HIỂN THỊ
GIÂY

HIỂN THỊ
PHÚT

LOA BÁO THỨC
Hình 4: Khối hiển thị
-

Trong phần Hiển thị giờ và hiển thị phút là 2 ma trận led 5x7, mỗi ma trận led
hiển thị 2 chữ số, cụ thể: giờ từ 0 đến 23 giờ, phút từ 00 đến 59 phút.
Phần hiển thị giây gồm 2 đèn led sẽ chớp nháy 60 lần trong phút (mỗi lần
chớp nháy là 1 giây).

3. Bộ xử lý trung tâm:
- Khối gồm các thành phần: IC89C51 và phần tạo xung thạch anh.
- Chức năng của từng khối:
+ Phần tạo xung: cung cấp tín hiệu clock cho Bộ xử lí (ở đây là IC89C51).
+ IC89C51: chứa chương trình và giao tiếp với khối điều khiển nhậ yêu cầu xử
lí yêu cầu vả hiển thị ra khối hiển thị.
- Sơ đồ khối của Bộ xử lí trung tâm:

PHẦN TẠO XUNG

IC89C51

Hình 5: Sơ đồ bộ xử lí trung tâm

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI


Trang 8


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
III. MÔ PHỎNG:
1. Khối điều khiển:
- Nút nhấn POWER: với chức năng cung cấp nguồn cho mạch.
+ Các linh kiện sử dụng: 1 switch, 1 điện trở R = 560 và 1 led.
+ Sơ đồ kết nối sẽ có sơ đồ như sau:
SW6
2

1

R15

1

SW_POWER

560
D3

JUMPER

LED

2


PowerLed

GND

Hình 6: Sơ đồ chi tiết nút nhấn POWER
-

Nút nhấn RESET:
+ Linh kiện sử dụng: 2 điện trở R1 = 100, R2 = 10K, 1 switch và 1C = 10pF.
+ Sơ đồ kết nối như sau:
+5V

R2
C3
100

10pF
SW5

SW_RESET

R1
10K

GND

Hình 7: Sơ đồ chi tiết nút nhấn RESET
-

Ngõ ra của sơ đồ trên sẽ nối vào chân 9 (RST) của IC89C51.

Các nút nhấn CONTROL, MODE, INCREMENT và DESCREMENT có
cùng sơ đồ kết nối như sau:
+5V
R3
10K
SW1

GND

Hình 8: Sơ đồ chi tiết nút nhấn CONTROL, MODE…
* Sơ đồ tổng hợp của 4 phím nhấn:
+ Linh kiện sử dụng: 4 điện trở R = 10K và 4 switch.
+5V

R3
10K

R4
10K

SW1
Mode
GND

GND
KEY 1

R6
10K
SW4


Inc

Control
GND
KEY 0

R5
10K
SW3

SW2

Dec
GND
KEY 2

KEY 3

Hình 9: Sơ đồ tổng hợp các nút nhấn CONTROL, MODE…

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 9


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
Ngõ ra CONTROL, MODE, INCREMENT và DECREMENT lần lượt nối
vào các chân 39, 38, 37, 36 của ic89c51.
2. Khối hiển thị:

- Phần hiển thị giờ, phút và giây: gồm 2 ma trận Led 5x7 dùng hiển thị giờ
và phút, và 2 đèn led thường dùng hiển thị giây và 7 Transistor 2N2222, 7
điện trở R = 220 và 1 điện trở R = 220.
** Sơ đồ như sau:
+ Phần hiển thị giờ và phút: có 17 ngõ vào các chân: 1, 2, 3, 4, 5, 6, 7, 21,
22, 23, 24, 25, 26, 27, 28, 32 và 33. Do tín hiệu xuất từ IC89C51 yếu nên
sử dụng thêm 7 Transistor để khuếch đại dòng cung cấp cho ma trận Led.

G.2

G.0 G.1

Ph.2

Ph.0 Ph.1

1

Q7

1
2

Q6

7

8

C1


C0

H3

9

10

11

Q5

Q4

1
2

3
2N2222
R12
220

1
2

3

Q3


2N2222
R10
220

1

H0

H1

Q2

1

Q1

2
3

2N2222
R9
220

6

H2
5

C3


Ph.3

2
3

2N2222
R11
220

4

H4
3

C4
2

Ph.4

1

3
2N2222
R13
220

1

H0


H1
6

H2

G.3

2

3

U3

Led Array

5

C3

G.4

4

H4
3

2

1


C4

Led Array

C2

C1

H6

U2

H5

12

7

8
C0

H3

9

10
C2

11
H6


Ph.0
Ph.1
Ph.2
Ph.3
Ph.4
G.0
G.1
G.2

H5

12

G.4
G.3

2
3

2N2222
R8
220

2N2222
R7
220

+5V
H6


H5

H4

H3

H2

H0

H1

Hình 10: Sơ đồ chi tiết phần hiển thị giờ và phút
+ Phần hiển thị giây: gồm 2 đèn led thường với ngõ vào từ chân 34.
D1

+5V
R14

LED
D2
270

Hình 11: Sơ đồ chi tiết phần hiển thị giây
-

Phần loa báo thức: ngõ vào nối từ chân 8 của ic89c51, dùng 1 Transistor
2N2222, 1 điện trở R = 220 và loa.
+5V


R16
220
Q8

3

2

U6

1
1
2N2222
2

+
-

GNDSpeaker

Hình 12: Sơ đồ chi tiết phần loa báo thức

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 10


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
3. Bộ xử lý trung tâm:

- Phần tạo xung: sử dụng thạch anh với tần số 12MHz và 2 tụ điện với trị
số 30pF. Sơ đồ như sau:
C1 30 pF
GND

Y1
C2 30 pF

12 mHz

GND

Hình 13: Sơ đồ chi tiết phần tạo xung
-

IC89C51:
C4

Chong nhieu

19
18
9
12
13
14
15
H0
H1
H2

H3
H4
H5
H6

1
2
3
4
5
6
7
8

EA/VP

20
VS S

31

30pF

VC C

U1

+5V

40


+5V

X1
X2

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

RESET
INT0
INT1
T0
T1

8051

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

P1.7

P2.0
P2.1
P2.2
P2.3
P2.4
P2.5
P2.6
P2.7
RD
WR
PSEN
ALE/P
TXD
RXD

39
38
37
36
35
34
33
32

GND
KEY0
KEY1
KEY2

KEY3

21
22
23
24
25
26
27
28

G.4
G.3
Ph.0
Ph.1
Ph.2
Ph.3
Ph.4
G.0
G.1
G.2

17
16
29
30
11
10

Hình 14: Sơ đồ chân IC89C51


Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 11


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
* Sơ đồ thi công toàn mạch: (vẽ bằng Orcad – Capture)
+5V

+5V
SW6
1

R3
10K

R15
560

PowerLed

R5
10K

D2

SW4

SW_KEY2


SW_KEY1

+5V

R6
10K

SW3

SW2

D3 SW_KEY0

JUMPER

R4
10K

SW1

SW_POWER

1

JP1

2

LED


LED

LED

GND

2

R14
270

D1

SW_KEY3

GND
KEY0

GND
KEY1

GND
KEY2

KEY3

C4
+5V


R1
10K
SW5

SW_RESET

H0
H1
H2
H3
H4
H5
H6

GND

1
2
3
4
5
6
7
8

R2
100

P1.0
P1.1

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

RD
WR
PSEN
ALE/P
TXD
RXD

17
16
29
30
11
10

G.4

G.3

Ph.4

8
7
H1

H0

H4
C3
H2

Led Array
C4

Led Array

U3

C0
C1

12

11
10
9
H5
C2
H3

U2

H6

Ph.0

Ph.1
Ph.2
Ph.3
Ph.4
G.0
G.1
G.2

5
6

10pF

8051

Ph.0Ph.1

2
3
4

C3

21
22
23
24
25
26
27

28

1

+5V

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

9
8
7

RESET

12
13 INT0
14 INT1
15 T0
T1

H3
C0
C1


GND

Ph.2

H2
H1
H0

GND

9

G.0 G.1

4
5
6

C2
30 pF

12 MHz

G.2
G.4
G.3
12
11
10


C1
30 pF

X2

GND
KEY0
KEY1
KEY2
KEY3

H6
H5
C2

18

39
38
37
36
35
34
33
32

C4
H4
C3


40

X1

Y1

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

1
2
3

19

EA/VP

VSS

31

30pF


20

Chong nhieu

U1

+5V

VC C

GND

Ph.3

+5V
R16
220
Q8

3

1 Q7
SpeakerU6

1 Q6
2

3

1 Q5

2

3

1 Q4
2

3

1 Q3
2

3

1 Q2
2

3

1 Q1
2

3

2
3

2N2222
R13
220


1
2

1
2N2222

+
-

2
2N2222
R12
220

2N2222
R11
220

2N2222
R10
220

2N2222
R9
220

2N2222
R8
220


2N2222
R7
220

+5V
GND
H6

H5

H4

H3

H2

H1

H0

Hình 15: Sơ đồ thi công toàn mạch

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 12


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51


Phần 3:
HIỆN THỰC MẠCH
I. LINH KIỆNN SỬ DỤNG TRONG MẠCH
II. THI CÔNG MẠCH

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 13


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
I. LINH KIỆN SỬ DỤNG TRONG MACH:
- Mạch hiện thực toàn bộ phần đã giới thiệu ở trên.
- Linh kiện sử dụng trong mạch gồm:
Tên Linh Kiện
IC89C51
Ma trận Led (5x7)
Nút nhấn
Transistor
Led
Điện trở
Loa
Tụ điện
Thạch anh
Socket
Tổng cộng

Kí Hiệu
AT89C51
HDSP – F211

2222A
R
C

Số Lượng
1
2
6
8
3
16
1
4
1
4
46

II. THI CÔNG MẠCH:
- Vẽ mạch in bằng Orcad 9.0: Capture và Layout Plus.
- Chương trình viết bằng phần mềm ASM51.
- Sử dụng mạch ghi ROM.

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 14


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51

Phần 4:

CHƯƠNG TRÌNH ASM51
I. GIỚI THIỆU GIẢI THUẬT
1. Tổ chức dữ liệu
2. Kĩ thuật quét phím
3. Xử lý phần hiển thị

II. MÃ NGUỒN

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 15


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
I. GIỚI THIỆU GIẢI THUẬT:
1. Tổ chức dữ liệu:
2. Kĩ thuật quét phím:
3. Xử lí phần hiển thị:

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 16


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
II. MÃ NGUỒN:
;CHUONG TRINH DONG HO DUNG 89C51
;***************************************************
; DUNG 10 O NHO TU 30H DEN 39H DE CHUA DU LIEU CAN XUAT CHO HAI DEN
; R0 SE LA CON CHAY CHAY TU 39 H DEN 30 H

; R1 DINH THOI CHO 0,5 GIAY DE CHOP TAT DEN
; R2 DINH THOI CHO MOT PHUT DE TANG R4
; R3 CHUA GIO HIEN TAI
; R4 CHUA PHUT HIEN TAI
; R5 CHUA GIA TRI INDEX CUA COT CAN XUAT CAC COT SE DUOC LAY TRONG
;BANG TU DUOI LEN
; R6 DUNG DE DINH THOI SAU 5*40 mili giay CHO PHEP XU LY PHIM NEU
;PHIM VAN DUOC NHAN
; R7 DINH THOI SAU 40 mili giay KIEM TRA VIEC NHAN PHIM
; 20H,21H,22H: CAC O NHO DUNG TEST PHIM
; CHI NHAN PHIM NHAN NEU 2 O NHO 20H VA 21H CO GIA TRI BANG NHAU
; 22H: CHUA TRANG THAI CUOI CUNG CUA PHIM NHAN DUOC NHAN
; NEU 22H=21H THI KHONG CAN XU LY PHIM NHAN
; NGUOC LAI NEU 22H<>21H THI CO NGHIA LA CO TRANG THAI MOI, CHU Y
;CHI LAY BYTE CAO CUA PORT P0
; 26H LUU GIA TRI BIT 0 CHO COT CAN HIEN THI DEN SE DUOC QUET TU
;PHAI SANG TRAI
; 63H CHUA GIO REO
; 64H CHUA PHUT DINH THOI REO
;***************************************************
; CHUONG TRINH DA SU DUNG CAC BYTE VA BIT SAU:
; BIT:
;
20H=1 :CHINH GIO PHUT DONG HO REO
;
21H=1 :CHINH GIO PHUT
;
22H=1 :CHE DO BINH THUONG,HIEN THI GIO PHUT HIEN TAI
;
18H=1 : CHON GIO,CO CHOP DEN

;
19H=1 : CHON PHUT,CO CHOP DEN
;
1AH=1 : BINH THUONG,KHONG CHOP DEN
;
50H,51H,52H,53H : PHUC VU CHO VIEC NHAY DEN
;
54H : CO CHO NGAT 1
;BYTE:
;
7FH : CAT TAM GIA TRI B
;
7EH=5 : DINH THOI CHO REO TRONG 5 PHUT
;
61H,62H : CAT TAM R1,R2 (PUSH)
$DEBUG
$NOPAGING
$NOSYMBOLS
$MOD51
Org
0
JMP
main
ORG
0Bh
JMP
timer_int0
ORG
1Bh
JMP

timer_int1
ORG
30h
Main:
;KHOI TAO GIA TRI CHO CAC THANH GHI
MOV R7,#20
;sau 20ms kiem tra viec nhan phim
MOV R5,#1
;chua index cua cot can xuat
MOV R2,#5
;
MOV 26H,#7FH
;gia tri bit o cot can hien thi
MOV R6,#3
MOV R0,#39H
;cho con tro du lieu den cuoi buffer

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 17


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
MOV R1,#1
;******************************************
MOV R3,#25
;phut mac dinh
MOV R4,#13
;gio mac dinh
MOV 23H,#4H

;tuong duong voi viec set bit 1ah=1
MOV 24H,#4H
;tuong duong voi viet set bit 22h=1
CALL LOAD_GIO
CALL LOAD_PHUT
;******************************************
MOV 63H,#0
;mac dinh gio hen la 0
MOV 64H,#0
;mac dinh phut hen la 0
;----------------------------------------MOV TMOD,#11H
;chon mode cho hai bo dem deu o che do dinh
thoi 16 bit
MOV IE,#8AH
;cho phep ngat
MOV P0,#0FFH
;xuat ffh ra port0 de co the doc du lieu vao
duoc
MOV DPTR,#1000
;chi den dia chi cua du lieu
SETB TF0
;ngat ngay khi vao chuong trinh
SJMP $
;***************************************************
; DUNG BO DEM 1 CU MOI 2 miliGiay (500HZ)SE XU LI VIEC HIEN THI (VA
;NHAN PHIM)
;***************************************************
timer_int0:
CLR TR0
;du'`ng bo dinh thoi 0

; QUET VOI TAN SO 250HZ
MOV TH0,#HIGH(-1988)
;chon ~2000 micro giay ~2 mili giay
MOV TL0,#LOW(-1988)
;
SETB TR0
;cho phep bo dinh thoi 0 tiep tuc hoat dong
;***************************************************
; XU LY NHAN PHIM
;***************************************************
DJNZ R7,TIEP_R7_1
MOV R7,#20
;cu 20*2=40mili giay thi xu li phim mot lan
;-----------------; XU LY NHAY DEN
;---------------JNB 19H,THOAT_111
;neu chon phut (bit 19h=1) thi se nha'y phut
CPL 50H
;bit 50h se bat/tat cho moi lan nha'y de`n
phut
JB 50H,THOAT_112
CALL CLEAR_PHUT
JMP THOAT_111
THOAT_112:
CALL LOAD_PHUT
THOAT_111:
JNB 18H,THOAT_211
;neu chon gio (bit 18h=1) thi se nha'y gio
CPL 51H
;bit 51h se bat/tat cho moi lan nha'y de`n
gio

JB 51H,THOAT_212
CALL CLEAR_GIO
JMP THOAT_211
THOAT_212:
CALL LOAD_GIO
THOAT_211:
;---------------------------------------------------;SAU 3 CHU KY * R7 THI XOA 22H DE CHO PHEP PHIM NHAN

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 18


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
;---------------------------------------------------DJNZ R6,TIEP_R6
MOV R6,#3
MOV 22H,#0FH
JMP TIEP_R6
TIEP_R7_1:
JMP TIEP_R7
TIEP_R6:
MOV 20H,P0
;doc tin hieu phim nhan tu port0 vao byte 20h
de xu li
MOV A,20H
;------------------------; LOC DU LIEU NIBBLE CAO
;------------------------ANL A,#0FH
CJNE A,21H,NOT_EQUAL
;can phai kiem tra lai lan nua co phim nhan thuc su khong
CJNE A,22H,THUC_THI

;xac dinh dung la co phim nhan
NOT_EQUAL:
MOV 21H,A
JMP TIEP_R7
;ket thuc xu li phim
THUC_THI:
MOV 22H,21H
;chuyen ket qua cuoi cung vao byte 22h
MOV R6,#5
;chuyen gia tri 5 vao R6 de xu li truong hop
nhan phim qua 5*40 miligiay
;------------------------------------; XU LY PHIM NHAN TANG
;------------------------------------JB 22H,SKIP1
;che do binh thuong->nhay den xu ly chon che do
JB 1AH,SKIP1
;khong chop den->nhay den xu ly chon che do
JB 0H,SKIP0
;co phim nhan giam
JB 19H,PHUT_00
;dang o che do chon chinh phut
JB 18H,GIO_00
;dang o che do chon chinh gio
JMP EXIT
PHUT_00:
INC R3
CJNE R3,#60,SKIP000
MOV R3,#0
SKIP000:
CALL LOAD_PHUT
SETB 55H

;bit 55h ghi nho la da co nhan phim
JMP EXIT
GIO_00:
INC R4
CJNE R4,#24,SKIP001
MOV R4,#0
SKIP001:
CALL LOAD_GIO
SETB 55H
;bit 55h ghi nho la da co nhan phim
JMP EXIT
;---------------------------; XU LY PHIM NHAN GIAM
;---------------------------SKIP0:
JB 1H,SKIP1
;khong phai phim nhan giam nhay toi chon che
do

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 19


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
JB 19H,PHUT_11
JB 18H,GIO_11
JMP EXIT
PHUT_11:
DEC R3
CJNE R3,#-1,SKIP010
MOV R3,#59

SKIP010:
CALL LOAD_PHUT
SETB 55H
;bit 55h ghi nho la da co nhan phim
JMP EXIT
GIO_11:
DEC R4
CJNE R4,#-1,SKIP011
MOV R4,#23
SKIP011:
CALL LOAD_GIO
SETB 55H
;bit 55h ghi nho la da co nhan phim
JMP EXIT
;-----------------------------; XU LY PHIM NHAN CHON CHE DO
;-----------------------------SKIP1:
JB 2H,SKIP2
;khong phai la phim chon che do
JB 22H,SET_20
;nhay den che do chinh gio reo
JB 20H,SET_21
;nhay den che do chinh gio hien tai
JB 21H,SET_22
JMP KET_THUC_01
;CHE DO CHINH GIO HIEN TAI
SET_21:
;PHUC HOI DU LIEU GIO HIEN TAI
;CAT GIO REO VAO O NHO 63H,64H
MOV A,63H
XCH A,R3

MOV 63H,A
MOV A,64H`
XCH A,R4
MOV 64H,A
JB 55H,SET_22
;CO SU THAY DOI KHI CHINH REO
SETB 21H
CLR 22H
CLR 20H
JMP SET_19 ;CHO NHAY DEN
JMP KET_THUC_01
;CHE DO CHINH GIO REO
SET_20:
SETB 20H
;dang o che do chinh gio reo
CLR 21H
CLR 22H
; load gio phut reo ra buffer la byte 63h va 64h
MOV A,63H
XCH A,R3
MOV 63H,A
MOV A,64H
XCH A,R4
MOV 64H,A

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 20



Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
CALL LOAD_GIO
CALL LOAD_PHUT
JMP SET_19
JMP KET_THUC_01
SET_22:
SETB 22H
CLR 20H
CLR 21H
CLR

55H

;cho phep nhay den

;xoa co xac nhan co phim nhan neu co

CALL LOAD_GIO
CALL LOAD_PHUT
JMP SET_1A
;cam nhay den
KET_THUC_01:
JMP EXIT
;--------------------------------; XU LY PHIM NHAN CHON GIO PHUT
;--------------------------------SKIP2:
;neu chuong dang reo thi tat chuong
JNB TR1,KHONG_REO
CLR TR1
KHONG_REO:
JB 3H,EXIT

;khong phai phim chon gio phut
JB 22H,EXIT
JB 1AH,SET_19
;day la doan code de hoan doi viec chon
gio/phut/binh thuong
JB 19H,SET_18
JB 18H,SET_19
JMP KET_THUC_00
;neu nhan phim chuyen qua chon phut
SET_19:
SETB 19H
CLR 1AH
CLR 18H
JMP KET_THUC_00
;neu nhan phim chuyen qua chon gio
SET_18:
SETB 18H
CLR 19H
CLR 1AH
JMP KET_THUC_00
;chon tro lai trang thai binh thuong
SET_1A:
SETB 1AH
CLR 19H
CLR 18H
KET_THUC_00:
CALL LOAD_PHUT
CALL LOAD_GIO
;---------------------------EXIT:
;***************************************************---;GIAM R5 NEU BANG KHONG THI THIET LAP LAI GIA TRI R5,

; R5 DUNG DE CHON DU LIEU CHO COT

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 21


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
;***************************************************--TIEP_R7:
DJNZ R5,TIEP_R5
MOV R5,#10
MOV 26H,#7FH
;chuan bi cho viec xuat chon cot
MOV R0,#39H
;chuan bi cho viec xuat du lieu bang cach dua con chay ve cuoi bang
SETB P0.7
;hai bit nay cua port0 dung cho viec xuat gio
SETB P0.6
;-----------------------------; XU LY CHO DINH THOI GIAY
;-----------------------------DJNZ R1,TIEP_R1
MOV R1,#25
;25*20=500 mili giay nhay den chi giay mot lan
; DAO BIT P0.5 NOI RA DEN
CPL P0.5
JB P0.5,TIEP_R11
DJNZ R2,TIEP_R2
MOV R2,#60
INC R3
; KIEM TRA XEM VUOT QUA 60
CJNE R3,#60,KHONG_R3

MOV R3,#0
INC R4
; KIEM TRA GIO
CJNE R4,#24,KHONG_R4
MOV R4,#0
KHONG_R4:
CALL LOAD_GIO
KHONG_R3:
CALL LOAD_PHUT
;------------------------; XU LY HEN GIO
;------------------------MOV A,R4
CJNE A,64H,KHONG_HEN_GIO
;so sanh gio hen trong bo nho voi gio hien tai
MOV A,R3
CJNE A,63H,KHONG_HEN_GIO
MOV 7EH,#5
SETB TF1
JMP EXIT_REO
KHONG_HEN_GIO:
MOV A,7EH
DEC A
CJNE A,#0,KHAC_KHONG00
CLR TR1
JMP EXIT_REO
KHAC_KHONG00:
MOV 7EH,A
EXIT_REO:
TIEP_R2:
TIEP_R11:
TIEP_R1:

TIEP_R5:
CJNE R5,#2,KHONG_P07
;xet xem co can dung p0.7 de hien thi khong

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 22


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
MOV P2,#0FFH
CLR P0.7
JMP EXIT_9
KHONG_P07:
CJNE R5,#1,kHONG_P06
;xet xem co can dung p0.6 de hien thi khong
MOV P2,#0FFH
CLR P0.6
SETB P0.7
JMP EXIT_9
KHONG_P06:
;XUAT BIT 0 RA COT DANG QUET
MOV A,26H
;lay gia tri cua 26h- o nho chua cot dang quet
RL A
MOV P2,A
MOV 26H,A
EXIT_9:
;XUAT GIA TRI
MOV A,@R0

DEC R0
MOV P1,A
BOQUA:
RETI
;****************************************************
timer_int1:
CLR TR1
;tan so cua chuong la 1000/(0.5+0.3) ~ 1250hz
CPL 54H
JB 54H,TANSO1
MOV TH1,#HIGH(-500)
;o muc cao(hoac thap) trong thoi gian 0.5 mili giay
MOV TL1,#LOW(-500)
JMP EXIT_31
TANSO1:
MOV TH1,#HIGH(-300)
MOV TL1,#LOW(-300)
;o muc thap(hoac cao) trong thoi gian 0.3 mili giay
EXIT_31:
CPL P1.7
SETB TR1
RETI
;***************************************************-; CHUONG TRINH CON TINH DO DOI TRONG DPTR
; TUONG UNG VOI CHI SO TRONG A
; TRA VE DPTR TUONG UNG
;***************************************************-DO_DOI:
CLR C
MOV DPTR,#1000
MOV B,#5
MUL AB

ADD A,DPL
MOV DPL,A
MOV A,DPH
ADDC A,B

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 23


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
MOV DPH,A
RET
;***************************************************
;CHUONG TRINH LOAD DU LIEU CHO GIO DUOC LUU TRONG
; O NHO 29H
;***************************************************
LOAD_GIO:
MOV 62H,R2
;tam luu gia tri R1,R2 vao bo nho
MOV 61H,R1
CLR C
MOV A,R4
;doan nay kiem tra xem hang chuc cua gio co bang 0 khong
MOV B,#10
DIV AB
MOV 7FH,B
;byte 7fh se chua gia tri hang chuc cua phut
CJNE A,#0H,KHAC_KHONG
MOV 30H,#0

;neu so hang chuc bang 0 thi khong hien thi ra
MOV 31H,#0
MOV 32H,#0
MOV 33H,#0
MOV 34H,#0
JMP EXIT_8
;LAY SO HANG CHUC
KHAC_KHONG:
CALL DO_DOI
;CAT R2
MOV R2,#0
;R2 la bien dem de doc du lieu(chay tu 0-4)
MOV R1,#30H
;R1 con tro den dia chi se chep du lieu vao (tu 30h-34h)
LAP_8:
CJNE R1,#35H,DONE_8
;dua so hang chuc vao cac o nho tu 30h-34h
JMP EXIT_8
DONE_8:
MOV A,R2
MOVC A,@A+DPTR
SWAP A
;DUA DU LIEU VAO BYTE CAO
MOV @R1,A
INC R2
INC R1
JMP LAP_8
EXIT_8:
MOV A,7FH
;lay so hang chuc cua gio dua vao xu li

CALL DO_DOI
MOV R2,#0
MOV R1,#30H
LAP_88:
CJNE R1,#35H,DONE_88
JMP EXIT_88
DONE_88:
MOV A,R2
MOVC A,@A+DPTR
;DUA DU LIEU VAO BYTE THAP
ADD A,@R1
MOV @R1,A

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 24


Báo cáo: ĐỒ ÁN VI XỬ LY - Đề tài: ĐỒNG HỒ ĐIỆN TỬ SỬ DỤNG AT89C51
INC R2
INC R1
JMP LAP_88
EXIT_88:
MOV R2,62H
MOV R1,61H
RET
;***************************************************
;CHUONG TRINH LOAD DU LIEU CHO PHUT DUOC LUU TRONG
; O NHO 28H
;***************************************************

LOAD_PHUT:
MOV 62H,R2
MOV 61H,R1
CLR C
MOV A,R3
MOV B,#10
DIV AB
MOV 7FH,B
;byte 7fh se chua gia tri hang chuc cua phut
;LAY SO HANG CHUC
CALL DO_DOI
MOV R2,#0
MOV R1,#35H
LAP_7:
CJNE R1,#3AH,DONE_7
JMP EXIT_7
DONE_7:
MOV A,R2
MOVC A,@A+DPTR
SWAP A
;DUA DU LIEU VAO BYTE CAO
MOV @R1,A
INC R2
INC R1
JMP LAP_7
EXIT_7:
MOV A,7FH
;lay so hang chuc cua phut dua vao xu li
CALL DO_DOI
MOV R2,#0

MOV R1,#35H
LAP_77:
CJNE R1,#3AH,DONE_77
JMP EXIT_77
DONE_77:
MOV A,R2
MOVC A,@A+DPTR
;DUA DU LIEU VAO BYTE THAP
ADD A,@R1
MOV @R1,A
INC R2
INC R1
JMP LAP_77
EXIT_77:
MOV R2,62H
MOV R1,61H
RET
;***************************************************
; CLEAR NHAM PHUC VU CHO CHUONG TRINH NHAY DEN

Giáo viên hướng dẫn: TS. PHẠM TƯỜNG HẢI

Trang 25


×