TRNG I HC M THÀNH PH H CHÍ MINH
KHOA XÂY DNG VÀ IN
ÁN TT NGHIP
K S NGÀNH CÔNG NGHIP
THIT K MÔ HÌNH
BÃI GI XE Ô-TÔ T NG HÓA
(AUTOMATIC AUTO PARKING)
SVTH : PHM HUNH MINH QUÂN
MSSV : 20702028
GVHD : Th.S PHAN VN HIP
TP. H Chí Minh, tháng 02 nm 2012
ÁN TT NGHIP K S CÔNG NGHIP GVHD: ThS. PHAN VN HIP
PHM HUNH MINH QUÂN – 20702028
LI M U
Ngày xa, xe máy đc xem là tài sn ln nht và quan trng nht ca nhiu gia
đình Vit Nam, còn xe hi ch là món hàng xa x. Nhng ngày nay vi s phát trin
chóng mt ca nn kinh t và mc sng ngày càng nâng cao thì ôtô không còn là
món hàng không th mua đc.
Vit Nam gia nhp WTO, th trng m ca, hàng lot nhà đu t nc ngoài rót
nhng khon đu t khng l vào Vit Nam tt c mi l
nh vc, m ra c hi làm
vic cho nhiu ngi. Có th nói, ngi Vit Nam ngày nay giàu hn ngày xa rt
nhiu và nhu cu s dng ngày càng cao cp hn. Ôtô là mt trong nhng sn phm
đy tim nng mang li li nhun cao cho ngi đu t, cng nh nhng ngành
ngh có liên quan.
Vy làm th nào đ có th qun lý mt s lng ln ôtô nh th mt cách h
p lý,
nhanh chóng mà li ít tn ngun nhân lc nht? ó qu là 1 câu hi không d tr li
chút nào. Chính vì điu này nên em quyt đnh nghiên cu và thit k Mô hình bãi
gi xe t đng hóa. T đó ta có th đa vào ng dng thc tin đ gii quyt vn
đ đc đt ra.
thay th cho các t điu khin ln, cng knh và khó thao tác, em đã s d
ng Vi
điu khin PIC 16F877A kt hp vi nhng IC chc nng thích hp khác, ta có th
qun lý hn 40 ch đ xe ch vi 1 mch điu khin nh gn.
ÁN TT NGHIP K S CÔNG NGHIP GVHD: ThS. PHAN VN HIP
PHM HUNH MINH QUÂN – 20702028
LI CM N
Trc tiên em xin gi li cám n chân thành sâu sc ti các thy cô giáo trong
trng i hc M TP. H Chí Minh nói chung và các thy cô giáo trong khoa Xây
Dng và in, b môn in – in t nói riêng đã tn tình ging dy, truyn đt
cho em nhng kin thc, kinh nghim quý báu trong sut thi gian ngi trên gh
nhà trng.
c bit em xin gi li cm n đn thy ThS. Phan Vn Hip, thy
đã tn tình giúp
đ, trc tip ch bo, hng dn em trong sut quá trình làm đ án tt nghip.
Trong thi gian làm vic vi thy, em không ngng tip thu thêm nhiu kin thc
b ích mà còn hc tp đc tinh thn làm vic, thái đ nghiên cu khoa hc nghiêm
túc, hiu qu, đây là nhng điu rt cn thit cho em trong quá trình hc tp và công
tác sau này.
Sau cùng em xin gi li cm n chân thành đn gia đình, b
n bè đã đng viên, đóng
góp nhng ý kin có giá tr cng nh s nhit tình h tr ca mi ngi.
Xin chân thành cm n!
ÁN TT NGHIP K S CÔNG NGHIP GVHD: ThS. PHAN VN HIP
PHM HUNH MINH QUÂN – 20702028
MC LC
CHNG 1: TNG QUAN V VI IU KHIN PIC 16F877A
1.1. Khái nim v Vi điu khin (VK) 1
1.1.1. Khái nim 1
1.1.2. Cu trúc tng quan ca VK 1
1.2. PIC là gì? 2
1.2.1. Kin trúc PIC 2
1.2.2. C ch x lý Pipelining 4
1.2.3. Mt s đc tính chung ca PIC 5
1.2.4. Các dòng PIC 6
CHNG 2 : VI IU KHIN PIC 16F877A
2.1. ôi nét v VK PIC 16F877A 7
2.2. T chc b nh trong VK PIC 16F877A 9
2.2.1. Kin trúc b nh ca PIC 9
2.2.2. B nh chng trình ca PIC 9
2.2.3. B nh d liu ca PIC 11
2.2.3.1. Thanh ghi mc đích chung GPR 12
2.2.3.2. Thanh ghi cha nng đc bit SFR 12
2.2.4. Vùng nh STACK 14
2.3. Các Port xut nhp ( I/O ) ca VK PIC 16F877A 14
2.3.1. PORT A 15
2.3.2. PORT B 16
2.3.3. PORT C 17
2.3.4. PORT D 18
2.3.5. PORT E 19
2.4. B đnh thi TIMER 20
2.4.1. TIMER 0 20
2.4.2. TIMER 1 21
2.4.3. TIMER 2 23
2.5. ADC – B chuyn đi tín hiu tng t sang tín hiu s 24
2.6. COMPARATOR – B so sánh 26
ÁN TT NGHIP K S CÔNG NGHIP GVHD: ThS. PHAN VN HIP
PHM HUNH MINH QUÂN – 20702028
2.7. CCP (CAPTURE/COMPARE/PWM) 27
2.8. Giao tip ni tip 29
2.8.1. USART 29
2.8.2. MSSP 30
2.9. Giao tip song song PSP (Parallel slave port) 30
CHNG 3 : NGÔN NG LP TRÌNH CHO PIC
3.1. Ngôn ng lp trình PIC C COMPILER 32
3.1.1. Gii thiu v các ngôn ng lp trình 32
3.1.2. PIC C COMPILER 32
3.2. Các tp lnh và các hàm trong PIC C COMPILER 33
3.2.1. Các lnh tin x lý 33
3.2.2. Các kiu d liu 34
3.2.3. nh ngha các hàm 35
3.2.4. Các phát biu điu kin và vòng lp 35
3.2.5. Các phép toán trong PIC C COMPILER 38
3.2.6. Các hàm th vin ca PIC C COMPILER 38
3.2.7. Các hàm x lý chui chu
n 41
3.2.8. Nhóm lnh trên Bit, Byte 44
3.2.9. Nhóm hàm qun lý truyn thông I2C 47
3.2.10. Nhóm hàm qun lý PSP 48
3.2.11. Nhóm hàm kim tra MCU 48
3.2.12. Nhóm hàm qun lý ngt 59
CHNG 4 : THIT K BÃI GI XE Ô-TÔ T NG HÓA
(AUTOMATIC AUTO PARKING)
4.1. Gii thiu linh kin liên quan 51
4.1.1. IC n áp LM2576 51
4.1.2. IC đm dòng 74HC245 51
4.1.3. IC 74HC139 52
4.1.4. IC 4052 52
4.1.5. Led 7 seg 5461BH 53
4.1.6. TIP41C 53
4.1.7. Led thu phát hng ngoi 54
ÁN TT NGHIP K S CÔNG NGHIP GVHD: ThS. PHAN VN HIP
PHM HUNH MINH QUÂN – 20702028
4.2. S đ khi cha nng 54
4.3. Thit k chi tit phn cng 55
4.3.1. Khi ngun 55
4.3.2. Khi điu khin 57
4.3.3. Khi cm bin ra – vào 58
4.3.4. Khi rào chn ra – vào 59
4.3.5. Khi hin th 60
4.3.6. Khi cm bin v trí 62
4.3.7. Khi đèn hng dn v trí 62
4.3.8. S đ kt ni tng 63
4.4. Thit k
mô hình – Phn cng 64
4.4.1. Thit k mô hình 64
4.4.2. Thit k phn cng 66
4.4.2.1. Khi ngun 66
4.4.2.2. Khi hin th 67
4.4.2.3. Khi điu khin 67
4.4.2.4. Khi đèn hng dn v trí 69
4.4.2.5. Mch tng hp 69
4.5. Lu đ gii thut 70
4.6. M rng 71
PH LC 74
DANH MC TÀI LIU THAM KHO 91
CHNG 1 : TNG QUAN V VI IU KHIN PIC
Khái nim v Vi điu khin (VK)
Khái nim
Nu s dng b vi x lý đ qun lý 1 h thng có quy mô va và nh thì
không thích hp, nên cân nhc li. Vì:
B vi x lý đòi hi các khi mch đin giao tip phc tp.
Chim nhiu không gian, mch in phc tp.
òi hi ngi thit k phi hiu bit tinh t
ng v các thành phn vi
x lý, b nh, các thit b ngoi vi mi có th kt hp chúng thành 1
khi thng nht.
Giá thành sn phm rt cao.
Chính vì th nên các nhà ch to đã tích hp mt ít b nh và mt s
mch giao tip ngoi vi cùng vi vi x lý vào mt IC duy nht đc gi
là Microcontroller – Vi điu khin.
VK là mt h máy tính hoàn chnh vi CPU, b
nh, các mch giao
tip, các b đnh thi và mch điu khin ngt đc tích hp bên trong
nên nó có th đc lp trình 1 cách d dàng.
Cu trúc tng quan ca VK
CPU: Là trái tim ca h thng. Là ni qun lý tt c các hot đng ca
VK. Bên trong CPU gm:
ALU là b phn thao tác trên các d liu
B gii mã lnh và điu khin, xác đnh các thao tác mà CPU c
n
thc hin
Thanh ghi lnh IR, lu gi opcode ca lnh đc thc thi
Thanh ghi PC, lu gi đa ch ca lnh k tip cn thc thi
Mt tp các thanh ghi dùng đ lu thông tin tm thi
ROM: ROM là b nh dùng đ lu gi chng trình. ROM còn dùng
đ cha s liu các bng, các tham s h thng, các s liu c đnh ca
1
h thng. Trong quá trình hot đng ni dung ROM là c đnh, không
th thay đi, ni dung ROM ch thay đi khi ROM ch đ xóa hoc
np chng trình.
RAM: RAM là b nh d liu. B nh RAM dùng làm môi trng x
lý thông tin, lu tr các kt qu trung gian và kt qu cui cùng ca các
phép toán, x lý thông tin. Nó cng dùng đ t chc các vùng đm d
liu, trong các thao tác thu phát, chuyn đi d liu.
BUS: BUS là các đng dn dùng đ di chuyn d liu. Bao gm: bus
đa ch, bus d liu và bus điu khin.
B NH THI: c s dng cho các mc đích chung v thi gian.
WATCHDOG: B phn dùng đ reset li h thng khi h thng gp
“bt thng”.
ADC: B phn chuyn tín hiu analog sang tín hiu digital. Các tín hiu
bên ngoài đi vào VK th
ng dng analog. ADC s chuyn tín hiu
này v dng tín hiu digital mà VK có th hiu đc.
1.2. PIC là gì?
PIC là mth vi điukhinRISC đc snxutbi công ty Microchip
Technology. Th h PIC đu tiên là PIC1650 đc phát trin bi
Microelectronics Division thucGeneralInstrument.
PIC là vitttca "Programmable Intelligent Computer" -
máy tính
thông minh kh trình - là mtsnphmca hãng General Instruments
đt cho dòng sn phm đu tiên là PIC1650. Thi đim đó PIC1650 đc
dùng đ giao tip vi các thitb ngoivichomáych 16 bit CP1600,
vì vy, ngita cng giPICvi cái tên "Peripheral Interface
Controller" – b điu khin giao tip ngoi vi.
Sau nm 1985, PIC đcb sung EEPROM đ to thành 1 bđiu khin
d dàng vào ra lp trình. Ngày nay rt nhiu dòng PIC đc xut
xng vihànglo
t các module ngoivitíchhpsn(nh USART,
PWM, ADC ), vi b nh chng trình t 512 Word đn 32K Word.
2
Kin trúc PIC
Cu trúc phn cng ca mt vi điu khin đc thit k theo hai dng
kin trúc: kin trúc Von Neuman và kin trúc Havard.
T chc phn cng ca PIC đc thit k theo kin trúc Havard. im
khác bit gia kin trúc Havard và kin trúc Von-Neuman là cu trúc b
nh d liu và b nh chng trình.
3
Hình 1.2.1: Kin trúc Von-Neuman và kin trúc Havard
i vi kin trúc Von-Neuman, b nh d liu và b nh chng trình
nm chung trong mt b nh, do đó ta có th t chc, cân đi mt cách
linh hot b nh chng trình và b nh d liu. Tuy nhiên điu này ch
có ý ngha khi tc đ x lý ca CPU phi rt cao, vì vi cu trúc đó,
trong cùng mt thi đim CPU ch có th
tng tác vi b nh d liu
hoc b nh chng trình. Nh vy có th nói kin trúc Von-Neuman
không thích hp vi cu trúc ca mt vi điu khin.
i vi kin trúc Havard, b nh d liu và b nh chng trình tách ra
thành hai b nh riêng bit. Qua vic tách ri b nh chng trình và b
nh d liu, bus chng trình và bus d liu, CPU có th
cùng mt lúc
truy xut c b nh chng trình và b nh d liu, giúp tng tc đ x
lý ca vi điu khin lên gp đôi. ng thi cu trúc lnh không còn ph
thuc vào cu trúc d liu na mà có th linh đng điu chnh tùy theo
kh nng và tc đ ca tng vi điu khin. Và đ tip tc ci ti
n tc đ
thc thi lnh, tp lnh ca h vi điu khin PIC đc thit k sao cho
chiu dài mã lnh luôn c đnh (ví d đi vi h 16Fxxxx chiu dài mã
lnh luôn là 14 bit) và cho phép thc thi lnh trong mt chu k ca xung
clock ( ngoi tr mt s trng hp đc bit nh lnh nhy, lnh gi
chng trình con … cn hai chu k xung đng h).
iu này có ngha
tp lnh ca vi điu khin thuc cu trúc Havard s ít lnh hn, ngn
hn, đn gin hn đ đáp ng yêu cu mã hóa lnh bng mt s lng
bit nht đnh.
Vi điu khin đc t chc theo kin trúc Havard còn đc gi là vi
4
điu khin RISC (Reduced Instruction Set Computer) hay vi điu khin
có tp lnh rút gn. Vi điu khin đc thit k theo kin trúc Von-
Neuman còn đc gi là vi điu khin CISC (Complex Instruction Set
Computer) hay vi điu khin có tp lnh phc tp vì đ dài lnh luôn là
bi s ca 1 byte (do d liu đc t chc thành tng byte).
C ch x lý Pipelining
ây chính là c ch x lý lnh c
a các vi điu khin PIC. Mt chu k
lnh ca vi điu khin s bao gm 4 xung clock. Ví d ta s dng
oscillator có tn s 4 MHZ, thì xung lnh s có tn s 1 MHz (chu k
lnh s là 1 us). Gi s ta có mt đon chng trình nh sau:
1. MOVLW 55h
2. MOVWF PORTB
3. CALL SUB_1
4. BSF PORTA,BIT3
5. instruction @ address SUB_1
đây ta ch bàn đn qui trình vi điu khin x lý đon chng trình trên
thông qua tng chu k lnh. Quá trình trên s đc thc thi nh
sau:
Bng 1.2.2: C ch Pipelining
5
TCY0: đc lnh 1
TCY1: thc thi lnh 1, đc lnh 2
TCY2: thc thi lnh 2, đc lnh 3
TCY3: thc thi lnh 3, đc lnh 4.
TCY4: vì lnh 4 không phi là lnh s đc thc thi theo qui trình
thc thi ca chng trình (lnh tip theo đc thc thi phi là lnh
đu tiên ti label SUB_1) nên chu k thc thi lnh này ch đc
dùng đ đc lnh đu tiên ti label SUB_1. Nh vy có th xem lênh
3 c
n 2 chu k xung clock đ thc thi.
TCY5: thc thi lnh đu tiên ca SUB_1 và đc lnh tip theo ca
SUB_1.
Quá trình này đc thc hin tng t cho các lnh tip theo ca
chng trình.
Thông thng, đ thc thi mt lnh, ta cn mt chu k lnh đ gi lnh
đó, và mt chu k xung clock na đ gii mã và thc thi lnh. Vi c
ch pipelining đc trình bày trên, mi l
nh xem nh ch đc thc
thi trong mt chu k lnh. i vi các lnh mà quá trình thc thi nó làm
thay đi giá tr thanh ghi PC (Program Counter) cn hai chu k lnh đ
thc thi vì phi thc hin vic gi lnh đa ch thanh ghi PC ch ti.
Sau khi đã xác đnh đúng v trí lnh trong thanh ghi PC, mi lnh ch
cn mt chu k lnh đ thc thi xong. Vi c ch này, tc
đ x lý ca
PIC đc tng lên gp đôi.
6
1.2.3. Mt s đc tính chung ca PIC
Hin nay có khá nhiu dòng PIC và có rt nhiu khác bitv phn
cng, nhngchúngtacóthđim qua mt vài nét chung nh sau:
Có th hot đng tt trong khong đin áp t 2V – 5,5V.
Là CPU 8/16 bit, xây dng theo kin trúc Harvard.
Có b nh Flash và ROM có th tu chn t 256 byte đn 256
Kbyte.
Có các cng xut– nhp (I/O ports).
Có timer 8/16 bit.
Có các chun giao tip ni tip đng b
/không đng b USART.
Có các b chuyn đi ADC 10/12 bit.
Có các b so sánh đin áp (Voltage Comparators).
Có các khi Capture/Compare/PWM.
Có h tr giao tipLCD.
Có MSSP Peripheral dùng cho các giao tipI²C, SPI, vàI²S.
Có b nh ni EEPROM - có th ghi/xoá lên ti 1 triuln.
Có khi iu khin đng c, đc encoder.
Có h tr giao tip USB.
Có h tr điu khin Ethernet.
Có h tr giao tip CAN.
1.2.4. Các dòng PIC
Các dòng PIC hin có trên th
trng:
PIC12xxxx: đ dài lnh 12 bit
PIC16xxxx: đ dài lnh 14 bit
PIC18xxxx: đ dài lnh 16 bit
C: PIC có b nh EPROM (ch có 16C84 là EEPROM)
F: PIC có b nh flash (có th np xóa chng trình đc nhiu ln
hn).
7
LF: PIC có b nh flash hot đng đin áp thp
LV: tng t nh LF, đây là kí hiu c
Bên cnh đó mt s vi điu khin có kí hiu xxFxxx là EEPROM, nu
có thêm ch A cui là flash (ví d PIC16F877 là EEPROM, còn
PIC16F877A là flash).
Ngoài ra còn có thêm mt dòng vi điu khin PIC mi là dsPIC.
Cn tham kho tài liu “Select PIC guide” do nhà sn xut Microchip
cung cp đ la chn mt vi điu khin PIC cho phù hp.
8
CHNG 2 : VI IU KHIN PIC 16F877A
ôi nét v VK PIC 16F877A
9
Hình 2.1a: S đ chân ca VK PIC 16F877A
10
Chân (1) có 2 chc nng:
: ngõ vào reset tích cc mc thp.
Vpp: ngõ vào nhn đin áp lp trình khi lp trình cho PIC.
Chân VDD (11, 32) và VSS (12, 31): là các chân ngun ca PIC.
Chân OSC1/CLK1(13): ngõ vào kt ni vi dao đng thch anh hoc ngõ
vào nhn xung clock t bên ngoài.
Chân OSC2/CLK2(14): ngõ ra dao đng thch anh hoc ngõ ra cp xung
clock.
Các chân còn li s đc nêu c th trong phn 2.4. Các port xut nhp
(I/O) ca VK PIC 16F877A.
ây là vi điu khin thuc h PIC16Fxxx vi tp lnh g
m 35 lnh có đ
dài 14 bit. Mi lnh đu đc thc thi trong mt chu k xung clock.
Tc đ hot đng ti đa cho phép là 20 MHz vi mt chu k lnh là
200ns. B nh chng trình 8Kx14 bit, b nh d liu 368x8 byte
RAM và b nh d liu EEPROM vi dung lng 256x8 byte. S
PORT I/O là 5 vi 33 pin I/O.
11
Hình 2.1b: Cu trúc VK PIC 16F877A
VK PIC 16F877A gm nhng khi sau:
Khi ALU – Arithmetic Logic Unit.
Khi b nh chng trình – Flash Program Memory (ghi xóa 100.000
12
ln).
Khi b nh d liu EEPROM – Data EPROM (ghi xóa 1.000.000
ln).
Khi b nh file thanh ghi RAM – RAM file Register.
Khi gii mã lnh và điu khin – Instruction Decode Control.
Khi thanh ghi đcbit.
Khi b nh ngn xp.
Khiresetmch khi có đin, khi đnh thiresetmch khi có đin,
khi đnh thi n đnh dao đng khi có đin, kh
i đnh thigiám
sát, khi reset khi stgimngun, khig ri, khi lp trình b nh
đin áp thp.
Khi ngoi vi timer T0, T1,T2.
Khi giao tip ni tip.
Khi chuyn đi tín hiu tng t sang s –ADC.
Khi so sánh đin áp tng t.
Khi to đin áp tham chiu.
Khi các port xut nhp.
T
chc b nh trong VK PIC 16F877A
PIC16F877A có 3 khib nh tích hpbêntrong:
B nh chng trình (Program memory) có dung lng 8K.
B nh d liuRAMcó368ônh byte cùng vi các thanh ghi
có chcnng đcbit SFR (Special Function Register).
B nh EEPROM có dung lng 256 byte.
Kin trúc b nh ca PIC
13
Nh đã đ cp
bên trên, PIC có kin trúc b nh dng Harvard, mt kin trúc ci tin
so vi kin trúc Von Neumann.
Hình 2.2.1: Kin trúc b nh VK PIC 16F877A
Vikintrúcnày thìb nhđc tách ra làm 2 loib nhđclp: b
nh l u chng trình và b nh lud liu. CPU giao tipvi2b
nhđclpnêncn 2 bus đclp. Vì đclp nên có th thay đis
bit l
utr catng b nh mà không nh hng lnnhau.
ViPICthìb nh chng trình vi mi ô nh lu tr 14 bit, còn b
nh d liu vi mi ô nh lu d liu 8 bit.
u đim: tc đ truy sut nhanh, tùy ý thay đi s bit caô nh.
B nh chng trình ca PIC
B nh chng trình ca PIC16F877A có dung lng 8K word (1 word
14
= 14 bit) đc chia làm 4 trang b nh, mi trang 2K.
Thanh ghi b đm chng trình PC (Program Counter) s qun lý đa
ch ca b nh chng trình. Thanh ghi PC có đ dài 13 bit s qun lý
8192 ô nh tng đng vi 8K ô nh. Mi ô nh chng trình lu 14
bit d liu.
Khi PIC b reset thì thanh ghi PC có giá tr là 0000H và PIC s bt đu
thc hin chng trình ti đa ch 0000H.
Khi có bt k ngt nào tác đng thì PIC s thc hi
n chng trình phc
v ngt ti đa ch 0004H.
Mi trang ca b nh chng trình có đa ch xác đnh. Vic phân chia
theo trang b nh ch có tác dng đi vi lnh nhy và lnh gi chng
trình con. Khi ni nhy đn hoc chng trình con nm trong cùng 1
trang thì lnh s vit ngn gn hn so vi trng hp nm khác trang, s
đc trình bày phn các ki
u truy xut b nh.
15
Trong các h vi điu khin khác thì
b nh ngn xp dùng chung vi b nh d liu, u đim là cu trúc
đn gin, khuyt đim là vic dùng chung nu không bit gii hn s ln
chim ln nhau và làm mt d liu lu trong b nh ngn xp làm
chng trình thc thi sai.
16
Hình 2.2.2a: S đ b nh chng trình VK PIC 16F877A
Mi ô nh ca b nh chng trình vi điu khin PIC có th lu tr d
liu nhiu bit bao gm c mã lnh và d liu. Khi CPU đc mã lnh đ
thc hin thì CPU ch thc hin 1 ln đc c mã lnh và d liu.
Hình 2.2.2b:T chcb nh chac mã lnh và d liu.
Vy vit chcb nh ca PIC thì titkim đc1chuk đcd liu
17
vì th PIC s có tc đ thc hin chng trình nhanh hn.
B nh d liu ca PIC
i vi PIC16F877A b nh d liu EEPROM đc chia ra làm 4
bank. Mi bank có dung lng 128 byte, bao gm các thanh ghi có chc
nng đc bit SFG (Special Function Register) nm các vùng đa ch
thp và các thanh ghi mc đích chung GPR (General Purpose Register)
nm vùng đa ch còn li trong bank.
Các thanh ghi SFR thng xuyên đc s dng (ví d nh thanh ghi
STATUS) s
đc đt tt cà các bank ca b nh d liu giúp thun
tin trong quá trình truy xut và làm gim bt lnh ca chng trình.
18
Bng
19