stimulus trong mplab

Upload: tuan-le

Post on 20-Jul-2015

147 views

Category:

Documents


0 download

TRANSCRIPT

Nguyn Vn Hng

[email protected]

HVKTQS

Trong qu trnh m phng chng trnh trong MPLAB c nhiu khi ta cn ti tn hiu tc ng vo cc Pin ca VK m bo rng qu trnh m phng chng trnh din ra ng nh trong thc t. V d khi ta thc hin m phng hot ng ca chng trnh ngt ngoi INT, hay RESET Th nht thit ta phi c tn hiu tc ng vo chn tng ng ca VK c nh vy th chng trnh ngt hay RESET mi thc hin. Vy lm th no khi ang m phng chng trnh m li c tn hiu tc ng vo chn VK nh thc t, cng c Stimulus trong MPLAB chnh l cha kha gii quyt vn ny. C th ni y l cng c m phng tn hiu th gii thc. (hnh 1)

Hnh 1

C 2 kiu to ngun bng Stimulus cho MPLAB SIM (hnh 4) Asynchronous (bt ng b): Thay i tn hiu chn I/O hoc RCREG bng n fire trong giao din ha. Trong hnh 2 chnh l Asynch Synchronous (ng b): dng 1chui tn hiu hay d liu nh ngha trc thay i chn I/O, SFR hoc GPR ( v d 1 chu trnh clock). Gm nhiu Tab: Pin/Register actions, Advanced Pin/Register M ca s s dng Stimulus trong MPLAB: u tin ta phi chn ch m phng bng MPLAB SIM: debuger/select tool/MPLAB SIM ( la chn phn ti khoanh trn trong hnh 2)1

Nguyn Vn Hng

[email protected]

HVKTQS

Hnh 2

Ta s c thanh cng c dng cho m phng

tip theo ta chn bt debugger/stimulus/ new workbook

ca

s

stimulus

ln:

2

Nguyn Vn Hng

[email protected]

HVKTQS

Hnh 3

Ta c ca s stimulus:

Hnh 4 3

Nguyn Vn Hng

[email protected]

HVKTQS

Tip theo ta tm hiu tng Tab trong ca s stimulus Tab ko ng b (Asynch Tab) S dng iu khin cc s kin (events) ko ng b to bi user. to v iu khin user ta s dng cc la chn trong Pin.SFR, actionsta i tm hiu tng phn: Fire: n button ny th s thc hin chc nng ghi trong muc action ti v tr ch r bi Pin/SFR

Pin/SFR: chn chn v thanh ghi m tn hiu pht ra khi n Fire tc ng vo. Khi ta click chut vo n, n s pop-down cho ta hng lot cc chn v cc thanh ghi m ta c th sn chn

4

Nguyn Vn Hng

[email protected]

HVKTQS

Action: la chn dng tn hiu tc ng vo Pin/SFR ta chn trn. la chn action ta cng click vo n v n s t ng pop-down cho ta 1 lot cc la chn: Set high: khi ta click Fire s c tn hiu mc 1 tc ng vo ni ta chn Pin/SFR Set low: khi ta click Fire s c tn hiu mc 0 tc ng vo ni ta chn Pin/SFR Toggle: khi ta click Fire s chuyn i mc tn hiu tc ng vo ni ta chn Pin/SFR (ang l 0 s chuyn sang mc 1 v ngc li ) Pulse high: khi ta click Fire s c xung mc 1 tc ng vo ni ta chn Pin/SFR vi rng xung c chn Width5

Nguyn Vn Hng

[email protected]

HVKTQS

Pulse low: khi ta click Fire s c xung mc 0 tc ng vo ni ta chn Pin/SFR vi rng xung c chn Width

Width: thuc tnh ny ch dng cho khi chn pulse high v pulse low, dng chn rng cho xung. thit lp rng xung l bao nhiu ta double-click vo n v in trc tip Units: thuc tnh ny cho php ta thit lp n v cho rng xung m ta chn. khi ta click vo n s pop-down cho ta la chn n v: Cyc: chu k lnh ns: n v l nano giy (10 - 9 giy) us: n v l micro giy (10 - 6 giy) ms: n v l mili giy (10 - 3 giy) sec: n v l giy

6

Nguyn Vn Hng

[email protected]

HVKTQS

V d: khi ta chn Pin/SFR=RB0 ; Actions=pulse high ; width=1; Units=ns th khi ta click vo Fire th n s sinh ra xung cao c rng 1 nano giy tc ng vo chn RB0. Comment/message: phn ny bn vit g th ty c th d nhn dng trong nhiu tc ng. vit vo n double-click v tin hnh vit. Khi click Fire th comment ny s c hin trong ca s output V d: khi ti vit vo trong pic18 th khi chy m phng v n Fire th s xut hin trong ca s ouput nh sau:

trc quan ti trnh by km theo v d c th m phng chng trnh ngt ngoi INT0. y ti coi nh ta c chng trnh hon chnh phc v cho m phng. 1. To 1 file.c c tn l simulation.c ri paste code sau vo: /******************************************************* ***************7

Nguyn Vn Hng

[email protected]

HVKTQS

* * FileName: * Processor: * Compiler: INTERRUPT.c PIC18F C18 v3.30 or higher

*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ * Author Date

*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ * Nguyen Van Hung 06/10/2011

* Lop: Thiet Ke He Thong Dieu Khien Ten Lua K42 - HVKTQS *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~ Chng trnh phc v m phng INT0 ******************************************************** **************/ #include #include #define ADC_INT_DISABLE (PIE1bits.ADIE=0) converter //disable AD

#pragma config PWRT = ON, BOR = OFF, WDT = OFF, LVP = OFF, DEBUG = OFF,PBADEN = OFF //---------------------------------------------------------------------------char data=0; void InterruptServiceHigh(void); void main() {8

Nguyn Vn Hng

[email protected]

HVKTQS

//cau hinh PortC TRISD=0; LATD=0xff; TRISB=0Xff; // cau hinh cho ngat INTCON=0; INTCON2bits.INTEDG0 = 1; INTCONbits.INT0IF = 0; INTCONbits.INT0IE = 1; INTCONbits.GIE = 1; while(1); //disable tat ca cac ngat // ngat canh ln // clear co ngat INT0 // cho php ngat INT0 // cho phep ngat toan cuc //Portc=output

} // vector ngat muc uu tien cao #pragma code InterruptVectorHigh = 0x08 void InterruptVectorHigh (void) { _asm goto InterruptServiceHigh //nhay toi chuong trinh phuc vu ngat _endasm } ///////////////////////////////////////////////////////////////////////////////// #pragma interrupt InterruptServiceHigh ngat muc uu tien cao void InterruptServiceHigh(void)9

// "chuong trinh phuc vu

Nguyn Vn Hng

[email protected]

HVKTQS

{ // function statements //INTCONbits.INT0IE = 0; data++; INTCONbits.INT0IF = 0; while (1); } 2. To project c tn l SIMULATION ri add file simulation.c va to trn vo. Ta c: // clear co ngat INT0 // disable ngat INT0

OK! Ti y ta c project hon chnh (completed) tin hnh m phng to tn hiu ngt chn INT0 bng stimulus. Lett go! 3. Tin hnh m phng Trong chng trnh ti c tnh s dng vng lp v hn while(1) trong chng trnh chnh v chng trnh ngt dng l iu kin xc nh rng chng trnh ngt c c thc thi hay ko. Nu khi ta n fire to sn xung cao vo chn INT0 con tr chng trnh ko xut hin vng lp v hn trong chng trnh ngt th c ngha rng chng trnh ngt cha c thc hin. Ta c ton b ca s m phng sau:

10

Nguyn Vn Hng

[email protected]

HVKTQS

Ta tin hnh chn m phng bng MPLAB SIM v m ca s stimulus nh trn ti trnh by. Tin hnh ci t trong Tab bt ng b nh sau: Pin/SFR=RB0; Action=Pulse high; Width=1; Units=cyc; comment/Message=Pic18 vi ci t th ny ta s c c xung cao rng 1 chu k lnh tc ng vo chn RB0 ( l chn ngt INT0) Bt u m phng n vo nt Run trn thanh cng c ginh cho MPLAB SIM:

Sau ta click vo Fire to sn xung ln c c tnh nh ci t. sn xung ny chnh l nhn t to ngt INT0:

11

Nguyn Vn Hng

[email protected]

HVKTQS

Ta nhn thy trn ca s output c bo rng to xung tc ng vo chn RB0:

Ri! OK. Gi ta xem rng chng trnh c thc hin hm ngt nh mong i ko. By gi ta n nt Halt trong thanh cng c dng m phng:

Ta s thy con tr chng trnh ang vng lp v hn trong chng trnh ngt:

Vy chng trnh ngt c phc v. Ti y ta c th kt lun rng vic to m phng tn hiu ngt vo INT0 bng stimulus c thc hin thnh cng.

Tip: Ta c th thy rng tc dng ca cng c stimulus ny kh hu dng. Ta cng c th m phng tn hiu thc khc bng stimulus tng t nh trn.

12