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
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!
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
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.
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.
đ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
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
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
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