TÓM TẮT LUẬN VĂN
Ngày nay, khi xã hội ngày càng phát triển, chất lượng cuộc sống của con người ngày càng được nâng cao. Đó là nhờ vào việc ứng dụng các thành tựu khoa học kỹ thuật con người đã đạt được vào thực tiễn cuộc sống mà trong đó, điều khiển tự động ngày càng khẳng định được vai trò của nó trong cuộc cách mạng đại công nghiệp của nhân loại. Các loại máy bán hàng tự động là một trong những sản phẩm đặc sắc mà điều khiển tự động cho ra đời nhằm đáp ứng một cách đáng kể nhu cầu tiện nghi của con người.
Nửa cuối năm 2003, Việt Nam chính thức cho lưu hành các loại tiền xu với mệnh giá 200, 500, 1000, 2000, 5000, mở ra một thị trường vô cùng lớn cho các loại máy bán hàng tự động.
Thực trạng trên đã đặt ra câu hỏi là liệu chúng ta có thể tự chế tạo một máy bán hàng tự động “ Made in VietNam “ được hay không ? Vì nếu thành công thì hiệu quả kinh tế và xã hội mà nó mang lại sẽ rất lớn.
Và đó cũng là động lực đã thúc đẩy nhóm chúng em thực hiện đề tài luận văn này _ Nghiên cứu và chế tạo máy bán hàng tự động.
Máy bán hàng tự động mà nhóm chúng em thực hiện sẽ bao gồm những cụm chính sau:
Mô đun xử lý tiền xu, có chức năng nhận dạng và thối tiền.
Mô đun xử lý nước lon , bao gồm các ống chứa lon,cơ cấu cửa đóng mở để đưa lon ra ngoài.
100 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2557 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Nghiên cứu và chế tạo máy bán hàng tự động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uûa maùy baùn nöôùc töï ñoäng ñoùng vai troø nhö boä naõo cuûa maùy. Noù chính laø linh hoàn cuûa maùy, ñöa ra nhöõng tín hieäu caàn thieát cho maùy hoaït ñoäng chính xaùc . Trong caùc maïch ñieàu khieån naøy, ta coù söû duïng moät soá linh kieän ñieän töû nhö 74247,AT24C64, LCD hieån thò, hoï vi ñieàu khieån 8951. Nhö vaäy, ñeå hieåu roõ ñöôïc nguyeân lyù hoaït ñoäng cuûa caùc maïch ñieàu khieån naøy, tröôùc heát ta seõ ñi vaøo giôùi thieäu sô löôïc laïi chöùc naêng cuûa moät soá linh kieän ñieän töû quan troïng maø ta coù söû duïng.
Vi ñieàu khieån AT89C51
AT89C51 laø moät heä vi tính 8-bit ñôn chip CMOS coù hieäu quaû cao, coâng suaát nguoàn tieâu thuï thaáp vaø coù 4 Kbyte boä nhôù ROM Flash xoùa ñöôïc / laäp trình ñöôïc. Chip naøy ñöôïc saûn xuaát döïa vaøo coâng ngheä boä nhôù khoâng maát noäi dung coù ñoä tích hôïp cao cuûa Atmel.
Chip AT89C51 cuõng töông thích vôùi taäp leänh vaø caùc chaân ra cuûa chuaån coâng nghieäp MCS-51. Flash treân chip naøy cho pheùp boä nhôù chöông trình ñöôïc laäp trình laïi treân heä thoáng hoaëc baèng boä laäp trình boä nhôù khoâng maát noäi dung qui öôùc. Baèng caùch keát hôïp moät CPU linh hoaït 8-bit vôùi Flash treân moät chip ñôn theå. Chip AT89C51 laø moät heä vi tính 8-bit ñôn chip maïnh cho ta moät giaûi phaùp coù hieäu quaû veà chi phí vaø raát linh hoaït ñoái vôùi caùc öùng duïng ñieàu khieån.
Chip AT89C51 coù caùc ñaëc tröng chuaån nhö sau :
04 Kbyte Flash, coù khaû naêng ñeán 1000 chu kyø ghi vaø xoùa.
Taàn soá hoaït ñoäng töø 0 Mhz ñeán 24 Mhz.
03 möùc xoùa boä nhôù laäp trình.
02 boä Timer vaø Counter 16 bit.
128 byte RAM.
32 ñöôøng xuaát nhaäp I/O. (04 port xuaát nhaäp I/O – 8_bit).
Moät caáu truùc ngaét hai möùc öu tieân vaø 05 nguyeân nhaân ngaét.
64 Kbyte vuøng nhôù maõ ngoaøi.
64 Kbyte vuøng nhôù döõ lieäu ngoaøi.
Xöû lyù haøm Boolean (hoaït ñoäng treân bit ñôn).
210 vò trí nhôù coù theå ñònh vò bit.
04 micro giaây cho hoaït ñoäng nhaân hoaëc chia.
Moät port noái tieáp, song song.
Maïch dao ñoäng vaø taïo xung clock treân chip.
Ngoaøi ra AT89C51 coøn ñöôïc thieát keá vôùi logic tónh cho hoaït ñoäng coù taàn soá giaûm xuoáng 0 vaø hoã trôï 02 cheá ñoä tieát kieäm naêng löôïng ñöôïc löïa choïn baèng phaàn meàm.
Cheá ñoä nghæ döøng CPU trong khi vaãn cho pheùp RAM, caùc boä Timer / Counter, port noái tieáp vaø heä thoáng ngaét tieáp tuïc hoaït ñoäng.
Cheá ñoä nguoàn giaûm duy trì noäi dung cuûa RAM nhöng khoâng cho maïch dao ñoäng cung caáp xung clock nhaèm voâ hieäu hoùa caùc hoaït ñoäng khaùc cuûa chip cho ñeán khi coù reset cöùng tieáp theo.
Caùc caáu hình chaân ra :
Hình 4.1 AT89C51
Hình 4.2 Caáu hình chaân cuûa Chip AT89C51.
Hình 4.3 Sô ñoà caáu hình chaân ra cuûa Chip AT89C51.
Sô ñoà khoái cuûa AT89C51 :
PORT 0 DRIVERS
P0.0 – P0.7
PORT 0 DRIVERS
P2.0 – P2.7
RAM ADDR REGISTER
RAM
PORT 0 LATCH
PORT 2 LATCH
FLASH
B
REGISTER
ACC
STACK POINTER
PROGRAM ADDRESS REGISTER
BUFFER
PC
INCREMENTER
PROGRAM COUNTER
DPTR
TMP2
TMP1
ALU
INTERRUPT, SERIAL PORT AND TIMER BLOCKS
PSW
PORT 3 LATCH
PORT 1 DRIVERS
P1.0 – P1.7
PORT 3 DRIVERS
P3.0 – P3.7
TIMING AND CONTROL
INSTRUCTION REGISTER
OSC
PORT 1 LATCH
Hình 4.4 Sô ñoà khoái cuûa 8951
Moâ taû caùc chaân ra:
VCC:
Chaân cung caáp ñieän.
GND:
Chaân noái ñaát.
Port 0:
Port 0 laø port xuaát nhaäp 8bit hai chieàu cöïc D hôû. Khi laøm nhieäm vuï laø port xuaát, moãi chaân cuûa port coù theå huùt doøng cuûa 8 ngoõ vaøo TTL. Khi caùc logic 1 ñöôïc ghi vaøo caùc chaân cuûa port 0, caùc chaân naøy coù theå ñöôïc söû duïng laøm c1c ngoõ vaøo toång trôû cao.
Port 0 coøn ñöôïc caáu hình laøm bus ñòa chæ (byte thaáp) vaø bus döõ lieäu ña hôïp trong khi truy xuaát boä nhôù döõ lieäu ngoaøi vaø boä nhôù chöông trình ngoaøi. Trong cheá ñoä ña hôïp naøy, port 0 coù caùc ñieän trôû keùo leân beân trong.
Port 0 cuõng nhaän caùc byte maõ trong khi laäp trình cho Flash vaø xuaát caùc byte maõ trong khi kieåm tra chöông trình. Caùc ñieän trôû keùo leân beân ngoaøi ñöôïc caàn ñeán trong khi kieåm tra chöông trình.
Port 1:
Port 1 laø port xuaát nhaäp 8-bit hai chieàu coù caùc ñieän trôû keùo leân beân trong. Caùc boä ñeäm xuaát cuûa port 1 coù theå huùt vaø caáp doøng vôùi 04 ngoõ vaøo TTL. Khi caùc logic 1 ñöôïc ghi leân caùc chaân cuûa port 1, caùc chaân naøy ñöôïc keùo leân möùc cao bôûi caùc ñieän trôû keùo leân beân trong vaø coù theå söû duïng nhö laø caùc ngoõ vaøo. Khi laøm nhieäm vuï port nhaäp, caùc chaân cuûa port 1 ñang ñöôïc keùo xuoáng möùc thaáp do taùc ñoäng beân ngoaøi seõ caáp doøng do coù caùc ñieän trôû keùo leân beân trong.
Port 1 cuõng nhaän byte ñòa chæ thaáp trong thôøi gian laäp trình cho Flash vaø kieåm tra chöông trình.
Port 2:
Port 2 laø port xuaát nhaäp 8-bit hai chieàu coù caùc ñieän trôû keùo leân beân trong. Caùc boä ñeäm xuaát cuûa port 2 coù theå huùt vaø caáp doøng vôùi 04 ngoõ vaøo TTL. Khi caùc logic 1 ñöôïc ghi leân caùc chaân cuûa port 2, caùc chaân naøy ñöôïc keùo leân möùc cao bôûi caùc ñieän trôû keùo leân beân trong vaø coù theå söû duïng nhö laø caùc ngoõ vaøo. Khi laøm nhieäm vuï port nhaäp, caùc chaân cuûa port 2 ñang ñöôïc keùo xuoáng möùc thaáp do taùc ñoäng beân ngoaøi seõ caáp doøng do coù caùc ñieän trôû keùo leân beân trong.
Port 2 taïo ra byte cao cuûa bus ñòa chæ trong thôøi gian tìm naïp leänh töø boä nhôù chöông trình vaø trong thôøi gian truy xuaát boä nhôù döõ lieäu ngoaøi söû duïng caùc ñòa chæ 16-bit (MOVX @DPTR). Trong öùng duïng naøy, port 2 söû duïng caùc ñieän trôû keùo leân beân trong khi phaùt caùc bit 1. trong thôøi gian truy xuaát boä nhôù döõ lieäu ngoaøi söû duïng caùc ñòa chæ 8-bit (MOVX @Ri), port 2 phaùt caùc noäi dung cuûa thanh ghi chöùc naêng ñaët bieät cuûa port 2.
Port 2 cuõng nhaän caùc bit ñòa chæ cao vaø vaøi tín hieäu ñieàu khieån trong thôøi gian laäp trình cho Flash vaø kieåm tra chöông trình.
Port 3:
Port 3 laø port xuaát nhaäp 8-bit hai chieàu coù caùc ñieän trôû keùo leân beân trong. Caùc boä ñeäm xuaát cuûa port 3 coù theå huùt vaø caáp doøng vôùi 04 ngoõ vaøo TTL. Khi caùc logic 1 ñöôïc ghi leân caùc chaân cuûa port 3, caùc chaân naøy ñöôïc keùo leân möùc cao bôûi caùc ñieän trôû keùo leân beân trong vaø coù theå söû duïng nhö laø caùc ngoõ vaøo. Khi laøm nhieäm vuï port nhaäp, caùc chaân cuûa port 3 ñang ñöôïc keùo xuoáng möùc thaáp do taùc ñoäng beân ngoaøi seõ caáp doøng do coù caùc ñieän trôû keùo leân beân trong.
Port 3 cuõng coøn ñöôïc söû duïng laøm caùc chöùc naêng khaùc cuûa AT89C51, caùc chöùc naêng naøy ñöôïc lieät keâ nhö sau :
Chaân cuûa port Chöùc naêng
P3.0 RxD (ngoõ vaøo cuûa port noái tieáp).
P3.1 TxD (ngoõ ra cuûa port noái tieáp).
P3.2 (ngoõ vaøo ngaét ngoaøi 0).
P3.3 (ngoõ vaøo ngaét ngoaøi 1).
P3.4 T0 (ngoõ vaøo beân ngoaøi cuûa boä ñònh thôøi 0).
P3.5 T1 (ngoõ vaøo beân ngoaøi cuûa boä ñònh thôøi 1).
P3.6 (ñieàu khieån ghi boä nhôù döõ lieäu ngoaøi).
P3.7 (ñieàu khieån ñoïc boä nhôù döõ lieäu ngoaøi).
Port 3 cuõng nhaän moät vaøi tín hieäu ñieàu khieån cho vieäc laäp trình Flash vaø kieåm tra chöông trình.
RST:
Ngoõ vaøo reset. Möùc cao treân chaân naøy trong 02 chu kyø maùy trong kho boä dao ñoäng ñang hoaït ñoäng seõ reset chip AT89C51.
ALE / :
Xung cuûa ngoõ ra cho pheùp choát ñòa chæ ALE (address latch enable) cho pheùp choát byte thaáp cuûa ñòa chæ trong thôøi gian truy xuaát boä nhôù ngoaøi. Chaân naøy cuõng ñöôïc duøng laøm ngoõ vaøo xung laäp trình () trong thôøi gian laäp trình cho Flash.
Khi hoaït ñoäng bình thöôøng, xung cuûa ngoõ ra ALE luoân luoân coù taàn soá baèng 1/6 taàn soá cuûa maïch dao ñoäng treân chip, coù theå ñöôïc söû duïng cho caùc muïc ñích ñònh thôøi töø beân ngoaøi vaø taïo xung clock tuy nhieân caàn löu yù laø moät xung ALE seõ bò boû qua trong moãi chu kyø truy xuaát boä nhôù döõ lieäu ngoaøi.
Khi caàn hoaït ñoäng cho pheùp choát byte thaáp cuûa ñòa chæ seõ ñöôïc voâ hieäu hoùa baèng caùch set bit 0 cuûa thanh ghi chöùc naêng ñaëc bieät coù ñòa chæ byte laø 8EH. Khi bit naøy ñöôïc set, ALE chæ tích cöïc trong thôøi gian thöïc thi leänh MOVX hoaëc MOVC. Ngöôïc laïi chaân naøy seõ ñöôïc keùo leân möùc cao. Vieäc set bit khoâng cho pheùp hoaït ñoäng choát byte thaáp cuûa ñòa chæ seõ khoâng coù taùc duïng neáu boä vi ñieàu kieån ñang ôû cheá ñoä thöïc thi chöông trình ngoaøi.
:
Chaân cho pheùp nhôù chöông trình (programe store enable) ñieàu khieån truy xuaát boä nhôù chöông trình ngoaøi. Khi AT89C51 ñang thöïc hieän chöông trình trong boä nhôù chöông trình ngoaøi. tích cöïc 02 laàn cho moãi chu kyø maùy, ngoaïi tröø trong 02 taùc ñoäng cuûa bò boû qua cho moãi laàn truy xuaát boä nhôù döõ lieäu ngoaøi.
/ Vpp:
Chaân cho pheùp truy xuaát boä nhôù ngoaøi (external access enable) phaûi ñöôïc noái vôùi GND ñeå cho pheùp chip vi ñieàu khieån tìm naïp leänh töø caùc vò trí nhôù cuûa boä nhôù chöông trình ngoaøi, baét ñaàu töø ñòa chæ 0000H cho ñeán FFFFH. Tuy nhieân caàn löu yù laø neáu bit khoaù 1 (lock bit 1) ñöôïc laäp trình, seõ ñöôïc choát beân trong khi reset.
neân noái vôùi Vcc ñeå thöïc thi chöông trình beân trong chip.
Chaân / Vpp coøn nhaän ñieän aùp cho pheùp laäp trình Vpp trong thôøi gian laäp trình cho Flash, ñieän aùp naøy caáp cho caùc boä phaän coù yeâu caàu ñieän aùp 12V.
XTAL1:
Ngoõ vaøo ñeán maïch khueách ñaïi ñaûo cuûa maïch dao ñoäng vaø ngoõ vaøo ñeán maïch taïo xung clock beân trong chip.
XTAL2:
Ngoõ ra töø maïch khuyeách ñaïi ñaûo cuûa maïch dao ñoäng.
Vì trong phaàn ñieàu khieån ñieän, ta coù söû duïng chöùc naêng truyeàn nhaän noái tieáp cuûa AT9C2051, neân ôû ñaây nhoùm giôùi thieäu phöông thöùc truyeàn nhaän noái tieáp cuûa AT89C51.
Chöùc naêng cô baûn cuûa port noái tieáp laø thöïc hieän vieäc chuyeån ñoåi döõ lieäu song song thaønh döõ lieäu noái tieáp khi phaùt vaø chuyeån ñoåi döõ lieäu noái tieáp thaønh döõ lieäu song song khi thu. Ñaëc tröng cuûa port noái tieáp laø hoaït ñoäng song coâng (full duplex) nghóa laø coù khaû naêng thu vaø phaùt ñoàng thôøi. Ngoaøi ra port noái tieáp coøn coù moät ñaëc tröng khaùc, vieäc ñeäm döõ lieäu khi thu cuûa port naøy cho pheùp moät kyù töï ñöôïc nhaän vaø löu giöõ trong boä ñeäm thu trong khi kyù töï tieáp theo ñöôïc nhaän vaøo. Ñeå truy xuaát port noái tieáp ta söû duïng 2 thanh ghi chöùc naêng ñaëc bieät laø SBUF (ñòa chæ byte 99H) vaø SCON (ñòa chæ byte 98H).
Baûng 4.1 Caùc cheá ñoä truyeàn nhaän noái tieáp cuûa 8951
Bit
Kyù hieäu
Ñòa chæ
Moâ taû
SCON.7
SM0
9FH
bit 0 choïn cheá ñoä port noái tieáp.
SCON.6
SM1
9EH
bit 1 choïn cheá ñoä port noái tieáp.
SCON.5
SM2
9DH
bit 2 choïn cheá ñoä port noái tieáp.
bit naøy cho pheùp truyeàn thoâng ña xöû lyù ôû caùc cheá ñoä 2 vaø 3, RI seõ khoâng tích cöïc neáu bit thöù 9 nhaän ñöôïc laø 0.
SCON.4
REN
9CH
cho pheùp thu, phaûi ñöôïc set leân 1.
SCON.3
TB8
9BH
bit phaùt 8. Bit thöù 9 ñöôïc phaùt ôû caùc cheá ñoä 2 vaø 3, ñöôïc set vaø xoùa baèng phaàn meàm
SCON.2
RB8
9AH
bit thu 8. Bit thöù 9 nhaän ñöôïc.
SCON.1
TI
99H
côø ngaét phaùt. Côø naøy ñöôïc set ngay khi keát thuùc vieäc phaùt 1 kyù töï; ñöôïc xoùa baèng phaàn meàm.
SCON.0
RI
98H
côø ngaét thu. Côø naøy ñöôïc set ngay khi keát thuùc vieäc thu 1 kyù töï; ñöôïc xoùa baèng phaàn meàm.
Caùc cheá ñoä hoaït ñoäng:
Thanh ghi dòch 8-bit (cheá ñoä 0):
Cheá ñoä 0 ñöôïc choïn baèng caùch ghi giaù trò 0 vaøo SM0 vaø SM1. Khi phaùt vaø thu döõ lieäu, LSB ñöôïc thu hoaëc phaùt ñaàu tieân. Toác ñoä baud coá ñònh vaø baèng 1/12 taàn soá cuûa maïch dao ñoäng treân chip.
Vieäc phaùt döõ lieäu ñöôïc khôûi ñoäng baèng moät leänh ghi döõ lieäu vaøo SBUF. Döõ lieäu ñöôïc dòch ra ngoaøi treân chaân RxD vôùi caùc xung clock dòch bit ñöôïc gôûi ra treân chaân TxD. Moãi moät bit hôïp leä ñöôïc truyeàn ñi treân ñöôøng RxD trong 1 chu kyø maùy.
Vieäc thu döõ lieäu ñöôïc khôûi ñoäng khi bit cho pheùp thu REN ôû möùc 1 vaø côø ngaét RI ôû logic 0. Khi RI ñöôïc xoùa, caùc xung clock dòch bit ñöôïc xuaát ra treân chaân TxD, ta baét ñaàu chu kyø maùy tieáp theo vaø döõ lieäu ñöôïc dòch vaøo chaân RxD bôûi xung clock dòch bit.
UART 8-bit coù toác ñoä baud thay ñoåi (cheá ñoä 1):
Trong cheá ñoä 1, port noái tieáp cuûa 8051 hoaït ñoäng nhö 1 boä thu phaùt khoâng ñoàng boä (UART). UART laø 1 boä thu vaø phaùt döõ lieäu noái tieáp vôùi moãi moät kyù töï döõ lieäu ñöôïc ñöùng tröôùc bôûi 1 bit start (logic 0) vaø ñöôïc ñöùng sau bôûi 1 bit stop (döõ lieäu 1). Thænh thoaûng 1 bit chaün leû ñöôïc cheøn vaøo giöõa bit döõ lieäu sau cuøng vaø bit stop.
Khi hoaït ñoäng thu, bit stop ñöa ñeán bit RB8 cuûa SCON. ÔÛ 8051 toác ñoä baud ñöôïc thieát laäp bôûi toác ñoä traøn cuûa boä TIMER 1.
Vieäc phaùt ñöôïc khôûi ñoäng baèng caùch ghi vaøo SBUF nhöng vieäc phaùt khoâng thöïc söï baét ñaàu cho ñeán laàn traøn keá cuûa boä ñeám 16, boä ñeám cung caáp toác ñoä baud cho port noái tieáp. Döõ lieäu ñöôïc dòch bit ñeå xuaát ra treân ñöôøng TxD seõ baét ñaàu baèng bit start, tieáp theo laø 8 bit döõ lieäu roài ñeán bit stop. Thôøi gian cuûa moãi moät bit laø giaù trò nghòch ñaûo cuûa toác ñoä baud, toác ñoä baud coù ñöôïc baèng caùch laäp trình cho boä ñònh thôøi. Côø ngaét TI ñöôïc set leân 1 ngay khi bit stop xuaát hieän treân ñöôøng TxD.
Vieäc nhaän ñöôïc khôûi ñoäng bôûi 1 chuyeån traïng thaùi töø 1 xuoáng 0 treân RxD (baétñaàu bit start). Boä ñeám 16 ñöôïc xoùa ngay laäp töùc ñeå gaùn caùc soá ñeám cho doøng bit ñeán chaân RxD.
Boä thu phaùt hieän bit start sai baèng caùch yeâu caàu 8 soá ñeám ôû traïng thaùi 0 sau khi coù traïng thaùi chuyeån töø 1 xuoáng 0 laàn ñaàu tieân. Neáu ñieàu naøy khoâng xaûy ra, boä thu seõ ñöôïc thieát laäp laïi, quay veà traïng thaùi nghæ vaø chôø söï chuyeån traïng thaùi töø 1 xuoáng 0 keá.
UART 9-bit coù toác ñoä baud coá ñònh (cheá ñoä 2):
ÔÛ cheá ñoä naøy 11 bit ñöôïc thu hoaëc phaùt cho vieäc thu hay phaùt 1 kyù töï döõ lieäu: bit start, 8 bit döõ lieäu, bit döõ lieäu thöù 9 laäp trình ñöôïc vaø bit stop. Khi phaùt bit thöù 9 laø bit baát kyø ñöôïc ñaët vaøo bit TB8 trong thanh ghi SCON. Khi thu, bit thöù 9 nhaän ñöôïc seõ ñaët vaøo bit RB8.
UART 9-bit coù toác ñoä baud thay ñoåi (cheá ñoä 3):
Töông töï nhö cheá ñoä 2 ngoaïi tröø toác ñoä baud ñöôïc laäp trình vaø ñöôïc cung caáp bôûi boä ñònh thôøi.
Toác ñoä baud cuûa port noái tieáp:
Toác ñoä baud coá ñònh trong caùc cheá ñoä 0 & 2. Trong cheá ñoä 0, toác ñoä baud luoân baèng taàn soá cuûa maïch dao ñoäng trong chip chia cho 12, coøn ôû cheá ñoä 2 laø chia 64. Bit 7 cuûa PCON laø bit SMOD vaø vieäc set bit naøy seõ laøm toác ñoä baud trong cheá ñoä 1, 2 vaø 3 taêng gaáp ñoâi.
Kyõ thuaät thöôøng duøng ñeå taïo xung clock toác ñoä baud laø khôûi ñoäng thanh ghi TMOD ôû cheá ñoä töï naïp laïi 8-bit ( cheá ñoä ñònh thôøi 2). Toác ñoä baud baèng toác ñoä traøn cuûa boä ñònh thôøi 1 chia cho 32 ( hoaëc chia cho 16 neáu SMOD =1).
Moät soá linh kieän ñieän töû coù söû duïng trong ñeà taøi
IC AT24C64
Trong phaàn ñieàu khieån cuûa maùy baùn haøng, moät yeâu caàu ñaët ra laø phaûi coù boä phaän thay ñoåi giaù cuûa saûn phaåm khi caàn thieát. Giaù trò naøy phaûi ñöôïc löu giöõ trong boä nhôù sao cho khi maát nguoàn thì giaù trò naøy vaãn toàn taïi cho ñeán khi coù ñieän trôû laïi. Vaø ñoù laø lyù do taïi sao chuùng ta söû duïng linh kieän AT24C64.
AT24C64 laø serial EEPROM 64k. Linh kieän naøy coù theå cho pheùp 8 EEPROM söû duïng chung 2 ñöôøng tín hieäu.
Baûng 4.2 Chöùc naêng caùc chaân cuûa AT24C64
Pin
Chöùc naêng
A0-A2
Ñòa chæ
SDA
Döõ lieäu noái tieáp
SCL
Xung clock noái tieáp
WP
Write protect
Chöùc naêng chaân
SCL: tín hieäu vaøo, ñöôïc duøng ñeå tích cöïc caïnh leân cho döõ lieäu vaøo moãi EEPROM vaø tích cöïc caïnh xuoáng cho döõ lieäu ñi ra.
SDA: chaân SDA laø 1 chaân 2 chieàu cho vieäc trao ñoåi döõ lieäu noái tieáp.
A2,A1,A0: laø ñòa chæ cho moãi EEPROM, khi khoâng ñöôïc keát noái thì chuùng coù giaù trò maëc ñònh laø 0.
WP: khi ñöôïc noái vôùi GND, noù cho pheùp vieäc ghi EEPROM bình thöôøng vaø khi noái vôùi VCC, noù ngaên chaën vieäc ghi EEPROM. ÔÛ traïng thaùi khoâng keát noái, chaân naøy coù giaù trò maëc ñònh laø 0.
Hoaït ñoäng cuûa EEPROM
Clock & Data transitions: chaân SDA thöôøng ñöôïc keùo leân möùc cao ôû beân ngoaøi. Döõ lieäu treân chaân SDA chæ ñöôïc thay ñoåi trong suoát thôøi gian chaân SCL ôû möùc logic thaáp. Döõ lieäu thay ñoåi khi SCL ôû möùc cao chæ coù yù nghóa xaùc ñònh ñieäu kieän baét ñaàu hay keát thuùc.
Ñieàu kieän baét ñaàu: vieäc thay ñoåi tín hieäu töø cao xuoáng thaáp treân SDA trong khi SCL ôû möùc cao laø ñieàu kieän baét ñaàu.
Ñieàu kieän keát thuùc: vieäc thay ñoåi tín hieäu töø thaáp leân cao treân SDA khi SCL ôû möùc cao laø ñieàu kieän keát thuùc. Sau khi thöïc hieän vieäc ñoïc, leänh stop seõ ñöa EEPROM vaøo cheá ñoä standby.
Acknowledge: taát caû ñòa chæ vaø döõ lieäu ñöôïc trao ñoåi noái tieáp vôùi EEPROM ôû daïng word 8-bit. EEPROM seõ ñöa ra tín hieäu 0 ôû xung clock thöù 9 ñeå baùo hieäu vieäc nhaän ñöôïc moãi word.
Hình 4.5 Giaûn ñoà xung cuûa caùc cheá ñoä hoaït ñoäng cuûa AT24C64
Ghi EEPROM
Ghi 1 byte: ghi 1 byte yeâu caàu 2 word döõ lieäu ñòa chæ 8 bit göûi theo sau word ñòa chæ EEPROM vaø xung ACK. Sau khi nhaän ñöôïc ñòa chæ, EEPROM seõ göûi 1 xung ACK, sau ñoù seõ tieáp tuïc nhòp vaøo 8 bit döõ lieäu ñòa chæ thöù nhaát. Sau khi ñaõ göûi döõ lieäu, EEPROM seõ göûi xung ACK, luùc naøy vi xöû lyù phaûi thöïc hieän göûi tín hieäu stop. Töø luùc naøy EEPROM seõ thöïc hieän vieäc ghi laïi döõ lieäu, caùc tín hieäu göûi vaøo EEPROM luùc naøy ñeàu khoâng ñöôïc cho pheùp cho ñeán khi EEPROM thöïc hieän xong vieäc ghi cuûa mình.
Ñoïc EEPROM
Vieäc ñoïc EEPROM cuõng ñöôïc khôûi taïo nhö hoaït ñoäng ghi ngoaïi tröø bit löïa choïn ñoïc/ghi trong word ñòa chæ ñöôïc set leân 1.
*Ñoïc döõ lieäu töùc thôøi: boä ñeám chöùa ñòa chæ cuûa döõ lieäu trong EEPROM taêng leân 1 sau laàn ñoïc hay ghi gaàn nhaát. Ñòa chæ naøy seõ ñöôïc duy trì khi EEPROM vaãn coøn ñöôïc duy trì nguoàn. Trong quaù trình ñoïc, ñòa chæ döõ lieäu seõ ñöôïc ñoïc ngöôïc töø byte cuoái cuûa trang nhôù cuoái ñeán byte ñaàu tieân cuûa trang ñaàu tieân. Khi bit ñoïc/ghi ñaõ ñöôïc nhòp cho EEPROM vaø EEPROM ñaùp öùng baèng ACK, döõ lieäu ôû ñòa chæ hieän taïi seõ ñöôïc ñoïc. Vi xöû lyù khoâng caàn phaûi ñaùp öùng baèng tín hieäu 0 nhöng baét buoäc phaûi khôûi taïo tín hieäu stop.
*Ñoïc ngaãu nhieân: vieäc ñoïc ngaãu nhieân caàn thöïc hieän vieäc ghi “dummy” ñeå taïo ra ñòa chæ caàn ñoïc. Khi word ñòa chæ EEPROM vaø word ñòa chæ döõ lieäu caàn ñoïc ñaõ ñöôïc göûi cho EEPROM (thoâng qua vieäc ghi), vi xöû lyù caàn taïo 1 tín hieäu start môùi vaø göûi ñeán tín hieäu baét ñaàu vieäc ñoïc (bit ñoïc/ghi ñöôïc set leân 1). Sau ñoù vieäc ñoïc seõ gioáng nhö laø ñoïc döõ lieäu töùc thôøi.
Hình 4.6 Caùc quaù trình ghi cuûa EPPROM
Hình 4.7 Caùc quaù trình ñoïc cuûa EPPROM
IC giaûi maõ 74247
Ñeå hieån thò soá tieàn cuûa khaùch haøng boû vaøo, ta söû duïng led 7 ñoaïn. Ñeå ñieàu khieån giaûi maõ töø BCD sang led 7 ñoaïn, ta söû duïng IC 74247.
Baûng söï thaät:
Baûng 4.3 Baûng chaân trò cuûa 74247
Keát quaû hieån thò cuûa 7447:
Hình 4.8 Hieån thò led 7 ñoaïn baèng 74247
LCD
Giôùi thieäu chung
LCD nhoùm söû duïng trong luaän vaên duøng ñeå hieån thò cho ngöôøi mua maùy coù theå thay ñoåi ñöôïc giaù cuûa caùc loaïi nöôùc baùn trong nhöõng thôøi ñieåm khaùc nhau.
LCD söû duïng 3 ñöôøng ñieàu khieån vaø 8 ñöôøng döõ lieäu töø DB0 ñeán DB7 ñeå coù theå hieån thò 40 kyù töï treân 2 doøng. 3 ñöôøng ñieàu khieån ôû ñaây laø EN, RS vaø RW.
EN (enable): baùo cho LCD bieát vieäc göûi döõ lieäu baèng caùch ñöa EN xuoáng 0 vaø sau ñoù set 2 ñöôøng ñieàu khieån coøn laïi leân 1 vaø (hoaëc) ñöa döõ lieäu ra bus döõ lieäu. Sau khi taát caû caùc line khaùc ñaõ saün saøng, ñöa EN leân 1 vaø chôø trong 1 khoaûng thôøi gian tuøy theo LCD, sau ñoù ñöa EN xuoáng 0.
RS (register select) : khi RS ôû möùc 0, döõ lieäu seõ ñöôïc hieåu laø nhöõng leänh ñaëc bieät cuûa LCD. Khi RS ôû möùc 1, döõ lieäu ñöa vaøo LCD seõ ñöôïc hieån thò leân maøn hình.
RW (read/write): khi RW ôû möùc 0, döõ lieäu treân bus seõ ñöôïc ghi vaøo LCD vaø ngöôïc laïi. Chæ coù caáu truùc “Get LCD status” laø ñoïc LCD do ñoù RW haàu nhö luoân ôû möùc 0.
Hình 4.9 Hình daïng ngoaøi cuûa LCD
Sô ñoà chaân
Chaân 1: (Ground) noái mass.
Chaân 2: (VCC) ñaàu döông caáp cho LCD,ñieän aùp döông cho LCD laø 5V.
Chaân 3: (Contrast Voltage)ñöôïc noái vôùi bieán trôû ñeå thay ñoåi ñoä saùng toái cho LCD.
Chaân 4: (R/S) choïn thanh ghi.
Chaân 5: (R/W) caùc thanh ghi ñoïc vieát LCD.
Chaân 6: (E) chaân cho pheùp.
Chaân 7-14: caùc chaân xuaát nhaäp döõ lieäu.
Ñieàu khieån LCD
Ñieàu khieån EN line: EN line ñöôïc duøng ñeå giao tieáp giöõa ngöôøi söû duïng vôùi LCD, do ñoù noù caàn ñöôïc ñöa veà 0 vaø set leân 1 tröôùc vaø sau moãi leänh taùc ñoäng leân LCD. Khoaûng thôøi gian chôø giöõa vieäc clr vaø set nhö ñaõ noùi ôû treân thöôøng laø 90ns vôùi vi ñieàu khieån söû duïng thaïch anh 11.0592 Mhz.
Kieåm tra traïng thaùi baän cuûa LCD: ñeå kieåm tra traïng thaùi baän cuûa LCD ta coù theå söû duïng command “ Get status LCD”. Khi thöïc hieän “Get status LCD”, LCD seõ ngay laäp töùc set bit DB7 leân 1 neáu noù vaãn coøn ñang baän thöïc hieän 1 coâng vieäc khaùc hoaëc seõ veà 0 khi noù khoâng coøn thöïc hieän coâng vieäc gì. Khi naøy ta coù theå tieáp tuïc göûi ñeán LCD 1 command môùi.
Khôûi taïo LCD: ñaàu tieân ta phaûi cho LCD bieát ta ñang giao tieáp LCD ôû cheá ñoä 4 bit hay 8 bit. ÔÛ ñaây ta seõ göûi cho LCD 1 byte coù giaù trò 38h (20h: function set, 10h: 8 bit döõ lieäu, 08h: hieån thò ra maøn hình treân 2 doøng). Tieáp theo ta seõ göûi cho LCD 1 byte coù giaù trò 0Eh (08h +04h: baät LCD, 02h: baät con troû). Byte cuoái cuøng ta caàn göûi cho LCD laø 06h (04h+02h: sau khi hieån thò kyù töï thì con troû luoân naèm veà phía tay phaûi).
Xoùa maøn hình: vieäc xoùa maøn hình LCD ñöôïc thöïc hieän baèng vieäc göûi tôùi LCD 1 command coù giaù trò laø 01h.
Ghi LCD: ta chæ caàn clr RW veà 0, set RS leân 1, ñöa döõ lieäu vaøo bus döõ lieäu, sau ñoù thöïc hieän vieäc clr vaø set EN.
Vò trí con troû: ñeå coù theå hieån thò ra maøn hình treân 2 doøng ta caàn phaûi quan taâm tôùi vò trí con troû.
Hình 4.10 Vuøng hieån thò treân LCD
Nhö hình treân, ta thaáy nhöõng phaàn coù maøu xanh laø nhöõng vò trí seõ ñöôïc hieån thò ra maøn hình. Nhöõng con soá trong moãi khung chính laø ñòa chæ töông öùng vôùi vò trí treân maøn hình hieån thò. Do ñoù muoán hieån thò ôû vò trí ñaàu tieân doøng thöù 2 treân maøn hình, ta phaûi ñöa con troû ñeán vò trí 40h. ÔÛ ñaây, ta caàn phaûi göûi cho LCD 1 command coù giaù trò laø C0h (80h: maõ ñeå ñònh vò trí con troû. 40h: ví trò con troû ta caàn ñöa tôùi).
Caùc maïch ñieàu khieån vaø maïch coâng suaát ñaõ thöïc hieän
Maïch ñieàu khieån phuï trôï cho vieäc keát noái caùc module nhaän tieàn thaønh phaàn thaønh moät khoái thoáng nhaát
Nhö ta ñaõ tìm hieåu ôû muïc thieát keá boä phaän nhaän daïng tieàn xu theo phöông aùn keát hôïp vôùi ñieän töû, thì ñeå cho module naøy hoaït ñoäng hieäu quaû thì ta phaûi duøng theâm caùc caëp thu phaùt hoàng ngoaïi. Tín hieäu naøy ñöôïc ñöa veà maïch ñieàu khieån maø treân ñoù söû duïng AT89C2051. Sô ñoà maïch ñieàu khieån ñöôïc trình baøy sau ñaây :
Hình 4.11 Sô ñoà nguyeân lyù maïch ñieàu khieån cô caáu keát noái caùc moâ ñun nhaän tieàn
Giaûi thuaät ñieàu khieån cho vi ñieàu khieån trong phaàn naøy ñoù laø ñaàu tieân ta kích solenoid taïi taát caû caùc cöûa vaø queùt laàn löôït traïng thaùi cuûa caùc caëp led thu phaùt hoàng ngoaïi treân caùc module. Khi moät caëp led naøo ñoù thay ñoåi tín hieäu, thì vi ñieàu khieån seõ ngaét khoâng cho solenoid taùc duïng nöõa, laøm cho tieàn rôùt ra ngoaøi. Chöông trình ñieàu khieån ñöôïc vieát baèng hôïp ngöõ nhö sau :
org 000h
jmp main
org 0030h
mov p1,#0ffh
call delay
main:
jb p1.0,1dong
jb p1.1,2dong
jb p1.2,3dong
jmp main
1dong:
clr p1.4
call delay
setb p1.4
jmp main
2dong:
clr p1.5
call delay
setb p1.5
jmp main
3dong:
clr p1.6
call delay
setb p1.6
jmp main
delay:
mov tmod,#01h
mov r0,#100
lap:
mov th0,#high(-10000)
mov tl0,#low(-10000)
setb tr0
jnb tf0,$
clr tr0
clr tf0
djnz r0,lap
ret
end
Maïch kieåm tra nöôùc coøn heát vaø nhaän tín hieäu thoái tieàn
Ñeå coù theå giuùp cho ñoäng cô thoái tieàn coù theå xoay chính xaùc, nhoùm ñaõ söû duïng caëp led thu phaùt hoàng ngoaïi. Vôùi caëp led thu phaùt hoàng ngoaïi, ñoäng cô thoái tieàn coù theå xoay ñuùng töøng voøng.
Hình 4.12 Caëp led thu phaùt hoàng ngoaïi
ÔÛ traïng thaùi bình thöôøng, khi thanh gaït tieàn thoái cuûa ñoäng cô thoái tieàn chöa che giöõa led thu vaø led phaùt, tín hieäu phaùt cuûa led phaùt seõ ñöôïc led thu thu laïi. Led thu seõ daãn vaø ñöa Pin_in xuoáng möùc logic 0. Khi thanh gaït che giöõa led phaùt vaø thu, led thu seõ khoâng daãn vaø seõ keùo möùc logic treân Pin_in leân 1. Ñaây cuõng chính laø tín hieäu baùo veà vi ñieàu khieån cho bieát ñoäng cô thoái tieàn ñaõ xoay ñöôïc 1 voøng.
Hoaøn toaøn töông töï, taïi moãi oáng ñöïng nöôùc, nhoùm ñaõ boá trí 1 caëp led thu phaùt hoàng ngoaïi ñeå coù theå kieåm soaùt vieäc coøn hay heát nöôùc trong töøng oáng. Khi trong oáng vaãn coøn lon nöôùc, chính lon nöôùc seõ che vaø laøm cho led thu khoâng thu ñöôïc tín hieäu töø led phaùt, tín hieäu ra töø Pin_in seõ coù möùc logic 1. Khi heát lon nöôùc trong oáng, led thu seõ nhaän tín hieäu vaø daãn, laøm cho tín hieäu ra treân Pin_in coù möùc logic 0.
Toång hôïp laïi, ta coù ñöôïc caùc maïch ñieàu khieån thoái tieàn vaø kieåm tra heát nöôùc hoaøn chænh nhö sau :
Hình 4.13 Maïch nguyeân lyù duøng ñeå nhaän tín hieäu töø ñoäng cô thoái tieàn.
Hình 4.14 Maïch nguyeân lyù duøng ñeå nhaän tín hieäu heát nöôùc.
Maïch nhaän tín hieäu coù tieàn
Tín hieäu thu veà töø boä phaän nhaän tieàn treân maùy coù theå ñöôïc ta quy ñònh deã daøng laø möùc logic 1 hay 0. Taän duïng ñieàu naøy, neân nhoùm söû duïng möùc logic 1 laø tín hieäu baùo coù tieàn.
Hình 4.15 Maïch nhaän tín hieäu coù tieàn
ÔÛ traïng thaùi bình thöôøng, caùc pin cuûa AT89C51 coù möùc logic 1. Do ñoù, ñeå coù theå cho vi ñieàu khieån nhaän bieát tín hieäu nhaän tieàn cuõng nhö tín hieäu töø ñoäng cô thoái tieàn, ta phaûi ñöa vaøo chaân vi ñieàu khieån tín hieäu coù möùc logic 0. Ñeå laøm ñöôïc ñieàu naøy ta söû duïng chöùc naêng khoùa cuûa transistor A1015. Khi tín hieäu ra ôû Pin_in laø 0, cöïc B cuûa A1015 seõ ñöôïc keùo xuoáng 0 vaø laøm cho A1015 daãn, luùc naøy Pin_out seõ ñöôïc keùo leân möùc logic 1. Khi Pin_in coù möùc logic 1, A1015 khoâng daãn, Pin_out seõ coù möùc logic 0. Pin_out ñöôïc noái ñeán caùc pin cuûa vi ñieàu khieån maø ta quy ñònh laø pin nhaän tín hieäu.
Hình 4.16 Maïch nhaän tín hieäu tieàn hoaøn chænh
Maïch hieån thò LED 7 ñoaïn
Trong thieát keá cuûa mình, nhoùm ñaõ söû duïng 4 led 7 ñoaïn ñeå hieån thò soá tieàn maø ngöôøi mua ñaõ cho vaøo maùy baùn nöôùc cuõng nhö soá tieàn coøn laïi sau moãi laàn mua nöôùc. Vôùi thieát keá naøy, soá tieàn maø ngöôøi mua seõ ñöôïc hieån thò vôùi giaù trò chia 10 ( ví duï: ngöôøi mua haøng ñöa vaøo maùy baùn nöôùc soá tieàn coù giaù trò laø 5000 ñoàng, maùy seõ hieån thò leân led 7 ñoaïn giaù trò 500). Nhö vaäy ngöôøi mua toái ña chæ ñöa vaøo maùy soá tieàn laø 99990 VNÑ.
Ñeå hieån thò 4 led 7 ñoaïn, nhoùm ñaõ söû duïng giaûi thuaät queùt led vôùi öu ñieåm deã ñieàu khieån, hieån thò ngay giaù trò tieàn nhaän ñöôïc cuõng nhö giaù trò tieàn coøn dö sau khi thoái. Ñeå thöïc hieän giaûi thuaät naøy, 7 chaân tín hieäu cuûa led 7 ñoaïn seõ ñöôïc noái chung thaønh 7 bus vaø nhoùm söû duïng 8 pin cuûa vi ñieàu khieån AT89C51: 4 pin töø P1.4 ñeán P1.7 ñöôïc ñöa vaøo IC 74247 coù nhieäm vuï giaûi maõ giaù trò BCD sang giaù trò led 7 ñoaïn; 4 pin coøn laïi ñöôïc duøng ñeå choïn led hieån thò theo giaûi thuaät cuûa queùt led theo thöù töï P1.0 seõ choïn ñeå tích cöïc led ñôn vò cho ñeán P1.3 tích cöïc led ngaøn.
Hình 4.17 Maïch hieån thò Led 7 ñoaïn
Maïch ñieàu khieån ñoäng cô baùn nöôùc vaø ñoäng cô thoái tieàn
Hình 4.18 Maïch xoay ñoäng cô thoái tieàn
Hình 4.19 Maïch xoay ñoäng cô baùn nöôùc
Ñoái vôùi ñoäng cô baùn nöôùc, aùp caáp cho ñoäng cô laø 12V, coøn vôùi thoái tieàn ta caáp aùp 5V cho ñoäng cô.
Do yeâu caàu cuûa nhoùm chæ caàn ñoäng cô xoay theo 1 chieàu ñaõ ñònh tröôùc neân nhoùm söû duïng opto PC817 keát hôïp vôùi IRF540 ñeå ñieàu khieån vieäc xoay ñoäng cô.
Khi Pin_in coù möùc logic 0, chaân G cuûa IRF540 seõ ñöôïc keùo leân 12V, IRF540 daãn vaø laøm xoay ñoäng cô.
Hình 4.20 Maïch ñieàu khieån xoay ñoäng cô hoaøn chænh
Maïch saùng ñeøn baùo coøn nöôùc
Hình 4.21 Maïch saùng ñeøn baùo nöôùc
Treân maùy baùn nöôùc nhoùm boá trí 3 ñeøn saùng ñeå baùo cho khaùch mua bieát nhöõng loaïi nöôùc naøo coøn ñeå mua. Ñeøn chæ saùng khi soá tieàn ngöôøi mua ñöa vaøo maùy lôùn hôn hay baèng giaù cuûa loaïi nöôùc maø noù thoâng baùo ñoàng thôøi loaïi nöôùc ñoù vaãn chöa ñöôïc baùn heát.
Ñeøn ôû ñaây laø loaïi ñeøn söû duïng ñieän 220V neân nhoùm phaûi söû duïng opto triac MOC 3020 trong vieäc saùng ñeøn.
Hình 4.22 Maïch saùng ñeøn cho caû heä thoáng.
Maïch heä thoáng chính
Maïch heä thoáng chính bao goàm vi ñieàu khieån AT89C51 vaø caùc header ra ñeå keát noái vôùi caùc module treân. Maïch coù nhieäm vuï nhaän veà caùc tín hieäu töø caùc caûm bieán, xöû lyù vaø ñöa ra tín hieäu ñeå ñieàu khieån caùc ñoäng cô baùn nöôùc vaø thoái tieàn, ñoàng thôøi hieån thò giaù tieàn cho ngöôøi mua. Beân caïnh ñoù, maïch cuõng thöïc hieän vieäc trao ñoåi döõ lieäu noái tieáp ñeå ñoïc veà giaù nöôùc, cuõng nhö nhaän tín hieäu baùn nöôùc vaø thoái tieàn.
Hình 4.23 Maïch heä thoáng chính.
Maïch thay ñoåi giaù tieàn nöôùc vaø hieån thò LCD
Maïch cuõng goàm 1 vi ñieàu khieån AT89C51 keát noái vôùi ma traän phím, EPPROM AT24C64 vaø LCD. Beân caïnh ñoù, maïch cuõng ñöa ra ñöôøng giao tieáp noái tieáp. Maïch coù chöùc naêng cho ngöôøi söû duïng thay ñoåi vaø löu laïi giaù nöôùc moãi khi caàn thieát, göûi giaù baùn nöôùc cho maïch heä thoáng chính ngay khi môû maùy vaø truyeàn caùc tín hieäu baùn nöôùc vaø thoái tieàn cho maïch heä thoáng chính.
Hình 4.24 Maïch thay ñoåi vaø löu giaù nöôùc.
Nhö vaäy, chuùng ta ñaõ vöøa khaûo saùt xong taát caû nhöõng maïch ñieàu khieån maø nhoùm ñaõ thöïc hieän trong luaän vaên cuûa mình.
Chöông 5ÑIEÀU KHIEÅN
Giaûi thuaät ñieàu khieån
Nạp tiền xu
Trả lại tiền
Xác định giá trị
Nạp yêu cầu mua hàng
Xuất hàng
Trả tiền thừa
Tính tổng tiền
Tính tiền thừa và ra quyết định
Hình 5.1 Sô ñoà giaûi thuaät ñieàu khieån
Ñaàu tieân, khaùch haøng phaûi naïp tieàn kim loaïi vaøo maùy.
Khoái chöùc naêng “ Xaùc ñònh giaù trò “ seõ xaùc ñònh soá tieàn maø khaùch haøng ñaõ noäp vaøo. Neáu khoái naøy phaùt hieän ñoàng tieàn kim loaïi ñaõ ñöôïc ñöa vaøo khoâng coù giaù trò thì tín hieäu traû laïi tieàn seõ ñöôïc phaùt ra; traùi laïi, neáu xaùc ñònh ñoàng tieàn kim loaïi vöøa môùi ñöa vaøo hôïp leä vaø lôùn hôn hoaëc baèng giaù trò saûn phaåm, khaùch haøng coù theå mua haøng.
Khaùch haøng coù theå yeâu caàu mua haøng hoaëc nhaän laïi soá tieàn cuûa mình. Soá löôïng vaø loaïi haøng hoaù yeâu caàu seõ ñöôïc tính thaønh toång soá tieàn taïi khoái “ Tính toång tieàn “.
Khoái” tính tieàn thöøa vaø ra quyeát ñònh “ seõ so saønh soá tieàn cuûa khaùch côùi toång giaù trò haøng hoaù, sau ñoù ñöa ra quyeát ñònh xuaát haøng, traû tieàn thöøa hay ñeà nghò khaùch haøng choïn laïi.
Löu ñoà ñieàu khieån
Xaùc ñònh giaù trò
Sai
Ñuùng
Nhaän giaù nöôùc
Start
Naïp tieàn
Hieån thò
Tính tieàn thöøa vaø thoái tieàn
Tín hieäu baùn nöôùc
Tín hieäu thoái tieàn
Tính toång giaù tieàn
Baùn nöôùc
Hieån thò
Chöông 6VAÄN HAØNH VAØ BAÛO DÖÔÕNG
Giao dieän söû duïng maùy
3 ñeøn baùo coøn hay heát nöôùc.
3 nuùt nhaán choïn nöôùc töông öùng cho töøng loaïi nöôùc.
Nuùt nhaán laáy tieàn thoái (ôû gaàn maøn hình hieån thò).
Hieån thò giaù tieàn (goàm 4 led 7 ñoaïn).
Raõnh boû tieàn.
Khay nhaän tieàn thoái.
Khay laáy lon nöôùc.
Hình 6.1 Maùy baùn nöôùc töï ñoäng hoaøn chænh
Caùch söû duïng maùy
Boû tieàn vaøo maùy baùn nöôùc qua raõnh boû tieàn (maùy khoâng chaáp nhaän tieàn 200 vnñ), sau ñoù quan saùt giaù tieàn ñöôïc hieån thò (löu yù giaù tieàn hieån thò seõ ñöôïc chia 10, ví duï naïp 5000 vnñ, maùy seõ hieån thò ra led 7 ñoaïn laø 500). Neáu tieàn khoâng ñöôïc nhaän vì 1 lyù do naøo ñoù (tieàn giaû hay tieàn bò hao moøn nhieàu), ngöôøi mua seõ ñöôïc nhaän laïi tieàn vöøa naïp vaøo maùy ôû khay nhaän tieàn thoái, luùc naøy ngöôøi mua caàn thöïc hieän laïi vieäc naïp tieàn.
Khi giaù tieàn ñaõ lôùn hôn hay baèng vôùi giaù tieàn nöôùc, ñoàng thôøi trong maùy vaãn coøn nöôùc, nhöõng ñeøn baùo seõ saùng giuùp cho ngöôøi mua bieát hoï coù theå mua loaïi nöôùc naøo töø maùy.
Muoán laáy haøng, ngöôøi mua seõ nhaán nhöõng nuùt mua töông öùng (caàn giöõ nuùt nhaán trong thôøi gian khoaûng 1s). Moãi laàn nhaán seõ mua 1 lon nöôùc, neáu muoán mua lon thöù 2 thì ngöôøi mua nhaán nuùt theâm laàn nöõa (vôùi ñieàu kieän ñeøn baùo phaûi saùng).
Khi caàn laáy laïi tieàn thoái, khaùch haøng seõ nhaán vaøo nuùt thoái tieàn (maùy chæ thoái 3 loaïi tieàn laø 2000vnñ, 1000vnñ vaø 500vnñ).
Nhöõng löu yù khi söû duïng maùy
Khoâng naïp tieàn giaû vaøo maùy.
Chæ mua nhöõng loaïi nöôùc coù ñeøn baùo saùng.
Naïp tieàn töøng ñoàng vaø chôø khi maøn hình hieån thò giaù trò môùi tieáp tuïc naïp ñoàng keá tieáp.
Maùy chæ nhaän toái ña moät laàn naïp tieàn laø 99990vnñ.
Ñôïi haøng ra ñeán cöûa nhaän haøng môùi tieáp tuïc mua lon nöôùc môùi.
Khoâng mua nöôùc khi ñang thöïc hieän vieäc thay ñoåi giaù nöôùc.
Ñaët maùy hoaït ñoäng ôû nôi troáng traûi, traùnh rung vaø va chaïm cô khí.
Ñoái vôùi nhaø kinh doanh, caàn kieåm tra nöôùc vaø tieàn thoái ñònh kyø 2 hay 3 laàn trong 1 ngaøy.
Khoâng neân ñeå maùy hoaït ñoäng ôû cheá ñoä 24/24.
Baûo döôõng
Baûo trì baát thöôøng
Khi xaûy ra baát cöù loãi baát thöôøng naøo, vieäc ñaàu tieân laø caàn ngöng ngay moïi hoaït ñoäng cuûa maùy baèng caùch caét nguoàn ngay cho maùy. Sau ñoù ta môùi baét tay vaøo vieäc chaån ñoaùn loãi vaø söûa chöõa. Khoâng ñöôïc pheùp thay theá caùc linh kieän khi maùy vaãn coøn hoaït ñoäng.
Caùc loãi baát thöôøng coù theå xaûy ra:
Lon nöôùc baùn ra bò keït khoâng ra ñöôïc khay baùn haøng
Loãi xaûy ra do lon nöôùc trong oáng khoâng ñöôïc ñònh höôùng ñuùng hay do lon bò bieán daïng (do hö hao hay do quaù trình ñöa lon vaøo oáng chöùa) daãn ñeán lon bò keït giöõa boä phaän xoay vaø oáng chöùa.
Sau ñoù ta caàn môû maùy, kieåm tra laïi oáng nöôùc, chænh höôùng laïi cho caùc lon nöôùc hay thay theá lon nöôùc neáu lon nöôùc bò bieán daïng nhieàu veà hình daïng.
Nhaán nuùt baùn nöôùc hay thoái tieàn nhöng khoâng hoaït ñoäng (duø ñeøn baùo saùng)
Loãi coù theå xaûy ra do caùc nuùt nhaán bò lôøn tieáp ñieåm daãn ñeán vi xöû lyù khoâng nhaän ñöôïc tín hieäu ñeå xöû lyù. Loãi cuõng coù theå xaûy ra khi vi xöû lyù bò hö hoûng hay caùc linh kieän ñieän töû treân 1 cuïm bò hö.
Ñeå söûa chöõa, ñaàu tieân ta caàn kieåm tra laïi nuùt nhaán. Neáu nuùt nhaán vaãn coøn hoaït ñoäng toát, ta kieåm tra laïi caùc linh kieän ñieän töû treân nhöõng cuïm ñoäng cô baùn nöôùc hay thoái tieàn hoaït ñoäng sai. Cuoái cuøng ta caàn kieåm tra hoaït ñoäng cuûa vi xöû lyù. Sau ñoù thay theá nhöõng thieát bò hay linh kieän bò hö hoûng.
Tieàn thoái hay baùn nöôùc bò sai
Loãi coù theå do 1 trong caùc ñoäng cô khoâng hoaït ñoäng, linh kieän treân cuïm ñoäng cô ñoù bò hö hoaëc coù theå do caùc caûm bieán hoàng ngoaïi bò hö hoûng daãn ñeán vi xöû lyù nhaän nhöõng tín hieäu sai, cuõng coù theå chính vi xöû lyù bò hö daãn ñeán loãi treân.
Ñeå khaéc phuïc, caàn kieåm tra hoaït ñoäng cuûa ñoäng cô cuõng nhö linh kieän treân cuïm nghi ngôø hö hao. Neáu taát caû bình thöôøng thì caàn kieåm tra hoaït ñoäng cuûa caûm bieán vaø cuoái cuøng laø cuûa vi xöû lyù.
Hieån thò giaù tieàn sai
Loãi coù theå do led 7 ñoaïn duøng ñeå hieån thò bò hö, nhöng chuû yeáu nguyeân nhaân hö hao laø do boä phaän nhaän tieàn bò hö. Tröôøng hôïp ít xaûy ra nhaát nhöng cuõng coù theå xaûy ra laø hö vi xöû lyù hay caùc linh kieän trong cuïm hieån thò nhö IC 7447 hay A1015.
Khi phaùt hieän loãi sai, caàn kieåm tra led hieån thò sai. Neáu bình thöôøng, luùc naøy caàn kieåm tra cuïm nhaän tieàn nghi ngôø bò hö vaø cuoái cuøng laø kieåm tra vi xöû lyù vaø caùc linh kieän.
Baûo döôõng ñònh kyø
Veä sinh maùy haøng ngaøy keát hôïp kieåm tra caùc ñaàu daây noái maïch ñieän tröôùc khi cho maùy hoaït ñoäng.
Caàn baûo döôõng ñònh kyø cho maùy 1 naêm/laàn:
Veä sinh caùc maïch in.
Kieåm tra ñoä rô cuûa caùc truïc.
Boâi trôn caùc oå bi.
Kieåm tra hoaït ñoäng cuûa ñoäng cô vaø caùc thieát bò ñieän töû treân maïch.
Kieåm tra caùc nuùt nhaán vaø caùc ñeøn baùo.
Kieåm tra hoaït ñoäng cuûa boä phaän nhaän daïng tieàn.
Kieåm tra keát caáu cô khí.
Chöông 7KEÁT LUAÄN
Nhöõng vaán ñeà ñaõ giaûi quyeát :
Veà phaàn cô khí
Thieát keá vaø cheá taïo ñöôïc tuû chöùa cho caû heä thoáng vôùi kích thöôùc vaø keát caáu phuø hôïp , giao dieän thaân thieän vôùi ngöôøi söû duïng.
Oáng chöùanöôùc vaø cöûa chaën hoaït ñoäng töông ñoái oån ñònh.
Boä phaän nhaän daïng tieàn hoaït ñoäng chính xaùc, mang tính chuyeân nghieäp .
Boä phaän thoái tieàn hoaït ñoäng hieäu quaû, thoái chính xaùc soá tieàn dö cho khaùch.
Veà phaàn ñieàu khieån
Caùc maïch ñieàu khieån ñöôïc xaây döïng treân cô sôû nhöõng linh kieän ñieän töû thoâng duïng ,deã thay theá vaø giaù thaønh reû, ñoä oån ñònh laïi töông ñoái cao, ñôn giaûn vaø nhoû goïn.
Giaûi thuaät ñieàu khieån logic, deã hieåu vaø deã xaây döïng chöông trình.
Cho pheùp nhaø kinh doanh thay ñoåi ñöôïc giaù baùn nöôùc trong nhöõng thôøi ñieåm khaùc nhau.
Nhöõng haïn cheá
Maëc duø ñaõ phaán ñaáu khoâng meät moûi trong quaù trình tìm toøi hoïc hoûi cuõng nhö trong thöïc teá cheá taïo moâ hình, cuøng vôùi söï chæ daãn nhieät tình cuûa caùn boä höôùng daãn vaø caùc thaày trong boä moân, nhöng do kinh nghieäm thöïc teá coøn yeáu keùm trong vieäc thieát keá vaø gia coâng cô khí, neân nhoùm chuùng em ñaõ maéc phaûi moät soá maët haïn cheá sau :
Maùy chæ baùn ñöôïc 3 loaïi nöôùc trong khi khoâng gian tuû chöùa coù theå boá trí leân ñeán 5 loaïi.
Oáng chöùa lon ñöôïc thieát keá kín xung quanh, neân gaây ra tieáng oàn moãi khi ñöa lon vaøo oáng, vaø ñoâi khi gaây keït lon trong oáng.
Boä phaän nhaän daïng tieàn chæ nhaän ñöôïc 4 loaïi tieàn laø 5000, 2000, 500, vaø 1000. Thieáu soùt naøy baét nguoàn töø thaùi ñoä noùng voäi trong vieäc thieát keá tuû chöùa maø khoâng tính ñeán söï caân ñoái trong vieäc boá trí caùc module thaønh phaàn, haäu quaû laø khoâng ñuû khoâng gian ñeå boá trí cho caû 5 module thaønh phaàn.
Chöa tìm ra phöông aùn ñeå thoái tieàn 1 caùch toái öu nhaát.
Maùy chæ coù theå löu laïi giaù nöôùc toái ña laø 25000vnñ.
Maùy chöa coù ñöôïc boä phaän laøm laïnh lon nöôùc. Ñaây laø yeáu toá raát quan troïng vì nöôùc coù laïnh thì khaùch haøng môùi coù caûm giaùc saûng khoaùi khi thöôûng thöùc.
Nhoùm chuùng em raát mong caùc baïn sinh vieân khoaù sau, neáu coù nieàm ñam meâ ñoái vôùi ñeà taøi naøy seõ tieáp tuïc giaûi quyeát nhöõng maët coøn ñang haïn cheá cuõng nhö tìm kieám boå sung theâm nhieàu yeáu toá môùi hay hôn , goùp phaàn ñöa ñeà taøi ngaøy caøng gaàn vôùi thöïc tieãn.
Phöông höôùng môû roäng
Thieát keá cheá taïo laïi phaàn cô khí ñeå coù theå baùn ñöôïc nhieàu loaïi nöôùc ngoït hôn vaø chöùa ñöôïc nhieàu lon hôn, cuõng coù theå keát hôïp theâm vieäc baùn moät soá saûn phaåm nhoû goïn khaùc nhö baùnh keïo, khaên giaáy, bao cao sau,…
Tìm kieám phöông aùn thieát keá cheá taïo boä phaän nhaän daïng tieàn goïn hôn, thôøi gian nhaän daïng nhanh hôn.
Thieát keá cheá taïo boä phaän thoái ñöôïc caû 5 loaïi tieàn.
Thieát keá cheá taïo theâm heä thoáng laïnh cho maùy.
TAØI LIEÄU THAM KHAÛO
1. Luaän vaên toát nghieäp Cao ñaúng ngaønh Cô Ñieän Töû khoaù 2001, Ñeà taøi :Maùy baùn baùo töï ñoäng, CBHD : Nguyeãn Thaùi Anh Tuaán.
2. Trònh Chaát & Leâ Vaên Uyeån, Tính toaùn thieát keá heä daãn ñoäng cô khí taäp I vaø II, NXB Giaùo duïc.
3. Nguyeãn Ngoïc Caån, Kyõ thuaät ñieàu khieån töï ñoäng, NXB Ñaïi hoïc Baùch khoa TP.HCM, (1995).
4. Leâ Trung Thöïc, Töï ñoäng hoaù saûn xuaát, NXB Ñaïi hoïc Baùch Khoa TP.HCM, (2000).
5. Nguyeãn Ngoïc Caån, Trang bò ñieän trong maùy caét kim loaïi, NXB Ñaïi hoïc Quoác gia TP.HCM, (2001).
6. Döông Minh Trí, Caûm bieán vaø öùng duïng, NXB khoa hoïc vaø kyõ thuaät, (2001).
7. Toáng Vaên On & Hoaøng Ñöùc Haûi, Hoï vi ñieàu khieån 8051, NXB Lao ñoäng – Xaõ hoäi, (2001).
8. Leâ Phi Yeán, Löu Phuùc & Nguyeãn Nhö Anh, Kó thuaät ñieän töû, NXB Ñaïi hoïc Baùch Khoa TP.HCM(1996).
9. www.atmel.com
10. www.8052.com
PHUÏ LUÏC
Höôùng daãn söû duïng module thay ñoåi giaù tieàn
Muoán thay ñoåi giaù tieàn cuûa caùc loaïi nöôùc, tröôùc tieân ta caàn ngöng laïi taát caû hoaït ñoäng baùn nöôùc. Laép ñaët module thay ñoåi giaù tieàn vaøo maùy, ñeå coù theå vaøo ñöôïc chöông trình thay ñoåi giaù tieàn ta caàn nhaán phím F4 treân ma traän phím. Sau ñoù ta caàn ñôïi 1 khoaûng thôøi gian cho ñeán khi doøng chöõ « NHAN GIA TIEN » xuaát hieän treân maøn hình LCD. Luùc naøy chöông trình nhaän giaù tieàn baét ñaàu hoaït ñoäng.
Hình phuï luïc 1 Module thay ñoåi giaù nöôùc.
Ñeå nhaäp giaù tieàn, ta söû duïng caùc phím soá töø 0-9 treân ma traän phím (löu yù : giaù nöôùc chæ coù theå toái ña laø 25000vnñ). Sau khi ñaõ nhaäp ñöôïc giaù nöôùc caàn thieát, ta nhaán phím ENTER treân baøn phím. Maøn hình LCD seõ chuyeån sang doøng hieån thò môùi, neáu muoán löu laïi giaù nöôùc cho saûn phaåm thöù 1 ta nhaán phím F1, F2 cho saûn phaåm thöù 2 vaø F3 cho saûn phaåm thöù 3.
Hình phuï luïc 2 Maøn hình LCD hieån thò cuûa module thay ñoåi giaù nöôùc.
Trong quaù trình nhaäp giaù nöôùc, neáu muoán xoùa nhanh giaù nöôùc veà 0vnñ, coù theå söû duïng phím ESC.
Sau khi ñaõ thay ñoåi vaø löu laïi ñöôïc giaù nöôùc nhö mong muoán, ta nhaán phím F4 laàn nöõa ñeå keát thuùc chöông trình. Sau ñoù maøn hình LCD seõ hieän laïi doøng chöõ « XIN CHAO » baùo hieäu chöông trình nhaän giaù nöôùc keát thuùc. Neáu muoán tieáp tuïc thay ñoåi giaù nöôùc, ta thöïc hieän laïi caùc böôùc nhö ôû treân.
Ñeå coù theå baùn haøng vôùi giaù môùi, ta caàn ngöng caáp ñieän cho maùy trong voøng 5 phuùt. Sau ñoù caáp ñieän laïi cho maùy, töø luùc naøy maùy seõ baùn nöôùc vôùi giaù môùi vöøa ñöôïc löu.
Giaûi thuaät hieån thò
void hienthi()
{
unsigned int ngan,tram,chuc,dvi,temp;
kq=kq+b+c+d+e;
temp=kq;
/* hien thi led dvi */
dvi=temp%10;
temp=temp/10;
P1=0x0E;
delay(100);
P1=0xFF;
delay(100);
/* hien thi led chuc */
chuc=temp%10;
temp=temp/10;
switch (chuc)
{
case 0:
P1=0x0D;
break;
case 1:
P1=0x1D;
break;
case 2:
P1=0x2D;
break;
case 3:
P1=0x3D;
break;
case 4:
P1=0x4D;
break;
case 5:
P1=0x5D;
break;
case 6:
P1=0x6D;
break;
case 7:
P1=0x7D;
break;
case 8:
P1=0x8D;
break;
case 9:
P1=0x9D;
break;
}
delay(100);
P1=0xFF;
delay(100);
/* hien thi led tram */
tram=temp%10;
temp=temp/10;
switch (tram)
{
case 0:
P1=0x0B;
break;
case 1:
P1=0x1B;
break;
case 2:
P1=0x2B;
break;
case 3:
P1=0x3B;
break;
case 4:
P1=0x4B;
break;
case 5:
P1=0x5B;
break;
case 6:
P1=0x6B;
break;
case 7:
P1=0x7B;
break;
case 8:
P1=0x8B;
break;
case 9:
P1=0x9B;
break;
}
delay(100);
P1=0xFF;
delay(100);
/* hien thi led ngan */
ngan=temp%10;
temp=temp/10;
switch (ngan)
{
case 0:
P1=0x07;
break;
case 1:
P1=0x17;
break;
case 2:
P1=0x27;
break;
case 3:
P1=0x37;
break;
case 4:
P1=0x47;
break;
case 5:
P1=0x57;
break;
case 6:
P1=0x67;
break;
case 7:
P1=0x77;
break;
case 8:
P1=0x87;
break;
case 9:
P1=0x97;
break;
}
delay(100);
P1=0xFF;
delay(100);
/* sang den bao */
if ((kq>=gia_nuoc_1)&&(P0_7==0)) P0.7 tin hieu nhan con nuoc 1
P2_2=0; P2.2 sang den bao nuoc 1
else
P2_2=1;
if ((kq>=gia_nuoc_2)&&(P0_6==0)) P0.6 tin hieu nhan con nuoc 2
P2_1=0; P2.1 sang den bao nuoc 2
else
P2_1=1;
if ((kq>=gia_nuoc_3)&&(P0_5==0)) P0.5 tin hieu nhan con nuoc 3
P2_0=0; P2.0 sang den bao nuoc 3
else
P2_0=1;
}
Giaûi thuaät nhaän giaù tieàn
/* nhan dong 5000 */
void nhan5000(void)
{
if (P0_0==0) P0.0 nhan tin hieu co dong 5000
{
while (P0_0==0) hienthi();
delay(100);
b=500;
}
hienthi();
b=0;
}
/* nhan dong 2000 */
void nhan2000(void)
{
if (P0_1==0) P0.1 nhan tin hieu co dong 2000
{
while (P0_1==0) hienthi();
delay(100);
c=200;
}
hienthi();
c=0;
}
/* nhan dong 500 */
void nhan500(void)
{
if (P0_2==0) P0.2 nhan tin hieu co dong 500
{
while (P0_2==0) hienthi();
delay(100);
d=50;
}
hienthi();
d=0;
}
/* nhan dong 1000 */
void nhan1000(void)
{
if (P0_3==0) P0.4 nhan tin hieu co dong 1000
{
while (P0_3==0) hienthi();
delay(100);
e=100;
}
hienthi();
e=0;
}
Giaûi thuaät noái tieáp
void init_serial_port(void)
{
TR1=0;
TMOD=0x20; bo dinh thoi 1, che do 2
TH1=0xF4; baund=2400, 11.0592 MHz
SCON=0x50; port noi tiep, che do 1
TR1=1;
IE=0x90; cho phep ngat noi tiep
}
void truyen(void) interrupt 4 using 1
{
if (RI==1)
{
RI = 0;
value=SBUF;
rx_flag=1;
}
}
Giaûi thuaät baùn nöôùc vaø thoái tieàn
void button_command()
{
unsigned int i,lan1,lan2,lan3,temp;
receive_signal();
/********** ban nuoc **********/
/* ban nuoc 1 */
if ((signal1==1)&&(P0_7==0))
{
if (kq>=gia_nuoc_1)
{
P3_2=0; P3.2 xoay dong co ban nuoc 1
delay(65000);
P3_2=1;
kq=kq-gia_nuoc_1;
hienthi();
}
signal1=0;
return;
}
/* ban nuoc 2 */
if ((signal2==1)&&(P0_6==0))
{
if (kq>=gia_nuoc_2)
{
P3_3=0; P3.3 xoay dong co ban nuoc 2
delay(65000);
P3_3=1;
kq=kq-gia_nuoc_2;
hienthi();
}
signal2=0;
return;
}
/* ban nuoc 3 */
if ((signal3==1) && (P0_5==0))
{
if (kq>=gia_nuoc_3)
{
P3_4=0; P3.4 xoay dong co ban nuoc 3
delay(65000);
P3_4=1;
kq=kq-gia_nuoc_3;
hienthi();
}
signal3=0;
return;
}
/********** thoi tien **********/
if (signal4==1)
{
temp=kq;
lan1=temp/200; lan1 luu so dong 2000 can thoi
temp=temp%200;
lan2=temp/100; lan2 luu so dong 1000 can thoi
temp=temp%100;
lan3=temp/50; lan3 luu so dong 500 can thoi
/* thoi dong 2000 */
for(i=0;i<lan1;i++)
{
while (P2_3==1) P3_5=0; P2.3 tin hieu thoi tien dco 1
P3_5=1; P3.5 xoay dong co thoi tien 1
Delay20(1);
}
/* thoi dong 1000 */
for(i=0;i<lan2;i++)
{
while (P2_4==1) P3_6=0; P2.4 tin hieu thoi tien dco 2
P3_6=1; P3.6 xoay dong co thoi tien 2
Delay20(1);
}
/* thoi dong 500 */
for(i=0;i<lan3;i++)
{
while (P2_5==1) P3_7=0; P2.5 tin hieu thoi tien dco 3
P3_7=1; P3.7 xoay dong co thoi tien 3
Delay20(1);
}
kq=0;
hienthi();
signal4=0;
return;
}
signal1=0;
signal2=0;
signal3=0;
signal4=0;
}
Giaûi thuaät queùt ma traän phím
void ma_tran(void)
{
ES=0; khong cho phep ngat noi tiep
P0 = 0xFF;
/***** quet ban phim *****/
quet:
P0_4=0;
switch (P0)
{
case 0xEE: nhan phim 1
while (P0==0xEE);
Delay20(30);
xuat_lcd(1);
break;
case 0xED: nhan phim 2
while (P0==0xED);
Delay20(30);
xuat_lcd(2);
break;
case 0xEB: nhan phim 3
while (P0==0xEB);
Delay20(30);
xuat_lcd(3);
break;
case 0xE7: nhan phim F1
while (P0==0xE7);
Delay20(30);
flag1=1;
write_price();
break;
}
P0_4=1;
P0_5=0;
switch (P0)
{
case 0xDE: nhan phim 4
while (P0==0xDE);
Delay20(30);
xuat_lcd(4);
break;
case 0xDD: nhan phim 5
while (P0==0xDD);
Delay20(30);
xuat_lcd(5);
break;
case 0xDB: nhan phim 6
while (P0==0xDB);
Delay20(30);
xuat_lcd(6);
break;
case 0xD7: nhan phim F2
while (P0==0xD7);
Delay20(30);
flag2=1;
write_price();
break;
}
P0_5=1;
P0_6=0;
switch (P0)
{
case 0xBE: nhan phim 7
while (P0==0xBE);
Delay20(30);
xuat_lcd(7);
break;
case 0xBD: nhan phim 8
while (P0==0xBD);
Delay20(30);
xuat_lcd(8);
break;
case 0xBB: nhan phim 9
while (P0==0xBB);
Delay20(30);
xuat_lcd(9);
break;
case 0xB7: nhan phim F3
while (P0==0xB7);
Delay20(10);
flag3=1;
write_price();
break;
}
P0_6=1;
P0_7=0;
switch (P0)
{
case 0x7E: nhan phim esc
while (P0==0x7E);
Delay20(30);
xoa();
xuat_lcd(0);
break;
case 0x7D: nhan phim 0
while (P0==0x7D);
Delay20(30);
xuat_lcd(0);
break;
case 0x7B: nhan phim enter
while (P0==0x7B);
Delay20(30);
luu_gia_tri();
break;
case 0x77: nhan phim F4 (thoat chuong trinh)
while (P0==0x77);
Delay20(30);
xoa();
ES=1; cho phep lai ngat noi tiep
return;
}
P0_7=1;
goto quet;
}
Giaûi thuaät löu, göûi vaø ñoïc giaù nöôùc
void write_byte(void) ghi laïi giaù nöôùc
{
unsigned char price1, price2, price3;
if (flag==1) phim enter da duoc nhan
{
if (flag1==1) nhan phim F1, löu laïi giaù nöôùc 1
{
price1=kq/100;
WriteByte(0,price1);
xoa();
flag1=0;
}
if (flag2==1) nhan phim F2, löu laïi giaù nöôùc 2
{
price2=kq/100;
WriteByte(1,price2);
xoa();
flag2=0;
}
if (flag3==1) nhan phim F3, löu laïi giaù nöôùc 3
{
price3=kq/100;
WriteByte(2,price3);
xoa();
flag3=0;
}
flag=0;
}
}
void send_price(void) göûi giaù nöôùc cho chöông trình chính
{
unsigned char gia1,gia2,gia3;
init_serial_port();
gia1=ReadRandom(0);
gia2=ReadRandom(1);
gia3=ReadRandom(2);
SBUF=gia1;
Delay20(5);
while(!rx_flag);
rx_flag=0;
Delay20(10);
SBUF=gia2;
Delay20(5);
while(!rx_flag);
rx_flag=0;
Delay20(10);
SBUF=gia3;
Delay20(5);
while(!rx_flag);
rx_flag=0;
Delay20(10);
}
void read_price(void) ñoïc giaù nöôùc cho chöông trình chính
{
init_serial_port();
while (!rx_flag);
rx_flag=0;
gia_nuoc_1=value; luu lai gia nuoc 1
Delay20(5);
SBUF=0xFF;
Delay20(10);
while (!rx_flag);
rx_flag=0;
gia_nuoc_2=value; luu lai gia nuoc 2
Delay20(5);
SBUF=0xFF;
Delay20(10);
while (!rx_flag);
rx_flag=0;
gia_nuoc_3=value; luu lai gia nuoc 3
Delay20(5);
SBUF=0xFF;
Delay20(10);
gia_nuoc_1*=10;
gia_nuoc_2*=10;
gia_nuoc_3*=10;
ES=0;
}
Giaûi thuaät chính cuûa maùy baùn haøng
void main(void)
{
write_price();
ES=0;
while (1)
{
nhan500();
button_command();
nhan1000();
button_command();
nhan2000();
button_command();
nhan5000();
button_command();
}
}