Professional Documents
Culture Documents
Do - An Auto Saved) Auto Saved)
Do - An Auto Saved) Auto Saved)
thut vi iu khin hin nay rt pht trin rt mnh m, n c ng dng vo rt rt nhiu lnh vc t trong i sng sinh hot hng ngy(kha s, t lnh, ti vi, ...) cho ti cc lnh vc trong cng nghip cng nh trong qun s. Do c nhiu u im nh nh gn, kh nng lp trnh iu khin theo mun, gi thnh thp, c kh nng x l c nhiu cng vic ln vi iu khin tr thnh linh kin khng th thiu c trong cc thit b phc v con ngi chng ta. AVR l mt trong rt nhiu dng vi iu khin 8bit hin nay. N c ng dng rng ri trong lnh vc iu khin ng dng, lnh vc iu khin o lng, lnh vc iu khin t ng, lnh vc iu khin qung co .v.v Vi nhng kin thc c c v dng vi iu khin AVR em chn ti tt nghip: Thit k h thng o nhit s dng LM335. Mc tiu ca ti l kt hp vi iu khin AVR kt hp vi IC cm bin nhit thnh h thng o nhit .IC LM335 s cm bin nhit bn ngoi mi trng ( chuyn nhit thnh tn hiu in p) a n vi iu khin AVR x l ri hin th trn LCD 16x2. Ni dung ca n chia lm 3 chng : -, Chng 1: Tm hiu v mt s loi cm bin nhit thng dng v LM335 -, Chng 2: Tm hiu v vi iu khin AVR ,ngn ng C , phn mm WINavr v LCD 16x2. -, Chng 3: Thit k h thng o nhit x dng LM335.
Gm 2 dy kim loi khc nhau c hn dnh 1 u gi l u nng ( hay u o), u cn li gi l u lnh ( hay l u chun ). Khi c s chnh lch nhit gia u nng v u lnh th s pht sinh 1 sc in ng V ti u lnh. Mt vn t ra l phi n nh v o c nhit u lnh, iu ny ty thuc rt ln vo cht liu. Do vy mi cho ra cc chng loi cp nhit , mi loi cho ra 1 sc in ng khc nhau: E, J, K, R, S, T. V th cn lu iu ny chn u d v b iu khin cho thch hp. Dy ca cp nhit in th khng di ni n b iu khin, yu t dn n khng chnh xc l ch ny, gii quyt iu ny chng ta phi b tr cho n ( offset trn b iu khin ). Lu khi s dng: T nhng yu t trn khi s dng loi cm bin ny chng ta lu l khng nn ni thm dy ( v tn hiu cho ra l mV ni s suy hao rt nhiu ). Cng dy ca cm bin nn thng thong ( ng cho cng dy ny dnh vo mi trng o ). Lu : V tn hiu cho ra l in p ( c cc m v dng ) do vy cn ch k hiu lp t vo b khuch i cho ng.
Cu to ca nhit in tr RTD Cu to ca RTD gm c dy kim loi lm t: ng, Nikel, Platinum,c qun ty theo hnh dng ca u o. Khi nhit thay i in tr gia hai u dy kim loi ny s thay i, v ty cht liu kim loi s c tuyn tnh trong mt khong nhit nht nh.Ph bin nht ca RTD l loi cm bin Pt, c lm t Platinum. Platinum c in tr sut cao, chng oxy ha, nhy cao, di nhit o c di. Thng c cc loi: 100, 200, 500,1000 ohm ti 0 D.C. in tr cng cao th nhy nhit cng cao.RTD thng c loi 2 dy, 3 dy v 4 dy. Lu khi s dng: Loi RTD 4 dy gim in tr dy dn i 1/2, gip hn ch sai s. Cch s dng ca RTD kh d chu hn so vi Thermocouple. Chng ta c th ni thm dy cho loi cm bin ny ( hn k, cht lng dy tt, c chng nhiu ) . V l bin thin in tr nn khng quan tm n chiu u dy. Ta s tm hiu k hn nguyn l o nhit ca Pt100 : Thit b o nhit Pt100 hay cn gi l can nhit Pt c cu to l mt in tr nhit (in tr thay i khi nhit thay i).in tr ny l mt dy kim loi c bc cc on s bao quanh ton b dy kim loi.Phn bao bc ny li c t trong mt ng bo v(thermowell) thng c dng hnh trn,ch a 2 u dy kim loi ra kt ni vi thit b chuyn i.Phn ng bo v s c t ni cn o nhit ,thng thng can nhit Pt100 ch o c nhit ti a l 600C. Hai u dy kim loi cha ra phn ng bo v c kt ni ti mt thit b gi l b chuyn i tn hiu nhit thnh tn hiu in phc v cho vic truyn ti phng iu khin gim st.Thit b chuyn i c cu to chng qua l mt cu in tr c mt nhnh chnh l Pt100(c in tr l 100 m 0 C) 3. THERMISTOR - Cu to: Lm t hn hp cc oxid kim loi: mangan, nickel, cobalt, - Nguyn l: Thay i in tr khi nhit thay i. - u im: Bn, r tin, d ch to. - Khuyt im: Dy tuyn tnh hp. - Thng dng: Lm cc chc nng bo v, p vo cun dy ng c, mch
4
in t. - Tm o: 50 <150 D.C.
Cu to Thermistor. Thermistor c cu to t hn hp cc bt ocid. Cc bt ny c ha trn theo t l v khi lng nht nh sau c nn cht v nung nhit cao. V mc dn in ca hn hp ny s thay i khi nhit thay i. C hai loi thermistor: H s nhit dng PTC- in tr tng theo nhit ; H s nhit m NTC in tr gim theo nhit . Thng dng nht l loi NTC. Thermistor ch tuyn tnh trong khong nhit nht nh 50-150 C do vy ngi ta t dng dng lm cm bin o nhit. Ch s dng trong cc mc ch bo v, ngt nhit, cc bc nh ta thng gi l Tt-mt. Ci Block lnh no cng c mt vi b gn cht vo cun dy ng c. Lu khi s dng: Ty vo nhit mi trng no m chn Thermistor cho thch hp, lu hai loi PTC v NTC .C th test d dng vi ng h VOM. Nn p cht vo b mt cn o. Trnh lm hng v bo v. V bin thin in tr nn khng quan tm chiu u dy.
Hnh thermistor.
4. IC BN DN - Cu to: Lm t cc loi cht bn dn. - Nguyn l: S phn cc ca cc cht bn dn b nh hng bi nhit . - u im: R tin, d ch to, nhy cao, chng nhiu tt, mch x l n gin. - Khuyt im: Khng chu nhit cao, km bn. - Thng dng: o nhit khng kh, dng trong cc thit b o, bo v cc mch in t. - Tm o: -50 <150 D.C.
Cm bin nhit Bn Dn l nhng loi cm bin c ch to t nhng cht bn dn. C cc loi nh Diode, Transistor, IC. Nguyn l ca chng l da trn mc phn cc ca cc lp P-N tuyn tnh vi nhit mi trng. Ngy nay vi s pht trin ca ngnh cng ngh bn dn cho ra i rt nhiu loi cm bin nhit vi s tch hp ca nhiu u im: chnh xc cao, chng nhiu tt, hot ng n nh, mch in x l n gin, r tin,. Ta d dng bt gp cc cm bin loi ny di dng diode ( hnh dng tng t Pt100), cc loi IC nh: LM35, LM335, LM45. Nguyn l ca chng l nhit thay i s cho ra in p thay i. in p ny c phn p t mt in p chun c trong mch.
IC cm bin nhit DS18B20 Lu khi s dng: V c ch to t cc thnh phn bn dn nn cm bin nhit Bn Dn km bn, khng chu nhit cao. Nu vt ngng bo v c th lm hng cm bin. Cm bin bn dn mi loi ch tuyn tnh trong mt gii hn no , ngoi di ny cm bin s mt tc dng. Ht sc quan tm n tm o ca loi cm bin ny t c s chnh xc. Loi cm bin ny km chu ng trong mi trng khc nghit: m cao, ha cht c tnh n mn, rung sc va chm mnh. *, Trong phn ny ta s tm hiu k hn v IC LM335: .a, Temperature accuracy ( s chnh xc ca nhit o). LM335A Thng s in p ra Sai s nhit Sai s nhit Sai s vi 250C Sai s mc nhit max Tnh khng tuyn tnh iu kin TC=25 C, IR=1.5mA Tc=250C, IR=1mA Tc=250C, IR=1mA TMinTCTMax, IR=1mA Tc=TMax IR=1mA 0.3 1.5 0.3 1.5
0 0
LM335 n v
Min Typ Max Min typ Max 2.95 2.98 3.01 2.92 2.98 3.04 V 1 2 0.5 2 3 5 1 2 4 1 2 6 9 2
0
C C C C
Thng s
iu kin
Max
n v
14
mV mV/0C
0
C/khr
H1
H2
8
H3
H4 -, Trong H1: y l cch ghp ni c bn ca LM335 trong mch, LM335 s c mc ni tip vi ngun (5V) qua 1 in tr R. Khi mc kiu ny ta s thu c in p u ra bin thin 10mV/0K. -, Trong H2: ta c th mc ni tip 3 IC LM335 vi nhau ,ni tip vi in tr 6K v ngun 15V. Vi cch ny in p u ra bin thin trung bnh 30mV/0K. -,Trong H3 : ta c th mc ni tip LM335 vi in tr v ngun, ta c th iu chnh nc thang o ca LM335 ly chun in p bin thin u ra l 10mV/0K thng qua vic iu chnh bin tr 10K chn ADJ. -, Trong H4 : ta mc song song 3 IC LM335 vi nhau, ri mc ni tip vi ngun 15V qua in tr 6K. Vi cch ny ta thu c in p u ra bin thin 10mV/0K. *, Hnh dng ca LM335 thng thy trong thc t :
N c 3 chn chnh : 2 chn cp ngun v 1 chn out tn hiu Analog Khi ta cp in p 5V cho LM335 th nhit o c t cm bin s chuyn thnh in p tng ng ti chn s 2 (Vout). in p ny c t l vi gii nhit m n o c. Vi gii ca nhit u ra l 10mV/K. Hot ng trong gii in p t 0 cho n 5V v gii nhit o c t 0 oC n 100oC. V cn ch n nhng thng s chnh sau : + Hot ng chnh xc dng in u vo t 0.4mA n 5mA. Dng in u vo ngoi khong ny kt qu o s sai + in p cp vo n nh l 5V + Tr khng u ra thp 1 m + Gii nhit mi trng l t 0 n 100 C Nh vy LM335 n cho chng ta tn hiu tng t (Analog) v chng phi x l tn hiu ny thnh nhit .
Chng 2 Tm hiu v vi iu khin AVR ,ngn ng C,phn mm WINavr v LCD 16x2 1, Tm hiu v vi iu khin AVR.
1.1. Tng quan v dng vi iu khin AVR - Vi iu khin AVR do hng Atmel (Hoa K) sn xut c gi thiu ln u nm 1996. AVR c rt nhiu dng khc nhau bao gm dng Tiny AVR (nh AT tiny 13, AT tiny 22) c kch thc b nh nh, t b phn ngoi vi, ri n dng AVR (chn hn AT90S8535, AT90S8515,) c kch thc b nh vo loi trung bnh v mnh hn l dng Mega (nh ATmega32, ATmega128,) vi b nh c kch thc vi Kbyte n vi trm Kbye cng
10
vi cc b ngoi vi a dng c tch hp trn chip, cng c dng tch hp c b LCD trn chip (dng LCD AVR). Tc ca dng ATmega cng cao hn so vi cc dng khc. - S khc nhau c bn gia cc dng chnh l cu trc ngoi vi, cn nhn th vn nh nhau (hnh 1.1). t bit, nm 2008, Atmel li tip tc cho ra i dng AVR mi l XmegaAVR, vi nhng tnh nng mnh m cha tng c cc dng AVR trc . C th ni AVR l dng MCU 8 bit mnh m nht hin nay. Cc c im chnh: 1-Kin trc RISC vi hu ht cc lnh c chiu di c nh, truy nhp b nh np lu tr v 32 thanh nghi a nng. 2- C nhiu b phn ngoi vi ngay trn chip, bao gm: Cng v/ra s, b bin i ADC, b nh EEFROM, b nh thi, b iu ch rng xung (PWM),giao tip CAN, 3- Hu ht cc lnh u thc hin trong mt chu k xung nhp. 4- Hot ng vi chu k xung nhp cao, c th ln n 20 MHz tu thuc tng loi chp c th. 5- B nh chng trnh va b nh d liu c tch hp ngay trn chip. 6- Kh nng lp trnh c trong h thng, c th lp trnh c ngay khi ang c cp ngun trn bn mch khng cn phi nhc chp ra khi bn mch. 7- H tr cho vic lp trnh bng ngn ng bc cao ngn ng C.
11
v x l s hc v logic (ALU). Mt giao din JATG cho qut ngoi vi. Lp trnh v h tr g ri trn chip. 3 Timer/Counter linh hot vi cc ch so snh. Cc ngt ngoi v ngt trong (21 nguyn nhn ngt). Chun truyn d liu ni tip USART c th lp trnh.
12
Mt ADC 10 bit, 8 knh vi cc knh u vo ADC c th la chn bng cch lp trnh. Mt Watchdog Timer c th lp trnh vi b to dao ng bn trong. Mt cng ni tip SPI ( serial peripheral interface). 6 ch tit kim nng lng c th la chn bng phn mm. La chn tn s hot ng bng phn mm. ng gi 40 chn kiu PDIP. Tn s ti a 16MHz. in th 4,5 5,5V. Vi iu khin ATmega16 c h tr lp trnh vi ngn ng lp trnh bc cao nh ngn ng lp trnh C. iu ny gip cho ngi s dng rt tin li trong vic lp trnh cho vi iu khin.1.2.2. S khi v cu trc
13
14
- Phn ct li l AVR kt hp vi cc tp lnh a dng vi 32 thanh ghi a nng. 32 thanh ghi c kt ni trc tip vi b s hc ALU (Arthmetic Logic Unit), cho php truy cp 2 thanh ghi c lp trong mt lnh n c thc thi trong mt xung nhp. Cu trc ny mang li nhiu kh nng lp trnh c hiu qu cao t trn 10 ln nhanh hn b vi x l CISC (Complex Instruction Set Computer: my tnh c tp lnh phc tp) thng thng. - Atmega16 cung cp cc thng s c trng sau: b nh Flash 16kbyte lp trnh c ngay trn h thng vi kh nng c v ghi, EEPPROM 512byte, SRAM 1kbyte, 32 ng vo/ra a nng, 32 thanh ghi lm vic a nng, 1 giao din JTAG, vic lp trnh v p ng b d sai trn chip, 3 b Timer/Counter lm vic linh hot vi ch so snh, cc ngt ngoi v trong, 1 b USART lp trnh ni tip, 1 giao din ni tip 2 dy byte nh hng, 1 b chuyn ADC 8 knh 10 bit vi trng thi u vo vi sai vi li c th lp trnh, 1 b nh thi Watchdog c th lp trnh vi b dao ng bn trong, 1 cng ni tip SPI,
15
v 6 ch tit kim nng lng c th la chn nh phn mm. Ch ngh lm cho CPU ngng hot ng trong khi cho php b USART, b giao din 2 dy, b chuyn i A/D, SRAM, b Timer/Counter, cng SPI, v h thng ngt vn tip tc lm vic. Ch lm gim mc tiu th nng lng lu ni dung thanh ghi nhng li b dao ng hot ng, cm tt c cc chc nng khc trn chip cho n khi c tn hiu ngt ngoi k tip hoc tn hiu reset phn cng. ch tit kim nng lng, b Timer bt ng b vn tip tc hot ng v cho php ngi s dng vn tip tc duy tr 1 b nh thi c s trong khi cc thit b cn li trong ch ngh. Ch gim nhiu ADC lm cho CPU ngng hot ng v tt c cc mun vo/ra ngoi tr b Timer bt ng b v b ADC, nhiu ca vic chuyn mch t cc tiu trong sut qu trnh chuyn i ADC. Trong ch d phng, thch anh/b dao ng cng hng s hot ng trong khi cc thit b cn li trong ch ngh. iu ny cho php vic khi ng nhanh c kt hp vi vic tiu th nng lng thp. ch d phng bn ngoi, c hai b dao ng chnh v Timer bt ng b vn tip tc hot ng. - Cc thit b c ch to bi cng tuy Atmel s dng cng ngh b nh khng t mt d liu v c mt cao. B nh Flash ISP trn chip cho php b nh chng trnh c th lp trnh c ngay trn h thng qua 1 b giao din ni tip SPI hoc bng b np chng trnh vo b nh khng t mt d liu thng thng, hoc bng 1 chng trnh khi ng trn chip ang chy trong li AVR. Chng trnh boot c th s dng mt vi giao din ti chng trnh ng dng trong b nh Flash ng dng. Phn mm trong on Flash khi ng s tip tc hot ng trong khi on Flash khi ng c cp nht, cung cp hot ng c ghi mt cch chnh xc. Bng cch kt hp 1 CPU 8 bit theo cu trc RISC vi b nh Flash lp trnh ngay trn h thng trong mt chip n, ATmega16 ca Atmel l b vi iu khin mnh n p ng s linh hot cao v l gii php c gi tr hiu qu a nhiu ng dng iu khin vo.
16
Port A (PA7 PA0) Port A l mt cng vo/ra 2 hng 8 bit, nu b chuyn i khng c dng. Chn Port c cc in tr ni ln ngun dng (c chn cho mi bit). Ng ra Port A c nhng c tnh iu khin i xng vi c hai kh nng chu ng ngun v nhit cao. Khi chn PA0 ti chn PA7 c s dng nh l ng vo v c t xung mc thp t bn ngoi, chng s l ngun dng nu cc in tr ni ln cc dng c kch hot. Port A cng c s dng khi mt tn hiu tng t ng vo n b chuyn i A/D. Cc chn ca Port A s c t trng thi 3 (tng tr cao) khi tn hiu reset mc tch cc ngay c khi tn hiu xung nhp khng hot ng. Port B (PB7 PB0) Port B l mt cng vo/ra 2 hng 8 bit vi cc in tr ko ln ngun dng bn trong (c chn cho mi bit). Ng ra Port B c nhng c tnh iu khin i xng vi c hai kh nng chu ng ngun v nhit cao. Cng nh cc chn ng vo, cc chn Port B c t xung mc thp t bn ngoi s l ngun dng nu cc in tr ni ln cc dng c kch hot. Cc chn Port B s c t trng thi th 3 khi tn hiu reset mc tch cc, ngay khi xung nhp khng hot ng.
17
Port C (PC7 PC0) Port C l mt cng vo/ra 2 hng 8 bit vi cc in tr ko ln ngun dng bn trong (c chn cho mi bit). Ng ra Port C c nhng c tnh iu khin i xng vi c hai kh nng chu ng ngun v nhit cao. Cng nh cc chn ng vo, cc chn Port C c t xung mc thp t bn ngoi s l ngun dng nu cc in tr ni ln cc dng c kch hot. Cc chn Port C s c t trng thi th 3 (tng tr cao) khi tn hiu reset mc tch cc, ngay khi xung nhp khng hot ng. Nu giao din JTAG c mc cho php, nhng in tr ko ln trn nhng chn PC5(TDI), PC3(TMS) v PC2(TCK) s c kch hot ngay c khi nu mt reset xut hin. Port D (PD7 PD0) Port D l mt cng vo/ra 2 hng 8 bit vi cc in tr ko ln ngun dng bn trong (c chn cho mi bit). Ng ra Port D c nhng c tnh iu khin i xng vi c hai kh nng chu ng ngun v nhit cao. Cng nh cc chn ng vo, cc chn Port D c t xung mc thp t bn ngoi s l ngun dng nu cc in tr ni ln cc dng c kch hot. Cc chn Port C s c t trng thi th 3 (tng tr cao) khi tn hiu reset mc tch cc, ngay khi xung nhp khng hot ng. VCC, GND, RESET, XTAL1, XTAL2, AVCC, AREF VCC: Ngun cung cp. GND: t.
RESET : Ng vo Reset. Mt mc thp trn chn ny di hn rng xung
ti thiu s to ra mt reset, ngay khi xung nhp khng hot ng. rng xung ti thiu l 1,5us. Xung ngn hn khng m bo to ra mt reset. XTAL1: Ng vo ca b khuch i dao ng o v mch to xung nhp bn trong. XTAL2: Ng ra ca b khuch i dao ng o. AVCC: l chn ngun cung cp cho Port A v b chuyn i A/D. N nn c kt ni ngoi ti VCC, ngay khi nu b ADC khng c dng. Nu b ADC c s dng th n c kt ni ti VCC thng qua mt mch lc thng thp. AREF: l chn tham chiu cho b chuyn i A/D.
18
19
B nh chng trnh
$0000
SRAM
$0000 32 thanh ghi $001F a nng $0020 64 thanh ghi $005F I/O $0060 $0000
EEPROM
16 bit
16 Kbyte
$01FF
$3FFF
1.2.5. Mt s thanh ghi ca ATMEGA16 1. Status Register Thanh ghi trng thi Thanh ghi trng thi cha thng tin v kt qu thc hin ca hu ht cc lnh s hc. Cc thng tin ny c th c s dng iu khin chng trnh. Ch rng cc thanh ghi trng thi c cp nht sau tt c cc hot ng ca ALU. Trong nhiu trng hp, iu ny s b i nhng cn thit khi s dng cu lnh so snh chuyn dng, kt qu nhanh hn v on chng trnh ngn gn hn. Thanh ghi trng thi khng t ng lu tr khi ang nhp vo mt thng trnh ngt v lu tr khi tr v t mt ngt. iu ny phi c qun l bng phn mm. Thanh ghi trng thi AVR SREG - c nh ngha nh sau:
Bit 7 I: Global Interrupt Enable - bit cho php ngt ton cc.
20
Bit cho php ngt ton cc phi c t cho cc ngt c th hot ng. iu khin hot ng ca cc ngt ring bit c thc hin trong cc thanh ghi iu khin ring bit. Nu thanh ghi cho php ngt ton cc c xa, khng c mt ngt ring bit no c hot ng. Bit I c xa bi phn cng sau khi mt ngt xy ra v c t bi lnh RETI cho cc php cc ngt tip theo hot ng. Bit I cng c th c t v xa bi cu lnh SEI v CLI trong cc ng dng. Bit 6 T: Bit Copy Storage. Cc cu lnh copy bit BLD (Bit LoaD) v BST (Bit STore) s dng bit T nh l ch hoc ngun cho bit hot ng. 1 bit t mt thanh ghi trong tp thanh ghi c th c copy vo bit T bng lnh BST v mt bit trong T c th c copy vo 1 bit trong thanh ghi trong tp thanh ghi bng lng BLD. Bit 5 H: Half Carry Flag . C nh mt na dng cho cc ton hng hng mt na byte trong cc php ton s hc. C H s dng php ton s hc vi s BDC . Bit 4 S: Sign Bit, S = N V bit du. Bit S l php XOR gia c m v c trn V . Bit 3 V: Twos Complement Overflow Flag c trn m b 2. C trn V h tr php ton s b 2. Bit 2 N: Negative Flag c m. C m N hin th kt qu m ca php ton logic hoc s hc. Bit 1 Z: Zero Flag . C Zero Z hin th kt qu bng 0 ca php ton logic hoc s hc. Bit 0 C: Carry Flag. C nh C hin th s nh trong php ton logic hoc s hc. 2. Thanh ghi a ch EEPROM EEARH v EEARL
Bit 15..9 Res: Reserved Bits l cc bit th trong ATmega16 v lun lun c t mc [0]. Bit 8..0 EEAR8..0: EEPROM Address
21
Thanh ghi a ch EEPROM EEARH v EEARL ch r a ch EEPROM trong khng gian EEPROM 512 byte. Nhng byte d liu EEPROM c nh a ch 0 511. Gi tr ban u ca EEAR th khng c nh ngha. Mt gi tr ring phi c vit trc khi EEPROM c th c truy xut. 3. Thanh ghi d liu EEPROM EEDR
Bit 7..0- EEDR7..0: D liu EEPROM i vi thao tc ghi ca EEPROM, thanh ghi d liu EEDR cha d liu c ghi ti EEPROM trong vng a ch c nh bi thanh EEAR. i vi thao tc c ca EEPROM, thanh ghi EEDR cha d liu c to ra EEPROM trong vng a ch c nh bi thanh ghi EEAR. 4. Thanh ghi iu khin EEPROM- EECR
Bit 7..4 - Res: Resserved Bits l nhng bt th ng. Cc bt ny lun c t mc [0]. Bit 3 - EERIE: EEPROM Ready Interrupt Enable Khi bit I trong thanh ghi SREG v EERIE c t ln [1], ngt EEPROM Ready c cho php v khi xo xung [0] th ngt b cm. Ngt EEPROM Ready pht ra mt ngt hng khi EEWE b xo xung [0]. Bit 2- EEMWE: EEPROM Master Write Enable Vic t EEMWE ln [1] sau vic thit lp EEWE s ch ghi d liu ln b nh EEPROM ti vng a ch c chn. Nu EEMWE b xo xung [0] th thit lp EEWE cng khng c tc dng g. Khi EEMWE c t ln [1] bng phn mm th phn cng s xo bit ny xung [0] sau 4 chu k xung nhp. Bit 1- EEWE: EEPROM Write Enable Khi a ch v d liu c ci t mt chnh xc, bit EEWE phi c thit lp ghi gi tr vo trong EEPROM. Khi mc logic [1] c t vo bit EEWE th bit EEMWE phi c thit lp, nu khng s khng thao tc ghi EEPROM c. Cc lnh ghi d liu b nh EEPROM c vit nh sau (bc 3 v 4 khng cn thit): 1. i cho n khi EEWE tr thnh [0].
22
2. i cho n khi SPMEN SPMCR tr thnh [0]. 3. Ghi a ch EEPROM mi ti EEAR (khng bt buc). 4. Ghi d liu EEPROM mi ti EEDR (khng bt buc). 5. Ghi mc lgic [1] ti bit EEMWE trong khi ghi mc [0] ti EEWE thanh ghi EECR. 6. Trong vng bn chu k ng h sau khi EEMWE c thit lp, ghi lgic [1] ti EEWE. Bit 0 - EERE: EEPROM Read Enable Khi a ch chnh xc c ci t trong thanh ghi EEAR, bit EERE c ghi mc lgic [1] ti EEPROM kch c. Truy xut c EEPROM mt mt lnh v d liu yu cu c p ng ngay lp tc. Khi EEPROM c c, CPU tm ngh bn chu k xung trc khi lnh k tip c thc hin. Ngi s dng nn kim tra bit EEWE trc khi bt u thao tc c. Nu mt thao tc ghi c ang hot ng, n khng th c EEPROM, m cng khng thay i thanh ghi EEAR. 5. Thanh ghi iu khin MCUCR
Thanh ghi ny dng chn iu kin xy ra cc ngt ngoi INT0 v INT1. Cc bt ISCxx s c nhim v vi bt ISC1x s c tc ng ti ngt ngoi INT1 cn vi bt ISC0x s tc ng ti ngt ngoi INT0. C th s c trnh by nh sau:
ISCx1 ISCx0 iu kin xy ra ngt 0 1 0 1 0 0 1 1 Mc logic 0(thp) s xy ra ngt C s thay i mc logic s xy ra ngt Cnh xung ca tn hiu s xy ra ngt Cnh ln ca tn hiu s xy ra ngt
23
Bt ISC2 cho php chn iu kin xy ra ngt ngoi INT2. ISC2 1 0 iu kin Cnh ln ca tn hiu s xy ra ngt Cnh xung ca tn hiu s xy ra ngt
Cc bit INT0, INT1, INT2 cho php cc ngt ngoi c xy ra hay khng. Cc ngt ngoi ch xy ra khi cc bt ny c t thnh 1 v ngt ton cc I c php. 7. Thanh ghi c ngt ngoi ngt ngoi GIFR
Cc bt INTF2, INTF1, INTF0 l cc c ngt ca cc ngt ngoi tng ng. Khi c tn hiu yu cu ngt ngoi th c ngt tng ng s c set thnh 1, nu ngt tng ng c cho php th MCU s nhy ti bng vc t ngt, c ngt s c xa khi chng trnh phc v ngt ( ISR ) c thc thi. Ngoi ra ta cng c set hay xa c ngt bng cch ghi trc tip mt gi tr logic vo n.
24
Bit 7:6- REFS1:0 (Reference Selection Bits): l cc bit chn in p tham chiu cho ADC, 1 trong 3 ngun in p tham chiu c th c chn l: in p ngoi t chn VREF, in p tham chiu ni 2.56V hoc in p AVCC. Bng 2 tm tt gi tr cc bit v in p tham chiu tng ng.
Bit 5-ADLAR (ADC Left Adjust Result): l bit cho php hiu chnh tri kt qu chuyn i. S d c bit ny l v ADC trn AVR c phn gii 10 bit, ngha l kt qu thu c sau chuyn i l 1 s c di 10 bit (ti a 1023), AVR b tr 2 thanh ghi data 8 bit cha gi tr sau chuyn i. Nh th gi tr chuyn i s khng lp y 2 thanh ghi data, trong mt s trng hp ngi dng mun 10 bit kt qu nm lch v pha tri trong khi cng c trng hp ngi dng mun kt qu nm v pha phi. Bit ADLAR s quyt nh v tr ca 10 bit kt qu trong 16 bit ca 2 thanh ghi data. Nu ADLAR=0 kt qu s c hiu chnh v pha phi (thanh ghi ADCL cha trn 8 bit thp v thanh ghi ADCH cha 2 bit cao trong 10 bit kt qu), v nu ADLAR=1 th kt qu c hiu chnh tri (thanh ghi ADCH cha trn 8 bit cao nht, cc bit t 9 n 2, v thanh ADCL cha 2 bit thp nht trong 10 bit kt qu (bn xem hnh cch b tr 2 thanh ghi ADCL v ADCH bn di hiu r hn). Bits 4:0-MUX4:0 (Analog Channel and Gain Selection Bits): l 5 bit cho php chn knh, ch v c h s khuych i cho ADC. Do b ADC trn AVR c nhiu knh v cho php thc hin chuyn i ADC kiu so snh (so snh in p gia 2 chn analog) nn trc khi thc hin chuyn i, chng ta cn set cc bit MUX chn knh v ch cn s dng. Bng 3 tm tt cc ch hot ng ca ADC thng qua cc gi tr ca cc bit MUX. Trong bng ny, ng vi cc gi tr t 00000 n 00111 (nh phn), cc knh ADC c chn ch n knh (tn hiu input ly trc tip t cc chn analog v so snh vi 0V), gi tr t 01000 n 11101 tng ng vi ch chuyn i so snh.
- 2, ADCSRA (ADC Control and Status RegisterA): l thanh ghi chnh iu khin hot ng v cha trng thi ca module ADC.
26
Bit 7 - ADEN(ADC Enable): vit gi tr 1 vo bit ny tc bn cho php module ADC c s dng. Tuy nhin khi ADEN=1 khng c ngha l ADC hot ng ngay, bn cn set mt bit khc ln 1 bt u qu trnh chuyn i, l bit ADSC. Bit 6 - ADSC(ADC Start Conversion): set bit ny ln 1 l bt u khi ng qu trnh chuyn i. Trong sut qu trnh chuyn i, bit ADSC s c gi nguyn gi tr 1, khi qu trnh chuyn i kt thc (t ng), bit ny s c tr v 0. V vy bn khng cn v cng khng nn vit gi tr 0 vo bit ny bt k tnh hung no. thc hin mt chuyn i, thng thng chng ta s set bit ADEN=1 trc v sau set ADSC=1. Bit 4 ADIF(ADC Interrupt Flag): c bo ngt. Khi mt chuyn i kt thc, bit ny t ng c set ln 1, v th ngi dng cn kim tra gi tr bit ny trc khi thc hin c gi tr chuyn i m bo qu trnh chuyn i thc s hon tt. Bit 3 ADIE(ADC Interrupt Enable): bit cho php ngt, nu bit ny c set bng 1 v bit cho php ngt ton cc (bit I trong thanh ghi trng thi ca chip) c set, mt ngt s xy ra khi mt qu trnh chuyn i ADC kt thc v cc gi tr chuyn i c cp nht (cc gi tr chuyn i cha trong 2 thanh ghi ADCL v ADCH). Bit 2:0 ADPS2:0(ADC Prescaler Select Bits): cc bit chn h s chia xung nhp cho ADC. ADC, cng nh tt c cc module khc trn AVR, cn c gi nhp bng mt ngun xung clock. Xung nhp ny c ly t ngun xung chnh ca chip thng qua mt h s chia. Cc bit ADPS cho php ngi dng chn h s chia t ngun clock chnh n ADC. Tham kho bng 4 bit cch chn h s chia.
-3, ADCL v ADCH (ADC Data Register): 2 thanh ghi cha gi tr ca qu trnh chuyn i. Do module ADC trn AVR c phn gii ti a 10 bits nn cn 2 thanh ghi cha gi tr chuyn i. Tuy nhin tng s bt ca 2 thanh ghi 8 bit l 16, con s ny nhiu hn 10 bit ca kt qu chuyn i, v th
27
chng ta c php chn cch ghi 10 bit kt qu vo 2 thanh ghi ny. Bit ADLAR trong thanh ghi ADMUX quy nh cch m kt qu c ghi vo. ADLAR=0:
ADLAR=1:
Thng thng, 2 thanh ghi data c sp xp theo nh dng ADLAR=0, ADCL cha 8 bit thp v 2 bit thp ca ADCH cha 2 bit cao nht ca gi tr thu c. Ch th t c gi tr t 2 thanh ghi ny, trnh c sai kt qu, bn cn c thanh ghi ADCL trc v ADCH sau, v sau khi ADCH c c, cc thanh ghi data c th c cp nht gi tr tip theo. - SFIOR(Special FunctionIO Register C): thanh ghi chc nng c bit, 3 bit cao trong thanh ghi ny quy nh ngun kch ADC nu ch Auto Trigger c s dng. l cc bit ADTS2:0 (Auto Trigger Source 2:0). Cc loi ngun kch c trnh by trong bng 5.
28
2. LCD 16x2.
2.1, Tm hiu v LCD 16x2
LCD s dng trong ti l loi 2 dng v 16 ct, cho php hin hin th cng lc 32 k t. Vi 14 chn iu khin v 2 chn m rng, s chn c ch ra hnh.
Hnh nh thc t LCD16x2. Bng 1.1 M t cc chn ca LCD: S th t Tn 1 2 3 Vss Vcc Vee ngha t
R/W 1 = c t LCD
6 7 8
EN D0 D1
9 10 11 12 13 14
D2 D3 D4 D5 D6 D7
Hnh 1.14. T chc ca DDRAM. Ch c 16 nh c a ch t 0 n 15 v 16 a ch t 64 n 79 l c hin th trn LCD. V th mun hin th mt k t no trn LCD chng ta cn vit k t vo DDRAM 1 trong 32 a ch trn. Cc k t nm ngoi 32 nh trn s khng c hin th, tuy nhin vn khng b mt i, chng c th c dng cho cc mc ch khc nu cn thit. CGROM CGROM l vng nh c nh cha nh ngha font cho cc k t. Chng ta khng trc tip truy xut vng nh ny m chip HD44780U s t thc hin
30
khi c yu cu c font hin th. Mt iu ng lu l a ch font ca mi k t vng nh CGROM chnh l m ASCII ca k t . V d k t a c m ASCII l 97, tham kho t chc ca vng nh CGROM trong hnh 4 bn s nhn thy a ch font ca a c 4 bit thp l 0001 v 4 bit cao l 0110. CGROM v DDRAM c t ng phi hp trong qu trnh hin th ca LCD. Gi s chng ta mun hin th k t a ti v tr u tin, dng th 2 ca LCD th cc bc thc hin s nh sau: trc ht chng ta bit rng v tr u tin ca dng 2 c a ch l 64 trong b nh DDRAM, v th chng ta s ghi vo nh c a ch 64 mt gi tr l 97 (m ASCII ca k t a). Tip theo, chip HD44780U c gi tr 97 ny v coi nh l a ch ca vng nh CGROM, n s tm n vng nh CGROM c a ch 97 v c bng font c nh ngha sn y, sau xut bn font ny ra cc chm trn mn hnh LCD ti v tr u tin ca dng 2 trn LCD. y chnh l cch m 2 b nh DDRAM v CGROM phi hp vi nhau hin th cc k t. Nh m t, cng vic ca ngi lp trnh iu khin LCD tng i n gin, l vit m ASCII vo b nh DDRAM ti ng v tr c yu cu, bc tip theo s do HD44780U m nhim. CGRAM CGRAM l vng nh cha cc symbol do ngi dng t nh ngha, mi symbol c c kch thc font 5x8 v c dnh cho 8 nh 8 bit. Cc symbol thng c nh ngha trc v c gi hin th khi cn thit. Vng ny c tt c 64 nh nn c ti a 8 symbol c th c nh ngha.
31
Lnh v ch th: Ch c thanh ghi ch th (instruction register) v thanh ghi d liu (data register) ca LCD mi c th iu khin c bng vi iu khin. S hot ng bn trong ca LCD c xc nh bng cc tn hiu c gi n t MCU. Nhng tn hiu bao gm: tn hiu la chon thanh ghi, tn hiu c/ghi, v d liu trn bus (D0 ti D7), c 4 loi lnh ca LCD l: Ch r chc nng ca LCD nh nh dng hin th, di d liu Thit lp a ch RAM trong. Thc hin truyn d liu vi RAM trong. Thc hin mt s chc nng khc. Bng1.2. Danh sch cc lnh thng xuyn s dng khi lm vic vi LCD. M lnh (hex) 0x30 0x38 0x20 0x28 0x08 0x0E 0x0C 0x0F 0x18 0x1C 0x10 M lnh (decimal) 48 56 32 40 8 14 12 15 24 30 16
S th t
Ch th Thit lp : 8 bit, 1 dng, 5x7 im Thit lp : 8 bit, 2 dng, 5x7 im Thit lp : 4 bit, 1 dng, 5x7 im Thit lp : 4 bit, 2 dng, 5x7 im Tt hin th, tt con tr Bt hin th, bt con tr Bt hin th, tt con tr Bt hin th, nhp nhy con tr Dch hin th sang tri Dch hin th sang phi Di chuyn con tr sang tri 1 k t
1 2 3 4 5 6 7 8 9 10 11
33
12
Dich chuyn con tr sang phi 1 k t Xa him th ng thi cng xa ni dung trong DDRAM Thit lp a ch DDRAM hoc v tr con tr hin th Thit lp a ch CGRAM hoc ci t con tr ti vng CGRAM
0x14
20
13
0x01
14
15
.c, Ch giao tip vi LCD16x2. C 2 ch giao tip l ch 8 bit v ch 4 bt. Vi ch 8 bt chng ta cn s dng 8 chn ca vi iu khin( cng 1 PORT) lm 8 chn d liu v phi s dng thm 3 chn ca vi iu khin na lm cc chn iu khin. Nh vy ta cn ti 11 chn ca vi iu khin giao tip vi 1 LCD, mt khc s lng chn ca vi iu khin rt hn ch do vy ch giao tip 8 bt t c s dng trong thc t. Vi ch 4 bt ta ch cn 4 chn ca vi iu khin v 3 chn vi iu khin lm cc chn a tn hiu iu khin ti LCD. Do vy ta ch mt c 7 chn ca vi iu khin giao tip vi LCD. ch ny th khi gi 1byte ti LCD ta phi chia lm hai ln l gi 4bit cao trc sau gi 4bit thp sau.Tuy nhin ch ny s tit kim chn ca vi iu khin giao tip vi LCD do ch ny hin ny c s dng rt rng di. .d, Mt s hm thao tc c bn vi LCD 1. Hm c c bn. Busy Flag (BF): l c ch th trng thi cho LCD. Khi gi 1 lnh hoc d liu ti LCD x l th c ny c bt (BF =1). Qu trnh kt thc c ny c xa v khng (BF = 0). c c c BF th iu kin l chn RS = 0 v chn R/W = 1, bit MSB ca d liu LCD (D7) cha gi tr nhn c ca BF. Khi BF = 1 c ngha l LCD ang bn v s khng nhn bt c lnh no, cn khi BF = 0 cho bit LCD sn sng nhn lnh hoc d liu x l. Khi gi lnh th BF hoc D7 ca LCD s nhn gi tr 1 thng bo LCD ang bn x l, qu trnh kt thc BF = 0. Cc bc sau ch ra qu trnh c c bn.
34
La chn thanh ghi lnh(RS = 0). La chn thao tc c(R/W = 1). Gi tn hiu cho php(E = 0, E =1). c c bn BF(c bit D7). .
Tuy nhin, ta c th ta khng phi c trc tip c bn(BF) m ta c th thay th bng mt on tr LCD x l xong cc lnh m n nhn t thit b iu khin. 2. Ghi lnh ti LCD Qu trnh gi lnh thc hin ging ht nh trong hm khi to c th xy dng hm con vi cc bc sau: Di chuyn d liu(lnh cn gi) ti cng ca LCD. La chn thanh ghi lnh(RS = 0). La chn thao tc ghi(R/W = 0). Gi tn hiu cho php(E = 0, E = 1) i cho LCD x l(ti khi c BF = 0). 3. Ghi d liu ti LCD Gi d liu n gin ch cn la chn thanh ghi d liu, cc cng vic khc hon ton ging vi thao tc gi lnh. c m t bng cc bc sau: Di chuyn d liu(d liu cn ghi) ti cng LCD. La chn thanh ghi d liu(RS = 1). La chn thao tc ghi(R/W = 0). Gi tn hiu cho php(E = 0, E = 1). i cho LCD x l.
Bit th 7 lun lun l 1(D7 = 1), cc bit t 0 ti 7 l a ch ca DDRAM. Nu mun t con tr ti v tr u tin tc dng 1 ct 1, th a ch s phi ghi l 0b10000000 hay 0x80. Vi LCD 2 dng 16 ct, a ch t 0x80 ti 0x8F cho php nhn thy trn dng 1 v t a ch t 0xC0 ti 0xCF nhn thy c trn dng 2, vng cn trng ca DDRAM vn c dng, tuy nhin s khng nhn thy c trn
35
LCD. kim tra iu ny cch n gin l xut 1 chui k t ln hn 16 v dch hin th th nhng k t khng c nhn thy s tr li t pha sau. Cch tnh a ch DDRAM(v tr ca con tr) nh sau: ADD = 128 + (x - 1) + 64(y - 1) Vi y l s hng, y = 1 hoc y = 2. x l s ct, x = 1- 16. VD : Mun di chuyn con tr ti v tr hng 2 ct 3(y = 2, x = 3) th : ADD = 128 + (3-1) +64(2-1) = 194 hay 0xC2.
36
3, Ngn ng C.
Ngn ng vit chng trnh cho vi iu khin AVR thng rt a dng. T nhng ngn ng cp thp nh ASM ti nhng ngn ng cp cao nh basic, pascal, C & C++, ngn ng ha. Khi s dng ngn ng cp thp vit chng trnh gip ta c th hiu r cu trc ca vi iu khin tuy nhin li mt nhiu thi gian khi ta xy dng cc ng ln. Vi ngn ng bc cao c u im l gip ta xy dng cc chng trnh mt cch nhanh chng, rt ngn thi gian xy dng cc ng dng. Trong cc ngn ng bc cao th ngn ng C c s dng rt rng di trong lp trnh cho cc dng vi iu khin ni chung v dng AVR ni ring. Trnh bin dch gip ta dch cc file vit thnh ngn ng my np vo vi iu khin. Hin nay, c rt nhiu trnh bin dch cho vi iu khin AVR, mi trnh dch c th s dng mt hoc nhiu ngn ng vit nh WINavr; Codevision, ICCAVR, MikroC(C); Bacom, AvrFast(basic), Flowcode(ngn ng ha).
37
3.1. C bn v ngn ng C Ngn ng lp trnh C l ngn ng kh mnh v c nhiu ngi s dng. Lp trnh bng ngn ng cp cao nh C gip xy dng cc ng dng nhanh chng v d dng hn. Sau y s gii thiu mt cch c bn nht v cch vit chng trnh cho AVR s dng ngn ng C. Mt chng trnh C cho AVR thng bao gm nhng thn phn c bn nh: ch thch (comments), biu thc (expressions), cu lnh (statements), khi (blocks), cc ton t, cu trc iu khin (flow controls), hm (function). Ch thch (comments): Ch thch l nhng on trong chng trnh dng gii thch hay bnh phm nhng g ta lm trong chng trnh, phn ch thch khng c bin dch v vy n khng c bt k nh hng no dn hot ng ca chng trnh. C hai cch to phn ch thch trong C l ch thch theo tng dng bng cch t u dng ch thch du // v ch thch block bng cch kp on cn ch thch vo gia /**/. Tin x l (preprocessor): l mt tin ch ca ngng ng C, cc preprocessor c trnh bin dch x l trc tt c cc phn khc. Cc preprocessor c bt u bng du #, trong ngn ng C c hai preprocessor c s dng ph bin nht l #include v #define. Preprocessor #include dng ch nh 1 file c nh km trong qu trnh x l, v #define dng nh ngha mt chui thay th hoc 1 macro. Biu thc (expressions): l mt phn ca cc cu lnh, biu thc c th bao gm cc bin, cc ton t, gi hm. Biu thc tr v mt gi tr n. Biu thc khng phi l mt cu lnh hon chnh. Cu lnh (statements): l mt dng lnh hon chnh c th bao gm cc t kha (key words), cc biu thc cc cu lnh khc v c kt thc bng du ;. Khi (blocks): l s kt hp ca nhiu cu lnh cng thc hin mt nhim v no . Khi c kp gia hai du m khi v ng khi . Ton t (operators): l nhng k hiu bo cho trnh bin dch bit nhng nhim v cn thc hin(ton t i s, ton t logic v quan h ). Cu trc iu khin (flow controls): Cc cu trc iu khin cho php chng trnh thc hin ng theo tng ca ngi vit chng trnh. Cc cu trc iu khin thng dng trong lp trnh C: - If (iu kin) cu lnh; Nu iu kin l ng th thc hin cu lnh tip theo sau, cu lnh c th c vit cng dng hay dng sau t kha if. iu kin l mt biu thc bt k c th l s kt hp ca nhiu iu kin thng qua
38
cc ton t quan h AND(&&), OR(||), iu kin c cho l ng khi n khc 0 . Trong trng hp cn thc thi nhiu cu lnh khi mt iu kin no tha mn ta c th t cc cu lnh trong mt khi: If (iu kin) Cu lnh 1; Cu lnh 2; - If (iu kin) cu lnh 1; else cu lnh 2;: Nu iu kin ng th thc hin cu lnh 1, nu khng ng th thc hin cu lnh 2. Vic t else v cc cu lnh trn cng 1 dng hay khc dng khng lm thay i ngha ca cu trc. Nu cn thc hin nhiu cu lnh th cc cu lnh cn c dt trong 1 khi: If (iu kin) Cu lnh 1; Cu lnh 2; Else Cu lnh 1; Cu lnh 2; - Trong trng hp c nhiu kh nng xy ra cho 1 biu thc (hay mt bin) vi mi kh nng li cn thc hin mt cng vic no , ta c th s dng cu trc switch: Switch (biu thc) Case hng _s_1: Cc cu lnh 1; Break; Case hng_s_2: Cc cu lnh 2; Break;
39
Defaul: Cc cu lnh khc; Cu trc switch hot ng theo cch thc sau: u tin chng trnh tnh gi tr ca biu thc sau ln lt em so snh vi cc gi tr hng s t pha sau t kha case. Biu thc c gi tr bng hng s no th thc hin cc cu lnh trong case dn khi tm thy t kha break. C th t bao nhiu case ty . Nu gi tr ca biu thc khng tng ng vi cc hng s th chng trnh thc hin cc cu lnh trong phn defaul: (nu c phn ny). - Cu trc lp While: while (iu kin) cu lnh 1. ngha ca cu trc lp while l thc hin cu lnh 1 (hoc 1 khi cu lnh t trong du ) khi iu kin cn ng. - Cu trc lp for : for (biu thc 1; biu thc 2; biu thc 3) cu lnh. Trong biu thc 1 l biu thc khi to, biu thc 2 l iu kin, biu thc 3 l biu thc thc hin sau. Biu thc 1 c thc hin 1 ln sau chng trnh kim tra iu kin qua biu thc 2, nu iu kin ng cu lnh c thc hin, sau thc hin biu thc 3 ri li quay li kim tra iu kin. C nh vy ti khi iu kin khng cn ng na th chng trnh thot khi vng lp. Ch khi s dng vng lp for l cc biu thc trong cu trc for c th khng c nhng cc du ; th bt buc phi c. Hm (functions): Trong C c rt nhiu hm, mi hm dng thc hin mt chc nng c th. Cc hm trong C thng c thit k nh gn, c nhng hm phc tp ngi dng cn t to ra. Cc t kha (key words): T kha l nhng t quy nh ca ngn ng C nh tn cc kiu d liu (char, int, unsigned int, ); tn cc cu trc iu khin (if, while, for,). Cn ch khng c t tn bin trng vi t kha. Cc kiu d liu thng dng khi lp trnh C cho vi iu khin: Tn kiu d liu Char Unsigned char Signed char Int S byte 1 1 1 2 Khong d liu - 127 n 127 hoc 0 n 255 0 n 255 - 127 n 127 - 32767 n 32767
40
Unsigned int Singed int Short int Unsigned short int Singed short int Long int Unsigned long int Singed long int Long long int Unsigned long long int Signed long long int
2 2 2 2 2 4 4 4 8 8 8
0 n 65353 - 32767 n 32767 - 32767 n 32767 0 n 65353 - 32767 n 32767 - 2147483647 n 2147483647 0 n 4294967295 - 2147483647 n 2147483647 - (2^63 1) n (2^63 1) 0 n (2^64 1 ) - (2^63 1) n (2^63 1)
41
42