You are on page 1of 53

GVHD : PHM QUANG TR

N 1

CHNG I : S LC PHN CNG I. GII THIU V PIC 16F877A 1. GII THIU CHUNG V PIC PIC l vit tt ca Programable Intelligent Computer, do hng General Instrument t tn cho vi iu khin u tin ca h: PIC1650 c thit k dng lm cc thit b ngoi vi cho vi iu khin CPU1600. Vi iu khin ny sau c nghin cu pht trin thm v t hnh thnh nn dng vi iu khin PIC ngy nay. 1.1 S PH BIN CUA VI IU KHIN PIC Trn th trng c rt nhiu h vi iu khin nh 8051, Motorola 68HC, AVR, ARM... Tuy nhin, hin nay PIC ang c s dng rng ri Vit Nam v nhng nguyn nhn sau: - H vi iu khin ny c th tm mua d dng ti th trng Vit Nam. - Gi thnh khng qu t. - C y cc tnh nng ca mt vi iu khin khi hot ng c lp. - L s b sung rt tt v kin thc cng nh v ng dng cho h vi iu khin mang tnh truyn thng: h vi iu khin 8051. - Hin nay ti Vit Nam cng nh trn th gii, PIC c s dng kh rng ri. iu ny to nhiu thun li trong qu trnh tm hiu v pht trin cc ng dng - S h tr ca nh sn xut v trnh bin dch, cc cng c lp trnh, np chng trnh t n gin n phc tp - Cc tnh nng a dng ca vi iu khin PIC khng ngng c pht trin. 1.2 KIN TRC PIC Cu trc phn cng ca mt vi iu khin c thit k theo hai dng kin trc: Kin trc Von-Neumann v kin trc Harvard.

GVHD : PHM QUANG TR

N 1

Hnh 3.1: Kin trc Harvard v kin trc Von-Neuman T chc phn cng ca PIC c thit k theo kin trc Harvard. im khc bit gia kin trc Harvard v kin trc Von-Neumann l cu trc b nh d liu v b nh chng trnh. i vi kin trc Von-Neuman, b nh d liu v b nh chng trnh nm chung trong mt b nh, do trong cng mt thi im CPU ch tng tc vi b nh d liu hoc b nh chng trnh. Nh vy c th ni kin trc Von-Neumann khng thch hp vi cu trc ca mt vi iu khin. i vi kin trc Harvard, b nh d liu v b nh chng trnh tch ra thnh hai b nh ring bit. Do trong cng mt thi im CPU c th tng tc vi c hai b nh, nh vy tc x l ca vi iu khin c ci thin ng k. Mt im cn ch na l tp lnh trong kin trc Harvard c th c ti u ty theo yu cu kin trc ca vi iu khin m khng ph thuc vo cu trc d liu. V d, i vi vi iu khin dng 16Fxxx, di lnh lun l 14 bit (trong khi d liu c t chc thnh tng byte), cn i vi kin trc Von-Neumann, di lnh lun l bi s ca 1 byte (do d liu c t chc thnh tng byte). iu ny c ngha tp lnh ca vi iu khin thuc cu trc Harvard s t lnh hn, ngn hn, n gin hn p ng yu cu m ha lnh bng mt s lng bit nht nh. Vi iu khin c t chc theo kin trc Harvard cn c gi l vi iu khin RISC (Reduced Instruction Set Computer) hay vi iu khin c tp lnh rt gn. Vi iu khin c thit k theo kin trc Von-Neuman cn c gi l vi iu khin CISC (Complex Instruction Set Computer) hay vi iu khin c tp lnh phc tp v m lnh ca n khng phi l mt s c nh m lun l bi s ca 8 bit (1 byte). 1.3 PIPELINING y chnh l c ch x l lnh ca cc 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 trnh nh sau: 1. MOVLW 55h 2. MOVWF PORTB
2

GVHD : PHM QUANG TR

N 1

3. CALL

SUB_1

4. BSFPORTA,BIT3 5. instruction @ address SUB_1 y ta ch bn n qui trnh vi iu khin x l on chng trnh trn thng qua tng chu k lnh. Qu trnh trn s c thc thi nh sau:

TCY0: c lnh 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 khng phi l lnh s c thc thi theo qui trnh thc thi ca chng trnh (lnh tip theo c thc thi phi l lnh u tin ti label SUB_1) nn chu k thc thi lnh ny ch c dng c lnh u tin ti label SUB_1. Nh vy c th xem lnh 3 cn 2 chu k xung clock thc thi. TCY5: thc thi lnh u tin ca SUB_1 v c lnh tip theo ca SUB_1. Qu trnh ny c thc hin tng t cho cc lnh tip theo ca chng trnh. Thng 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 trnh by trn, mi lnh xem nh ch c thc thi trong mt chu k lnh. i vi cc lnh m qu trnh thc thi n lm 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 xc nh ng v tr lnh trong thanh ghi PC, mi lnh ch cn mt chu k lnh thc thi xong. 1.4 CC DNG PIC V CCH LA CHON PIC * Cc k hiu ca vi iu khin PIC
3

GVHD : PHM QUANG TR

N 1

- PIC12xxxx: di lnh 12 bit - PIC16xxxx: di lnh 14 bit - PIC18xxxx: di lnh 16 bit - C: PIC c b nh EPROM (ch c 16C84 l EEPROM) - F: PIC c b nh flash - LF: PIC c b nh flash hot ng in p thp LV: tng t nh LF, y l k hiu c. Bn cnh mt s vi iu khin c k hiu xxFxxx l EEPROM, nu c thm ch A cui l flash (v d PIC16F877 l EEPROM, cn PIC16F877A l flash).Ngoi ra cn c thm mt dng vi iu khin PIC mi l dsPIC. Vit Nam ph bin nht l cc h vi iu khin PIC do hng Microchip sn xut. *Cch la chn PIC Trc ht cn ch n s chn ca vi iu khin cn thit cho ng dng. C nhiu vi iu khin PIC vi s lng chn khc nhau, thm ch c vi iu khin ch c 8 chn, ngoi ra cn c cc vi iu khin 28, 40, 44 chn. Cn chn vi iu khin PIC c b nh flash c th np xa chng trnh c nhiu ln hn. Tip theo cn ch n cc khi chc nng c tch hp sn trong vi iu khin, cc chun giao tip bn trong. Sau cng cn ch n b nh chng trnh m vi iu khin cho php. Ngoi ra mi thng tin v cch la chn vi iu khin PIC c th c tm thy trong cun sch Select PIC guide do nh sn xut Microchip cung cp. 1.5 NGN NG LP TRNH PIC Ngn ng lp trnh cho PIC rt a dng. Ngn ng lp trnh cp thp c MPLAB (c cung cp min ph bi nh sn xut Microchip), cc ngn ng lp trnh cp cao hn bao gm C, Basic, Pascal, Ngoi ra cn c mt s ngn ng lp trnh c pht trin dnh ring cho PIC nh PICBasic, MikroBasic 2.PIC16F877A HINH DANG VA S CHN

GVHD : PHM QUANG TR

N 1

Hnh 3.2: Vi iu khin PIC16F877A/PIC16F874A v cc dng s chn 2.1 MT VI THNG S V PIC 16F877A y l vi iu khin thuc h PIC16Fxxx vi tp lnh gm 35 lnh c di 14 bit. Mi lnh u c thc thi trong mt chu k xung clock. Tc hot ng ti a cho php l 20 MHz vi mt chu k lnh l 200ns. B nh chng trnh 8Kx14 bit, b nh d liu 368 byte RAM v b nh d liu EEPROM vi dung lng 256 byte. S PORT I/O l 5 vi 33 pin I/O. Cc c tnh ngoi vi bao gm cc khi chc nng sau: - Timer0: b m 8 bit vi b chia tn s 8 bit. - Timer1: b m 16 bit vi b chia tn s, c th thc hin chc nng m da vo xung clock ngoi vi ngay khi vi iu khin hot ng ch sleep. - Timer2: b m 8 bit vi b chia tn s, b postcaler. - Hai b Capture/so snh/iu ch rng xung. - Cc chun giao tip ni tip SSP (Synchronous Serial Port), SPI v I2C. - Chun giao tip ni tip USART vi 9 bit a ch. - Cng giao tip song song PSP (Parallel Slave Port) vi cc chn iu khin RD, WR, CS bn ngoi. Cc c tnh Analog: - 8 knh chuyn i ADC 10 bit. - Hai b so snh. Bn cnh l mt vi c tnh khc ca vi iu khin nh:
5

GVHD : PHM QUANG TR

N 1

- B nh flash vi kh nng ghi xa c 100.000 ln. - B nh EEPROM vi kh nng ghi xa c 1.000.000 ln. - D liu b nh EEPROM c th lu tr trn 40 nm. - Kh nng t np chng trnh vi s iu khin ca phn mm. - Np c chng trnh ngay trn mch in ICSP (In Circuit Serial Programming) thng qua 2 chn. - Watchdog Timer vi b dao ng trong. - Chc nng bo mt m chng trnh. - Ch Sleep. - C th hot ng vi nhiu dng Oscillator khc nhau. 2.2 S KHI CUA PIC16F877A

GVHD : PHM QUANG TR

N 1

Hnh 3.3: S khi vi iu khin PIC16F877A. 2.3 T CHC B NH Cu trc b nh ca vi iu khin PIC16F877A bao gm b nh chng trnh (Program memory) v b nh d liu (Data Memory). * B nh chng trnh B nh chng trnh ca vi iu khin PIC16F877A l b nh flash, dung lng b nh 8K word (1 word = 14 bit) v c phn thnh nhiu trang (t page0 n page 3) . Nh vy b nh chng trnh c kh nng cha c 8*1024 = 8192 lnh (v mt lnh sau khi m ha s c dung lng 1 word (14 bit). Khi vi iu khin c reset, b m chng trnh s ch n a ch 0000h (Reset vector). Khi c ngt xy ra, b m chng trnh s ch n a ch 0004h (Interrupt vector). B nh chng trnh khng bao gm b nh stack v khng c a ch ha bi b m chng trnh. * B nh d liu B nh d liu ca PIC l b nh EEPROM c chia ra lm nhiu bank. i vi PIC16F877A b nh d liu c chia ra lm 4 bank. Mi bank c dung lng 128 byte, bao gm cc thanh ghi c chc nng c bit SFG (Special Function Register) nm cc vng a ch thp v cc thanh ghi mc ch chung GPR (General Purpose Register) nm vng a ch cn li trong bank. Cc thanh ghi SFR thng xuyn c s dng (v d nh thanh ghi STATUS) s c t tt c cc bank ca b nh d liu gip thun tin trong qu trnh truy xut v lm gim bt lnh ca chng trnh. S c th ca b nh d liu PIC16F877A nh sau:

GVHD : PHM QUANG TR

N 1

Hinh 3.4: S b nh d liu cua PIC16F877A

** THANH GHI CHC NNG C BIT SFR:


8

GVHD : PHM QUANG TR

N 1

y l cc thanh ghi c s dng bi CPU hoc c dng thit lp v iu khin cc khi chc nng c tch hp bn trong vi iu khin. C th phn thanh ghi SFR lm hai lai: thanh ghi SFR lin quan n cc chc nng bn trong (CPU) v thanh ghi SRF dng thit lp v iu khin cc khi chc nng bn ngoi (v d nh ADC, PWM ). Thanh ghi STATUS (03h, 83h, 103h, 183h):thanh ghi cha kt qu thc hin php ton ca khi ALU, trng thi reset v cc bit chn bank cn truy xut trong b nh d liu.

Thanh ghi OPTION_REG (81h, 181h): thanh ghi ny cho php c v ghi, cho php iu khin chc nng pull-up ca cc chn trong PORTB, xc lp cc tham s v xung tc ng, cnh tc ng ca ngt ngoi vi v b m Timer0.

Thanh ghi INTCON (0Bh, 8Bh,10Bh, 18Bh):thanh ghi cho php c v ghi, cha cc bit iu khin v cc bit c hiu khi timer0 b trn, ngt ngoi vi RB0/INT v ngt interrputon- change ti cc chn ca PORTB.

Thanh ghi PIE1 (8Ch): cha cc bit iu khin chi tit cc ngt ca cc khi chc nng ngoi vi.

Thanh ghi PIR1 (0Ch) cha c ngt ca cc khi chc nng ngoi vi, cc ngt ny c cho php bi cc bit iu khin cha trong thanh ghi PIE1.

Thanh ghi PIE2 (8Dh): cha cc bit iu khin cc ngt ca cc khi chc nng CCP2, SSP bus, ngt ca b so snh v ngt ghi vo b nh EEPROM.
9

GVHD : PHM QUANG TR

N 1

Thanh ghi PIR2 (0Dh): cha cc c ngt ca cc khi chc nng ngoi vi, cc ngt ny c cho php bi cc bit iu khin cha trong thanh ghi PIE2.

Thanh ghi PCON (8Eh): cha cc c hiu cho bit trng thi cc ch reset ca vi iu khin.

** THANH GHI MC CH CHUNG GPR: Cc thanh ghi ny c th c truy xut trc tip hoc gin tip thng qua thanh ghi FSG (File Select Register). y l cc thanh ghi d liu thng thng, ngi s dng c th ty theo mc ch chng trnh m c th dng cc thanh ghi ny cha cc bin s, hng s, kt qu hoc cc tham s phc v cho chng trnh. * Stack Stack khng nm trong b nh chng trnh hay b nh d liu m l mt vng nh c bit khng cho php c hay ghi. Khi lnh CALL c thc hin hay khi mt ngt xy ra lm chng trnh b r nhnh, gi tr ca b m chng trnh PC t ng c vi iu khin ct vo trong stack. Khi mt trong cc lnh RETURN, RETLW hat RETFIE c thc thi, gi tr PC s t ng c ly ra t trong stack, vi iu khin s thc hin tip chng trnh theo ng qui trnh nh trc. B nh Stack trong vi iu khin PIC h 16F87xA c kh nng cha c 8 a ch v hot ng theo c ch xoay vng. Ngha l gi tr ct vo b nh Stack ln th 9 s ghi ln gi tr ct vo Stack ln u tin v gi tr ct vo b nh Stack ln th 10 s ghi ln gi tr ct vo Stack ln th 2. Cn ch l khng c c hiu no cho bit trng thi stack, do ta khng bit c khi no stack trn. Bn cnh tp lnh ca vi iu khin dng PIC cng khng

10

GVHD : PHM QUANG TR

N 1

c lnh POP hay PUSH, cc thao tc vi b nh stack s hon ton c iu khin bi CPU. 2.4 CAC CNG XUT NHP CUA PIC16F877A Cng xut nhp (I/O port) chnh l phng tin m vi iu khin dng tng tc vi th gii bn ngoi. Bn cnh , do vi iu khin c tch hp sn bn trong cc c tnh giao tip ngoi vi nn bn cnh chc nng l cng xut nhp thng thng, mt s chn xut nhp cn c thm cc chc nng khc th hin s tc ng ca cc c tnh ngoi vi nu trn i vi th gii bn ngoi. Vi iu khin PIC16F877A c 5 cng xut nhp, bao gm PORTA, PORTB, PORTC, PORTD v PORTE. *PORT A: PORTA (RPA) bao gm 6 I/O pin. y l cc chn hai chiu (bidirectional pin), ngha l c th xut v nhp c. Chc nng I/O ny c iu khin bi thanh ghi TRISA (a ch 85h). Mun xc lp chc nng ca mt chn trong PORTA l input, ta set bit iu khin tng ng vi chn trong thanh ghi TRISA v ngc li. Chc nng I/O hon ton tng t i vi cc PORT cn li. Bn cnh PORTA cn l ng ra ca b ADC, b so snh, ng vo analog ng vo xung clock ca Timer0 v ng vo ca b giao tip MSSP (Master Synchronous Serial Port). Cc thanh ghi SFR lin quan n PORTA bao gm: - PORTA (a ch 05h) : cha gi tr cc pin trong PORTA. - TRISA (a ch 85h) : iu khin xut nhp. - CMCON (a ch 9Ch) : thanh ghi iu khin b so snh. - CVRCON (a ch 9Dh) : thanh ghi iu khin b so snh in p. - ADCON1 (a ch 9Fh) : thanh ghi iu khin b ADC. * PORT B: PORTB (RPB) gm 8 pin I/O. Thanh ghi iu khin xut nhp tng ng l TRISB. Bn cnh mt s chn ca PORTB cn c s dng trong qu trnh np chng trnh cho vi iu khin vi cc ch np khc nhau. PORTB cn lin quan n ngt ngoi vi v b Timer0. PORTB cn c tch hp chc nng in tr ko ln c iu khin bi chng trnh. Cc thanh ghi SFR lin quan n PORTB bao gm:
11

GVHD : PHM QUANG TR

N 1

- PORTB (a ch 06h,106h) : cha gi tr cc pin trong PORTB - TRISB (a ch 86h,186h) : iu khin xut nhp - OPTION_REG (a ch 81h,181h) : iu khin ngt ngoi vi v b Timer0. * PORT C: PORTC (RPC) gm 8 pin I/O. Thanh ghi iu khin xut nhp tng ng l TRISC. Bn cnh PORTC cn cha cc chn chc nng ca b so snh, b Timer1, b PWM v cc chun giao tip ni tip I2C, SPI, SSP, USART. Cc thanh ghi iu khin lin quan n PORTC: - PORTC (a ch 07h) : cha gi tr cc pin trong PORTC - TRISC (a ch 87h) : iu khin xut nhp. * PORT D: PORTD (RPD) gm 8 chn I/O, thanh ghi iu khin xut nhp tng ng l TRISD. PORTD cn l cng xut d liu ca chun giao tip PSP (Parallel Slave Port). Cc thanh ghi lin quan n PORTD bao gm: - Thanh ghi PORTD : cha gi tr cc pin trong PORTD. - Thanh ghi TRISD : iu khin xut nhp. * PORT E: PORTE (RPE) gm 3 chn I/O. Thanh ghi iu khin xut nhp tng ng l TRISE. Cc chn ca PORTE c ng vo analog. Bn cnh PORTE cn l cc chn iu khin ca chun giao tip PSP. Cc thanh ghi lin quan n PORTE bao gm: - PORTE : cha gi tr cc chn trong PORTE. - TRISE : iu khin xut nhp v xc lp cc thng s cho chun giao tip PSP. - ADCON1 : thanh ghi iu khin khi ADC. 2.5 TIMER 0 y l mt trong ba b m hoc b nh thi ca vi iu khin PIC16F877A. Timer0 l b m 8 bit c kt ni vi b chia tn s (prescaler) 8 bit. Cu trc ca Timer0 cho php ta la chn xung clock tc ng v cnh tch cc ca xung clock. Ngt Timer0 s xut hin khi Timer0 b trn.
12

GVHD : PHM QUANG TR

N 1

Hinh 3.5: S khi ca timer 0 Mun Timer0 hot ng ch Timer ta clear bit TOSC (OPTION_REG<5>), khi gi tr thanh ghi TMR0 s tng theo tng chu k xung ng h (tn s vo Timer0 bng tn s oscillator). Khi gi tr thanh ghi TMR0 t FFh tr v 00h, ngt Timer0 s xut hin. Thanh ghi TMR0 cho php ghi v xa c gip ta n nh thi im ngt Timer0 xut hin mt cch linh ng. Mun Timer0 hot ng ch counter ta set bit TOSC (OPTION_REG<5>). Khi xung tc ng ln b m c ly t chn RA4/TOCK1. Bit TOSE (OPTION_REG<4>) cho php la chn cnh tc ng vo bt m. Cnh tc ng s l cnh ln nu TOSE=0 v cnh tc ng s l cnh xung nu TOSE=1. Khi thanh ghi TMR0 b trn, bit TMR0IF (INTCON<2>) s c set. y chnh l c ngt ca Timer0. C ngt ny phi c xa bng chng trnh trc khi b m bt u thc hin li qu trnh m. Ngt Timer0 khng th nh thc vi iu khin t ch sleep. Cc lnh tc ng ln gi tr thanh ghi TMR0 s xa ch hot ng ca prescaler.

13

GVHD : PHM QUANG TR

N 1

Khi i tng tc ng l Timer0, tc ng ln gi tr thanh ghi TMR0 s xa prescaler nhng khng lm thay i i tng tc ng ca prescaler. Khi i tng tc ng l WDT, lnh CLRWDT s xa prescaler, ng thi prescaler s ngng tc v h tr cho WDT. Cc thanh ghi iu khin lin quan n Timer0 bao gm: - TMR0 (a ch 01h, 101h) : cha gi tr m ca Timer0. - INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ngt hot ng (GIE v PEIE). - OPTION_REG (a ch 81h, 181h): iu khin prescaler. 2.6 TIMER 1 Timer1 l b nh thi 16 bit, gi tr ca Timer1 s c lu trong hai thanh ghi (TMR1H:TMR1L). C ngt ca Timer1 l bit TMR1IF (PIR1<0>). Bit iu khin ca Timer1 s l TMR1IE (PIE<0>). Tng t nh Timer0, Timer1 cng c hai ch hot ng: ch nh thi (timer) vi xung kch l xung clock ca oscillator (tn s ca timer bng tn s ca oscillator) v ch m (counter) vi xung kch l xung phn nh cc s kin cn m ly t bn ngoi thng qua chn RC0/T1OSO/T1CKI (cnh tc ng l cnh ln). Vic la chn xung tc ng (tng ng vi vic la chn ch hot ng l timer hay counter) c iu khin bi bit TMR1CS (T1CON<1>). Sau y l s khi ca Timer1:

Hinh 3.6: S khi cua Timer1 Cc thanh ghi lin quan n Timer1 bao gm:

14

GVHD : PHM QUANG TR

N 1

- INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ngt hot ng (GIE v PEIE). - PIR1 (a ch 0Ch): cha c ngt Timer1 (TMR1IF). - PIE1( a ch 8Ch): cho php ngt Timer1 (TMR1IE). - TMR1L (a ch 0Eh): cha gi tr 8 bit thp ca b m Timer1. - TMR1H (a ch 0Eh): cha gi tr 8 bit cao ca b m Timer1. - T1CON (a ch 10h): xc lp cc thng s cho Timer1. 2.7 TIMER 2 Timer2 l b nh thi 8 bit v c h tr bi hai b chia tn s prescaler v postscaler. Thanh ghi cha gi tr m ca Timer2 l TMR2. Bit cho php ngt Timer2 tc ng l TMR2ON (T2CON<2>). C ngt ca Timer2 l bit TMR2IF (PIR1<1>). Xung ng vo (tn s bng tn s oscillator) c a qua b chia tn s prescaler 4 bit (vi cc t s chia tn s l 1:1, 1:4 hoc 1:16 v c iu khin bi cc bit T2CKPS1:T2CKPS0 (T2CON<1:0>)).

Hinh 3.7: S khi ca Timer 2 Ngoi ra ng ra ca Timer2 cn c kt ni vi khi SSP, do Timer2 cn ng vai tr to ra xung clock ng b cho khi giao tip SSP. Cc thanh ghi lin quan n Timer2 bao gm: - INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php ton b cc ngt (GIE v PEIE). - PIR1 (a ch 0Ch): cha c ngt Timer2 (TMR2IF). - PIE1 (a ch 8Ch): cha bit iu khin Timer2 (TMR2IE). - TMR2 (a ch 11h): cha gi tr m ca Timer2.
15

GVHD : PHM QUANG TR

N 1

- T2CON (a ch 12h): xc lp cc thng s cho Timer2. - PR2 (a ch 92h): thanh ghi h tr cho Timer2. Timer0 v Timer2 l b m 8 bit (gi tr m ti a l FFh), trong khi Timer1 l b m 16 bit (gi tr m ti a l FFFFh). Timer0, Timer1 v Timer2 u c hai ch hot ng l timer v counter. Xung clock c tn s bng tn s ca oscillator. Xung tc ng ln Timer0 c h tr bi prescaler v c th c thit lp nhiu ch khc nhau (tn s tc ng, cnh tc ng) trong khi cc thng s ca xung tc ng ln Timer1 l c nh. Timer2 c h tr bi hai b chia tn s prescaler v postcaler c lp, tuy nhin cnh tc ng vn c c nh l cnh ln. Timer1 c quan h vi khi CCP, trong khi Timer2 c kt ni vi khi SSP. 2.8 ADC ADC (Analog to Digital Converter) l b chuyn i tn hiu gia hai dng tng t v s. PIC16F877A c 8 ng vo analog (RA4:RA0 v RE2:RE0). Hiu in th chun VREF c th c la chn l VDD, VSS hay hiu in th chun c xc lp trn hai chn RA2 v RA3. Kt qu chuyn i t tn tiu tng t sang tn hiu s l 10 bit s tng ng v c lu trong hai thanh ghi ADRESH:ADRESL. Cc thanh ghi lin quan n b chuyn i ADC bao gm: - INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php cc ngt (cc bit GIE, PEIE). - PIR1 (a ch 0Ch): cha c ngt AD (bit ADIF). - PIE1 (a ch 8Ch): cha bit iu khin AD (ADIE). - ADRESH (a ch 1Eh) v ADRESL (a ch 9Eh): cc thanh ghi cha kt qu chuyn i AD. - ADCON0 (a ch 1Fh) v ADCON1 (a ch 9Fh): xc lp cc thng s cho b chuyn i AD. - PORTA (a ch 05h) v TRISA (a ch 85h): lin quan n cc ng vo analog PORTA. - PORTE (a ch 09h) v TRISE (a ch 89h): lin quan n cc ng vo analog PORTE. 2.9 GIAO TIP NI TIP
16

GVHD : PHM QUANG TR

N 1

USART (Universal Synchronous Asynchronous Receiver Transmitter) l mt trong hai chun giao tip ni tip.USART cn c gi l giao din giao tip ni tip SCI (Serial Communication Interface). C th s dng giao din ny cho cc giao tip vi cc thit b ngoi vi, vi cc vi iu khin khc hay vi my tnh. Cc dng ca giao din USART ngoi vi bao gm: - Bt ng b (Asynchronous). - ng b_ Master mode. - ng b_ Slave mode. PIC16F877A c tch hp sn b to tc baud BRG (Baud Rate Genetator) 8 bit dng cho giao din USART. BRG thc cht l mt b m c th c s dng cho c hai dng ng b v bt ng b v c iu khin bi thanh ghi PSBRG. dng bt ng b, BRG cn c iu khin bi bit BRGH ( TXSTA<2>). dng ng b tc ng ca bit BRGH c b qua. Tc baud do BRG to ra c tnh theo cng thc sau:

Trong X l gi tr ca thanh ghi RSBRG ( X l s nguyn v 0<X<255). Cc thanh ghi lin quan n BRG bao gm: - TXSTA (a ch 98h): chn ch ng b hay bt ng b ( bit SYNC) v chn mc tc baud (bit BRGH). - RCSTA (a ch 18h): cho php hot ng cng ni tip (bit SPEN). - RSBRG (a ch 99h): quyt nh tc baud. * USART bt ng b: ch truyn ny USART hot ng theo chun NRZ (None-Return-to-Zero), ngha l cc bit truyn i s bao gm 1 bit Start, 8 hay 9 bit d liu (thng thng l 8 bit) v 1 bit Stop. Bit LSB s c truyn i trc. Cc khi truyn v nhn data c lp vi nhau s dng chung tn s tng ng vi tc baud cho qu trnh dch d liu (tc baud gp 16 hay 64 ln tc dch d liu ty theo gi tr ca bit BRGH), v m bo tnh hiu qu ca d liu th hai khi truyn v nhn phi dng chung mt nh dng d liu.
17

GVHD : PHM QUANG TR

N 1

Cc thanh ghi lin quan n qu trnh truyn d liu bng giao din USART bt ng b: - Thanh ghi INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php tt c cc ngt. - Thanh ghi PIR1 (a ch 0Ch): cha c hiu TXIF. - Thanh ghi PIE1 (a ch 8Ch): cha bit cho php ngt truyn TXIE. - Thanh ghi RCSTA (a ch 18h): cha bit cho php cng truyn d liu (hai pin RC6/TX/CK v RC7/RX/DT). - Thanh ghi TXREG (a ch 19h): thanh ghi cha d liu cn truyn. - Thanh ghi TXSTA (a ch 98h): xc lp cc thng s cho giao din. - Thanh ghi SPBRG (a ch 99h): quyt nh tc baud. * USART ng b: Giao din USART ng b c kch hot bng cch set bit SYNC. Cng giao tip ni tip vn l hai chn RC7/RX/DT, RC6/TX/CK v c cho php bng cch set bit SPEN. USART cho php hai ch truyn nhn d liu l Master mode v Slave mode. Master mode c kch hot bng cch set bit CSRC (TXSTA<7>), Slave mode c kch hot bng cch clear bit CSRC. im khc bit duy nht gia hai ch ny l Master mode s ly xung clock ng b t b tao xung baud BRG cn Slave mode ly xung clock ng b t bn ngoi qua chn RC6/TX/CK. iu ny cho php Slave mode hot ng ngay c khi vi iu khin ang ch sleep. Cc thanh ghi lin quan n qu trnh truyn d liu bng giao din USART ng b Master mode: - Thanh ghi INTCON (a ch 0Bh, 8Bh, 10Bh, 18Bh): cho php tt c cc ngt. - Thanh ghi PIR1 (a ch 0Ch): cha c hiu TXIF. - Thanh ghi PIE1 (a ch 8Ch): cha bit cho php ngt truyn TXIE. - Thanh ghi RCSTA (a ch 18h): cha bit cho php cng truyn d liu (hai pin RC6/TX/CK v RC7/RX/DT). - Thanh ghi TXREG (a ch 19h): thanh ghi cha d liu cn truyn. - Thanh ghi TXSTA (a ch 98h): xc lp cc thng s cho giao din. - Thanh ghi SPBRG (a ch 99h): quyt nh tc baud. 2.10 NGT
18

GVHD : PHM QUANG TR

N 1

PIC16F877A c n 15 ngun to ra hot ng ngt c iu khin bi thanh ghi INTCON (bit GIE). Bn cnh mi ngt cn c mt bit iu khin v c ngt ring. Cc c ngt vn c set bnh thng khi tha mn iu kin ngt xy ra bt chp trng thi ca bit GIE, tuy nhin hot ng ngt vn ph thuc vo bit GIE v cc bit iu khin khc. Bit iu khin ngt RB0/INT v TMR0 nm trong thanh ghi INTCON, thanh ghi ny cn cha bit cho php cc ngt ngoi vi PEIE. Bit iu khin cc ngt nm trong thanh ghi PIE1 v PIE2. C ngt ca cc ngt nm trong thanh ghi PIR1 v PIR2. Trong mt thi im ch c mt chng trnh ngt c thc thi, chng trnh ngt c kt thc bng lnh RETFIE. Khi chng trnh ngt c thc thi, bit GIE t ng c xa, a ch lnh tip theo ca chng trnh chnh c ct vo trong b nh Stack v b m chng trnh s ch n a ch 0004h. Lnh RETFIE c dng thot khi chng trnh ngt v quay tr v chng trnh chnh, ng thi bit GIE cng s c set cho php cc ngt hot ng tr li. Cc c hiu c dng kim tra ngt no ang xy ra v phi c xa bng chng trnh trc khi cho php ngt tip tc hot ng tr li ta c th pht hin c thi im tip theo m ngt xy ra. i vi cc ngt ngoi vi nh ngt t chn INT hay ngt t s thay i trng thi cc pin ca PORTB (PORTB Interrupt on change), vic xc nh ngt no xy ra cn 3 hoc 4 chu k lnh ty thuc vo thi im xy ra ngt. Cn ch l trong qu trnh thc thi ngt, ch c gi tr ca b m chng trnh c ct vo trong Stack, trong khi mt s thanh ghi quan trng s khng c ct v c th b thay i gi tr trong qu trnh thc thi chng trnh ngt. iu ny nn c x l bng chng trnh trnh hin tng trn xy ra.

19

GVHD : PHM QUANG TR

N 1

Hinh 3.9: S logic ca tt c cc ngt trong vi iu khin PIC16F877A. II. LED MA TRN 1.Gii thiu led ma trn

Hnh 1.7: Hnh dng thc t ca led ma trn. Led ma trn bao gm cc led pht quang c b tr thnh hng v ct trong mt v. Cc tn hiu iu khin ct c ni vi Anode ca tt c cc led trn cng mt ct. Cc tn hiu iu khin hng cng c ni vi Cathode ca tt c cc led trn cng mt hng nh hnh v sau:

20

GVHD : PHM QUANG TR

N 1

single color type

Dual color type Hnh 1.8: Kt cu bn trong ca led ma trn Khi c mt tn hiu iu khin ct v hng, cc chn Anode ca cc led trn ct tng ng c cp in p cao, ng thi cc chn Cathode ca cc led trn hng tng ng c cp in p thp. Tuy nhin, lc ch c mt led sng, v n c ng thi in th cao trn Anode v in th thp trn Cathode. Nh vy, khi c mt tn hiu iu khin hng v ct th ti mt thi im ch c duy nht mt led ti ch gp nhau ca hng v ct l sng. Cc bng quang bo vi s lng led ln hn cng c kt ni theo cu trc nh vy. Trong trng hp ta mun cho sng ng thi mt s led ri rc trn ma trn hin th mt k t no , nu trong hin th tnh ta phi cp p cao cho Anode v p thp cho Cathode cho cc led tng ng m ta mun sng. Nhng trong khi mt s led ta khng mong mun cng s sng, min l n nm ti v tr gp nhau ca cc ct v hng m ta cp ngun. V vy trong iu khin led ma trn ta khng th s dng phng php hin th tnh m phi s dng phng php qut (hin th ng), c ngha l ta phi tin hnh cp tn hiu iu khin
21

GVHD : PHM QUANG TR

N 1

theo dng xung qut trn cc hng v ct c led cn hin th. m bo cho mt nhn thy cc led khng b nhy, th tn s qut nh nht cho mi chu k l khong 20Hz(50ms). Trong lp trnh iu khin led ma trn bng vi x l ta cng phi s dng phng php qut nh vy. Ma trn led c th l loi hin th c mt mu hoc hin th c 2 mu trn mt im, khi led c s chn ra tng ng: i vi ma trn led 8x8 hin th mt mu th s chn ra l 16, trong 8 chn dng iu khin hng v 8 chn cn li dng iu khin ct. i vi loi 8x8 c 2 mu th s chn ra ca led l 24 chn, trong c 8 chn dng iu khin ct (hoc hng) chung cho c 2 mu, 16 chn cn li th 8 chn dng iu khin hng (hoc ct) mu th nht, 8 chn cn li iu khin mu th 2. 2 .CC PHNG PHP HIN TH CHO BNG QUANG BO 2.1 PHNG PHP CHT Hin th led ma trn bng phng php cht gip cho ngi lp trnh thay i cch thc qut v hin th mt cch linh hot v nhanh chng.

2 3 4 5 6 7 8 9 11 1

D D D D D D D D

0 1 2 3 4 5 6 7

Q Q Q Q Q Q Q Q

0 1 2 3 4 5 6 7

19 18 17 16 15 14 13 12 12 9 6 3 13 16 19 22 m a t r ix _ 3 m a u hd8 hd7 hd6 hd5 hd4 hd3 hd2 hd1 24 21 18 15 1 4 7 10 12 13 14 15 16 17 18 19 7 6 5 4 3 2 1 0 Q Q Q Q Q Q Q Q D M 74LS573 OE LE 7 6 5 4 3 2 1 0 Q Q Q Q Q Q Q Q D M 74LS573 LE OE 11 1 0 1 2 3 4 5 6 7 2 3 4 5 6 7 8 9 D D D D D D D D 1 11 9 8 7 6 5 4 3 2 D D D D D D D D 0 1 2 3 4 5 6 7 19 18 17 16 15 14 13 12 U7 23 20 17 14 2 5 8 11 hx8 hx7 hx6 hx5 hx4 hx3 hx2 hx1 c1 c2 c3 c4 c5 c6 c7 c8

LE OE

D M 74LS573

Hnh 4.1: Giao tip led ma trn dng phng php cht.
22

GVHD : PHM QUANG TR

N 1

A. CHT HNG Cht hng l phng php trong mt khong thi gian xc nh ch c mt ct c tch cc, d liu c a ra 8 hng ri cht li, d liu c hin th trn mn hnh led ma trn. B. CHT CT Cht ct l phng php trong mt khong thi gian xc nh ch c mt hng c tch cc, d liu c a ra 8 ct ri cht li, d liu c hin th trn mn hnh led ma trn. * u im: - M rng s hng, s ct ca bng quang bo. - D liu c truyn i nhanh. - Chuyn i cch qut hng, ct mt cch linh hot. * Nhc im: - To bng m kh khn. - Kh khn trong vic lp trnh xut d liu ra. 2.2 PHNG PHP HIN TH S DNG THANH GHI DCH A. QUT CT - Gii thiu chung v phng php qut ct. Phng php qut ct l phng php m trong mt khong thi gian xc nh ch cho mt ct c tch cc hin th trong khi cc ct khc u tt, cc ct c qut (tch cc) tun t cc khong thi gian k tip nhau c lp li nhiu ln vi tc > 24 hnh/1s s cho ta mt hnh nh lin tc cn hin th ln trn mn hnh led ma trn. - Qu trnh thc hin qut ct. D liu ca ct th nht c a ra hng sau tch cc ct th nht nh vy d liu ca ct th nht c hin th trn mn hnh led ma trn, tip tc d liu ca ct th hai c a ra hng sau tch cc ct th hai lc ny d liu ca hng th hai c hin th trn man hnh led ma trn, c nh vy cho n d liu ca ct cui cng c a ra hng sau tch cc ct cui cng. C nh th qu trnh trn c lp i lp li > 24ln/1s, n y chng ta quan st c mt hnh nh lin tc hin th trn mn hnh led ma trn.
23

GVHD : PHM QUANG TR

N 1

V d Hin th ch A ln mn hnh Led ma trn (hng c tch cc mc 1, ct c tch cc mc 0).

Hnh 4.4: Hin th ch A trn led ma trn dng phng php qut ct Qu trnh a d liu ra hng v ct c tin hnh ng thi vi cc gi tr theo bng di y: D liu a vo cc hng H8H7H6H5H4H3H2H1 D liu th 11111000 nht D liu th 2 D liu th 3 D liu th 4 D liu th 5 D liu th 6 D liu th 7 D liu th 8 Bang 4.1 Nh vy ton b d liu ca ch A c a ra hin th trn mn hnh Led ma trn. Qu trnh trn c din ra rt nhanh > 24ln/s nn chng ta c cm gic n din ra mt cch ng thi, nh chng ta quan st c trn mn hnh Led ma trnl mt ch A lin tc.
24

Ct c chn tch cc (mc 0) C1 C2 C3 C4 C5 C6 C7 C8

00100100 00100010 00100100 11111000 00000000 00000000 00000000

GVHD : PHM QUANG TR

N 1

Phng php qut ct thch hp cho cc bng quang bo s dng Led ma trnc s lng ct t hn s lng hng, v thi gian sng ca LED khi qut ct ln hn thi gian sng ca LED khi qut hng. Nh vy in p ngun cung cp c s dng trong qut ct nh hn in p ngun cung cp s dng trong qut hng. Trong phng php qut ct vic a d liu ra hng v to bng m l kh d dng cho ngi lp trnh. B. QUT HNG - Gii thiu chung v phng php qut hng. Qut hng l phng php m trong mt khong thi gian xc nh ch cho mt hng c tch cc hin th trong khi cc hng khc u tt, cc hng c qut (tch cc) tun t cc khong thi gian k tip nhau c lp li nhiu ln vi tc > 24hnh /1s s cho ta mt hnh nh lin tc cn hin th ln trn mn hnh led ma trn. - Qu trnh thc hin qut hng:

25

GVHD : PHM QUANG TR

N 1

Hnh 4.5: Qui trnh a d liu ra 8 ct cho led ma trn. Qut hng s dng thanh ghi dch l tng i phc tp cho ngi lp trnh trong vic a d liu ra ct. D liu ln lt c a vo chn Data in ca thanh ghi dch sau tc ng xung clock d liu c dch i. Vic thc hin qut hng c thc hin theo lu giai thut hinh 4.5. D liu ca hng th nht c a ra ct sau tch cc hng th nht, nh vy d liu ca hng th nht c hin th trn mn hnh led ma trn, tip tc d liu ca hng th hai c a ra ct sau tch cc hng th hai lc ny d liu ca hng th hai c hin th trn mn hnh led ma trn, c nh vy cho n d liu ca hng cui cng c a ra ct sau tch cc hng cui cng. C nh th qu trnh trn c lp i lp li > 24ln/1s, n y chng ta quan st c mt hnh nh lin tc hin th trn mn hnh led ma trn.
26

GVHD : PHM QUANG TR

N 1

V d Hin th ch A ln mn hnh Led ma trn (hng c tch cc mc 1, ct c tch cc mc 0).

Hnh 4.6: Hin th ch A trn led ma trn dng phng php qut hng Qu trnh a d liu ra hng v ct c tin hnh ng thi vi cc gi tr theo bng di y: D liu a vo cc ct C8C7C6C5C4C3C2C1 D liu th nht D liu th 2 D liu th 3 D liu th 4 D liu th 5 D liu th 6 D liu th 7 D liu th 8 11111111 11111011 11110101 11101110 11101110 11100000 11101110 11101110 Hng c chn tch cc (mc 1) H1 H2 H3 H4 H5 H6 H7 H8

Bang 4.2 Nh vy ton b d liu ca ch A c a ra hin th trn mn hnh Led ma trn. Qu trnh trn c din ra rt nhanh > 24ln/s nn chng ta c cm gic n din

27

GVHD : PHM QUANG TR

N 1

ra mt cch ng thi, nh m chng ta quan st c trn mn hnh Led ma trn l mt ch A lin tc. Phng php qut hng thch hp cho cc bng quang bo s dng Led ma trn c s lng hng nh hn s lng ct, v thi gian sng ca Led khi qut hng lu hn thi gian sng ca Led khi qut ct. Nh vy in p ngun cung cp c s dng trong qut hng nh hn in p ngun cung cp s dng trong qut ct. Tuy nhin trong phng php qut hng thi vic a d liu ra ct v to bng m l kh khn hn trong phng php qut ct. * u im: - Tit kim ng truyn, hiu qu kinh t. - Tit kim chn PORT. - Truyn d liu i xa hn. - M rng bng ma trn ln mt cch d dng. - Lp trnh d dng trong phng php qut ct. * Nhc im: - Tn thi gian thc hin vic truyn d liu n cc ct. - Chuyn i khng linh hot bng s dng phng php cht. - Lp trnh kh khn hn khi s dng phng php qut hng. 2.3 MCH QUANG BO S DNG TRONG N Do mch quang bo trong n c thit k vi phn gii 8x48 (8 hng, 48 ct) nn chn phng php qut hng m bo cho hnh nh hin th c lin tc v sc nt. III .IC GHI DCH 6B595 IC 6B595 l loi IC tch hp gm nhiu thanh ghi dch c mc ni tip, d liu c a vo ni tip v c ly ra song song qua hai tng xung CK,cht d liu 8 bit, bin i d liu dng ni tip thnh dng d liu song song. IC 6B595 c dng ra ln c th t c 500mA. Dng in tiu th 80uA, dng in ng vo 1uA. Di p hot ng t 2-6v Tn s qut 30Mhz
28

GVHD : PHM QUANG TR

N 1

1. S chn

Hnh 2 s chn 6B595 - Chn 1: NC - Chn 2: ngun - Chn 3: ng vo d liu - Chn 4: ng ra 0 - Chn 5: ng ra 1 - Chn 6: ng ra 2 - Chn 7: ng ra 3 - Chn 8: xa d liu - Chn 9: ng vo cho php - Chn 10: ni mass - Chn 11: ni mass - Chn 12: cht d liu ra - Chn 13: ng vo xung clock - Chn 14: ng ra 4 - Chn 15: ng ra 5
29

GVHD : PHM QUANG TR

N 1

- Chn 16: ng ra 6 - Chn 17: ng ra 7 - Chn 18: ng ra d liu - Chn 19: ni mass - Chn 20: NC 2. Nguyn tc hot ng ca 6B595 u tin a bit cn dch vo chn s 3 l ng vo ni tip. Tip theo cho dch bit bng cch a xung t thp ln cao chn s 4 l chn xung dch. Khi dch 8 bit th cht d liu li bng xung t thp ln cao ti chn s 12 l chn cht d liu. Nu tip tc cho dch d liu th bit vo trc s b trn sang chn s 18.

30

GVHD : PHM QUANG TR

N 1

3. Hot ng ca IC 6B595 thng qua dng sng.

31

GVHD : PHM QUANG TR

N 1

4. Cc thng s ca IC6B595: in p cung cp in p ti a cho mt ng ra (DRAIN) khi s dng in tr treo Dng in ra ti a ch cho 1 ng ra Dng in xung c th cung cp Dng in ra ti a cho tt cc ng ra Thi gian p ng ca cc xung ck vi ng vo Thi gian p ng ca G\ in p ng ra ca SER OUT Gii hn nhit ca IC IV. Kho st transistor A1015: 4.5 5.5 V 50 V 500 mA 1A 150 mA 20ns 150ns 4 4.2 V -40 1250 C

Transistor A1015 l loi transistor PNP c dng in bo ha cao. 1. S chn:

2. Trng thi hot ng :

3. Thng

s ca Transistor

32

GVHD : PHM QUANG TR

N 1

A1015

V. Kho st IC ULN2803 y l IC gm 8 transistor NPN ghp Darlington gn mch in t trong dy ny ca chui l mt b l tng giao tip vi mch in dng s mc logic thp nh: TTL, CMOS hoc PMOS/NMOS

S khi IC ULN2803 ULN2803 c thit k ph hp vi chun TTL Vi ch s k thut ca IC ULN2803: Dng in ng vo khong 25mA

in p ng vo khong 0.5V 30V

Dng ra ti 500 mA/ 50 V m 8 knh ring bit


33

GVHD : PHM QUANG TR

N 1

u ra o.

S cu to 1 knh m dng ca ULN2803

Hnh nh thc t IC ULN2803 VI. GIAO TIP RS-232 1. GII THIU S LC Chun RS-232 ln u tin c gii thiu vo nm 1962 do hip hi k thut in t EIA (Electronics Industries Association Hip hi cng nghip in t) nh l chun giao tip truyn thng gia my tnh v mt thit b ngoi vi (Modem, my v, mouse, my tnh khc, PLC). RS-232A (nm 1963), RS-232B (nm 1965), RS-232C (nm 1969) l cc chun RS-232 c sa i. Cng giao tip RS-232 l giao din ph bin rng ri nht, ging nh cng my in, cng ni tip c s dng rng ri cho mc ch o lng v iu khin. C hai phin bn RS232 c lu hnh trong thi gian tng i di l RS232B v RS232C. Nhng cho n nay th phin bn RS232B c th t c dng cn RS232C hin vn c dng v tn ti v c gi ngn gn l RS232 Cc my tnh thng c 1 hoc 2 cng ni thip theo cun RS232 c gi l cng COM. Chng c ghp ni cho chut, modem, thit b o lngTrn main my tnh
34

GVHD : PHM QUANG TR

N 1

c loi 9 chn hoc loi 25 chn ty vo i my v main ca my tnh. Vic thit k giao tip vi cng RS232 cng tng i d dng, c bit khi chn ch hot ng l khng ng b v tc truyn d liu thp 2. NHNG C IM CN LU TRONG CHUN RS232 -Trong chun RS232 c mc gii hn trn v di (logic 9 v 1) l +-12V. Hin nay ang c c nh tr khng ti trong phm vi t 3000 m- 7000 m -Mc logic 1 c in p nm trong khong -3V n -12V, mc logic 0 t +-3V n 12V -Tc truyn cc i l 100kbps( c th ln hn) -Cc li vo phi c in dung nh hn 2500pF - di ca cp ni gia my tnh v thit b ngoi vi ghp ni qua cng RS232 khng vt qu 15m nu khng s dng modum -Cc gi tr tc truyn d liu chun 57,75,110,750,1200,2400,4800,9600,19200,28800,38400bps 3. C IM CHUN RS232 KT NI VI PC Ta xt s cng Com 9 chn

K hiu chn v hnh dng cng COM 9 chn Chc nng ca cc chn nh sau: + Chn 1: Data Carrier Detect (DCD): pht tn hiu mang d liu + Chn 2: Receive Data (RXD): nhn d liu + Chn 3: Transmit Data (TXD): Truyn d liu + Chn 4: Data Terminal Ready (DTR): u cui d liu sn sng c kch hot khi mun truyn d liu + Chn 5: Signal Ground (SG): mass ca tn hiu
35

GVHD : PHM QUANG TR

N 1

+ Chn 6: Data Set Ready (DSR): d liu sn sng c kch hot bi b phn truyn khi n sn sng nhn d liu + Chn 7: Request to Send: yu cu gi, b truyn t ng ny ln mc hot ng khi n sn sangf truyn d liu + Chn 8: Clear to Send (CTS): xa gii, b nhn t ng ny ln mc kch hot thng bo cho b truyn l n sn sng nhn tn hiu + Chn 9: Ring Indicate (RI): Bo chung cho bit l b nhn ang nhn tn hiu rung chung. 4. TRUYN D LIU QUA CHUN RS232 QU TRNH TRUYN D LIU Truyn d liu qua cng RS232 c thc hin khng ng b. Ti mt thi im ch c 1 bt c truyn (1 k t). B truyn gii 1 bt bt u (bit start) thng bo cho b nhn bit mt k t s c gi n trong ln truyn tip theo. Bit ny lun bt u bng mc 0Tip l cc bt d lieu (bits data) c gii di dng ASCII (c th l 5,6,7 hay 8 bt d liu). Sau l mt Parity bit( kim tra bit chn, l hay khng) v cui cng l bt dng- bit stop c th l 1; 1,5 hay 22 bit dng. TC BAUD L mt tham s c trng ca RS232. Tham s ny chnh l c trng cho qu trnh truyn d liu qua cng RS232- l tc truyn nhn d liu hay tc bit. Tc ny bn pht v nhn nh nhau. Ngoi tc bit cn c 1 tham s m t tc truyn l tc Baud. Tc Baud lin quan n tc m phn t m ha d liu c s dng din t bt c truyn cn tc bit phn nh tc m cc bit c truyn. V mt phn t bo hiu s m ha nn tc bt v tc Baud khi phi ng nht. BIT CHN L HAY PARITY BIT y l bit kim tra li trn ng truyn. Thc cht ca qu trnh kim tra li khi truyn d liu l b xung thm d liu c truyn tm ra hoc sa mt s li trong qu trnh truyn. Do trong chun RS232 s dng mt k thut kim tra chn l. Mt bit chn l c b sung v d liu c truyn cho thy s lng cc bit 1 c gi trong mt khung truyn l chn hay l. Mt Parity bit ch c th tm ra mt s l cc li ch hn nh 1,3,5,7,9nu nh mt bit chn mc li th Parity bit s trng gi tr vi trng hp khng mc li v th khng pht hin ra li. Do trong k thut m ha li ny khng c s dng trong trng hp c kh nng mt vi bit b mc li. MCH CHUN GIAO TIP RS232 DNG IC MAX232 Vi mch MAX 232 ca hng MAXIM l mt vi mch chuyn dng trong giao din ni tip vi my tnh. Chng c nhim v chuyn i mc TTL li vo thnh mc +10V hoc 10V pha truyn v cc mc +3+15V hoc -15-3V thnh mc TTL pha nhn. Vi mch MAX 232 c hai b m v hai b nhn. ng dn iu khin li vo CTS, iu khin vic xut ra d liu cng ni tip khi cn thit, c ni vi chn 9 ca vi mch MAX 232. Cn chn RST (chn 10 ca vi mch MAX) ni vi ng dn
36

GVHD : PHM QUANG TR

N 1

bt tay iu khin qu trnh nhn. Thng th cc ng dn bt tay c ni vi cng ni tip qua cc cu ni, khi khng dng n na c th h mch cc cu ny. Cch truyn d liu n gin nht l ch dng ba ng dn TxD, RxD v GND (mass). S kt ni:
32 VC C 1 1 1 1 2 2 2 2 1 2 2 2 2 2 2 3 5 6 7 8 3 4 5 6 9 0 1 2 7 8 9 0 1 C 2 10uF 13 11 R R R R R R R R R R R R R R R R C C C C C C C C D D D D D D D D 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 /T 1 O S O /T 1 C K I /T 1 O S I/C C P 2 /C C P 1 /S C K /S C L /S D I/S D A /S D O /T X /C K /R X /D T /P /P /P /P /P /P /P /P S S S S S S S S P P P P P P P P 0 1 2 3 4 5 6 7 R B 0 /IN T R B1 R B2 R B 3 /P G M R B4 R B5 R B 6 /P G C R B 7 /P G D 3 3 3 3 3 3 3 4 3 4 5 6 7 8 9 0

6 7 8 9

C 4 2 3 1 0 u 1F 4 13 16 2 5 6 C 5 10uF C 3 15 10uF 7 9 8 10 T1O U T R 1 IN VC C V+ VG N D T2O U T R 2O U T R 2 IN T2 IN C 2+ C 24 5 C 13 T 1 IN R 1O U T C 1+ 11 12 1 C 1 10uF

VD D

VD D

R E 0 /R D /A N 5 R E 1 /W R /A N 6 R E 2 /C S /A N 7 R A 0 /A N 0 R A 1 /A N 1 R A 2 /A N 2 /V R E F -/C V R E F R A 3 /A N 3 /V R E F + R A 4 /T 0 C K I/C 1 O U T R A 5 /A N 4 /C 2 O U T

8 9 10 2 3 4 5 6 7

C O M on PC

M C LR O S C 1 /C L K IN

M A X232

14

O S C 2 /C L K O U T VSS VSS

P IC 1 6 F 8 7 7 A

31

PHN MM GIAO TIP Giao tip chun gia RS232 v vi iu khin phi thng qua phn mm giao din nhn bit c d liu truyn ln v nhn xung nh th no. Hin ti c rt nhiu cch lp trnh giao tip cho RS232 vi vi x l nhng m hay dng nht l Visual C++, ngoi ra cn c b cng c Visual Basic cng c dng kh nhiu Trong n ny, chng em dng cng c Visual Basic to phn mm giao tip chun RS232 CHNG II: GII THIU NGN NG LP TRNH 1. Tng quan v C HI-TECH 1.1 V sao ta s dung C HI-TECH ? S ra i ca mt loi vi iu khin i km vi vic pht trin phn mm ng dng cho vic lp trnh cho con vi iu khin . Vi iu khin ch hiu v lm vic vi hai con s 0 v 1. Ban u vic lp trnh cho VK l lm vic vi dy cc con s 0 v 1. Sau ny khi kin trc ca Vi iu khin ngy cng phc tp, s lung thanh ghi lnh nhiu ln, vic lp trnh vi dy cc s 0 v 1 khng cn ph hp na, i hi ra i mt ngn ng mi thay th. V ngn ng lp trnh Assembly. Sau ny khi ngn ng C ra i, nhu cu dng ngn ng C thay cho ASM trong vic m t cc lnh lp trnh cho Vi iu khin mt cch ngn gn v d hiu hn dn n s
37

12

GVHD : PHM QUANG TR

N 1

ra i ca nhiu chng trnh son tho v bin dch C cho Vi iu khin : Keil C, HTPIC, MikroC, CCS Ti chn C HI-TECH cho bi gii thiu ny v C HITECH l mt cng c lp trnh C mnh cho Vi iu khin PIC. Nhng u v nhc im ca C HI-TECH s c cp n trong cc phn di y. 1.2 Gii thiu v C HI-TECH ? C HI-TECH l trnh bin dch lp trnh ngn ng C cho Vi iu khin PIC ca hng Microchip. Chng trnh l s tch hp ca 3 trnh bin dich ring bit cho 3 dng PIC khc nhau l: PCB cho dng PIC 12bit opcodes PCM cho dng PIC 14bit opcodes PCH cho dng PIC 16 v 18bit

Tt c 3 trnh bin dich ny uc tch hp li vo trong mt chng trnh bao gm c trnh son tho v bin dch l C HI-TECH, phin bn mi nht l PCWH Compiler Ver 3.227 Ging nh nhiu trnh bin dich C khc cho PIC, C HI-TECH gip cho ngi s dng nm bt nhanh c vi iu khin PIC v s dng PIC trong cc d n. Cc chng trnh iu khin s c thc hin nhanh chng v t hiu qu cao thng qua vic s dng ngnng lp trnh cp cao Ngn ng C 2. M t ni dung chng trnh. #include 16f877a.h : i km chng trnh dch, cha khai bo v cc thanh ghi trong mi con PIC, dng cho vic cu hnh cho PIC. #include def_877a.h: Files do ngi lp trnh to ra, cha khai bo v cc thanh ghi trong PIC gip cho vic lp trnh c d dang hn v d ta co th gn PORTB = __CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS): Khai bo v cu hnh cho PIC #define_XTAL_FREQ 4000000 Tn s thch anh s dng #include uart.h: Khai bo cho giao tip ni tip RS232 Void ten_chng_trnh (ten_bien) {}: Chng trnh chnh hay chng trnh con Chng trnh mu cho PIC16F877A
38

GVHD : PHM QUANG TR

N 1

//================================================= // Ten chuong trinh // Phien ban // Mo ta phan cung // // // : 1.0 : Dung PIC16F877A thach anh 20MHz : Mach test den LED_1

: LED giao tiep voi PORTB : Cuc am cua LED noi voi GND : RB0 RB7 la cac chan output

// #include <16f877a.h> #include uart.h _config(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS) #define_XTAL_FREQ 4000000 xxx_isr() { // Code here } void Ten_chuong_trinh_con(Ten_Bien) { // Code here } void main() { // Enter code here! }

CHNG III: THIT K H THNG

39

GVHD : PHM QUANG TR

N 1

I.THIT K PHN CNG: 1.Mch module PIC 1.1.Linh kin s dng: 4 t khng phn cc 104p. 2 t khng phn cc 22p. 1 t in phn cc 1000uF 1 t in phn cc470uF 1 thch anh 4 Mhz. 1 PIC 16f877a. 1 nt nhn. 1 in tr 221/1W 1 in tr 221 1 in tr 101 1 in tr 103 1 led n (bo ngun). 1 cu diod 1.2.S nguyn l:

40

GVHD : PHM QUANG TR

N 1

Hnh 3.1: S nguyn l mch module PIC 2. Mch RS232 2.1.Linh kin s dng: 1 cng com. 1 IC Max232. 5 t phn cc 10u. 1 t khng phn cc 104p. 1 led n (bo ngun). 1 in tr 1k S nguyn l mch rs232

S nguyn l mch RS 232 3. Mch led ma trn: 3.1 Linh kin s dng: - 6 IC 6B595. - 1 led n (bo ngun). - 6 led matrix - 1 in tr 1k. 3.2 S nguyn l:

41

OE CLEAR STROBE CLOCK DATA J6 5 4 3 2 1 R E D C TR L IN

U15

1 20 10 11 6B595

5 6 7 8 9 10 11 12 R R R R R R R R 0 1 2 3 4 5 6 7 24 23 22 21 4 3 2 1 VCC R R R R R R R R C C C C C C C C 0G 1G 2G 3G 4G 5G 6G 7G C C C C C C C C 0R 1R 2R 3R 4R 5R 6R 7R

20 19 18 17 16 15 14 13

C C C C C C C C

R R R R R R R R

0 1 2 3 4 5 6 7

C C C C C C C C

R R R R R R R R

0 1 2 3 4 5 6 7

10 10 10 10 10 10 10 10 D D D D D D D D 0 1 2 3 4 5 6 7

R9 R10 R 11 R 12 R13 R14 R 15 R 16

R R R R R R R R

D D D D D D D D

7 6 5 4 3 2 1 0

3 4 5 6 7 14 15 16 17 18 2 19

13 12 8 9

S E R IN NC NC OUT0 OUT1 GND OUT2 OUT3 GND OUT4 OUT5 OUT6 C LK OUT7 STROBE SER OUT C LR VDD GND OE

U1 M A T R IX L E D 8 x 8

+12V

Q8 C1 104 Q7

VCC

A 1015

Chng trnh chnh:


1 20 A1015 Q6 Q5 Q4 Q3 R0 R1 R2 R3 R4 R5 R6 R7 24 23 22 21 4 3 2 1 R R R R R R R R D D D D D D D D 0 1 2 3 4 5 6 7 A 1015 A 1015 A 1015 A 1015 5 6 7 8 9 10 11 12 C C C C C C C C 0G 1G 2G 3G 4G 5G 6G 7G C C C C C C C C 0R 1R 2R 3R 4R 5R 6R 7R M A T R IX L E D 8 x 8

U 16 6B595

NC NC GND GND 20 19 18 17 16 15 14 13 U2 CR8 CR9 C R 10 C R 11 C R 12 C R 13 C R 14 C R 15 CR8 CR9 C R 10 C R 11 C R 12 C R 13 C R 14 C R 15 VCC

10 11 13 18 2 19 SER OUT VDD GND C LK STROBE C LR OE 12 8 9

3 4 5 6 7 14 15 16 17

S E R IN OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7

GVHD : PHM QUANG TR

Q2

1. Lu gii thut C HI-TECH

BT U
A1015 Q1 A 1015

VC C

C2 104

S E R IN C C C C C C C 5 6 7 8 9 10 11 12 20 19 18 17 16 15 14 13 R R R R R R R R C 0G C 1G C 2G C 3G C 4G C 5G C 6G C 7G C C C C C C C C 0 1 2 3 4 5 6 7 24 23 22 21 4 3 2 1 0R 1R 2R 3R 4R 5R 6R 7R U3 R R R R R R R 16 17 18 19 20 21 22 C R 23 C C C C C C C R R R R R R R 16 17 18 19 20 21 22 C R 23 VCC R R R R R R R R D D D D D D D D 0 1 2 3 4 5 6 7

M A T R IX L E D 8 x 8

Khai bo bng ch ci nhp

Hnh 3.2: S nguyn l mch led ma trn. II.THIT K PHN MM

Khai bo cc tin x l,cc bin,kiu d liu Thit lp ban u cho qu trnh truyn nhn data #define SDA RC0 #define SCL RC1 #define STROBE RC2 #define CLEAR RC3 #define OE RC4

Thit k cc port B ,port C xut d liu

R2 R3

R1

330 330

330

Hin th chui k t mc nh

R5 R6 R7 R8 R4 18 17 16 15 14 13 12 11 U 13 OU OU OU OU OU OU OU OU T1 T2 T3 T4 T5 T6 T7 T8 IN 1 IN 2 IN 3 IN 4 IN 5 IN 6 IN 7 IN 8 1 2 3 4 5 6 7 8 +12V 8 7 6 5 4 3 2 1 J1 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 +12V C0 104 VCC GND +12V GND J5

330 330 330 330 330

Ngt truyn d liu t PC


VCC

U17

1 20 10 11 6B595 13 18 2 19 12 8 9 NC NC OUT0 OUT1 GND OUT2 OUT3 GND OUT4 OUT5 OUT6 C LK OUT7 STROBE SER OUT C LR VDD GND OE

3 4 5 6 7 14 15 16 17

0
C3 104

42
0
9 GND COM 10 ROW U LN 2803 POW ER

NC NC U 18 C C C C C C 0G 1G 2G 3G 4G 5G C 6G C 7G R0 R1 R2 R3 R4 R5 R6 R7 C C C C C C 0R 1R 2R 3R 4R 5R C 6R C 7R 24 23 22 21 4 3 2 1 GND GND 6B595 5 6 7 8 9 10 11 12 20 19 18 17 16 15 14 13 U4 C C C C C C C C R R R R R R R R 24 25 26 27 28 29 30 31 C C C C C C C C R R R R R R R R 24 25 26 27 28 29 30 31 VCC R R R R R R R R D D D D D D D D 0 1 2 3 4 5 6 7 VCC

0
11 13 12 2 19 OUT6 C LK OUT7 STROBE SER OUT C LR VDD GND OE 8 9

3 4 5 6 7 14 15 16 17 18

S E R IN OUT0 OUT1 OUT2 OUT3 OUT4 OUT5

1 20 10

M A T R IX L E D 8 x 8

0
C4 104 5 6 7 8 9 10 11 12 C C C C C C C C 7G 0G 1G 2G 3G 4G 5G 6G

1 20

NC NC GND U 19 6B595 GND C 7R R0 R1 R2 R3 R4 R5 R6 R7 24 23 22 21 4 3 2 1 R R R R R R R R D D D D D D D D 0 1 2 3 4 5 6 7 VCC C C C C C C C 0R 1R 2R 3R 4R 5R 6R 20 19 18 17 16 15 14 13 U5 C C C C C C C C R R R R R R R R 32 33 34 35 36 37 38 39 C C C C C C C C R R R R R R R R 32 33 34 35 36 37 38 39 VCC 4 5 6 7 14 15 16 17 18 2 19

10 11 13 C LK OUT7 STROBE SER OUT C LR VDD GND OE 12 8 9

S E R IN OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6

M A TR IXL E D 8 x 8

0
C5 104

0
1 2 3 4 5 6 7 8 +5V NC -5V NC +12V NC -12V NC

NC NC GND U 20 6B595 GND C LK R0 R1 R2 R3 R4 R5 R6 R7 24 23 22 21 4 3 2 1 U6 VCC R R R R R R R R D D D D D D D D 0 1 2 3 4 5 6 7 18 2 19 5 6 7 8 9 10 11 12 C C C C C C C C 0G 1G 2G 3G 4G 5G 6G 7G C C C C C C C C 0R 1R 2R 3R 4R 5R 6R 7R 20 19 18 17 16 15 14 13 C C C C C C C C R R R R R R R R 40 41 42 43 44 45 46 47 C C C C C C C C R R R R R R R R 40 41 42 43 44 45 46 47

3 4 5 6 7 14 15 16 17

S E R IN OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7 SER OUT VDD GND

1 20 10 11 13 12 8 9 STROBE C LR OE

M A TR IXL E D 8 x 8

N 1

0
VCC

0
C6 104

GVHD : PHM QUANG TR

N 1

Kim tra c ngt UART (RCIE & RCIF) Thit lp to tn hiu qut ct Thc hin qut ct v hin th k t nhp t bn phm

Hin th ra led ma trn


KT THC

Chng trnh con: NHP CH

BT U

>80

Kim tra chui k t vi kch thc mng

Chuyn phn d sang mng 2

<=80
Cha ht vo mng 1

KT THC

Ngt truyn nhn v m ha d liu


BT U

43

GVHD : PHM QUANG TR Nhn d liu t PC v chuyn vo bin data

N 1

Kim tra data nhn c

Data ==0x1B Xa d liu nhn v ch nhp mi

So snh vi bng ch ci v xc nh v tr trong bng ch ci

Hin th ra led ma trn

KT THC

QUT LED :
BT U

nh ngha cc hm: To tin hieu qut ct, SDA = 0. To xung dch tn hiu qut ct, SCL = 0. To xung cht tn hiu qut ct, STROBE = 0 Khi ng OE = 1.

Cho php xut tn hiu qut ct, OE = 0 Khi ng SDA = 1

To xung dch d liu qut ct

Xut m hin th ra 8 hng To xung tr 0.3ms 44

GVHD : PHM QUANG TR

N 1

Chng lem hin th

Kim tra data nhn c

<64

>=64
KT THC

2. Chng trnh vi x l //============================================================ ============================= // // TRUONG DAI HOC CONG NGHIEP TP HO CHI MINH // KHOA DIEN TU // DO AN 1 - MACH QUANG BAO GIAO TIEP PC // GVHD: PHAM QUANG TRI // SVTH: - LE MINH TIN - 09093121 // - TRAN TIEN - 09078691 // //============================================================ ============================= #include <htc.h> #include <stdio.h> #include <math.h> #include "uart.h" __CONFIG(HS & WDTDIS & PWRTEN & UNPROTECT & BORDIS & LVPDIS); #define _XTAL_FREQ 4000000 // Dinh nghia cac thong so. #define SDA RC0 // Ngo ra du lieu (Tin hieu quet cot).
45

GVHD : PHM QUANG TR

N 1

#define SCL RC1 // Ngo ra xung clock (Tin hieu quet cot - Kich muc = 0/1). #define STROBE RC2 // Ngo ra dieu khien bo quet cot (Chot tin hieu quet - Kich muc = 0/1). #define CLEAR RC3 // Ngo ra dieu khien bo quet cot (Xoa tin hieu quet - Kich muc = 0). #define OE RC4 // Ngo ra dieu khien bo quet cot (Xuat tin hieu quet - Kich muc = 0). //============================================================ ===================================== // BANG DU LIEU CHUA MA KI TU HIEN THI //============================================================ ===================================== // MA KI TU const unsigned char code[]= { 0X00,0X00,0X00,0X00,0X00,0X00 //Khoang trang ,0xFC,0x12,0x11,0x12,0xFC,0x00 //A ,0xFF,0x89,0x89,0x89,0x76,0x00 //B ,0x7E,0x81,0x81,0x81,0x42,0x00 //C ,0xFF,0x81,0x81,0x81,0x7E,0x00 //D ,0xFF,0x89,0x89,0x89,0x81,0x00 //E ,0xFF,0x09,0x09,0x09,0x01,0x00 //F ,0x7E,0x81,0x81,0x91,0x72,0x00 //G ,0xFF,0x08,0x08,0x08,0xFF,0x00 //H ,0x81,0x81,0xFF,0x81,0x81,0x00 //I ,0x40,0x81,0x81,0x7F,0x01,0x01 //J ,0xFF,0x08,0x14,0x22,0x41,0x80 //K ,0xFF,0x80,0x80,0x80,0x80,0x00 //L ,0xFF,0x02,0x04,0x02,0xFF,0x00 //M ,0xFF,0x02,0x04,0x08,0xFF,0x00 //N ,0x7E,0x81,0x81,0x81,0x81,0x7E //O ,0xFF,0x09,0x09,0x09,0x06,0x00 //P ,0x7E,0x81,0x81,0xC1,0xFE,0x80 //Q ,0xFF,0x09,0x19,0x29,0x46,0x80 //R ,0x40,0x86,0x89,0x89,0x89,0x70 //S ,0x01,0x01,0xFF,0x01,0x01,0x00 //T ,0x7F,0x80,0x80,0x80,0x80,0x7F //U ,0x3F,0x40,0x80,0x80,0x40,0x3F //V ,0xC7,0x24,0x18,0x18,0x24,0xC3 //X ,0x01,0x02,0xFC,0x02,0x01,0x00 //Y ,0xC1,0xA1,0x91,0x89,0x85,0x83 //Z ,0x7F,0x80,0x7C,0x80,0x7F,0x00 //W ,0x70,0x88,0x88,0x48,0xF8,0x00 //a ,0xFF,0x50,0x88,0x88,0x70,0x00 //b ,0x70,0x88,0x88,0x50,0x00,0x00 //c ,0x70,0x88,0x88,0x50,0xFF,0x00 //d
46

GVHD : PHM QUANG TR

N 1

,0x70,0xA8,0xA8,0xA8,0x30,0x00 //e ,0x10,0xFE,0x11,0x11,0x02,0x00 //f ,0x5C,0xA2,0xA2,0x94,0x7E,0x00 //g ,0xFF,0x08,0x08,0x08,0xF0,0x00 //h ,0x00,0x7A,0x80,0x80,0x00,0x00 //i ,0x00,0x00,0x80,0x80,0x7A,0x00 //j ,0x00,0xFF,0x18,0x24,0x42,0x80 //k ,0x00,0x00,0xFF,0x00,0x00,0x00 //l ,0xF8,0x08,0xF8,0x08,0xF0,0x00 //m ,0xF8,0x08,0x08,0x08,0xF0,0x00 //n ,0x70,0x88,0x88,0x88,0x70,0x00 //o ,0xFE,0x14,0x22,0x22,0x1C,0x00 //p ,0x00,0x1C,0x22,0x22,0x14,0xFE //q ,0x48,0x94,0x94,0x94,0x60,0x00 //s ,0x00,0xF8,0x10,0x08,0x08,0x00 //r ,0x04,0x7E,0x84,0x84,0x40,0x00 //t ,0x78,0x80,0x80,0x80,0xF8,0x00 //u ,0x38,0x40,0x80,0x40,0x38,0x00 //v ,0x84,0x48,0x30,0x30,0x48,0x84 //x ,0x00,0x1C,0xA0,0xA0,0x7C,0x00 //y ,0x90,0xD0,0xB0,0x90,0x80,0x00 //z ,0x78,0x80,0x70,0x80,0x78,0x00 //w ,0x7C,0x86,0xBA,0xC2,0x7C,0x00 //0 ,0x88,0x84,0xFE,0x80,0x80,0x00 //1 ,0xC4,0xA2,0xA2,0xA2,0x9C,0x00 //2 ,0x44,0x92,0x92,0x92,0x6C,0x00 //3 ,0x38,0x24,0x22,0x20,0xFE,0x00 //4 ,0x4E,0x8A,0x8A,0x8A,0x72,0x00 //5 ,0x7C,0x92,0x92,0x92,0x64,0x00 //6 ,0x02,0xE2,0x12,0x0A,0x06,0x00 //7 ,0x6C,0x92,0x92,0x92,0x6C,0x00 //8 ,0x4C,0x92,0x92,0x92,0x7C,0x00 //9 }; //============================================================ =============================== // Khai bao bien. //============================================================ =============================== // <> BO DEM unsigned char a[]={ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00
47

GVHD : PHM QUANG TR

N 1

}; //******************************************************************** ************* // MANG DEM CHUA KI TU HIEN THI //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++ unsigned char chuoi[]={0,10,0,0,0,0,0,0,0,0,14,8,1,16,0,13,1,0,8,9,5,14,0,20,8,9,0,20,21,0,2,1,14,0,1 6,8,9,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0}; //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++++++ const char bangtra[]=" ABCDEFGHIJKLMNOPQRSTUVXYZWabcdefghijklmnopqrstuvxyzw0123456789" ; unsigned char dem,demx,demy,khoa; // KHAI BAO KHOI TAO PORT //----------------------------------------------------------void init_PORTC(void) { PORTC = 0X00; // Khoi tao Port C. TRISC = 0b10000000; // Cau hinh PORTD la ngo ra. } //-------------------------------------------------------------void init_PORTB(void) { PORTB = 0X00; // Khoi tao Port B. TRISB = 0X00; // Cau hinh PORTB la ngo ra. } //---------------------------------------------------------// HAM QUET LED HIEN THI

void quetled_righttoleft() { unsigned int i; SCL = 0; // Khoi dong SCL = 0. SDA = 0; // Khoi dong SDA = 0. STROBE = 0; // Khoi dong STROBE = 0. CLEAR = 1; // Khoi dong CLEAR = 1. OE = 1; // Khoi dong OE = 1. __delay_us(1); OE = 0; // Cho phep xuat tin hieu quet cot, OE = 0. // *************************************************** // Bat dau tien hanh hoat dong quet cot.
48

GVHD : PHM QUANG TR

N 1

// *************************************************** CLEAR = 0; // Tao xung xoa toan bo bang quang bao, CLEAR = 0. __delay_us(1); CLEAR = 1; // CLEAR = 1. __delay_us(1); SDA = 1; // Tao tin hieu quet cot, SDA = 1. SCL = 0; // Tao xung dich tin hieu quet cot, SCL = 0. __delay_us(1); SCL = 1; // SCL = 1 STROBE = 0; // Tao xung chot tin hieu quet cot, STROBE = 0. __delay_us(1); STROBE = 1; // STROBE = 1. SDA = 0; // SDA = 0. //============================================================ ========================================= for (i=0;i<=47;i++)// Thuc hien quet 48 cot. { PORTB = a[i]; // Xuat ma hien thi ra phan tren cua bang quang bao. __delay_us(100); // tao tre 0.3 ms __delay_us(100); __delay_us(100); PORTB = 0x00; // Chong lem hien thi. SCL = 0; // Tao xung dich tin hieu quet cot, SCL = 0. __delay_us(1); SCL = 1; // SCL = 1 STROBE = 0; // Tao xung chot tin hieu quet cot, STROBE = 0. __delay_us(1); STROBE = 1; // STROBE = 1. } } //============================================================ ===================== void taoma_rtl() { unsigned char y,x,n,i; unsigned int m; demx=0; demy=2; while (khoa==0) { y=demy; x=demx; for(i=0;i<=47;i++) {
49

GVHD : PHM QUANG TR

N 1

m=chuoi[y]*6+x; a[i]=code[m]; x++; if(x==6) { x=0; y++; } } for(n=0;n<=chuoi[1];n++) { quetled_righttoleft(); } demx++; if(demx==6) {demx=0; demy++;} if(demy>=dem) {khoa=1;} } if(demy!=2){khoa=0;} } //============================================================ ===================== //============================================================ ===================== // Chuong trinh chinh. //============================================================ ===================== void main (void) { init_PORTB(); // Cau hinh Port B. init_PORTC(); uart_init(); // Khoi dong UART. // INTCON = | GIE | PEIE | T0IE | INTE | RBIE | T0IF | INTF | RBIF | GIE = 1; // Cho phep ngat toan cuc. PEIE = 1; // Cho phep ngat ngoai vi (UART). dem=36; khoa=0; while(1) { taoma_rtl(); } } //============================================================ ====================== void interrupt isr() { unsigned char i,c; if(RCIE && RCIF) // Kiem tra cho phep ngat thu cua UART. { c = uart_getc(); // Doc du lieu thu duoc tu UART. if (c==46) {
50

GVHD : PHM QUANG TR

N 1

for(i=0;i<=dem;i++) { chuoi[i]=0; } dem=0; demx=0; demy=2; } else { if(c==8 & dem>=1) { chuoi[dem-2]=0; dem--; } else { if(c==1) {khoa=0;} else khoa=1; { for(i=0;i<=63;i++) { if(bangtra[i]==c) { chuoi[dem]=i; } } dem++; demx=0; demy=2; } } } } } CHNG IV: KT LUN I. U V NHC IM CA THI CNG MCH 1. U IM: - Ch hin th r rng, sng u tc di chuyn va phi. - Mch hot ng n nh trong thi gian di. - Ch hin th theo thit k 2. NHC IM
51

GVHD : PHM QUANG TR

N 1

- Chiu di cp RS232 b hn ch - Do b nh ROM c dung lng nh nn mun lu nhiu font ch th phi thay i ROM c dung lng ln hn II. CC HNG PHT TRIN TI - Tng kch thc ca mch quang bo cho ph hp vi thc t s dng. - S dng nhiu font ch lm phong ph hn bng quang bo. - S dng giao tip USB thay th cho RS232. - To bng led ma trn bng led out door p ng nhu cu s dng. - S dng cc module c th pht v tuyn .Chng trnh iu khin trn my tnh c th gim st -lin lc ( mail, in thoi ) III. KT LUN ti: QUANG BO HIN TH LED MA TRN GIAO TIP MY TNH DNG VI IU KHIN PIC 16F877A. ti trnh by c nguyn tc hot ng c bn ca mch quang bo giao tip my tnh, gii thiu v cch s dng cng nh s chn, s ni b ca cc IC s dng trong mch. Nhm thc hin ti xin chn thnh cm n qu thy c cng cc bn sinh vin, ng gp rt nhiu kin, cng sc qu bu trong qu trnh nhm thc hin ti ny. c bit, chng em xin cm n thy Phan Tun Anh to iu kin ch bo nhng kinh nghim, kin thc thc t ti c hon thnh ng thi gian quy nh Tuy nhin, do cn hn ch v thi gian v trnh nn ti khng trnh khi nhiu sai st, nhm rt mong nhn c s ng gp kin chn tnh ca qu thy c v cc bn ti c hon chnh hn. IV. TI LIU THAM KHO -Gio trnh l thuyt Vi X L, trng H Cng Nghip TPHCM (BS: Phm Quang Tr Phm Hu Lc). -Gio trnh thc hnh Vi X L, trng H Cng Nghip TPHCM (BS: Phm Quang Tr Phm Hu Lc). -Ti liu lp trnh giao tip my tnh bng Visual Basic (BS: H Thanh Tm L Vn Bn). -RS232 - Communication (ngun Internet).
52

GVHD : PHM QUANG TR

N 1

-Serial Communication (ngun Internet). -Trang Web: www.dientuvietnam.com www.ant7.com www.alldatasheet.com

53

You might also like