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

SỬ DỤNG LẬP TRÌNH C ,ĐO TỐC ĐỘ ĐỘNG CƠ,SỬ DỤNG 89C51 HIỂN THỊ TRÊN LED 7 ĐOẠN

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 (1.04 MB, 27 trang )

Ths nguyen thu ha

Mục lục
Lời mở đầu
Chương 1 :tìm hiểu về 89C51RD2 và các thiết bị liên
quan
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.7.

giới thiệu tổng quan về 89C51
Giới thiệu về encoder
Giới thiệu LED 7 thanh
tụ điện
điện trở
Thạch anh dao động
điện trở treo

1


Ths nguyen thu ha

Lời mở đầu
Ngày nay với ứng dụng không ngừng của khoa học kĩ thuật
,thế giới chúng ta đang thay đổi không ngừng . Trong đó với sự
phát triển không ngừng của ngành kĩ thuật vi xử lý và vi điều


khiển giúp cho chúng ta có thể thực hiện được nhiều công việc
khác nhau phục vụ cho nhu cầu của con người .Nó mang đến
cho chúng ta thấy được độ chính xác cao ,tốc độ xử lý
nhanh,gọn nhẹ .
Một trong những ứng dụng quan trọng của vi điều khiển là việc
đo tốc độ động cơ sử dụng encoder ,đây là một ứng dụng được
sử dụng rất rộng rãi trên thực tế với việc kết nối một 89C51 với
encoder hiển thị trên 4 led bảy thanh . đồng thời sử dụng mạch
truyền thông chuẩn RS_232,có sử dụng them các thiết bị cảnh
báo và các nút bật tắt .Chính vì sự hữu ích trong việc sử dụng
89C51 cho ứng dụng này mà nhóm chúng em đã nhận đề tài
trên để mong có thể đi sâu và nghiên cứu kĩ hơn những ứng
dụng của chúng .Với lượng kiến thức có hạn không thể nào che
lấp được hết những sai xót và khuyết điểm trong quá trình làm
đề tài vì vậy chúng em kính mong cô sẽ góp ý và giúp đỡ chúng
em nhiều hơn nữa.

HÀ NỘI,ngày ..tháng...,2017

2


Ths nguyen thu ha

Chương 1 giới thiệu tổng quan các thiết bị
1.1 giới thiệu tổng quan về 89C51
AT89C51 là vi điều khiển do Atmel sản xuất, chế tạo theo
công nghệ
CMOS có các đặc tính như sau:
+,4 Kbyte ROM (Flash Programmable and Erasable Read

Only Memory), có khả năng thực hiện 1000 chu kì ghi xóa .
+,Tần số hoạt động 0-24 MHz
+,3 mức khóa bộ nhớ lập trình
+,128 Kbyte RAM nội
+,4 port xuất/nhập 8 bit
+,2 bộ đếm định thời Timer/counter 16 BIT
+, 6 Nguồn ngắt
+,Giao tiếp nối tiếp bằng phần cứng
+, 64 KB vùng nhớ mã ngoài
+ 64 KB vùng nhớ dữ liệu ngoài
+ Cho phép xử lý bit.
+ 210 vị trí nhớ có thể định vị bit
+ 4 chu kỳ máy (4 µs đối với thạch anh 12MHz) cho hoạt
động nhân hoặc chia.

3


Ths nguyen thu ha

Hình 1.1 Cấu trúc chung của họ 89C51
 Các chức năng của 89C51
+,chân EA/ trên chân 31 thường đặt ở mức cao (+5v).Nếu ở
mức cao thì 89C51 thi hành chương trình từ ROM trong khoảng
địa chỉ thấp .Nếu ở mức thấp ,chương trình được thi hành từ bộ
nhớ mở rộng .
+,Chân PSEN là chân tín hiệu ra trên chân 29 .Nó là tín hiệu
điều khiển cho phép chương trình mở rộng ,chân PSEN thường
được nối với chân OE/ (output enable ) của các bộ nhớ để đọc
các bytes mã lệnh

Hãy nhớ rằng : bình thường chân /PSEN sẽ được thả trống ( No
Connect).Chỉ khi nào cho /EA ở mức thấp thì lúc đó: /PSEN sẽ ở
mức thấp trong thời gian lấy lệnh. Các mã nhị phân của chương
trình được lấy từ EPROM qua bus dữ liệu và được chốt vào thanh
ghi lệnh của 8951 để giải mã lệnh. /PSEN ở mức thụ động (mức
cao) nếu thi hành chương trình trong ROM nội của 8951.
89C51 hoạt động với nguồn 5V được nối với chân 40 của vi điều
khiển ,chân 20 nối với nguồn
CỔNG VÀO RA
Tất cả các vi điều khiển 8051 đều có 4 cổng vào /ra 8 bit có thể
thiết lập như cổng vào hoặc ra .Như vậy có 32 chân vào ra cho
phép kết nối với các thiết bị ngoại vi :
Port 0 ;Port 0 là port có 2 chức năng ở các chân 32 – 39 của
89C51 :
+,chức năng xuất /nhập :dùng cho các thiết kế nhỏ .Tuy nhiên
khi dùng với chức năng này thì các chân phải được nối với các
điện trở kéo lên ,
+ khi dùng làm ngõ vào thì port phải được set với mức logic 1
trước đó .
4


Ths nguyen thu ha

+,chức năng địa chỉ /dữ liệu đa hợp :khi dùng cho các thiết kế
lớn thì port vừa có chức năng là bus dữ liệu ,vừa là bus địa chỉ
giúp mở rộng địa chỉ bộ nhớ .
Port 1 (chân 1 – 8) chỉ có một chức năng I/O,không dùng cho
các mục đích khác (chỉ trong 8032/8052/8952 thì dùng thêm
P1.0 và P1.1 cho bộ định thời thứ 3).Tại Port có các điện trở kéo

lên không cần các điện trở ngoài
Khi dùng làm ngõ ngoài thì cần set port 1 lên mức logic 1
Port 2: Port 2 (chân 21 – 28) là port có 2 chức năng: + Chức
năng I/O (xuất / nhập) + Chức năng địa chỉ: dùng làm 8 bit địa
chỉ cao khi cần bộ nhớ ngoài có địa chỉ 16 bit. Khi đó, Port 2
không được dùng cho mục đích I/O. + Khi dùng làm ngõ vào,
Port 2 phải được set mức logic 1 trước đó.
Port 3: Port 3 (chân 10 – 17) là port có 2 chức năng: + Chức
năng I/O. Khi dùng làm ngõ vào, Port 3 phải được set mức logic
1 trước đó. + Chức năng khác: mô tả như sau:
Bit

Tên

Chức năng chuyển đổi

P3.0

RXT

Ngõ vào dữ liệu nối tiếp.

P3.1

TXD

Ngõ xuất dữ liệu nối tiếp.

P3.2


INT0\

Ngõ vào ngắt cứng thứ 0.

P3.3

INT1\

Ngõ vào ngắt cứng thứ 1.

P3.4

T0

Ngõ vào của TIMER/COUNTER thứ 0.

P3.5

T1

Ngõ vào của TIMER/COUNTER thứ 1.

P3.6

WR\

Tín hiệu ghi dữ liệu lên bộ nhớ ngoài.

P3.7


RD\

Tín hiệu đọc bộ nhớ dữ liệu ngoài.

Bảng 1.1. Chức năng các chân của port 3
1.2 Giới thiệu về encoder
 ,encorder là thiết bị điện cơ dùng để biến đổi các vị trí góc
của trục quay từ giá trị analog sang mã digital.Đĩa quay có
thể là bánh xe , trục động cơ,hoặc bất kỳ thiết bị quay nào
cần xác định vi trí góc.
+,encoder được xem như là một thiết bị dùng để chuyển đổi
5


Ths nguyen thu ha

 Phân loại encoder.
+,absolute encoder
+, incremental encoder.
 Nguyên lý cơ bản của encoder
+,Nguyên lý cơ bản của encoder
Đó là một đĩa xoay tròn .Trên đĩa có các lỗ (rãnh).Người ta
dùng 1 đèn led để chiếu lên mặt đĩa .Khi đĩa quay ,chỗ
không có lỗ ,đèn led không chiếu xuyên qua được ,chỗ có lỗ
đèn led chiếu xuyên qua được .Khi đó phía mặt bên kia của
đĩa ,người ta đặt một mắt thu để thu tín hiệu .Với tín hiệu của
đèn led chiếu qua ,người ta ghi nhận được đèn led có chiếu
qua chỗ có lỗ hay không.
Khi trục quay, giả sử trên đĩa chỉ có một vòng duy nhất có
100 lỗ, cứ mỗi lần con mắt thu nhận được 100 tín hiệu đèn

led, thì có nghĩa là đĩa đã quay được một vòng.Tuy nhiên
những vấn đề được đặt ra là làm sao để xác định chính xác vị
chí của đĩa quay và làm thế nào để xác định được chính xác
đĩa quay đang quay theo chiều nào ?đó chính là vấn đề
chúng ta cần làm rõ.
Nhận thấy một điều rằng, encoder tuyệt đối rất có lợi cho
những trường hợp khi góc quay là nhỏ, và động cơ không
quay nhiều vòng. Khi đó, việc xử lý encoder tuyệt đối trở nên
dễ dàng cho người dùng hơn, vì chỉ cần đọc giá trị là chúng ta
biết ngay được vị trí góc của trục quay.
Tuy nhiên, nếu động cơ quay nhiều vòng, điều này không có
lợi, bởi vì khi đó, chúng ta phải xử lý để đếm số vòng quay
của trục.
Ngoài ra, như các bạn thấy đó, nếu thiết kế encoder tuyệt
đối, chúng ta cần quá nhiều vòng lỗ, và dẫn tới giới hạn về
kích thước của encoder, bởi vì việc gia công chính xác các lỗ
quá nhỏ là không thể thực hiện được. Chưa kể rằng việc thiết
kế một dãy đèn led và con mắt thu cũng ảnh hưởng rất lớn

6


Ths nguyen thu ha

đến kích thước giới hạn này.

Các bạn thấy rằng ,cứ mỗi lần quay qua một lỗ ,thì
encoder sẽ tang một đơn vị trong biến đếm .
Tuy nhiên làm sao chúng ta biết được rằng encoder đã
quay hết một vòng .Vì thế người ta đưa ra 1 lỗ định vị để đếm

số vòng đã quay của encoder

Tuy nhiên một vấn đề nữa là làm sao chung ta biết được
encoder đang quay theo chiều nào ? bởi vì cho dù nó đang quay
theo chiều nào thì tín hiệu encoder cũng chỉ là các xung đơn lẻ
và xoay theo hai chiều đều giống nhau.
7


Ths nguyen thu ha

Chính vì vậy người ta đặt them một vòng lỗ ở giữa vòng lỗ thứ
nhất và lỗ định vị

1.3 Giới thiệu LED 7 thanh
Led 7 đoạn có cấu tạo bao gồm 7 led đơn xếp theo hình phía
trên 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 thanh.
- 8 led đơn trên led 7 thanh có Anode (cực +) hoặc Cathode (cực
-) được nối chung với nhau vào một điểm và được đưa chân ra
ngoài để kết nối với mạch điện. 7 cực còn lại trên mỗi led đơn
của led 7 đoạn và 1 cực trên led đơn ở góc dưới, bên phải của
led 7 đoạn được đưa thành 8 chân riêng để điều khiển cho led
sáng tắt theo ý muố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.
Bảng 1.2. Các hệ mã thông dụng:

8


Ths nguyen thu ha

Mã led 7 thanh cho anod chung ,muốn thanh nào sáng ta xuất
chân catot của LED đơn đó mức 0.

Mã LED 7 thanh có catot chung ,muốn thanh nào sáng ta xuất
ra chân anod của LED đơn có mức logic là 1:

9


Ths nguyen thu ha

1.4 tụ điện
Tụ điện là một loại linh kiện điện tử thụ động tạo bởi hai bề
mặt dẫn điện được ngăn cách bởi điện môi. Khi có chênh
lệch điện thế tại hai bề mặt, tại các bề mặt sẽ xuất điện
tích cùng điện lượng nhưng trái dấu.[1]
Sự tích tụ của điện tích trên hai bề mặt tạo ra khả năng tích
trữ năng lượng điện trường của tụ điện. Khi chênh lệch điện
thế trên hai bề mặt là điện thế xoay chiều, sự tích luỹ điện
tích bị chậm pha so với điện áp, tạo nên trở kháng của tụ
điện trong mạch điện xoay chiều.

Về mặt lưu trữ năng lượng, tụ điện có phần giống với ắc qui.
Mặc dù cách hoạt động của chúng thì hoàn toàn khác nhau,
nhưng chúng đều cùng lưu trữ năng lượng điện. Ắc qui có 2
cực, bên trong xảy ra phản ứng hóa học để tạo ra electron ở
cực này và chuyển electron sang cực còn lại. Tụ điện thì đơn
giản hơn, nó không thể tạo ra electron - nó chỉ lưu trữ chúng.
Tụ điện có khả năng nạp và xả rất nhanh. Đây là một ưu thế
của nó so với ắc qui.

10


Ths nguyen thu ha

Hình 1.2 :Ảnh tụ điện
Điện dung là đại lượng vật lý nói lên khả năng tích điện giữa
hai bản cực của tụ điện. Điện dung của tụ điện phụ thuộc
vào diện tích bản cực, vật liệu làm chất điện môi và khoảng
cách giữ hai bản cực theo công thức:
C=ε.


Với:



C: là điện dung tụ điện, đơn vị là Fara [F]




ε: Là hằng số điện môi của lớp cách điện;



ε0: Là hằng số điện thẩm;



d: là chiều dày của lớp cách điện;



S: là diện tích bản cực của tụ điện.
1. điện trở

Điện trở kháng là đại lượng vật lý đặc trưng cho tính chất cản
trở dòng điệncủa vật liệu. Điện trở kháng được định nghĩa là tỉ
số của hiệu điện thế giữa hai đầu vật thể đó với cường độ đòn
điện đi qua nó
R=
U là hiệu điện thế (V)
11


Ths nguyen thu ha

I là dòng điện (A)
R là điện trở (Ω)

Hình 1.3 Điện trở

điện trở của dây dẫn còn được xác định bằng
R=
Với
Ρ là điện trở xuất
L chiều dài cuộn dây
S là tiết diện
1.6 Thạch anh dao động
Thạch anh (silic dioxit ,Sio2) hay còn gọi là thủy ngọc[1] là một
trong số những khoáng vật phổ biến trên trái đất Thạch anh
được cấu tạo bởi một mạng liên tục các tứ diện silic-oxi (SiO4),
trong đó mỗi oxy chia sẻ giữa hai tứ diện nên nó có công thức
chung là Sio2
Thạch anh được sử dụng trong nhiều lĩnh vực khác nhau: điện tử
,quang học,... và trong ngọc học. Các tinh thể thạch anh trong
suốt có màu sắc đa dạng: tím, hồng, đen, vàng,... và được sử
dụng làm đồ trang sức từ rất xa xưa. Ametit loại biến thể màu
12


Ths nguyen thu ha

tím của thạch anh được coi là đá quý của tháng hai và là loại
được ưa chuộng nhất của họ thạch anh.

Hình 1.4. Ảnh tinh thể thạch anh
1.7 điện trở treo
Các điện trở treo được thay bằng điện trở thanh 9 chân ,sử dụng
điện trở treo giúp cho việc thiết kế mạch trở lên đơn giản hơn,
điện trở treo 9 chân thực chất là 8 điện trở có cùng giá trị với
nhau với mỗi đầu của điện trở được nối với nhau và đầu chung

này được đưa ra bằng 1 chân nữa .Khi nhìn điện trở treo thì đầu
nào có dấu chấm tròn ,thì chân ngoài cùng của phía đó là chân
chung .Thông thương chân này được nối với Vcc

13


Ths nguyen thu ha

Hình 1.5. ảnh điện trở treo

1.8. cổng truyền thông RS232
A, Ngày nay các thiết bị đo lường, điều khiển ... đều phải giao
tiếp với máy tính để quan sát thông số và chế độ hoạt động của
thiết bị như thế nào? Chuẩn giao tiếp được coi là đơn giản và dễ
dùng đó là cổng RS232. Hầu như các thiết bị đều được giao tiếp
với máy tính thông qua chuẩn này

Hình 1.6. ảnh chuẩn truyền thông RS232
Vấn đề giao tiếp giữa PC và vi điều khiển rất quan trọng trong
các ứng dụng điều khiển, đo lường... Ghép nối qua cổng nối tiếp
RS232 là một trong những kỹ thuật được sử dụng rộng rãi để
ghép nối các thiết bị ngoại vi với máy tính.Nó là một chuẩn giao
tiếp nối tiếp dùng định dạng không đồng bộ, kết nối nhiều nhất
là 2 thiết bị , chiều dài kết nối lớn nhất cho phép để đảm bảo dữ
liệu là 12.5 đến 25.4m, tốc độ 20kbit/s đôi khi là tốc độ
115kbit/s với một số thiết bị đặc biệt. Ý nghĩa của chuẩn truyền
thông nối tiếp nghĩa là trong một thời điểm chỉ có một bit được
gửi đi dọc theo đường truyền.
Có hia phiên bản RS232 được lưu hành trong thời gian tương

14


Ths nguyen thu ha

đối dài là RS232B và RS232C. Nhưng cho đến nay thì phiên bản
RS232B cũ thì ít được dùng còn RS232C hiện vẫn được dùng và
tồn tại thường được gọi là tên ngẵn gọn là chuẩn RS232
Các máy tính thường có 1 hoặc 2 cổng nối tiếp theo chuẩn
RS232C được gọi là cổng Com. Chúng được dùng ghép nối cho
chuột, modem, thiết bị đo lường...Trên main máy tính có loại 9
chân hoặc lại 25 chân tùy vào đời máy và main của máy tính.
Việc thiết kế giao tiếp với cổng RS232 cũng tương đối dễ dàng,
đặc biệt khi chọn chế độ hoạt động là không đồng bộ và tốc độ
truyền dữ liệu thấp.
- Ưu điểm của giao diện nối tiếp RS232
+ Khả năng chống nhiễu của các cổng nối tiếp cao
+ Thiết bị ngoại vi có thể tháo lắp ngay cả khi máy
tính đang được cấp điện
+ Các mạch điện đơn giản có thể nhận được điện áp
nguồn nuôi qua công nối tiếp
Những đặc điểm cần lưu ý trong chuẩn RS232
+ Trong chuẩn RS232 có mức giới hạn trên và dưới
(logic 0 và 1) là +-12V. Hiện nay đang được cố định
trở kháng tải trong phạm vi từ 3000 ôm - 7000 ôm
+ Mức logic 1 có điện áp nằm trong khoảng -3V đến
-12V, mức logic 0 từ +-3V đến 12V
+ Tốc độ truyền nhận dữ liệu cực đại là 100kbps
( ngày nay có thể lớn hơn)
+ Các lối vào phải có điện dung nhỏ hơn 2500pF

+ Trở kháng tải phải lớn hơn 3000 ôm nhưng phải nhỏ
hơn 7000 ôm
+ Độ dài của cáp nối giữa máy tính và thiết bị ngoại
vi ghép nối qua cổng nối tiếp RS232 không vượt qua
15m nếu chúng ta không sử model
+ Các giá trị tốc độ truyền dữ liệu chuẩn :
50,75,110,750,300,600,1200,2400,4800,9600,19200,
28800,38400....56600,115200 bps
B, Sơ đồ ghép nối RS232
Có rất nhiều mạch giao tiếp của RS232 giữa vi điều khiển hay
các thiết bị khác. Dưới đây là những mạch giao tiếp thường
được dùng.
1) Mạch chuẩn giao RS232 dùng IC Max232
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
15


Ths nguyen thu ha

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ỏ.
Mạch giao tiếp như sau :


Hình 1.7 ảnh ghép nối RS232 dùng IC MAX232
Chương 2 :xây dựng lưu đồ thuật toán
1. Tính toán lựa chọn thiết bị
- Hệ thống gồm có vi điều khiển 89C51RD2, mạch truyền
thông chuẩn RS_232(vi mạch MAX232), 4 led 7 thanh,
cảmbiến đo tốc độ động cơ, loa cảnh báo ngưỡng cao,
thấp, nút ấn RUN and STOP.
- Dùng transistor NPN phục vụ cho quá trình quét led
- Dùng 1 chiết áp để thay đổi điện áp cấp nguồn cho động
cơ để thay đổi tốc độ của động cơ.

16


Ths nguyen thu ha

2. Xây dựng mạch nguyên lý
Theo yêu cầu của bài toán là hiển thị số đo tốc độ động cơ dùng encoder
lên led 7 thanh nên ta có thể sử dụng mạch nguyên lý như hình dưới.

Thuyết minh hoạt động của mạch:
Sau khi cấp nguồn mạch và động cơ, ấn RUN động cơ bắt đầu
chạy và vi điều khiển thực hiện đo tốc độ động cơ và hiển thị
lên mà hình 4 led 7 thanh. Cứ 1s vi điều khiển sẽ cập nhật tốc
độ động cơ 1 lần. Chu trình kết thúc khi ấn nút STOP, hệ thống
sẽ lưu lại giá trị cuối cùng đo được.
3. Xây dựng thuật toán

4. Kết quả mô phỏng
#include<regx52.h>

#define RUN P1_6
17


Ths nguyen thu ha

#define STOP P1_7
#define Outled P0
#define true 1
#define false 0
#define THx

15536/256

#define TLx 15536%256
sbit E0

= P1^0;

sbit E1

= P1^1;

sbit E2

= P1^2;

sbit E3

= P1^3;


sbit L0 = P2^0;
sbit L1 = P2^1;
sbit L2 = P2^2;
sbit L3 = P2^3;
sbit L4 = P2^1;
sbit L5 = P2^2;
sbit L6 = P2^3;
sbit L7 = P2^7;
sbit Sp = P1^5;
bit chuki=false;
unsigned char k;
unsigned int Soxung,Demxung,Vong,n,tam,cuoi;
unsigned char time=0;
unsigned char
CharCode[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x8
0,0x90};//for number 0->9
void Sys_init();
void Display(unsigned int dem);
18


Ths nguyen thu ha

void NGAT0(void) interrupt 0
{
Demxung++;
//L7=!L7;
}
void ngat_time1(void) interrupt 3

{
time++ ;//tang bien dem thoi gian
if(Demxung>0)

L7=!L7;

else if(Demxung==0) {L7=1;chuki=true;}
if(time==20)//TIME = 1s chuan
{
TR1=0;

//dung bo dinh thoi

chuki=true;

//bao het thoi gian dem xung

time=0;
}
TH1=THx;TL1=TLx;//dat cho lan sau
}
void delay_us(unsigned long int d)
{
for(n=0;n}
void Display(unsigned int dem)
{
if(dem>=999)//hien thi 4 so khi gia tri hien thi > 9999
{
L0=L1=L2=L3=0;

19


Ths nguyen thu ha

E0=0;
Outled=CharCode[dem/1000];
delay_us(1);
E0=1;
P0=0XFF;
E1=0;
Outled=CharCode[(dem%1000)/100];
delay_us(1);
E1=1;
P0=0XFF;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);
E2=1;
P0=0XFF;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
else if((dem<=999)&&(dem>99)) //hien thi 3 so khi
gia tri hien thi <999
{
L0=L1=L2=0;L3=1;

E0=1;
20


Ths nguyen thu ha

E1=0;
Outled=CharCode[(dem%1000)/100];
delay_us(1);
E1=1;
P0=0XFF;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);
E2=1;
P0=0XFF;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
else if((dem<=99)&&(dem>9)) //hien thi 2 so khi gia
tri hien thi <99
{
L0=L1=0;L2=L3=1;
E1=E0=1;
E2=0;
Outled=CharCode[(dem%100)/10];
delay_us(1);

E2=1;
P0=0XFF;
21


Ths nguyen thu ha

E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
else if((dem<=9))//hien thi 1 so khi gia tri hien thi <9
{
L0=0;L1=L2=L3=L4=L5=L6=1;
E2=E1=E0=1;
E3=0;
Outled=CharCode[dem%10];
delay_us(1);
E3=1;
P0=0XFF;
}
}
void main(void)
{
Sys_init(); // goi chuong trinh khoi tao
P2=0X00;
Sp=0;
delay_us(2000);

Sp=1;
P2=0XFF;
while(true)
{

22


Ths nguyen thu ha

if(!RUN){
tam=1;
while(!RUN);
}
if(!STOP){
tam=0;
while(!STOP);
}
if(tam==1)
{
while(!chuki)
{
Vong=Soxung/100*60; // soxung(trong 1s)*15
= so vong trong 1phut
Display(Vong);
if(Vong<=200||Vong>=2300) {P3_7=1;}
else{P3_7=0;}
};
Soxung= Demxung;//luu gia tri so xung vua
dem

Demxung=0; //dat lai so xung
TR1=1;

//dat lai thoi gian

chuki=false;
}
if(tam==0)
{
Vong=Vong ;
Display(Vong);
23


Ths nguyen thu ha

}
};
}
void Sys_init()
{
TMOD=0x10; //cho time1 chay
EX0=1;

//cho phep ngat ngoai 1

IT0=1;

//cho phep ngat suon am


TH1=THx;TL1=TLx;//dat gia tri cho time 1
TR1=1;

//dat thoi gian bat dau chay

ET1=1;

//cho phep ngat time 1

EA=1;

//cho phep ngat toan cuc

}

5. Kết quả mô phỏng

24


Ths nguyen thu ha

Chương 3 KẾT LUẬN
1.1. Kết quả đạt được
- Thiết kế được mạch với dải đo tốc độ lớn
25


×