Tải bản đầy đủ - 0 (trang)
Hình 3.8: Mạch nguồn 5V DC.

Hình 3.8: Mạch nguồn 5V DC.

Tải bản đầy đủ - 0trang

83



Chuỗi xung tạo ra bởi cảm biến lưu lượng được đưa đến mạch đếm số lít

tổng, mạch này sẽ đếm được có bao nhiêu lít đã được đổ thơng qua các IC đếm

74393 kết nối tuần tự với nhau, dung lượng tối đa của bộ đếm này là 9999 lít.

3.2.9. Cảm biến lưu lượng: (Hình 3.9).

Đ ĩa mã hóa



Đường tâm

quay

LED thu



LED phát

a) Đĩa mã hóa



Hình 3.9: Cảm biến lưu lượng.

Đĩa mã chọn loại có đườngb)kính

6cm, 50

lỗ. quang (hình chiếu

Chuyển

mạch

- Khi chất chất lỏng chảy qua ốngcạnh)

dẫn, làm quay cánh quạt, cánh quạt này

được nối với một trục đưa ra ngoài truyền động cho đĩa mã làm đĩa mã quay, qua

mạch tạo xung (bộ led phát thu hồng ngoại) và xử lý tín hiệu xung (mạch

khuếch đại tín hiệu xung) đưa vào chân T0 của vi xử lý. Ngồi ra còn có hệ

Mạch

thống bánh răng bên ngồi để làm thay đổi tốc độ quay của

đĩa mã.

hiện thị

3.2.10. Thiết kế mạch vi xử lý AT89C51: (hình 3.10).

nội

dung

bàn

phím

PA

PB

39

21

Thiết bị

P 0 .0 /A D 0

P 2 .0 /A 8

38

22

Mở

P 0 .1 /A D 1

P 2 .1 /A 9

PC ngoại vi

37

23

Mạch

P 0 .2 /A D 2

P 2 .2 /A 1 0

rộng

36

24

P 0 .3 /A D 3

P 2 .3 /A 1 1

hiện thị

35

25

P

0

.

4

/

A

D

4

P 2 .4 /A 1 2

port

34

26

P 0 .5 /A D 5

P 2 .5 /A 1 3

Tiền-Lít(P3.6)

33

27

8255

P 0 .6 /A D 6

P 2 .6 /A 1 4

32

28

Giá

(P3.7)

P 0 .7 /A D 7

P 2 .7 /A 1 5

Bàn

phím

C

1

C

2



1

2

3

4

5

6

7

8

19

18

9

31



P

P

P

P

P

P

P

P



1

1

1

1

1

1

1

1



.0

.1

.2

.3

.4

.5

.6

.7



XTA L1

XTA L2

R ST

E A /V P P

A T89C 51



P 3 .0 /R XD

P 3 .1 /T XD

P 3 .2 /IN T O

P 3 .3 /IN T 1

P 3 .4 /T O

P 3 .5 /T 1

P 3 .6 /W R

P 3 .7 /R D

PSEN

A L E /P R O G



10

11

12

13

14

15

16

17

29

30



Máy

tính

Vòi

bơm



động



Xung

vào



84



Hình 3.10: Sơ đồ khối của mạch AT89C51.

 Port 1: Giao tiếp với bàn phím.

 Port 0 :

+Khi giao tiếp với mạch hiển thị Tiền –Lít – Giá, nó hoạt động như là một

port I /O.

+Khi hoạt động ở chế độ giao tiếp với RAM, ROM ngồi nó đóng vai trò

là byte địa chỉ thấp và đồng thời cũng là đường dữ liệu.

 Port 2:

Được dùng để điều khiển việc thu phát dữ liệu của vi xử lý (bit P2.0) khi

hoạt động ở chế độ giao tiếp với RAM, ROM ngồi nó đóng vai trò là byte địa

chỉ cao, các bit còn lại có thể được dùng cho các ứng dụng mở rộng port.

 Chân TXD và RXD:

Giao tiếp nối tiếp với máy tính. Khi dữ liệu từ máy tính gửi xuống vi xử

lý được truyền xuống qua đường RXD và khi dữ liêu từ vi xử lí gửi lên máy tính

được truyền qua đường TXD .

 Chân WR , RD :

Hai chân được nối đến RAM, 8255, để ghi dữ liệu vào RAM, 8255 hay

đọc dữ liệu về từ RAM ngoài, các port của 8255…

 Chân X1 , X2:

Kết nối với mạch tạo dao động bên ngoài. Mạch tạo dao động bên ngoài

dùng thạch anh và các tụ giữ, tần số dao động của thạch anh 11,059MHz (để có

tốc độ baud chuẩn trong truyền thông nối tiếp) và giá trị của hai tụ giữ là 33pF.

 Chân ngắt INIT0:

Được dùng như 1 bit I/O để điều khiển động cơ, động cơ hoạt động ở chế

độ ON/OFF.

Bình thường INIT0 = mức 0, động cơ khơng hoạt động



85



Khi được kích INIT0 = mức1, động cơ được cấp nguồn thông qua

mạch công suất.

 Chân ngắt INT1:

Sử dụng như 1 bit I/O, dùng để nhận biết khi vòi bơm được tác động. Khi

bit này được tác động thì chân INT0 được set lên lên mức high kích cho máy

bơm hoạt động. Khi ngừng tác động, chân INT0 xuống mức thấp, máy bơm

ngừng.

Bình thường INT1 = mức 0.

Khi được kích INIT1 = mức 1.

 Chân ngắt T0:

Xung đếm lấy từ bộ phận cảm biến lưu lượng qua mạch khuyếch đại được

đưa vào chân này. Khi 1 xung được gửi tới thì tổng tiền sẽ tăng lên 1 đơn vị tiền

và tổng lít sẽ tăng 1 đơn vị lít. Khi số xung đưa vào bằng số xung cài đặt thì

chân INIT0 sẽ phát ra một tín hiệu mức low để kích mạch cơng suất ngừng máy

bơm lại.

 IC 74573:

Chốt byte thấp của địa chỉ trong chế độ giao tiếp với RAM, ROM ngoài

 IC 74573:

Đệm dữ liệu trong trường hợp Port 0 được sử dụng như một port I /O

 IC 74573 :

Đệm dữ liệu trong trường hợp Port 2 được dùng như một port I/O

 8255:

Port A của 8255 được dùng để giao tiếp với mạch hiển thị nội dung nhập

từ bàn phím, các port còn lại là port B và port C có thể được sử dụng để kết nối

thêm với các thiết bị ngoại vi bên ngoài (trong các ứng dụng mở rộng ).

 RAM 6264:



86



Được dùng để ghi lại quá trình bơm xăng phòng khi mất điện trong lúc

đang bơm, khi được cấp nguồn trở lại ta nhấn phím M để biết được lượng xăng

đã được bơm là bao nhiêu. Nó cũng được dùng để ghi lại tổng số lít đổ được

trong ngày, khi máy tính u cầu đọc thơng số này thì vi xử lý sẽ đọc RAM

ngồi và phát dữ liệu lên máy tính.

RAM được ni bởi nguồn pin Backup bên ngồi nên dữ liệu trong RAM

khơng bị mất khi cúp điện (có thể giữ được trong 72 giờ).



V C C

R13



D 1

1



2



100



D 2

1



C

10uF



3 .6 V



D 3

2



2



1



B A C K U P



Hình 3.11. Nguồn ni RAM.



+Bình thường pin được nạp năng lượng từ nguồn cung cấp.

+Khi mất điện , pin sẽ cung cấp nguồn cho RAM

 Nút RESET:

Xố tồn bộ nhớ RAM nội, khởi động lại đầu chương trình.

Quá trình này được thực hiện như sau:

Khi cấp nguồn, tụ C4 đuợc nạp và chân Reset được đặt lên mức cao, mạch

được reset, sau đó tụ sẽ phóng điện qua điện trở (8.2K) và chân Reset dần dần

giảm xuống mức thấp. Khi nhấn nút Reset (SW1) tức là chập mạch hai đầu tụ

C4 cho phóng hết điện tích ở hai đầu tụ và lặp lại quá trình đặt lại như khi mới

cấp nguồn.



VC C



10uF

C



R 1



100

8.2K



R 2



87



Hình 3.12: Mạch reset.

3.3. Các lưu đồ giải thuật.





Giải thuật chương trình chính







Chương trình đọc phím







Chương trình giải mã phím







Chương trình chuyển đổi thành tiền khi nhập lit







Chương trình chuyển đổi thành lít khi nhập tiền







Chương trình nhập giá







Chương trình so sánh







Chương trình delay







Chương trình ngắt port nối tiếp







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







Chương trình bơm xăng



3.3.1. Lưu đồ giải thuật chương trình chính:

Khi được cấp nguồn (hay nhấn nút reset) chương trình sẽ khởi động về

địa chỉ PC 0000H, sau đó khởi động các thanh ghi điều khiển, định trạng thái

bàn phím và vào chương trình chính.

Nội dung của chương trình chính:

+ Qt các led bàn phím.

+ Quét các led hiển thị tiền – lít – giá.

+ Quét phím.

+ Giải mã phím.

+ Kiểm tra các cờ.



88



+ Nếu các cờ có tác động thì gọi các chương trình con tương ứng, sau đó

quay lại bước 1.

START



Khởi động các thanh ghi điều

khiển

Xóa tồn bộ các vùng

nhớ

Xóa các cờ, đặt các bit điều

khiển

Xóa tất cả các vùng nhớ (trừ vùng nhớ chứa số

lít tổng)

Hiển thị nội dung nhập từ bàn

phím

Hiển thị tiền –lít –giá

Qt phím

Đọc phím

Mã qt

11111110B

(cột 0=0)

Hình 3.13:

Sơ cột

đồ =giải

thuật chương

trình chính.

3.3.2. Chương trình đọc phím:

Giải

mã phím

Số đếm

=4



 Bốn bit thấp của port 1 đuợc đưa vào bốn cột của mạch bàn phím

mã quét

ra port

 Bốn bit cao của portXuất

1 được

đưacột

vào

bốn 1hàng của mạch bàn phím.

N

CO_CPBOM

Đầu tiên cho cột một ở mức 0,

đọc về trạng thái các hàng , nếu có một

=1



Nhập

port

1 vào

A có hàng nào ở mức 0 thì tiếp

hàng nào ở mức 0 tức là có phím

nhấn.

Nếu

khơng



tục cho cột kế ở mức 0 và tiếp tục như thế. YKhi kết thúc cột thứ 4 mà chưa nhận

Xóa các bit cột , giữ lại các bit hàng



biết hàng nào xem như khơng có phím nào được nhấn, kết thúc qúa trình đọc

N



Nhấc



Y

Có phím nhấn

1

Nếu có phím ấn, cờ C =1, khơng?

thanh ghi A chứa mã phím được ấn

Y

N

(00H÷ 0FH). Nếu khơng có phím Gọi

ấn thì

cờbơm

C = 0.

CTC

xăng

Quay trái mã qt cột (để có cột kế =

0)



phím. Tại một thời điểm chỉ có một cộtcò?

ở mức 0.



Số đếm = số đếm -1

N



Y



Số

đếm=0?



Xóa cờ C

2



89



Hình 3.14: Sơ đồ giải thuật chương trình đọc phím.

1

Chuyển mó hàng về 4 bit thấp

Xỏc định STT của cột cú

phớm ấn

STT = 4 – số đếm

Mó phớm = STT

Bộ đếm = 4

Quay phải thanh ghi A vào

cờ C

Y

C=

0?



N



Mã phím = STT + số cột( số cột = 4

)

Bộ đếm = bộ đếm

-1



N

Y



Bộ đếm =

0?

Gán cờ C = 1

Cất mã phím vào A



2

RET



90



Hình 3.15: Sơ đồ giải thuật chương trình đọc phím.

3.3.3. Chương trình giải mã phím:

Vì mạch hiển thị nội dung nhập từ bàn phím chỉ có 6 LED 7 đoạn nên ta

dùng 6 địa chỉ nhớ để làm vùng nhớ chứa dữ liệu tạm thời (chứa nội dung nhập

từ bàn phím), do đó số lần ấn phím tối đa chỉ có thể là 6, nếu nhấn đến lần thứ 7

thì phím đó sẽ khơng được giải mã.

- Nếu nhập số thì số nhập sẽ được cất vào các ơ nhớ nói trên (tạm gọi là

Buffer).

- Nếu bấm các phím chức năng :





Phím tiền: Chuyển các số vừa nhập từ Buffer vào vùng nhớ dùng



để chứa số tiền cài đặt (Buffer tiền).

Tính ra số lít tương ứng và cất giá trị này vào trong vùng nhớ chứa số lít

cài đặt (Buffer lít).

Tính ra số xung tương ứng.





Phím lít: Chuyển số vừa nhập từ Buffer vào vùng nhớ dùng để



chứa số lít cài đặt.

Tính ra số tiền tương ứng , cất vào trong vùng nhớ chứa tiền cài đặt

Tính ra số xung tương ứng.





Phím giá: Chuyển số vừa nhập từ Buffer vào vùng nhớ dùng để



chứa giá cài đặt.

Tính ra số tiền tương ứng với một xung.





Phím Clear: Xóa các vùng nhớ chứa tiền cài đặt, lít cài đặt, đặt lại



số lần nhập, set cờ cho phép bơm (CO_CPBOM).



91







Phím (): Dùng để nhập số lít lẽ, khi nhấn phím này các giá trị



vừa được nhập từ Buffer sẽ được chuyển vào vùng nhớ dùng để chứa số lít cài

đặt và hiển thị dấu chấm tương ứng.





Khi nhấn phím này nội dung của vùng nhớ chứa giá trị hiện hành



đang bơm sẽ đuợc gọi ra.



GM_KEY



Y



SLN =

0?

N

Nạp số phím

tương ứng vào A



Y



Phím

số ?

N

N



Phím

tiền

Y



SLN = SLN - 1



Phím

lít

Y



Nạp Buffer

vào Buffer

tiền



Nạp Buffer

vào Buffer lít



Tính ra số lít

tương ứng



Tính ra số tiền

tương ứng



Tính ra số

xung tương

ứng



Tính ra số

xung tương

ứng



Nhập A vào Buffer



SLN = 0



2



SLN = 0



N



1



92



Hình 3.16: Sơ đồ giải thuật chương trình giả mã phím.



1



Phím

giá

Y

Nạp Buffer

vào Buffer giá



N



Phím

M

Y

Đọc RAM ngồi

vào RAM nội



N



Phím

CL

Y

Xóa Buffer

tiền

Xóa Buffer lít



Tính ra số tiền

/ 1 xung

Y



N



Xuất ra mạch

hiển thị



Giá>9

000



Xóa Buffer giá



Đặt lại cờ

CP__BOM



Y

SLN = 6



Nhập giá =

10000đồng



Thơng báo lỗi



2

RET



N



93



Hình 3.17: Sơ đồ giải thuật chương trình giải mã phím.



3.3.4. Chương trình tính số lít khi biết số tiền :

Sử dụng cảm biến lưu lượng có 50 lỗ, để giảm sai số do tính tốn ta giả sử

cứ 100 xung thì tương ứng với một lít tức là đĩa mã quay 2 vòng. Do đó số lít

tương ứng với một xung (DV_LIT) là 1/100 = 0.01 lít.

Với giá đã nhập trước ta tính ra được số tiền tương ứng với một xung

(DV_TIEN) :

 Đơn giá / 100 = DV_TIEN ( đồng )

 Khi nhập vào số tiền cần đổ ta tính ra số xung tương ứng:

 Số xung = số tiền / DV_TIEN

 Số lít = số xung × DV_LIT



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Hình 3.8: Mạch nguồn 5V DC.

Tải bản đầy đủ ngay(0 tr)

×