Tải bản đầy đủ (.docx) (35 trang)

Ứng dụng họ vi điều khiển 8051 ghép nối với LED 7 thanh để hiển thị số đo tần số lưới điện công nghiệp với khoảng đo (45 – 55) Hz.

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 (586.16 KB, 35 trang )

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

GVHD: Đỗ Duy Phú

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA ĐIỆN

ĐỒ ÁN
MÔN: VI XỬ LÝ VÀ ĐO LƯỜNG ĐIỆN
ĐỀ TÀI: Ứng dụng họ vi điều khiển 8051 ghép nối với LED 7 thanh để hiển thị số
đo tần số lưới điện công nghiệp với khoảng đo (45 – 55) Hz.
Giáo viên hướng dẫn:
Đỗ Duy Phú

ĐỀ BÀI: Ứng dụng họ vi điều khiển 8051 ghép nối 04 LED 7 thanh để hiển thị
số đo và cảnh báo tần số lưới điện công nghiệp, khoảng đo [45-55]Hz. Hệ thống
gồm có :
+ 01 Vi điều khiển 89C51RD2.
+ Ghép nối 04 LED bảy thanh.
+ Ghép nối mạch chuẩn hóa đo tần số.
+ Ghép nối 2 đèn LED cảnh báo ngưỡng thấp , ngưỡng cao.
+ Hai nút ấn RUN, STOP.
Hoạt động: Khi ấn RUN ,hệ thống thực hiện đo tần số; còn khi ấn, STOP hệ
thống lưu lại giá trị đo cuối cùng.

SVTH: Nhóm 8

Page 1


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



GVHD: Đỗ Duy Phú
MỤC LỤC

Chương 1 : Cơ sở lý thuyết
1.1.mục đích và yêu cầu
1.2.khái quát về họ vđk 8051
1.3.các linh kiện được sử dụng
1.3.1.led 7 thanh
1.3.2.điện trở
1.3.3.tụ điện
1.3.4.opto
1.3.5.ic max 232
1.4.phương pháp đo
Chương 2.Xây dựng hệ thống
2.1.sơ đồ khối, nguyên lý
2.2.xây dựng thuật toán
2.3.viết chương trình
Chương 3 : kết luận
3.1.về cơ sở lý thuyết
3.2.về thực nghiệm

SVTH: Nhóm 8

Page 2


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

GVHD: Đỗ Duy Phú


Chương I: Cơ sở lý thuyết
1.1.mục đích và yêu cầu
Ứng dụng họ vi điều khiển 8051 ghép nối 04 LED 7 thanh để hiển thị số đo và
cảnh báo tần số lưới điện công nghiệp, khoảng đo [45-55]Hz. Hệ thống gồm có :
+ 01 Vi điều khiển 89C51RD2.
+ Cổng truyền thông
+ Ghép nối 04 LED bảy thanh.
+ Ghép nối mạch chuẩn hóa đo tần số.
+ Ghép nối 2 đèn LED cảnh báo ngưỡng thấp , ngưỡng cao.
+ Hai nút ấn RUN, STOP.
Hoạt động: Khi ấn RUN ,hệ thống thực hiện đo tần số; còn khi ấn, STOP hệ
thống lưu lại giá trị đo cuối cùng.
1.2. Khái quát về họ Vi điều khiển 8051
AT89C51 là một vi điều khiển 8 bit, chế tạo theo công nghệ CMOS chất
lượng cao, công suất thấp với 4 KB PEROM (Flash Programeable and erasable
read only memory).
Các đặc điểm của 8951 được tóm tắt như sau:
- 4KB bộ nhớ, có thể lập trình lại nhanh, có khả năng ghi xóa tới
1000 chu kỳ
- Tần số hoat động từ 0 Hz đến 24 MHz
- 3 mức khóa bộ nhớ lập trình
- 2 bộ Timer/Counter 16 bit
- 128 Byte RAM nội
- 4 Port xuất/nhập (I/O) 8 bit
- Giao tiếp nối tiếp
- 64 KB vùng nhớ mã ngoài
- 64 KB vùng nhớ dữ liệu ngoài
- Xử lý Boolean (hoạt động trên bit đơn)
- 210 vị trí nhớ có thể định vị bit

SVTH: Nhóm 8

Page 3


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

GVHD: Đỗ Duy Phú

• Sơ đồ khối và sơ đồ chân của AT89C51
INT1\ INT0\
SERIAL PORT TEMER0
TEMER1
TEMER2 8032\8052

128 byte RAM
8032\8052
INTERRUPT CONTROL
OTHER REGISTER128 byte

RAM

ROM
0K:
8031\8032
4K:8951
8K:8052

TEMER2 8032\8052
TEMER1

TEMER1

CPU
BUS CONTROL
OSCILATOR

EA\ RST

ALE\ PSEN\
P0 P1 P2 P3
Address\Data

Sơ đồ khối của AT89C51

Sơ đồ chân của AT89C51

SVTH: Nhóm 8

Page 4

TXD RXD


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

GVHD: Đỗ Duy Phú

• Chức năng các chân của AT89C51
+ Port 0 (P0.0 – P0.7 hay chân 32 – 39): 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 AT89C51 giao tiếp với thiết bị ngoài có kiến trúc bus.

Port 0
+ Port 1 (P1.0 – P1.7 hay chân 1 – 8): có chức năng xuất nhập theo bit
và byte. Ngoài ra, 3 chân P1.5, P1.6, P1.7 được dùng để nạp ROM theo chuẩn
ISP, 2 chân P1.0 và P1.1 được dùng cho bộ Timer 2.

Port 1
+ Port 2 (P2.0 – P2.7 hay chân 21 – 28): là một port có công dụng kép. Là
đườ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.
SVTH: Nhóm 8

Page 5


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

GVHD: Đỗ Duy Phú

Port 2

+ Port 3 (P3.0 – P3.7 hay chân 10 – 17): mỗi chân trên port 3 ngoài chức
năng xuất nhập ra còn có một số chức năng đặc biệt sau:
Bit
P3.0
P3.1
P3.2
P3.3
P3.4

P3.5
P3.6
P3.7

Tên
RXD
TXD
INT0
INT1
T0
T1
WR
RD

Chức năng chuyển đổi
Dữ liệu nhận cho port nối tiếp
Dữ liệu truyền cho port nối tiếp
Ngắt bên ngoài 0
Ngắt bên ngoài 1
Ngõ vào của Timer/Counter 0
Ngõ vào của Timer/Counter 1
Xung ghi bộ nhớ dữ liệu ngoài
Xung đọc bộ nhớ dữ liệu ngoài

Port 3
SVTH: Nhóm 8

Page 6



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

GVHD: Đỗ Duy Phú

+ 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.
+ XTAL 1, XTAL 2: 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ôn
thường là 12MHz.
+ 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.
+ 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ớ.
+ PSEN (Program Store Enable): PSEN là điều khiển để cho phép bộ
nhớ chương trình mở rộng và thường được nối với đến chân /OE (Output
Enable) của một EPROM để cho phép đọc các bytes mã lệnh. PSEN sẽ ở mức
thấp trong thời gian đọc lệnh. Các mã nhị phân của chương trình được đọc từ
EPROM qua Bus và được chốt vào thanh ghi lệnh của bộ vi điều khiển để giải
mã lệnh. Khi thi hành chương trình trong ROM nội, PSEN sẽ ở mức thụ động
(mức cao).
+ Vcc, GND: AT89S52 dùng nguồn một chiều có dải điện áp từ 4V –
5.5V được cấp qua chân 40 (Vcc) và chân 20 (GND).
1.3. Các linh kiện được sử dụng
1.3.1 led 7 thanh
• Tổng quan

SVTH: Nhóm 8


Page 7


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

GVHD: Đỗ Duy Phú

Led 7 đoạn có cấu tạo bao gồm 7 led đơn có dạng thanh xếp theo hình
và có thêm một led đơn hình tròn nhỏ thể hiện dấu chấm tròn ở góc dưới, bên
phải của led 7 đoạn.
8 led đơn trên led 7 đoạn có Anode(cực +) hoặc Cathode(cực -) được nối
chung với nhau vào một điểm, được đưa chân ra ngoài để kết nối với mạch điện.
8 cực còn lại trên mỗi led đơn được đưa thành 8 chân riêng, cũng được đưa ra
ngoài để kết nối với mạch điện. Nếu led 7 đoạn có Anode(cực +) chung, đầu
chung này được nối với +Vcc, các chân còn lại dùng để điều khiển trạng thái
sáng tắt của các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 0.
Nếu led 7 đoạn có Cathode(cực -) chung, đầu chung này được nối xuống
Ground (hay Mass), các chân còn lại dùng để điều khiển trạng thái sáng tắt của
các led đơn, led chỉ sáng khi tín hiệu đặt vào các chân này ở mức 1.

SVTH: Nhóm 8

Page 8


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

GVHD: Đỗ Duy Phú


Vì led 7 đoạn chứa bên trong nó các led đơn, do đó khi kết nối cần đảm
bảo dòng qua mỗi led đơn trong khoảng 10mA-20mA để bảo vệ led. Nếu kết nối
với nguồn 5V có
thể hạn dòng bằng
điện trở 330Ω trước
các chân nhận tín
hiệu điều khiển.

Sơ đồ vị trí các led
Các điện trở 330Ω là các điện trở bên ngoài được kết nối để giới hạn dòng
điện qua led nếu led 7 đoạn được nối với nguồn 5V.
Chân nhận tín hiệu a điều khiển led a sáng tắt, ngõ vào b để điều khiển led b.
Tương tự với các chân và các led còn lại.
• Kết nối với Vi điều khiển
Ngõ nhận tín hiệu điều khiển của led 7 đoạn có 8 đường, vì vậy có thể
dùng 1 Port nào đó của Vi điều khiển để điều khiển led 7 đoạn. Như vậy led 7
đoạn nhận một dữ liệu 8 bit từ Vi điều khiển để điều khiển hoạt động sáng tắt
của từng led led đơn trong nó, dữ liệu được xuất ra điều khiển led 7 đoạn thường
được gọi là "mã hiển thị led 7 đoạn". Có hai kiểu mã hiển thị led 7 đoạn: mã
dành cho led 7 đoạn có Anode(cực +) chung và mã dành cho led 7 đoạn có
SVTH: Nhóm 8

Page 9


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

GVHD: Đỗ Duy Phú

Cathode(cực -) chung. Chẳng hạn, để hiện thị số 1 cần làm cho các led ở vị trí b

và c sáng, nếu sử dụng led 7 đoạn có Anode chung thì phải đặt vào hai chân b và
c điện áp là 0V(mức 0) các chân còn lại được đặt điện áp là 5V(mức 1), nếu sử
dụng led 7 đoạn có Cathode chung thì điện áp(hay mức logic) hoàn toàn ngược
lại, tức là phải đặt vào chân b và c điện áp là 5V(mức 1).
Bảng mã hiển thị led 7 đoạn:




Phần cứng được kết nối với 1 Port bất kì của Vi điều khiển, để thuận tiện cho
việc xử lí về sau phần cứng nên được kết nối như sau: Px.0 nối với chân a, Px.1
nối với chân b, lần lượt theo thứ tự cho đến Px.7 nối với chân h.
Dữ liệu xuất có dạng nhị phân như sau : hgfedcba
Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Anode chung (các led đơn
sáng ở mức 0):

Số hiển thị trên led Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn dạng
7 đoạn
dạng nhị phân
thập lục phân
hgfedcba
0
11000000
C0
1
11111001
F9
2
10100100
A4

3
10110000
B0
4
10011001
99
5
10010010
92
6
11000010
82
7
11111000
F8
8
10000000
80
9
10010000
90
A
10001000
88
B
10000011
83
C
11000110
C6

D
10100001
A1
E
10000110
86
F
10001110
8E
10111111
BF
SVTH: Nhóm 8

Page 10


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

GVHD: Đỗ Duy Phú

Bảng mã hiển thị led 7 đoạn dành cho led 7 đoạn có Cathode chung (các led đơn
sáng ở mức 1):

Số hiển thị trên led Mã hiển thị led 7 đoạn Mã hiển thị led 7 đoạn dạng
7 đoạn
dạng nhị phân
thập lục phân
0
00111111
3F

1
00000110
06
2
01011011
5B
3
01001111
4F
4
01100110
66
5
01101101
6D
6
01111101
7D
7
00000111
07
8
01111111
7F
9
01101111
6F
A
01110111
77

B
01111100
7C
C
00111001
39
D
01011110
5E
E
01111001
79
F
01110001
71
01000000
40

1.3.2. Tụ điện.
Tụ điện là một linh kiện thụ động cấu tạo của tụ điện là hai bản cực bằng
kim loại ghép cách nhau một khoảng d ở giữa hai bản tụ là dung dịch hay chất
điện môi cách điện có điện dung C. Đặc điểm của tụ là cho dòng điện xoay
chiều đi qua, ngăn cản dòng điện một chiều.

SVTH: Nhóm 8

Page 11


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


GVHD: Đỗ Duy Phú

Hình 1.12: Tụ điện

Khi tụ nạp điện thì tụ sẽ bắt đầu nạp điện từ điện áp là 0V tăng dần đến điện
áp UDC theo hàm số mũ đối với thời gian t. Điện áp tức thời trên hai đầu tụ của
tụ được tính theo công thức:
Uc (t) = UDC(1-e-t/τ).
Khi tụ xả điện thì điện áp trên tụ từ trị số VDC sẽ giảm dần đến 0V theo hàm
số mũ đối với thời gian t. Điện áp trên hai đầu tụ khi xả được tình theo công
thức:
Uc (t)= UDC.e-t/τ
Trong đó:
t: thời gian tụ nạp, đơn vị là giây (s).
e = 2,71828
τ =RC (đơn vị là –s)
Công thức tính điện dung của tụ:
C = ε.S/d
ε: là hằng số điện môi
s: là điện tích bề mặt tụ m2
d: là bề giày chất điện môi
1.3.3 Điện trở.

Hình 1.12 : Điện trở
SVTH: Nhóm 8

Page 12



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

GVHD: Đỗ Duy Phú

Điện trở là linh kiện thụ động có tác dụng cản trở cả dòng và áp.Điện trở
đựơc sử dụng rất nhiều trong các mạch điện tử.
Điện trở của dây dẫn có trị số điện trở lớn hay nhỏ tùy thuộc vào vật liệu làm
dây, tỉ lệ thuận với chiều dài và tỉ lệ nghịch với tiết diện dây dẫn. Công thức
tính:
R =ρℓ/S

hoặc

R=U/I

Trong đó :
ρ: là điện trở suất của vật liệu, Ωm hay Ωmm2/m
S: là tiết diện của dây, m2 hay mm2
ℓ : là chiều dài của dây (m).
R : điện trở, Ohm (Ω).
Điện trở có đơn vị tính là Ohm, viết tắt là Ω.
1.3.4.Opto
Trong điện-điện tử, opto còn gọi là bộ cách ly quang (opto-isolator),
là một linh kiện dùng để truyền tín hiệu điện bằng cách chuyển tín hiệu
sang ánh sáng và sau đó mới truyền đi. Mục đích là để tạo ra sự cách ly
về điện giữa đầu vào và đầu ra. Cấu tạo của opto gồm một LED phát và
một LED thu là photo diot hay photo transitor, cả hai được tích hợp nằm
bên trong một vỏ bọc kín.
Opto rất hay được sử dụng trong các hệ thống điện-điện tử công
suất lớn, dùng để ngăn các xung điện áp cao hay các phần mạch điện

công suất lớn có thể làm hư hỏng các ngõ điều khiển công suất nhỏ trên
một bo mạch (như các các ngõ ra của Vi Xử Lý).
Sơ đồ nguyên lý của một opto như sau:

SVTH: Nhóm 8

Page 13


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

GVHD: Đỗ Duy Phú

Cách bố trí LED phát và LED thu bên trong của opto-coupler:

Nguyên lý hoạt động:
Khi có dòng nhỏ đi qua 2 đầu của led có trong opto làm cho LED
phát sáng. Khi LED phát sáng làm thông hai cực của photo diot, mở cho
dòng điện chạy qua.

1.3.5.IC MAX232

SVTH: Nhóm 8

Page 14


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

GVHD: Đỗ Duy Phú


Max232 là IC chuyên dùng cho giao tiếp giữa RS232 và thiết bị ngoại vi.
Max232 là IC của hãng Maxim. Đây là IC chay ổn định và được sử dụng phổ
biến trong các mạch giao tiếp chuẩn RS232. Giá thành của Max232 phù hợp
(12K hay 10K) và tích hợp trong đó hai kênh truyền cho chuẩn RS232. Dòng
tín hiệu được thiết kế cho chuẩn RS232 . Mỗi đầu truyền ra và cổng nhận tín
hiệu đều được bảo vệ chống lại sự phóng tĩnh điện ( hình như là 15KV). Ngoài
ra Max232 còn được thiết kế với nguồn +5V cung cấp nguồn công suất nhỏ.

SVTH: Nhóm 8

Page 15


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

GVHD: Đỗ Duy Phú

Chương 2 Xây dựng hệ thống
2.1. Sơ đồ khối và mạch nguyên lý
a.sơ đồ khối , nguyên lý

SVTH: Nhóm 8

Page 16


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

GVHD: Đỗ Duy Phú


2.2. Xây dựng thuật toán


Chương trình chính
TO

Chương trình ngắt
Timer0

Chương trình tính tần
số

HEX to BCD

Cảnh báo

Hiển thị

RET

SVTH: Nhóm 8

Page 17


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

GVHD: Đỗ Duy Phú


Chương trình con

Chương trình ngắt
Timer 0

T_up =T_up+1

T_up = T_lm

FREQ_H = TH1
FREQ_L = TL1

TH0 = (-10000)/256
TL0 = (-10000)%256

RET

SVTH: Nhóm 8

Page 18


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

GVHD: Đỗ Duy Phú

Chương trình tính
Tần số

FH= (FREQ_H,FREQ_L)/T_lm


FL= (FREQ_H,FREQ_L)*100/T_lm
(Lấy 2 số sau dấu ‘,’)

RET

SVTH: Nhóm 8

Page 19


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

GVHD: Đỗ Duy Phú

Chương trình hiển
thị

FH/10

P2.0=1
P0=maled(a)
Delay( )
P2.0=0
P2.1= 1
P0= maled(b)
Delay( )
P2.1 =0
FL/10


P2.2=1
P0 = maled (a)
Delay ( )
P2.2=0
P2.3 =1
P0 = maled (b)
Delay ( )
P2.3 =0

RET

SVTH: Nhóm 8

Page 20


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

GVHD: Đỗ Duy Phú

2.3. Viết chương trình
;-------------bai tap lon nhom 8-------------------;-------------vector-------------------------------org 0000h
ljmp main
;nhay den chuong trinh main ngay sau khi MCU chay
;-------chuong trinh phuc vu ngat------------------SVTH: Nhóm 8

Page 21


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

org 0003h
ljmp INT_EX0

GVHD: Đỗ Duy Phú

;ngat ngoai INT0

org 000bh
ljmp INT_T0
hien thi gia tri tan so do duoc

;nhay den ngat Timer0 trong nay se tinh toan va

;-------------khai bao bien------------------------FREQ_H equ 30h
FREQ_L equ 31h
FH equ 32h
FL equ 33h
X2
X1
X0

equ
equ
equ

40h
41h
42h

Y2

Y1
Y0

equ
equ
equ

43h
44h
45h

Z0
Z1
Z2
Z3
Z4
Z5

equ
equ
equ
equ
equ
equ

46h
47h
48h
49h
4ah

4bh

shf

equ

34h

;chon led de quet

thp2 equ
thp1 equ
dv
equ
ch
equ
digit equ
T_up equ
T_lm equ
F_Max
F_Min

50h
51h
52h
53h
54h
36h
37h
equ

equ

;hang chuc cua tan so
;hang don vi cua tan so
;chu so sau dau ',' thu nhat
;chu so sau dau ',' thu hai

ZOV equ
ON equ

00h
P1.4

SVTH: Nhóm 8

;100:9 11 du 1*100=100/911

38h
58h

;100*10 ms lay mau mot lan
;nguong tren
;nguong duoi

Page 22


BÀI TẬP LỚN:VI XỬ LÝ
OFF equ
CB_Cao

CB_Thap

P1.5
equ P1.6
equ P1.7

GVHD: Đỗ Duy Phú

;LED bao vuot nguong cao
;LED bao vuot nguong thap

;--------chuong trinh chinh-------------------------org

0030h

main:
lcall Init
KT_ON:
jb
setb
KT_OFF:
jb
clr
sjmp

ON,KT_OFF
EX0
OFF,KT_ON
EX0
KT_ON


;cho phep ngat ngoai INT0
;cho phep ngat ngoai INT0

;-----------------------------------------------------------------------------;--------chuong trinh con-----------------------------------------------------;-----------------------------------------------------------------------------Init:
mov P1,#0ffh
clr
EA
;cam tat ca cac ngat
mov digit,#0f7h
;bat led thp2 dau tien
mov P2,#0ffh
mov P0,#0ffh
;tat tat ca cac led
mov P1,#0ffh
mov T_up,#0
mov T_lm,#100
;t = T_lm*10ms
mov F_Max,#55
;dat can tren canh bao
mov F_Min,#45
;dat can duoi canh bao
mov shf,#thp2
;byte de dieu khien hien thi cac led 7 thanh
mov TMOD,#11h
;khoi tao timer0,timer1 o che do 16 bit
mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
;khoi tao ngat 10ms de tinh toan va hien
thi

mov TH1,#00h
mov TL1,#00h
setb
setb
setb
setb
SVTH: Nhóm 8

IT0
PX0
ET0
TF0

;thiet lap ngat ngoai theo suon xuong
;cho piority cua INT0 cao nhat
;cho phep ngat ngoai Timer1
;dung co bao ngat
Page 23


BÀI TẬP LỚN:VI XỬ LÝ
setb tr0
setb tr1
setb EA
ret

GVHD: Đỗ Duy Phú
;khoi dong Timer0

;---------chuong trinh phuc vu ngat ngoai INT0--------INT_EX0:

clr
EA
mov FREQ_H,TH1
mov FREQ_L,TL1
mov TH1,#00h
mov TL1,#02h ;xoa bo dem nay de bat dau dem chu ki moi
setb EA
reti
;---------chuong trinh phuc vu ngat timer0------------INT_T0:
clr
TF0
;xoa co tran
mov a,T_up
inc a
;tang t_up
mov T_up,a
cjne a,T_lm,ko_update ;kiem tra neu t_up = t_lm thi update lai du lieu
neu khong thi thoi
mov T_up,#0
;xoa t_up chuan bi cho lan tinh tiep theo
lcall Tinh_tanso
;goi chuong trinh tinh tan so
ko_update:
lcall canhbao
; kiem tra tan so va canh bao neu nam
ngoai nguong
lcall HextoBcd
;chuyen doi gia tri tan so sang ma BCD de hien
thi
lcall Hienthi

;goi hien thi
exit:
mov TH0,#HIGH(-10000)
mov TL0,#LOW(-10000)
reti
;-----------------------------------------------------------------------------;-----------Tinh tan so-------------------------------------------------------;-----------------------------------------------------------------------------Tinh_tanso:
;-----------khi thuc hien cac lenh trong ngat INT0 thi se ton mot so chu ki may vi
vay phai cong them
SVTH: Nhóm 8

Page 24


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

GVHD: Đỗ Duy Phú

;-----------gia tri dem duoc trong timer 1 voi so chu ki tren de dam bao do chinh
xac nhat
;-----------do viec gia tri tan so do la khong lon(50Hz) vi vay ma co the bo qua
duoc mot so chu ki thuc hien
;-----------cac lenh trong chuong trinh ngat nhu lenh nhay toi chuong trinh phuc
vu ngat, cac lenh xoa bo dem
mov X2,#0fh
mov X1,#42h
mov X0,#40h

;dat so bi chia =1000000

mov Y2,#0

mov Y1,FREQ_H
mov Y0,FREQ_L
;--------tinh phan nguyen cua tan so----------------------lcall DIV24
mov FH,Z0
;--------tinh phan thap phan------------------------------mov X1,Z4
mov X0,Z3
mov Y0,#100
lcall Mul2byte_voi_1byte
mov X0,Z0
mov X1,Z1
mov X2,Z2

;chuyen gia tri tich vao lam so bi chia

mov Y2,#0
;so chia
mov Y1,FREQ_H
mov Y0,FREQ_L
mov
mov
mov
lcall

Z0,#0
Z1,#0
Z2,#0
DIV24

;xoa thuong


mov FL,Z0
ret
;-----------------------------------------------------------------------------;------------chuyen doi gia tri dem duoc ra BCD de hien thi-------------------SVTH: Nhóm 8

Page 25


×