Professional Documents
Culture Documents
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
...............................................................................................
LI NI U
Ngy nay vi s pht trin ca khoa hc cng ngh, nht l trong lnh vc iu
khin v truyn thng, rt nhiu my, h thng t ng thng minh ra i, lm
thay i v mi mt cuc sng ca con ngi. C th trong cng nghip l cc my
t ng, cc trm sn xut linh hot, cc nh my thng minh... Trong dn dng l
cc thit b phc v trong cc gia nh nh my git, t lnh, cc h thng bo v,
chiu sng t ng. Trong trao i, mua bn cng xut hin cc thit b t ng
nh cc my ATM, cc my thanh ton card, cc my bn c ph.Vi nhng chic
my vic mua bn, trao i ca con ngi tr ln thun tin hn. Trong bo co
ny, nhm mun cp n mt trong nhng chic my t ng ng dng trong giao
thng, l my bn hng t ng.
ti Thit k v ch to m hnh my bn hng t ng m nhm c
giao, tht s l mt th thch, do nguyn l hot ng, kt cu c kh, phng php
iu khin ca cc my loi ny hon ton xa l vi cc thnh vin ca nhm, cc ti
liu v nhng chic my ny hon ton khng c. Nhng chnh thch thc cng l
ng lc nhm lm vic. Qua ti, cc thnh vin ca nhm pht trin c
nhiu k nng nh lm vic nhm, cch tip cn vi vn mi, cch gii quyt vn
Hn th na trong qu trnh lm ti, nhm vn dng c nhng kin thc
hc nh thit k c kh, lp trnh iu khin, thit k h thng gii mt bi
ton rt thc t.
hon thnh tt ny, trc tin v trn ht, chng con mun cm n b m,
cm n b m sinh ra chng con, nui dy chng con, hiu chng con, ng h
chng con. B m cng l ng lc chng con phn u.
Chng em xin chn thnh cm n thy Nh Qu Th v cc thy c trong b
mn C in T, cng nh cc thy c trong khoa c kh gip chng em trong
thi gian lm ti. V hn na, cm n thy du dt, trang b kin thc c
chuyn mn ln cuc sng cho chng em trong bn nm qua. Sau khi ra trng,
chng em mong vn c thy, v cc thy c gip , ch bo.
ng thi nhm cng cm n cc bn trong lp CT1_K1 c nhng gp
qu bu cho nhm. V cm n v tnh bn ca cc bn.
Do thi gian c hn nn cng khng th trnh c nhng sai st trong qu
trnh lm ti. Nhm mong c nhng kin ng gp ca cc thy c v cc bn
c th hon thin ti tt hn.
Xin chn thnh cm n.
H Ni, ngy 01 thng 06 nm 2010
Sinh vin thc hin:
C Huy Hong
Nguyn Vn Phong
Lng Vn Tun
Nguyn Th Thy
2
MC LC
CHNG I
giao din, tnh nng ca nhng chic my . T p dng thit k trong gii
hn ti.
- p dng phng php lun trong thit k c in t vo thit k my, c th
l:
+ Thit k theo tun t, v ng thi.
+ M hnh ha phn c, m phng ha phn in, ti u ha trc khi hon
thin thit k trc khi ch to.
+ Ch to mu cc chi tit cha m bo hot ng nh mong mun, hoc cha
c thit k trong cc h thng tht trc , ch to mu mch in. Sau cng, ch
to tht m hnh my.
1.4.
CHNG II
2.1. My bn hng t ng
My bn hng t ng l mt sn phm t ng ha rt ph bin trn th
gii. cc nc pht trin nh Nht, M, EU., sn phm ny tr ln thng
dng vi ngi dn. Cc loi my ny, bn rt nhiu cc loi mt hng t cc loi
nc ng chai, n cc loi n, cc sn phm dn dng V mi y nht l
chic my bn vng t ng. Cc loi my ny trn th gii rt hon thin v kt
cu, tnh nng s dng, v hon thin, a dng trong cng ngh nhn bit loi thit
b dng thanh ton nh c th dng tin xu, tin giy, th tn dng hay bng tin
nhn SMS qua in thoi di ng
Vit Nam, nm 2003 khi tin xu a vo lu thng, my bn hng t ng
cng xut hin, nhng s pht trin loi my ny Vit Nam rt chm chp. Gn
y l xut hin cc loi my t ng thanh ton bng tin polyme. Xu hng ny c
v c chp nhn hn do tm l ngi dng tin xu ca ngi Vit Nam.
Trong ti ny nhm ch to mt chic my bn hng t ng thanh ton bng
tin xu.
V c bn, mt my bn hng t ng bao gm mt hay nhiu kho hng
cha sn phm, cc my hin i, cc kho c thit k c chc nng gi nhit
mt hng mc mong mun. Mt hay mt s thit b dng khch hng thanh ton
tin, c th l mt thit b nhn dng tin mt, mt thit b tr tin trong card hay
mt thit b kt ni mng tr tin qua smsCc c cu chp hnh a hng ra,
l cc ng c, xilanh thy lcCc thit b hin th, c th l mn hnh led hoc
mn hnh cm ng. Cc nt bm, cc c cu tr tin tha. B iu khin v cc cm
bin
Trong chng ny, nhm s gii thiu l thuyt cc cng ngh, cc nguyn l,
cc thit b m nhm s dng trong ti.
2.2. S lc v cc loi tin xu
Nhn dng tin xu l mt vic quan trng khi thit k, ch to my bn hng t
ng. Trn th gii, cc modul nhn dng tin xu c chun ho v kch
thc( theo mt s mu quy nh ) gip cc nh ch to c th thay th d dng khi
modul nhn dng tin xu gp trc trc k thut.
2.2.1. Cc loi tin xu kim loi trn th gii
Hu ht cc nc trn th gii k c cc nc c h thng thanh ton khng
dng tin mt tin kim loi vn s dng ph bin trong cc giao dch nh bi v tin
kim loi mang li li ch thit thc cho c nh pht hnh v ngi s dng. i vi
ngi pht hnh tin kim loi bn hn nn tit kim c chi ph pht hnh trong di
hn. i ngi s dng tin kim loi sch hn khng b rch nt, khng hp th tp
cht nh tin giy v ph hp vi vic s dng cc loi hnh dch v t ng ho.
6
Tuy nhin tin kim loi nng hn, kh m v d ri hn tin giy. Mc d vy trong
x hi hin i khng th thiu tin kim loi khi cc dch v thng mi t ng ho
pht trin.
Tu theo tp qun s dng v iu kin c th ca mi nc m c s khc
bit ng k v ng knh v trng lng ng tin. chu u ng tin nh nht
c ng knh 14mm ng tin ln nht l 31mm, ng tin nh nht l 0,55 gam,
ng tin nng nht l 13,5 gam. chu ng tin nh nht c ng knh l
15mm ng tin ln nht c ng knh 32mm, ng tin nh nht c trng lng
0.45 gam, ng tin nng nht c trng lng 15,5 gam.
Qua nghin cu ngi ta a ra ng knh ti u ca ng xu nm trong
khong 15 n 30 mm v n thun tin cho vic s dng m vn m bo tit kim
chi ph c dp. ng tin kim loi c mnh gi ln nht phi nn c ng knh nh
hn 30 mm v trng lng di 10 gam d phng khi cn pht hnh ng tin
kim loi c mnh gi ln hn trong tng lai. Chiu dy ca ng tin kim loi phi
ln hn 1mm p ng cc yu cu k thut trong qu trnh c ct phi p tin
ng thi to thun li cho vic s dng tin kim loi. Nhn b ngoi ng tin c
mnh gi ln hn c kch thc ln hn nhng trn thc t mi quan h ny khng
th hin r lm hu ht cc b tin kim loi trn th gii bi kch thc, trng
lng ca chng cn ph thuc vo cch phn nhm mnh gi trong mi b tin kim
loi.
V vt liu c tin, c th phn chia thnh ba nhm chnh: hp kim, thp m v
kim loi thun tu. Hp kim c bn mu, chng mi mn v chng oxi ho cao
nhng gi thnh sn xut cng cao. V vy chng c dng c cc nhm tin c
mnh gi cao trong b tin kim loi ca cc nc, nh 1 Euro, 2 Euro, 2 la
Canada, 1 la SingaporeHay nh loi tin 5000 ti Vit Nam pht hnh thng
12/2003.
Thp m( m ng hoc niken) c bn km hn nhng gi thnh li r hn
trong khi vn p ng c nhng yu cu v c, dp nn chng c dng sn
xut nhm tin c mnh gi thp hn trong h thng. Do tnh cht vt liu, tin kim
loi lm bng thp m ng d b xn mu hn tin lm bng hp kim ngay c khi
mi pht hnh. Ngoi ra tin kim loi ni chung nhanh b hng nu tip xc vi cc
cht n mn. Thc t cho thy ng 1000 v 2000 lm bng thp m ng ca Vit
Nam nhanh b xn mu hn cc loi mnh gi cn li, n khng th bn nh ng
5000 c lm bng hp kim CuAl16Ni2.
2.2.2. Cc loi tin xu Vit Nam
Vit Nam l mt trong nhng nc ang trn pht trin, tin hnh cng
nghip ho, hin i ho t nc nn hng lot cc dch v thng mi t ng ho
xut hin. Chnh v th vic s dng tin xu cho cc dch v ny ngy cng tr nn
cn thit i vi ngi dn Vit Nam. Nhn bit c iu , sau mt thi gian di
vng bng tin kim loi, k t nm 2003 ngn hng nh nc Vit Nam cho pht
hnh rng ri cc loi tin xu kim loi vi cc mnh gi 5000, 2000, 1000, 500, 200
ng. Tin xu Vit Nam c cc c im nh sau:
a, ng 5000 VN
10
2.3.1. o ng knh
LED thu 5000
LED thu 2000
LED thu 1000
LED thu 500
LED thu 200
d2
Gi trca mu
Loi b mu
d1
d3
d5
d4
LED phat
Xc
nh mnh gi
theo tn hiu t cc
LED thu
Tin xu
11
R
R
R
R
5
2
U
3
R
R
R
R
L M
3 5 8
g n d
d
Tin xu
m tn - xc
nh mnh gi
theo xung m
Hnh 2.9 Nhn dng tin xu bng phng php bin i in dung
Khi tin xu c a vo gia hai bn t, th in mi gia hai bn t s thay
i dn n in dung t cng thay i, lm cho tn s ca mch cng hng thay
i theo. Mch m tn s m xung v xc nh c tn s ca tn hiu a vo t
xc nh c mnh gi ca tin a vo.
2.3.4. Nhn dng da trn k thut x l tn hiu s
12
14
n v SI
K hiu
Dn xut
Gc
n v
CMSEMU
Chuyn
i
Cm
ng
t(mt
t
thng)
Tesla(Wb/m )
Kg/s.C
Gauss
Cm ng
t(mt
t thng)
Cng
t
trng
Amper.vng/
m
C/m.s
Oersted
Cng
t trng
Vector
t ha
Amper.vng/
m
C/m.s
Maxwell/c
m2
Vector t
ha
thm
t ca
chn
khng
thm
t tng
Henry/m
Kg.m/C2
Khng
n v
thm
t ca
chn
khng
r(SI)
Khng n v
Khng
n v
Khng
n v
thm
t tng
(CGS-EMU)
15
t
ha(h
s t
ha)
m(SI)
m(CGS-EMU)
Khng n v
Khng
n v
Khng
n v
t
ha(h s
t ha)
Thun t
16
Vt liu
H s t ha
Vt liu
H s t ha
Nhm oxit
-1,81.10-5
Nhm
2,07.10-5
ng
-0,96.10-5
Crm
3,13.10-5
Vng
-3,44.10-5
Crm clorua
1,51.10-5
Thy ngn
-2,85.10-5
Mangan sulfat
3,7.10-5
Silic
-0,41.10-5
Mlipden
1,19.10-5
Bc
-2,38.10-5
Natri
8,48.10-5
Natri clorua
-1,41.10-5
Titan
1,81.10-5
Km
-1.56.10-5
Zini
1,09.10-5
: h s h cm
18
19
20
vi R=
R=
Trong :
- chiu di trung bnh ca ng sc trong li st v trong
khng kh.
- tit din mch t v khe h khng kh
- t thm tng i ca vt liu t( vo khong 103 n 104)
o= 4 .107 MKSA
21
22
d, Ng ra:
+ Xung / tng hp ng ra:
Tha nhn rng gi=10 la:
Ci t 10 la tin xu: 10=10 chuyn ra ng ra 1 xung
Ci t 5 la tin xu: 5<10 khng phn x, ci t them 5 la tin xu
khc: 5+5=10 chuyn thnh 1 xung.
Ci t 50 la tin xu: 50=10+10+10+10+10 chuyn thnh 5 xung.
+ Ng ra thi gian:
EU1 c th lm vic nh mt timer mc d n l mt sn phm khc.
EU1 s iu khin my trc tip(AC 90V ~ AC 240V/8Amp). Hin th s cho
thy n v tin t m bn ci t v m xung thi gian.
+ Ng ra tng t.
+ Ng ra RS232.
e, C mt ng cn tr cho ngi iu khin my
f, Ch :
+ in p: DC 12V
+ Nhit lm vic: 5 ~ +500C
+ ng knh ng xu 17 ~ 31mm
+ B y ng xu 1.0 ~ 3.0 mm.
2.5. B iu khin ca my
Bt k mt sn phm c in t thng minh no mun hot ng c phi c
mt b iu khin trung tm iu khin mi hot ng ca sn phm. B iu khin
trung tm ny, ngy nay rt a dng c th l mt PC c t trong sn phm ,
hoc kt ni vi sn phm thm ch t khong cch rt xa, cng c th l mt b
PLC, hay vi iu khin
Trong ti, nhm s dng mt vi iu khin lm b iu khin trung tm
cho my. Dng chip c s dng l Atmega 128, mt sn phm ca hng Atmel.
24
2 timer 8 bit.
8 ngt ngoi.
B nh thi watchdog.
H tr bootloader .
Tn s ti a 16MHz.
26
Hnh 2.22 Cu to ng c bc
27
++---++
-+++--+
++---++
-+++--+
28
Hnh 2.24 Cu to ng c DC
Cc trng hot ng ca ng c DC kh n gin, phn tch da trn ng
c tnh c ca ng c. Gm cc trng thi khi ng v trng thi hm. Do ng
c tnh c l mt ng thng, nn vic phn tch s ph thuc ca momen v vn
tc ca ng c cc trng thi n gin.
w
w0
wdm
M
Mdm
Mnm
30
U
B
t
t
U
dk
U
rc
U
D
U
E
U
F
t
X
dk
t
U
d
t
t1
t2
t3
t4
t5
31
CHNG III
M HNH HA H THNG
ny, gt cc lon Coca t kho cha xung ni ngi s dng nhn hng. Cnh gt kho
cha chai tng t.
5. Kho cha chai, c thit k da trn nguyn l ca cc kho cha phi trong
cc trm cp phi t ng, cha chai Lavie. Kho cha lon tng t.
6. Module lu tr tin. Tin sau khi qua b nhn dng c cha y.
7. Mng dn tin xu. Dn tin t b phn loi n cc kho cha tin.
8. Khay cha tin. cha tin khi cc kho cha y.
33
K hi phm bm
K hi cm bin
hng ngo i
Step1
T r tin
1K
Step2
T r tin
2K
C m bin
nhn d ng
tin
B iu khin
trung tm
Step3
T r tin
5K
Step4
T r hng
thuc l
L ed 7 seg
hin th
tin v sp
ng c D C 1
tr lon C oca
ng c D C 2
tr chai L avie
34
B x l trung tm:
L mt thit b c kh nng nhn v lp trnh x l c cc tn hiu vo theo
yu cu u vo ca h thng ny, ng thi xut c cc tn hiu theo yu cu. Vi
ti ny, nhm s dng mt vi iu khin: AT128, vi cc tnh nng ph hp nh:
s u vo, ra ln, kh nng lm vic n nh, b nh chng trnh ln lp
trnh.
u vo ca h thng gm c:
Cm bin nhn dng tin xu. C chc nng nhn bit cc loi tin
tht, gi v a tn hiu sau khi nhn dng vo cho b diu khin trung tm x l.
35
CHNG IV
200
500
1000
2000
5000
ng
knh
20mm
22mm
19mm
23.5mm
25.5mm
Chiu
dy
1.45mm
1.75mm
1.95mm
1.8mm
2.2mm
Trng
3.8g
4.5g
3.8g
5.1g
7.7g
lng
Ta nhn thy ng xu 5000 l ln nht c ng knh l 25,5mm , tip l
ng 2000 vi ng knh 23,5mm, v ng 1000 nh nht vi ng knh
19mm.
T c im k thut ca cc ng xu nn phng php phn loi tin xu theo
ng knh gim dn l bin php ti u nht.
- Phn loi tin xu theo phng php ng knh gim dn
Thc hin theo cch ny th ng 5000 c ng knh ln nht s tch ra khi
mng dn trc tip l ng 2000 v cui cng l ng 1000. Ta phi s nhng
rnh nh cho ng xu lt ra khi mng mi rnh ta t cc c cht tng ng vi
kch thc ng knh ng xu khi ng xu ln trn mng s gp cc c chn ny s
b lt xung ng tng ng.
Rnh thit k phi ln hn b dy ca ng xu ln nht nhng khng c ln
hn b dy ca 2 ng tin xu nh nht. Trnh tnh trng 2 ng tin cng ln 1 lc.
36
37
+ Cnh gt.
+ ng c bc gn trn gi iu khin cnh gt.
+ Khp ni gia ng c v cnh gt.
- Cnh gt tin
ng c iu khin cnh gt l ng c bc v do yu cu tr li tin phi
nhanh chng, chnh xc nn nhm chn cnh gt hnh trn c ng knh 130mm
chung cho mi ng. Trong mi cnh gt c khot 4 l hnh trn cch nhau 90 0 c
ng knh bng ng knh ca cc ng cha ng xu tng ng ng xu c th
ri vo , cnh gt c th gt c 4 ng xu khi ng c quay 1 vng.
ng knh ca cnh gt ph hp cho vic tr li tin tha, lu tin vo kho khi
ng cha y, gim mmen tc ng ln trc ng c. Do ti ch s dng ng xu
5000, 2000, 1000 ,v ng xu 2000 c chiu dy(1.8mm) nh nht nn chiu
dy cnh gt c thit k c chiu dy 1.5mm khi tho mn trng hp ca hai
ng xu cn li.
ng thi, cnh gt c thit k nh vy, s gim c lc va chm gia cnh
gt v tin, cnh gt v ng cha. m bo an ton cho cc chi tit khi lm vic.
V sau y l kch thc, hnh dng ca cc cnh gt:
39
40
Module tr li tin tha sau khi lp ghp cc chi tit s c hnh dng nh sau:
41
42
43
44
45
4.1.3 Khung my
Khung my tt c cc chi tit, c cu.
Khung c thit k sau cng, kch thc ca khung theo kch thc ca cc
chi tit, b phn khc.
G
C
3
C
3
1X
VCC
3X
X
A
A
A
A
A
A
A
A
0
1
2
3
4
5
6
7
5
5
4
4
4
4
4
4
1
0
9
8
7
6
5
4
B
B
B
B
B
B
B
B
0
1
2
3
4
5
6
7
1
1
1
1
1
1
1
1
0
1
2
3
4
5
6
7
03
13
23
33
43
54
64
74
5
6
7
8
9
0
1
2
C
C
C
C
C
C
C
C
R
R
0 1
3
S5
1 7
1 9
B
E
P
P
P
P
P
P
P
P
A
A
A
A
A
A
A
A
0
1
2
3
4
5
6
7
/
/
/
/
/
/
/
/
S
S
M
M
O
O
O
O
S / P
C
K
O
S
I S O
C
0
C
1
C
1
C
2
P
P
P
P
P
P
P
P
C
C
C
C
C
C
C
C
0
1
2
3
4
5
6
7
A
A
A
A
A
A
A
A
O
D
D
D
D
D
D
D
D
/ P
I /
/
/ P
A
B
/ O
/
/
/
/
/
/
/
/
A
A
A
A
A
A
A
A
0
P
P
1L
2
4
6
8
1
C
I O
0
1
0
1
2
3
4
5
6
7
B
B
B
1
2 S 0 EP TE
R S
2D 2
5 3 G N
6 3 G N
AG T N M
S
S
/ P
R
T
X
O
O
O
0
1
2
3
4
5
P
P
P
P
N
T
D
D
DE
R
T
6 2
A R
E F
L2 A4 1
A 2 L 3 X2 T A L 1
X T A L 2
T
T
C
4 A V C
C
2 1 V C C
V C 5C 2 V C C
V C C
0
2 5 D
C
L / I N 2 T 6 D0 / 1 P D 0
D
A / I N 2 T7 D 1 / 2 P D 1
X D
1 / I 2N 8 TD 2 3 / P D 2
X D
1 / I N2 9 T D 3 4 / P D 3
I C
P 1 3 / P0 D D 5 4
X C
K 1 3 / 1P D D 6 5
T 1 / P 3 D2 D6 7
T 2 / P D 7
E 0
2
X D 0 / P3 D E I 1 / P E 0
X D
0 / P 4 D EO 2 / P E 1
C K 0 / A 5 I N E 03 / P E 2
C 3 A / A 6 I NE 14 / P E 3
C 3 B / I 7 N ET 45 / P E 4
C 3 C / I 8 N ET 56 / P E 5
T 3 / I N T9 6 E/ P 7 E 6
C P 3 / I N T 7 / P E 7
6 1 F 0
P F 0 / A6 0D F C 1 0
P F 1 / A5 9D F C 2 1
P F 2 / A5 8D F C 3 2
P F 3 / A5 7D F C 4 3
F 4 / A D 5 C6 F 4 5 / T C K
F 5 / A D 5 C5 F 5 6 / T M S
F 6 / A D 5 C4 F 6 7 / T D O
F 7 / A D C
7 / T D
I
0
3 3 G
P G
0 /3 W 4 G R 1
P G 1 4/ R 3 G D 2
P G
2 /1 A 8 GL E 3
T O S C 1 2 9 / G P 4G 3
T O S C
1 / P G 4
N 1 D
3
5
7
9
1
3
5
7
2
4
6
8
1
R
V
D
D
D
D
T
C
D
C
0
2
4
6
I
V
I P
D
D
D
D
2
3
B 4
/ P B 5
/ P B 6
C
1 C
8
9
1
1
1
1
1
1
GND
15
E
R
X T
I O
A
A
A
A
1
3
5
7
C
C
C
C
G
6
4
2
0
0
1
1
1
1
1
R
F
F
F
F
1
3
5
7
1
3
5
7
9
P
2
4
6
8
1
1
1
1
1
2
1
3
5
7
9
E1
3
5
7
9
1
3
5
7
1
3
5
7
1
3
5
7
9
1
1
1
4 1
N 1D
1 2 8 P
0
2
4
6
8
0
A
A
A
A
G
C
C
C
C
G
I O
2
4
6
8
1
A
F
F
F
0 F
I O
E
E
E
E
B
B
B
B
G
G
0
2
4
6
8
0
T
V
0
2
4
6
49
T
0
2
4
6
0
2
4
6
- C
F
C
R
E
E
E
E
B
B
B
B
G
R
2
7
5
3
1
1
2
4
6
8
1
1
1
1
1
2
1
3
5
7
9
T
0
2
4
6
3
E
- E
I / O
VCC
V
1
R
G
R
N
U
R
V
C
4
0 ER 5
( I N
GND
2
4A
6A
8A
1O
E N
0E n N
E N
H U
A V C
BF L 0 E( E 2
BF L 2 E( E 4
BF L 4 E( E 6
0 FN 6 G ( H2
1
3
5
7
1
3
5
7
)
D
0D R 1
( I N
J
0D R 3
1T
2
( I N
F 0 ( E
S B P 2 (2 C
F 6 ( H
G N D
0E R 6
( I N
1T
2
F 1 ( E
B 3 ( C
S F P 7 (3 H
G N D
C
N)
N)
N)
)U
A
A
A
B
B
B
L
L
L
E
E
E
1
3
5
)
)
)
49
B
D
D
I N
I N
1 5
1 5
6
4
2
0
0
( 1H A
( 3T I E
( 5T I E
7
9
1 1
1 3
1 5
1 7
1( H 9 U
2
N4
T 56
T 78
1
L O 1
L O 1
L O 1
U O1
2
U
E
GE
) E
) E
0 B
C2 B
C4 B
C6 B
8NG
0 R
0
D2
4
6
0
K 2 2
K 4 4
K 6 6
G3
E
O
L
4
3
2
1
J
( I N
0 1)
2
3
(C D 2
( I N
( I N
( D
( )C
( )C
( )C
(6 H )
S E
U) N
T 4
T 6
U N
L O
L O
L O
U O
T
C
N
7
2
)
)
C
C
C
E
H
I E
L
0
1
2
3
4K 1
5K 3
62 )
7
N D
N D
G
G
K
K
K
1
3
5
)
)
)
G
V
6
1
1
0
N
N
N
C
I E
D
D
D
N
N
N
G
G
G
C
C
C
5
6
7
( 1
( 1
( 1
5
5
5
G
C
D
D
3
4
D
D
I E
F
B
G
G
5
C
V
C
_ C
N
G
V
1
C
( I N
1 2
4
3
2
1
I E
( E
6 ( C
3 ( H
N D
AN
_ 1
A
A
A
)E
E
B
G
G
N
R
R
R
R
R
R
R
R4
CC
EO
1A B L E 5 )
L O2 C
K 5 )
U 3O N G 5 )
4
I P
5
7
1A B L E 4 )
O2 C
K 4 )
U 3O N G 4 )
4
2
C
A
A
A
G
1
V4
F
B
G
G
3
4
5
2
3
0
N
N
(
(
(
(
(
(
T
T
T
D
D
D
D
D
( E
( C
4 ( H
N D
N
L
5
C
1A B L E 6 )
O2 C
K 6 )
U 3O N G 6 )
4
V
O
7
E
N
L
C
N
( E
( C
1 ( H
N D
F
B
G
G
N
V
G
2
1
N
O
3
5
2
1
5
6
1
Y2
Y3
1T 7 )
2 T I E
4H U A
3H D U 0 A
2H D U 1 A
1 D 2
1 5 D 3
1 4 D 4
1 3 D 5
1 2 D 6
D 7
1 1_ A )
1 0_ A B )
19 _ B C )
C
7
O
O
O
0 ER 7 ( I N
D A N G
C 1 2
1 u F
F 2 ( E N 1A B L E 3 )
B 4 ( C L O2 C
K 3 )
S G P 0_ (I HN UC 3 OR NE AG S 3 E)
G N D
4
8
J
D
C
7
G
G
A
B
E
E
1
2
3
4
) 5
) 6
7
8
9
1 0
C
- E
K
A
V
G
A
G
6
5
4
3
2
1
C
2
V C C
41 ) D 0 ( I N T 0 )
63 ) D 2 ( I N T 2 )
8_ A )D 4 ( S T A R T )
C
1_ 0C D) 6 ( 1 5 1 _ B )
C
C
P O R T
A - C
C
N 2 G A_ O0 ( K H 2 A ) N G _ C O
N 4 _ OA K2 ( 1 H ) A N G _ C O
N 6 _ OA K4 ( 3 T ) I E N _ O C K
A 6
C
8
G
1 0 G 2
G
1 2 C 7
1 4 C 5
1 6 C 3
1 8 C 1
O2 0 N G G 1 3 ( ) H U O N
G
T
T
1
1
1
( 3D
( 5I N
( 7I N
9
(1 C 1
(1 C 3
(1 C 5
4 1( H 7
N 1 D9
V
R
N 1A B L E 2 )
L O2 C
K 2 )
U 3O
N G 2 )
4
1
G
C 1 0
1 u F
E
P
6
N 1A B L E 1 )
L O2 C
K 1 )
U 3O
N G 1 )
4
1T
2
VCC
N 1
(3
(5
(7
(9
R
J
R
C
16
I O
E
E
E
E
B
B
B
B
G
G
C 9
1 u F
_
VCC
C
C
C
C
G
T G
4 I O
1
3
5
7
I O
A
A
A
A
C 7
1 u F
C 1 1
1 u F
I O
1
3
5
7
D
D
D
D
1T
2
1
F 1 3(
F 1 3 05 (
F 5 7(
F 7 9(
kC
61
VCC
2
1T
2
C 8
1 u F
T
V
J
( I N
5
2
C 1
1 u F
D
T
( S 1T
2
5
D
VC C _12V
GND
R
C
V
J
4
C
B
1
1
1
1
0
1
2
3
( H
( H
( H
N D
A O
N
N
N
N
I E
I E
I E
U
U
U
N
N
N
N
N
N
U
R
R
R
R
RR
RR
RR
RR
R
R
R
R
M
_
_
_
G
G
G
1
1
2
2
2
2
2
2
R 1
A N R G 1
A N R G 1
A N G
R
D A RY
R
0
1
2
O
O
O
G
G
G
G
D
C
C
C
H
H
H
U
U
U
B I E N
8
O 9 K 11 )
O 0 K 22 )
O 1 K 33 )
D2 C 4 1 )
D4 C 5 2 )
D3 C 6 3 )
5
7
8
N
B
O
A
C O N
C A M
4
_5 O 1K 1 )
_6 O 2K 2 )
_ O 3K 3 )
4
T I E N
A
A
A
1
2
3
I E
I N
I E
50
Pins
I/O
Description
MOSI(PDI)
PE0
Serial data in
MISO(PDO)
PE1
SCK
PB1
Serial clock
IC 74LS47
IC 74LS47 l IC chuyn dng hin th led 7 thanh, in p chun CMOS,
ngun nui trong khong t 4,75V-5,25 V.. Bng cch iu khin in p 4 chn
u vo, kt ni 8 chn u ra vi cc chn tng ng ca led 7 thanh, ty theo
trng hp mch iu khin anode chung hay cathode chung, chng ta s c cc
s tng ng. Trong n ny, nhm s dng led 7 thanh anode chung.
S chn, bng chn l ca IC ny nh trong ph lc.
IC 74LS138
IC 74LS138 l IC ghi dch 8 bit. in p chun CMOS, ngun nui trong
khong 4,75V - 5,25V. Bng cch iu khin in p 3 chn u vo v mt chn
cho php tn hiu iu khin G1, s cho ra in p mc 0 cc chn tng ng cc
chn tn hiu u vo.
Trong ti ny, nhm s dng IC ny n nh tn hiu iu khin sng, tt
cc led 7 thanh, ng thi tit kim s chn s dng iu khin led. (4 chn iu
khin ng, m 8 led).
S chn v bng chn l nh trong ph lc.
51
G
G
D
D
D
D
A
B
C
G
0
1
2
3
U
N
N
D
D
D
D
D
D
V
G
0
1
2
3
C
N
7
1
2
6
C
D
2
D
D
D
D
1 3
5
0
1
2
3
L T
R B
A4
I / R
L
L
L
L
L
L
L
3
2
1
0
5
4
B
E
E
E
E
E
E
E
D
D
D
D
D
D
D
_
_
_
_
_
_
_
A
B
C
G
G
G
C
N
C
D
1
N
N
A
B
C
G
G
G
1
2
2
GN D
V
G
1
2
3
6
D 4
D 5
Y
Y
Y
Y
Y
NY
NY
Y
A
B
1
N1
N1
N1
N1
N1
N9
N7
N
U
U
U
U
U
U
U
U
5
4
3
2
1
0
0
1
2
3
4
5
6
7
R
U
le
C
U
C
E
d
le
U
C
E
d
4
N
l e
E
d
C
6
Q
P
5
N
l e
E
d
C
7
B
4
Q
P
7
C
C
5
E
d
6
B
P
le
l e
7
N
R
Q
P
8
N
3
N
5
B
Q
P
3
4
0
1
2
3
4
5
6
7
l e
9
N
Q
P
4
16
C
D
3
2
1
C
N
VC C
V
G
2
2
1
Q
P
6
N
l e
E
d
2
N
R
Q
P
V
N
1
4
R
Q
P
A
B
C
D
E
F
G
1
1
1
1
9
1
1
A
B
C
D
E
F
G
GN D
16
1
9
8
7
6
5
4
3
2
1
VC C1
VCC
D
L
L
L
L
L
L
L
d
d
d
I P
E D _ A 1
E D _ B 2
E D _ C 3
E D _ D 4
E D _ E 5
E D _ F 6
E D _ G 7
k _ l e d 81
k _ l e d 92
k _ l e d13 0
I E
5
L
L
L
L
L
L
L
G
E
E
E
E
E
E
E
D
D
D
D
D
D
D
_
_
_
_
_
_
_
A
B
C
D
E
F
G
I E
d
d
d
d
d
G
1
2
3
4
5
6
7
8
C
K H O
I E N
k
k
k
k
k
_
_
_
_
_
l
l
l
l
l
D
e
e
e
e
e
d
d
d
d
d
I E
14
25
36
47
58
6
N
I E
Trong ti, nhm dng 11 cm bin hng ngoi, dng kim tra trng thi
ca kho hng, ng ng tin v dng ng c DC( c vai tr nh encorder).
Cm bin hng ngoi, khi s dng cn mt cp thu pht. Led pht pht nh
sng hng ngoi. Led thu l mt cp P N, hot ng nh mt cm bin quang, vi
tn hiu quang kch thng cp P N l nh sng hng ngoi. Led thu ny gm 2 loi 3
chn v 2 chn.
Nhm s dng loi cm bin ny do kh nng nhn tn hiu thu pht vi
khong cch tng i ln, gi thnh r, d thit k v s dng, d mua, hot ng
n nh do nh sng pht ra l nh sng hng ngoi, khng b nhiu bi nh sng t
nhin. Cm bin ny c kch thc nh nn d dng lp t.
Tuy nhin, s dng cc cm bin ny vi mc ch pht hin i tng, nn
hon ton c th thay cm bin hng ngoi bng cc loi cm bin khc nh cm
bin tim cn, cng tc hnh trnh. (hn ch s dng cng tc hnh trnh, do l tip
xc c, hay nhiu trong trng hp ny cc i tng thng chuyn ng v c
khi lng nh).
Tn hiu vo t cm bin hng ngoi, c a vo OP-AM, so snh vi in
p u vo cn li ca OP-AM, c th thay i nh bin tr vi chnh, t s c tn
hiu du ra l 0 hay 1. IC thc hin vic so snh ny l LM324.
IC LM324 l IC khuch i thut ton, trong trng hp ny hot ng ch
so snh. Ic ny gm 4 b OP AM, in p u vo so snh nm trong mc t 0,3V
n 32V, dng cc i 50mA.
Trong ti, nhm cn iu ch tn hiu vo t 12 cm bin hng ngoi, nn
cn s dng 3 IC ny.
S chn v cc c tnh c th trong ph lc.
Vi nguyn l nh trong mch nhm thit k, khi khng c vt cn gia 2 cm
bin thu pht, u ra ca OP AM l 5V, cn khi c vt cn, u ra l 0V.
Ty tng trng hp ca cm bin, ta c th x l tn hiu a ra cc lnh
iu khin mong mun.
S nguyn l:
53
VCC
VCC
VCC
J
2
R
3
L
I _
I S
A
R
1
L
1
E
5
L
2
L
I S
V
2
RL
J
I
I
I
I
I
I
G
G
9
U
L
L
I S
e
d
3
L
5 +
6
L
_
_
_
_
_
_
L
L
L
L
L
L
e
e
e
e
e
e
N
N
d
d
d
d
d
d
D
D
C
I _
I S
I _ L
I _ L
I _ L
G
N
e
e
e
0+
L
I _
9 -
e
e
e
C
J
I S
R
R
+0
3
L
1
E
I S
V
R
2+
3-
L
1
0
11
R
I E
+0
7
L
4
O
1
1
4
L
1
I S
2+
3-
d 11
d 21
d 31
D 4
0
1
2
I N
I E
R D
I E
5
U
R
3
L
I _
I S
N
VC C
D
R R
R
G
2
L
I _
3
U
L
I _
D
G
R
3
R
G
VCC
R
1
K
11
9
S
4
I _
9 -
VC C
1
R
3
11
7
E
d 17
d 28
d 39
D 4
9 -
11
R
R
11
VCC
I _ L
I _ L
I _ L
G
N
e
d
8
L
8
3
2+
3-
I S
R
R
11
V
3
A
6
NR
I _
L
L
L
L
L
L
L
L
L
L
L
L
e
e
e
e
e
e
e
e
e
e
e
e
d
d
d
d
d
d
d
d
d
d
d
d
1
2
3
4
5
6
7
8
9
1
1
1
2
4
6
8
1
1
1
1
1
2
2
2
1 1
1 3
1 5
1 7
1 09
2 11
2 23
C
1
3
5
7
9
0
2
4
6
8
0
2
4
GND
R
4
4
L
C
R
11
22
33
44
55
66
7
8
VCC
4
2
I _
6 -
VCC
R
3
VCC
B
1
2
4
I _
11
D
O
2
L
5 +
R
U
L
I _
6 -
4
2
I S
d
5
R
3
11
S
6 -
e
d
VCC
B
1
L
5 +
I S
4
2
3
S
VCC
U
d
2 -
R
e
4
I _
R
3
11
2 -
11
E
2 -
V
G
6
4
11
11
4
4
I N
54
D
P
1
F
F R
2P 1 H
1
A
5F 5 R
G
N
5F 5 R
2P 3 H
D
1
A
5F 5 R
5F 5 R
2 4
5F 5 R
R
2
1
R
1 R G1
2 4 7
7D
E
DB
2N
C
5
8
51
N
F
WC
A
A
1
1
OE
1
21
2
Y 31
Y
2
P
P
H
H
A
A
2
2
1
2
12
2
1 3 P
Y 11 4 P
Y
2
H
H
A
A
2
2
3
4
N
N
C
C
1
2
8
V
R
2
4 7 0
23
k5
R
2
O
C
1
3 . 3
NR
1
2
D
G
K
O
1C
2
3
4
2
2
1
1
5
6
G
H
5
1
2
3
j U CM OP N
P
2 4 V C
C 5 CV C
C
5
7
0
2 2 A
2 A
S E N 1 S 3
S E N 1 S5 1 4 E
R
9
2 E
0 . 2R 5 1 0
H 63
0 . 2 5I N
I N
H 1 4 1 1 E
2 E
5 V C 9C
2 4 V C4 V C C
V C
C
5
1 0 0+ n C
7
C
6
4 7 0 u 1 0 0L n2 9
D
1
A
2
2
C
D
5F 5 R
2P 2 H
A
B
VREF
5 V C
C
HT F 2
U L LO L C
K 2
KI R
E C
2
WS C
R
E F
E N
S 3
1 E N
S 4
25 V C
C
G N
D
O L
2 0
N
C / R
E 1S 9 E
D H
A L F 1 / 8F C
M E/ C
L O1 7 C D
C
W
/ 1C 6 OC
H
1
O S 1C 5 V
V r e1 f 4 S
S E N 1 S3 S
H
2 S E N 1 S2
V s1 1
2
A CB LO E N
T R
S Y
G N
H
O
A
/ I N
B
C
/ I N
D L E
E N
1
G
N
D2
G
N
D3
A 2
4
I N
H 53
B 2
6
C
2
7
I N
H 84
D
2
9
E N
A 1 B0
I E
I E
4
C
n
1
2
3
4
t rC o Ol
C
D
E
4N
w4
ir e
N
D
L O C
K 2
I R
E C
2
N
A B L E 2
P
P
P
P
H
H
H
H
A
A
A
A
O
21
22
23
24
ST
OT
ER P
1
2
3
4
T U I ON
N H
I E
T V I NA
OH
I E
R 4
1 k
5
Q
r e
f
R
2
1
VR EF
R 5
4 k 7
56
40
. 1
1
2
1
2
5
7
I
1 0 I
1 2 I
I
S 1 E
1 5 I
I
N
M
1
5
2
N
N
N
N
R
S
S
1
2
3
4
E
E
1 E
E
N
N
V
V
S
S
V C C 4
4 V C 9C
N
N
O
O
2
3T 1
1T 32
1T 43
T 4
U
U
U
U
U
U
1
2
U
I N
n
1
2
3
4
I N
t Cr o O l
2
D
D
8
/ M
5 R
I N
6 G
w Ce
I E
11
I E
G N D
G N D
5 V C C
2 4 V C
2
F
K
V
I E
2R
7 L
3R
8 L
N
E
4
F
1
A
R
C
C
2
D
D
rO
1
2
3
4
E
G
R
I H
G N D
I N 1
P W
M
S E N S
P
o
K
C
1
2
A
B
A
B
T
T
OUT1
O
O
O
O
2M
OUT2
N
N
N
N
GND
I
I
I
I
OUT1
60
Btngun
Khngbti
n
C tin
Bti
nvo
Ti
ngi
Trli
Tin tht
Nhndng
T
nht
ngti
n, ti
n
tha, hi
nth
Ph
nloi ti
n
Lachnsnphm
KhngnStart
n Start
NtStart
Trhng
Trli ti
n
Khng
y
Ktrang
ng
ti
n
Trti
nvokho
Reset hthng
My lun trng thi ch ngi s dng b tin vo, v thc hin thao tc. Khi
tin b vo, n s i qua b nhn dng, kim tra tht gi. Nu l tin gi, tr li. Nu
l tin tht, thc hin bc tip theo, vi iu khin m tin, v hin th.
Tin tht sau khi qua b nhn dng s c phn loi vo cc ng cha.
Sau khi b s tin vo, ngi s dng s thao tc la chn sn phm. Thut
ton c th ca thao tc ny phn sau.
Tt c cc qu trnh ny kt thc khi ngi dng nhn nt Start.
Sau khi nt Start c nhn, my s thc hin thao tc tr hng cho khch, tr
li tin tha (thut ton c th cho 2 vic ny s c trnh by bn di), kim tra
ng cha tin, nu y th s b tin vo kho. Cui cng l reset h thng, xa cc
thng s.
4.3.2. Thut ton x l chn sn phm
Khi ngi dng n chn sn phm,phi m bo trong kho cha hng vn cn
sn phm , v s tin mua s lng sn phm
Lachnsnphm
Khngnhn
Khngnhn
Ntchnsp1
Khngnhn
Nhn
Nt chnsp3
Nhn
Nhn
Ntchnsp2
Tnhti
ntha
<gi SP1
<gi SP2
Bo li
Ktra kho3
H
t
Bo li
Cn
Bo li
SP2++
<gi sp3
>gi SP3
H
t
Tnhti
ntha
Khng n Start
Bo li
Ktra kho2
Cn
Bo li
Cn
SP1++
>gi SP2
H
t
Khng n Start
Bo li
>gi SP1
Khng n Start
Ktra kho1
Tnhti
ntha
SP3++
Nhn Start
Nhn Start
Nhn Start
K
t Thc
Do cch chn 3 sn phm ging nhau, nn gii thch thut ton chn sn phm
1.
Khi nt chn sn phm 1 c nhn, my s kim tra s tin tha, bng cch ly
s tin a vo tr i s sn phm chn nhn gi sn phm . Nu tin tha nh
hn gi sn phm ny, my bo li, qu trnh chn kt thc. Nu tin tha tha mn,
my tip tc kim tra kho 1. Nu kho 1 ht hng, my bo li, qu trnh chn sn
phm ny kt thc. Nu kho 1 cn hng, my s tng s sn phm 1 chn ln 1
n v, ng thi hin th s lng ny. Qu trnh ny lp i lp li cho n khi nt
Start c nhn.
Cc sn phm khc la chn tng t.
4.3.3. Thut ton tr li hng
Thut ton ny nu cch tr hng cho ngi s dng, v cch x l cc trng
hp gp phi.
Trhng
Ht
Ktra kho1
Cn
Tr1 sp3
SP3>0
SP1>0
Tnh li
tin tha
SP2--
Tnh li
tin tha
SP2=0
SP1--
Bo li
Tr1 sp2
SP2>0
Bo li
Tr1 sp1
SP1=0
Tnh li
tin tha
Ktra kho3
Cn
Cn
Bo li
Ht
Ktra kho2
SP3-SP3=0
Ht
End
Kt thc
=0
Tnh tin
tha
Kt thc
>0
Ht
Kim tra ng
5000
<5000
Ht
Kim tra ng
<2000
2000
Ht
Kim tra ng
Bo li
1000
<1000
Cn
Cn
Cn
Tr 1 dng
5000
Tr 1 dng
2000
Tr 1 dng
1000
S ng 5000
tr +1
S ng 2000
tr +1
S ng 1000
tr +1
5000 ht tin, hoc s tin tha nh hn 5000, khi s chuyn sang kim tra ng
2000, thc hin tng t nh bn ng 5000. Cui cng l sang ng 1000.
Khi ng 1000 ht tin m s tin tr li khng , my s bo li.
Cc thut ton trn c a vo chy th nghim, trong trng hp kt cu
my chun nh thit k, my hot ng khng h c sai xt.
CHNG V
KT QU, NH GI
5.1. Kt qu
65
nhn dng tin tht, gi. Thc t cho thy my phn bit c ng 500, 1000, 2000,
5000.
- Phn loi c cc ng xu sau khi nhn dng, hot ng tt.
- My c kh nng tr li tin tha cho khch hng. Khi ht tin hoc y tin trong
- Tc x l ca my cn chm.
5.2. Nguyn nhn v bin php khc phc
C cu tr hng dng chai trong qu trnh kim tra c hin tng kt, ng c
khng quay c, nguyn nhn l kho cha hng ch to rng hn thit k n
10mm, cch khc phc thu hp chiu rng ca kho dn hng hoc lp ng c c
momen ln hn.
My dng b ngun my tnh nn nu trong qu trnh giao dch xy ra mt in th
s lm mt tin ca khch hng do vy cch khc phc l phi lp thm c qui d
phng. Cng do s dng b ngun my tnh nn ch c th cp ngun 12V cho ng c
DC 24V, lm gim moment ca ng c trong qu trnh hot ng.
66
KT LUN
67
68
thut, 2004.
- B mn T-L, khoa in, trng HCN H Ni, Truyn ng in, HCN
H Ni.
- L Trung Thng, Vi iu khin Atmega 128, Ebook.
- Michael J. Pont, Embedded C, Ebook.
- Ng Gia Khnh, n Nhn dng tin xu, HBK TPHCM, 2006.
- Diendandientu.com
- Datasheet.com
- Atmel.com
69
PH LC
1. Chng trnh iu khin ca my
T gii thut a ra, nhm lp trnh chi tit cho my hot ng. Chng trnh
gm cc th vin v mt hm chnh, c vit trn nn ca phn mm Codevision.
1.1: Th vin MAIN.H
Th vin ny dng khai bo cc bin s dng, chip, tn s thch anh.
/
************************MAIN.H**************************************
*****/
///////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
#ifndef _MAIN_H
#define _MAIN_H
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
#include <mega128.h>
#define OSC_FREQ (16000000UL)
#define OSC_PER_INST (1)
typedef unsigned char new_char;
typedef unsigned int new_int;
typedef unsigned long new_long;
new_char xung=100, chuc_nghin, nghin, tram, sp1, sp2,
sp3,loi_sp1,loi_sp2,loi_sp3,start;
new_char error_detect_good1, error_detect_good2, error_detect_good3;
new_char error_detect_money_5k, error_detect_money_2k, error_detect_money_1k,
error_not_enough_money, error_repay_money, error_store_money;
new_int sotien, tien_thua,bien_hien_thi=0;
#endif
1.2: Th vin PORT.H
Th vin ny dng nh ngha cc chn ca vi iu khin Atmega128 c s
dng.
70
/********************************************************************
- - - - - - - - - - - - - - - - - PORT.H- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ______________________________________________
*************Define PINS of Microcontrol using in this project,Designed circur
and defined by Vending machine group ******************************/
///////////////////////////////////////////////////////////////////////////////////////////////////////////
#ifndef _PORT_H
#define _PORT_H
////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////
/******************define Pins control Step_motors**********************/
#define STEP1_CLOCK PORTB.2
#define STEP2_CLOCK PORTB.3
#define STEP3_CLOCK PORTB.4
//#define STEP4_CLOCK PORTB.5
//#define STEP5_CLOCK PORTB.6
#define STEP4_CLOCK PORTB.7
/********define Pins control 74LS47 IC**********************************/
#define input_7447_A PORTC.0
#define input_7447_B PORTC.1
#define input_7447_C PORTC.2
#define input_7447_D PORTC.3
/***********define Pins control 74LS138 IC*******************************/
#define input_74138_A0 PORTC.4
#define input_74138_A1 PORTC.5
#define input_74138_A2 PORTC.6
#define input_74138_E3 PORTC.7
/*************define Pins use as buttons*********************************/
#define SELECT_PRODUCT1 PIND.1
#define SELECT_PRODUCT2 PIND.2
#define SELECT_PRODUCT3 PIND.3
#define START
PIND.4
#define SELECT
#define NOT_SELECT
#define not_ok
display_err();
STEP1_CLOCK=~STEP1_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step1_rotate_right(new_char n)
{
new_char i,j;
out_F0_high();//enable
out_F6_low();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP1_CLOCK=~STEP1_CLOCK;
display_product();
display_money();
display_err();
STEP1_CLOCK=~STEP1_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step1_stop()
{
out_F0_low();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step2_rotate_left(new_char n)
74
{
new_char i,j;
out_F1_high();//enable
out_F7_high();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP2_CLOCK=~STEP2_CLOCK;
display_product();
display_money();
display_err();
STEP2_CLOCK=~STEP2_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step2_rotate_right(new_char n)
{
new_char i,j;
out_F1_high();//enable
out_F7_low();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP2_CLOCK=~STEP2_CLOCK;
display_product();
display_money();
display_err();
STEP2_CLOCK=~STEP2_CLOCK;
display_product();
display_money();
75
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step2_stop()
{
out_F1_low();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step3_rotate_left(new_char n)
{
new_char i,j;
out_F2_high();//enable
out_G0_high();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP3_CLOCK=~STEP3_CLOCK;
display_product();
display_money();
display_err();
STEP3_CLOCK=~STEP3_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step3_rotate_right(new_char n)
{
new_char i,j;
out_F2_high();//enable
out_G0_low();//direct
76
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP3_CLOCK=~STEP3_CLOCK;
display_product();
display_money();
display_err();
STEP3_CLOCK=~STEP3_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step3_stop()
{
out_F2_low();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step4_rotate_left(new_char n)
{
new_char i,j;
out_F5_high();//enable
out_G4_high();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP4_CLOCK=~STEP4_CLOCK;
display_product();
display_money();
display_err();
STEP4_CLOCK=~STEP4_CLOCK;
display_product();
77
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step4_rotate_right(new_char n)
{
new_char i,j;
out_F5_high();//enable
out_G4_low();//direct
for(i=1;i<=n;i++)
{
for(j=1;j<=50;j++)
{
STEP4_CLOCK=~STEP4_CLOCK;
display_product();
display_money();
display_err();
STEP4_CLOCK=~STEP4_CLOCK;
display_product();
display_money();
display_err();
}
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
void step4_stop()
{
out_F5_low();
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////
1.4: Th vin LED7SEG.H
Th vin ny gm cc hm hin th led 7 seg, cng gm LED7SEG.H v
LED7SEG.c.
1.4.1: LED7SEG.H
78
/**************************LED7SEG.H*******************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#ifndef _LED7SEG_H
#define _LED7SEG_H
//////////////////////////////////////////////////////////////////////////////////////
void so(new_char i);
void dk_8led_ok(void);
void dk_8led_off(void);
void dk_led1_on(void);
void dk_led2_on(void);
void dk_led3_on(void);
void dk_led4_on(void);
void dk_led5_on(void);
void dk_led6_on(void);
void dk_led7_on(void);
void dk_led8_on(void);
void display_money(void);
void display_product(void);\
void err(void);
void display_err(void);
#endif
1.4.2: LED7SEG.c
/*************************LED7SEG.c*******************************/
////////////////////////////////////////////////////////////////////////////////////
#include <mega128.h>
#include <MAIN.H>
#include <PORT.H>
#include <ERR.H>
#include <ERR.c>
#include <LED7SEG.H>
////////////////////////////////////////////////////////////////////////////////////\
///////////////////////////////////////////////////////////////////////////////////
void so(new_char i)
{
switch(i)
79
{
case 0:
{
//hien thi so 0
input_7447_A=0;
input_7447_B=0;
input_7447_C=0;
input_7447_D=0;
break;
}
case 1:
{
//hien thi so 1
input_7447_A=1;
input_7447_B=0;
input_7447_C=0;
input_7447_D=0;
break;
}
case 2:
{
//hien thi so 2
input_7447_A=0;
input_7447_B=1;
input_7447_C=0;
input_7447_D=0;
break;
}
case 3:
{
//hien thi so 3
input_7447_A=1;
input_7447_B=1;
input_7447_C=0;
input_7447_D=0;
break;
80
}
case 4:
{
//hien thi so 4
input_7447_A=0;
input_7447_B=0;
input_7447_C=1;
input_7447_D=0;
break;
}
case 5:
{
//hien thi so 5
input_7447_A=1;
input_7447_B=0;
input_7447_C=1;
input_7447_D=0;
break;
}
case 6:
{
//hien thi so 6
input_7447_A=0;
input_7447_B=1;
input_7447_C=1;
input_7447_D=0;
delay_us(200);
input_7447_A=1;
input_7447_B=0;
input_7447_C=1;
input_7447_D=1;
break;
}
case 7:
{
//hien thi so 7
81
input_7447_A=1;
input_7447_B=1;
input_7447_C=1;
input_7447_D=0;
break;
}
case 8:
{
//hien thi so 8
input_7447_A=0;
input_7447_B=0;
input_7447_C=0;
input_7447_D=1;
break;
}
case 9:
{
//hien thi so 9
input_7447_A=1;
input_7447_B=0;
input_7447_C=0;
input_7447_D=1;
delay_us(200);
input_7447_A=1;
input_7447_B=0;
input_7447_C=1;
input_7447_D=1;
break;
}
case 13:
{
//hien thi chu e
input_7447_A=1;
input_7447_B=0;
input_7447_C=1;
input_7447_D=1;
82
delay_us(200);
input_7447_A=0;
input_7447_B=1;
input_7447_C=0;
input_7447_D=1;
break;
}
case 101:
{
//hien thi chu d
input_7447_A=0;
input_7447_B=1;
input_7447_C=0;
input_7447_D=1;
delay_us(200);
input_7447_A=1;
input_7447_B=0;
input_7447_C=0;
input_7447_D=0;
break;
}
case 111:
{
//hien thi chu o
input_7447_A=0;
input_7447_B=1;
input_7447_C=0;
input_7447_D=1;
delay_us(200);
input_7447_A=1;
input_7447_B=1;
input_7447_C=0;
input_7447_D=1;
break;
}
}
83
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void dk_8led_off(void)
{
input_74138_E3=0;
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void dk_8led_ok(void)
{
input_74138_E3=1;
}
//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
void dk_led1_on(void)
{
input_74138_E3=1;
input_74138_A0=0;
input_74138_A1=0;
input_74138_A2=0;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led2_on(void)
{
input_74138_E3=1;
input_74138_A0=1;
input_74138_A1=0;
input_74138_A2=0;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led3_on(void)
{
input_74138_E3=1;
84
input_74138_A0=0;
input_74138_A1=1;
input_74138_A2=0;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led4_on(void)
{
input_74138_E3=1;
input_74138_A0=1;
input_74138_A1=1;
input_74138_A2=0;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led5_on(void)
{
input_74138_E3=1;
input_74138_A0=0;
input_74138_A1=0;
input_74138_A2=1;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led6_on(void)
{
input_74138_E3=1;
input_74138_A0=1;
input_74138_A1=0;
input_74138_A2=1;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led7_on(void)
{
input_74138_E3=1;
85
input_74138_A0=0;
input_74138_A1=1;
input_74138_A2=1;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void dk_led8_on(void)
{
input_74138_E3=1;
input_74138_A0=1;
input_74138_A1=1;
input_74138_A2=1;
}
///////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void display_product(void)
{
if(sp1!=0)
{
dk_led1_on();
so(sp1);
delay_us(500);
dk_8led_off();
}
if(sp2!=0)
{
dk_led2_on();
so(sp2);
delay_us(500);
dk_8led_off();
}
if(sp3!=0)
{
dk_led3_on();
so(sp3);
delay_us(500);
86
dk_8led_off();
}
}
/////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
void display_money(void)
{
if((error_not_enough_money==0)&&(error_detect_good1==0)&&(error_detect_g
ood2==0)&&(error_detect_good3==0)&&((nghin!=0)|(sp1!=0)|(sp2!=0)|(sp3!=0)|
(chuc_nghin!=0)|(tram!=0)))
{
dk_led8_on();
so(chuc_nghin);
delay_us(500);
dk_8led_off();
dk_led7_on();
so(nghin);
delay_us(500);
dk_8led_off();
dk_led6_on();
so(tram);
delay_us(500);
dk_8led_off();
dk_led5_on();
so(0);
delay_us(500);
dk_8led_off();
dk_led4_on();
so(0);
delay_us(500);
dk_8led_off();
}
}
////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void err(new_char i)
{
87
display_error_detect_good1();
}
if(error_detect_good2==1)
{
display_error_detect_good2();
}
if(error_detect_good3==1)
{
display_error_detect_good3();
}
if(error_store_money==1)
{
display_error_store_money();
}
if(error_repay_money==1)
{
display_error_repay_money();
}
}
//////////////////////////////////////////////////////////////////////////////
///////////////End every function//////////////////////////////////
DCmotor.H
Th vin ny c vit iu khin 2 ng c DC.
1.5.1. DCmotor.H
/**************************DCmotor.H******************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#ifndef _DCmotor_H
#define _DCmotor_H
//////////////////////////////////////////////////////////////////////////////////////
// In main programe, define ICR1H=0x00;ICR1L=0x1E;
void stop_DC1(void);
void stop_DC2(void);
void DC1_rotate_left(new_char i); // i is numbers of 1/4 circle
void DC2_rotate_left(new_char i);// i is numbers of 1/4 circle
void DC1_rotate_right(new_char i);// i is numbers of 1/4 circle
89
void DC1_rotate_left(new_char i)
{
new_char n,m;
out_G1_low();
for(n=1;n<=i;n++)
{
m=0;
do
{
while((STOP_DC1==not_ok)&&(m==0))
{
OCR1AH=0x0D;
OCR1AL=0x6B; // 1/10 van toc toi da cua dong co
display_product();
display_money();
display_err();
}
OCR1AH=0x0D;
OCR1AL=0x6B;
m=1;
display_product();
display_money();
display_err();
}
while(STOP_DC1==ok);
OCR1AH=0x00;
OCR1AL=0x00;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void DC1_rotate_right(new_char i)
{
new_char n,m;
out_G1_high();
for(n=1;n<=i;n++)
91
{
m=0;
do
{
while((STOP_DC1==not_ok)&&(m==0))
{
OCR1AH=0x0D;
OCR1AL=0x6B;
display_product();
display_money();
display_err();
}
OCR1AH=0x0D;
OCR1AL=0x6B;
m=1;
display_product();
display_money();
display_err();
}
while(STOP_DC1==ok);
OCR1AH=0x00;
OCR1AL=0x00;
};
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void DC2_rotate_left(new_char i)
{
new_char n,m;
out_G3_low();
for(n=1;n<=i;n++)
{
m=0;
do
{
while((STOP_DC2==not_ok)&&(m==0))
92
{
OCR1BH=0x0D;
OCR1BL=0x6B;
display_product();
display_money();
display_err();
}
OCR1BH=0x0D;
OCR1BL=0x6B;
m=1;
display_product();
display_money();
display_err();
}
while(STOP_DC2==ok);
OCR1BH=0x00;
OCR1BL=0x00;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void DC2_rotate_right(new_char i)
{
new_char n,m;
out_G3_high();
for(n=1;n<=i;n++)
{
m=0;
do
{
while((STOP_DC2==not_ok)&&(m==0))
{
OCR1BH=0x0D;
OCR1BL=0x6B;
display_product();
display_money();
93
display_err();
}
OCR1BH=0x0D;
OCR1BL=0x6B;
m=1;
display_product();
display_money();
display_err();
}
while(STOP_DC2==ok);
OCR1BH=0x00;
OCR1BL=0x00;
}
}
//////////////////////////////////////////////////////////////////////////
END///////////////////////////////////////////////////////////////////////
1.6: Th vin PORTFG.H
Do chip Atmega 128 khng th xut nhp Port F v Port G theo tng chn ring bit,
nn nhm phi xy dng th vin ny iu khin 2 Port ny theo tng chn ring r.
1.6.1. PORTFG.H
/*************************PORTFG.H********************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#ifndef _PORTFG_H
#define _PORTFG_H
//////////////////////////////////////////////////////////////////////////////////////
void out_F0_high(void);
void out_F1_high(void);
void out_F2_high(void);
void out_F3_high(void);
void out_F4_high(void);
void out_F5_high(void);
void out_F6_high(void);
void out_F7_high(void);
void out_G0_high(void);
void out_G1_high(void);
void out_G2_high(void);
94
void out_G3_high(void);
void out_G4_high(void);
void out_F0_low(void);
void out_F1_low(void);
void out_F2_low(void);
void out_F3_low(void);
void out_F4_low(void);
void out_F5_low(void);
void out_F6_low(void);
void out_F7_low(void);
void out_G0_low(void);
void out_G1_low(void);
void out_G2_low(void);
void out_G3_low(void);
void out_G4_low(void);
/////////////////////////////////End define function///////////////////////////////////
#endif
1.6.2. PORTFG.c
/************************PORTFG.c*********************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#include <mega128.h>
#include <PORT.H>
#include <MAIN.H>
#include <PORTFG.H>
/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
///////////////////////// out Pins of PortF high ////////////////////////////////////
void out_F0_high(void)
{
PORTF=PORTF | 0X01;
}
void out_F1_high(void)
{
PORTF=PORTF | 0x02;
}
95
void out_F2_high(void)
{
PORTF=PORTF | 0x04;
}
void out_F3_high(void)
{
PORTF=PORTF | 0x08;
}
void out_F4_high(void)
{
PORTF=PORTF | 0x10;
}
void out_F5_high(void)
{
PORTF=PORTF | 0x20;
}
void out_F6_high(void)
{
PORTF=PORTF | 0x40;
}
void out_F7_high(void)
{
PORTF=PORTF | 0x80;
}
///////////////////////// out Pins of PortF low ////////////////////////////////////
void out_F0_low(void)
{
PORTF=PORTF& 0xFE;
}
void out_F1_low(void)
{
PORTF=PORTF& 0xFD;
}
void out_F2_low(void)
{
PORTF=PORTF& 0xFB;
96
}
void out_F3_low(void)
{
PORTF=PORTF& 0xF7;
}
void out_F4_low(void)
{
PORTF=PORTF& 0xEF;
}
void out_F5_low(void)
{
PORTF=PORTF& 0xDF;
}
void out_F6_low(void)
{
PORTF=PORTF& 0xBF;
}
void out_F7_low(void)
{
PORTF=PORTF& 0x7F;
}
///////////////////////// out Pins of PortG high ////////////////////////////////////
void out_G0_high(void)
{
PORTG=PORTG | 0X01;
}
void out_G1_high(void)
{
PORTG=PORTG | 0X02;
}
void out_G2_high(void)
{
PORTG=PORTG | 0X04;
}
void out_G3_high(void)
{
97
PORTG=PORTG | 0X08;
}
void out_G4_high(void)
{
PORTG=PORTG | 0X10;
}
///////////////////////// out Pins of PortG low ////////////////////////////////////
void out_G0_low(void)
{
PORTG=PORTG& 0xFE;
}
void out_G1_low(void)
{
PORTG=PORTG& 0xFD;
}
void out_G2_low(void)
{
PORTG=PORTG& 0xFB;
}
void out_G3_low(void)
{
PORTG=PORTG& 0xF7;
}
void out_G4_low(void)
{
PORTG=PORTG& 0xEF;
}
1.7. Th vin Err.H
Th vin ny xy dng hin th cc li ca my c th xut hin khi my hot ng.
1.7.1. Err.H
/*************************ERR.H***********************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#ifndef _ERR_H
#define _ERR_H
//////////////////////////////////////////////////////////////////////////////////////
98
void display_error_not_enough_money(void);
void display_error_detect_good1(void);
void display_error_detect_good2(void);
void display_error_detect_good3(void);
void display_error_store_money(void);
void display_error_repay_money(void);
#endif
1.7.2. Err.c
/**************************** ERR.c********************************/
/*********In this library, i built functions to display err when machine action****/
/***** *********written by Vending machine group***********************/
/******** Two members of Mechatronic K1, HaUI and T_F_Love's love :d******/
#include <mega128.h>
#include <delay.h>
#include <MAIN.H>
#include <PORT.H>
#include <PORTFG.H>
#include <STEP.H>
#include <LED7SEG.H>
#include <DCmotor.H>
#include <ERR.H>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_detect_good1(void)
{
new_int i;
if(error_detect_good1==1)
{
for(i=1;i<=1000;i++)
{
err(1);
display_product();
}
error_detect_good1=0;
}
99
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_detect_good2(void)
{
new_int i;
if(error_detect_good2==1)
{
for(i=1;i<=1000;i++)
{
err(2);
display_product();
}
error_detect_good2=0;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_detect_good3(void)
{
new_int i;
if(error_detect_good3==1)
{
for(i=1;i<=1000;i++)
{
err(3);
display_product();
}
error_detect_good3=0;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_not_enough_money(void)
100
{
new_int i;
if(error_not_enough_money==1)
{
for(i=1;i<=1000;i++)
{
err(4);
display_product();
}
error_not_enough_money=0;
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_store_money(void)
{
new_int i;
if(error_store_money==1)
{
for(i=1;i<=1000;i++)
{
err(5);
display_product();
}
error_store_money=0;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void display_error_repay_money(void)
{
new_int i;
if(error_repay_money==1)
{
101
for(i=1;i<=1000;i++)
{
err(6);
display_product();
}
error_repay_money=0;
}
}
/////////////////////////////////////////// END///////////////////////////////////////////////////////////////////////
1.8. Th vin INTERFACE.H
Th vin ny gm cc hm thc hin lu thut ton iu khin my.
1.8.1. INTERFACE.H
/******************INTERFACE.H***********************************/
//////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////
#ifndef _INTERFACE_H
#define _INTERFACE_H
//////////////////////////////////////////////////////////////////////////////////////
void trahang1_thuocla(void);
void trahang2_coca(void);
void trahang3_water(void);
void tra_hang(void);
void tra_lai_tien(void);
void reset_system(void);
#endif
1.8.2: INTERFACE.c
#include <mega128.h>
#include <delay.h>
#include <MAIN.H>
#include <PORT.H>
#include <PORTFG.H>
#include <STEP.H>
#include <LED7SEG.H>
#include <DCmotor.H>
#include <ERR.H>
102
#include <INTERFACE.H>
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void trahang1_thuocla(void)
{
while(sp1>0)
{
if(hang1_thuocla==not_ok)
{
error_detect_good1=1;
break;
}
step4_rotate_left(1);
sp1--;
display_product();
display_money();
display_err();
}
loi_sp1=sp1;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void trahang2_coca(void)
{
while(sp2>0)
{
if(hang2_coca==not_ok)
{
error_detect_good2=1;
break;
}
DC1_rotate_left(1);
sp2--;
display_product();
display_money();
display_err();
103
}
loi_sp2=sp2;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void trahang3_water(void)
{
while(sp3>0)
{
if(hang3_water==not_ok)
{
error_detect_good3=1;
break;
}
DC2_rotate_left(1);
sp3--;
display_product();
display_money();
display_err();
}
loi_sp3=sp3;
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void tra_hang(void)
{
if(sp1>0)
trahang1_thuocla();
if(sp2>0)
trahang2_coca();
if(sp3>0)
trahang3_water();
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void tra_lai_tien(void)
104
{
if((kho5k==not_ok)&&(kho2k==not_ok)&&(kho1k==not_ok))
error_store_money=1;
while((tien_thua>0)&&(error_store_money!=1))
{
while((kho5k==ok)&&(tien_thua>=5000))
{
step1_rotate_left(1);
tien_thua=tien_thua-5000;
display_product();
display_money();
display_err();
}
while((kho2k==ok)&&(tien_thua>=200))
{
step2_rotate_left(1);
tien_thua=tien_thua-2000;
display_product();
display_money();
display_err();
}
while((kho1k==ok)&&(tien_thua>=1000))
{
step3_rotate_left(1);
tien_thua=tien_thua-1000;
display_product();
display_money();
display_err();
}
if((kho5k==not_ok)&&(kho2k==not_ok)&&(kho1k==not_ok))
{
error_repay_money=1;
break;
}
}
}
105
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void reset_system(void)
{
xung=0;
chuc_nghin=0;
nghin=0;
tram=0;
sp1=0;
sp2=0;
sp3=0;
loi_sp1=0;
loi_sp2=0;
loi_sp3=0;
error_detect_good1=0;
error_detect_good2=0;
error_detect_good3=0;
error_detect_money_5k=0;
error_detect_money_2k=0;
error_detect_money_1k=0;
error_not_enough_money=0;
error_repay_money=0;
error_store_money=0;
sotien=0;
tien_thua=0;
}
////////////////////////////////////////////////// END///////////////////////////////////////////////////////////
1.9. Hm main.c
Chng trnh chnh vit iu khin my hot ng.
/*****************************************************
This program was produced by the
CodeWizardAVR V2.03.4 Standard
Automatic Program Generator
Copyright 1998-2008 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
106
Chip type
Program type
: ATmega128
: Application
Clock frequency
: 16.000000 MHz
Memory model
: Small
: 1024
*****************************************************/
#include <mega128.h>
#include <delay.h>
#include <MAIN.H>
#include <PORT.H>
#include <PORTFG.H>
#include <STEP.H>
#include <LED7SEG.H>
#include <DCmotor.H>
#include <ERR.H>
#include <INTERFACE.H>
#include <PORTFG.c>
#include <STEP.c>
#include <DCmotor.c>
//#include <ERR.c>
#include <INTERFACE.c>
//#include <LED7SEG.c>
/*#define gia_sp1 10000
#define gia_sp2 7000
#define gia_sp3 60000*/
107
sp2=9;
}
else
error_detect_good2=1;
}
else
error_not_enough_money=1;
}
// External Interrupt 3 service routine
interrupt [EXT_INT3] void ext_int3_isr(void)
{
// Place your code here
if(tien_thua>= gia_sp3)
{
if(hang3_water==ok)
{
sp3++;
if(sp3>9)
sp3=9;
}
else
error_detect_good3=1;
}
else
error_not_enough_money=1;
}
// External Interrupt 5 service routine
interrupt [EXT_INT5] void ext_int5_isr(void)
{
// Place your code here
sotien=sotien+5000;
}
// External Interrupt 6 service routine
109
display_err();
reset_system();
}
}
// Declare your global variables here
void main(void)
{
PORTA=0x00;
DDRA=0xC0;
PORTB=0x00;
DDRB=0xFE;
PORTC=0x00;
DDRC=0xFF;
PORTD=0x00;
DDRD=0xE0;
PORTE=0x00;
DDRE=0x03;
PORTF=0x00;
DDRF=0xFF;
PORTG=0x00;
DDRG=0x1F;
ASSR=0x00;
TCCR0=0x01;
TCNT0=0xFF;
OCR0=0xFF;
TCCR1A=0xA2;
TCCR1B=0x19;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x1E;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
111
OCR1BL=0x00;
OCR1CH=0x00;
OCR1CL=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
TCCR3A=0x00;
TCCR3B=0x00;
TCNT3H=0x00;
TCNT3L=0x00;
ICR3H=0x00;
ICR3L=0x00;
OCR3AH=0x00;
OCR3AL=0x00;
OCR3BH=0x00;
OCR3BL=0x00;
OCR3CH=0x00;
OCR3CL=0x00;
EICRA=0xAA;
EICRB=0xFC;
EIMSK=0xEF;
EIFR=0xEF;
/*
EICRA=0xAA;
EICRB=0x00;
EIMSK=0xEF;
EIFR=0xEF;
*/
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x01;
ETIMSK=0x00;
ACSR=0x80;
SFIOR=0x00;
// Global enable interrupts
#asm("sei")
112
while (1)
{
// Place your code here
};
}
2.
Cc bn v
Phn ny gm bn v cc chi tit c kh nhm thit k.
113