Báo Cáo Đồ Án Đo Lường Và Điều Khiển Tự Động

download Báo Cáo Đồ Án Đo Lường Và Điều Khiển Tự Động

of 60

description

Điều khiển động cơ Step Motor

Transcript of Báo Cáo Đồ Án Đo Lường Và Điều Khiển Tự Động

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    1/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 1

    I HC KHOA HC HU

    KHOA IN T- VIN THNG

    ------

    BO CO MN HC:O LNG VIU KHIN T NG

    ti:iu khin ng c bc bng bKIT PIC V4

    Sinh vin thc hin: Trn Vn Thnh

    Gio vin hng dn: L Vn Thanh V

    Lp : TVT K34

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    2/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 2

    MC LC

    Chng 1: Gii thiu chung vng c bc

    1.Gii thiu chung:

    ng c bc l mt loi ng c in c nguyn l v ng dng khc bit vi ascc ng c in thng thng

    ng c bc thc cht l mt ng c ng bdng bin i cc tn hiu iukhin di dng cc xung in ri rc ktip nhau thnh cc chuyn ng gcquay hoc cc chuyn ng ca rotor c khnng cnh rotor vo cc vtr cnthit.

    2.Cc c tnh c bn ca ng c bc:

    ng c bc c 5 c tnh c bn sau:

    - Brushless (khng chi than);- Load Independent (c lp vi ti): quay vi tc n nh trong tm

    moment ca ng c;

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    3/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 3

    - Open loop positioning (iu khin vtr vng h): thng thng ta c thm xung kch ng c xc nh vtr nhng trong nhng ng dng ihi tnh chnh xc cao STEP thng c sdng kt hp vi cc cm binvtr nh: encoder, bin tr;

    - Holding Torque: c moment giln;- Excellent Response (p ng tt): p ng tt khi khi ng, dng li v

    o chiu mt cch ddng.

    3.Phn loi ng c bc:

    C 3 loi ng c bc c bn:

    - ng c nam chm vnh cu: Rotor c tha.- ng c ttrthay i: Rotor c xrnh nh- ng c li:Kt hp t2 loi trn

    3.1.ng c nam chm vnh cu:

    Loi ny c chia thnh 2 loi nhl: ng c bc n cc v lng cc.

    3.1.1.ng c n cc:

    a.Cu to:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    4/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 4

    Rotor: c cu to tnam chm vnh cu.Chia thnh cc rang N,S xen k.

    Stato: c cu to bi 2 cun dy btr trc giao vi nhau.Mi cun li c chiathnh 2 phn btr xuyn tm i.Gia cc cun dy ny c mt u ra ni vi

    dng ngun.ng c loi ny thng c 6 u ra.u 1,2 thng c ni vicc dng.Cc u 1a, 2a v 2b c ln lt ni t squyt nh chiu quay cang c.

    b,Hot ng:

    *Phng php 1: Full step

    - Mu 1 nm cc trn v di ca stator, cn mu 2 nm hai cc bn phiv bn tri ng c. Rotor l mt nam chm vnh cu vi 6 cc, 3 Nam v 3Bc, xp xen ktrn vng trn.

    Dng in i qua tu trung tm ca mu 1 n u a to ra cc Bc trongstator trong khi cc cn li ca stator l cc Nam.

    Nu in mu 1 bngt v kch mu 2, rotor squay 300 , hay bc 1bc.quay ng c mt cch lin tc, chng ta chcn p in vo haimu ca ng c theo dy.

    Mu 1a: 100010001000 Mu 1b: 001000100010 Mu 2a: 010001000100 Mu 2b: 000100010001

    =>Thi gian =>

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    5/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 5

    - Ti mi thi im chc 1 na cun dy c in 1a hoc 1b hoc 2b hoc 2bv vy thc hin ht 1 vng quay ng c phi di chuyn 1bc.Nn gil iu khin 1 bc.

    *Phng php 2: Ti mi thi im 2 na cun dy c cp in lm tng momen ca

    ng c

    Mu 1a: 110011001100 Mu 1b: 001100110011 Mu 2a: 011001100110 Mu 2b: 100110011001

    =>Thi gian =>*Phng php 3: Half step

    Kt hp c2 phng php trn khi ng c di chuyn mi bc 150 Mu 1a: 11000001110000011100000111 Mu 1b: 00011100000111000001110000 Mu 2a: 01110000011100000111000001 Mu 2b: 00000111000001110000011100

    =>Thi gian =>

    tng phn gii ca step motor th ta tng scc.

    3.1.2.ng c lng cc:

    a.Cu to:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    6/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 6

    Bao gm 2 cun dy nhng ko c dy trung tm gia mi cun dy.V thdngin schy tu ny n u kia ca cun dy => Momen sinh ra ln.

    b.Hot ng:

    *Phng php 1:

    Ti mi thi im chc 1 cun dy ca ng c c cp in.

    1a: + 00 + 00 + 00 1b:0 + 00 + 00 + 0 2a: 0 + 00 + 00 + 0 2b: 00 + 00 + 00 +

    =>Thi gian=>

    phng php ny th cng sut tiu thca ng c thp.

    *Phng php 2:

    1a: + ++ ++ + 1b:+ ++ ++ + 2a:+ ++ ++ + 2b: ++ ++ ++

    =>Thi gian=>

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    7/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 7

    C2 cun dy c cp in cng lc nn momen lc ny l cc i v cng suttiu thln.

    3.2.ng c c ttrthay i:

    a.Cu to:

    Thng c 3 cun dy c u nh trong hnh.3 cun dy c 1 u c nichung vi nhau v thng c ni ln cc dng ca ngun.

    b.Hot ng:

    cho ng c quay ta chcn cp in cho 3 cun dy lun phin v lin tc nh

    sau:

    Cun 1: 100100100100 Cun 2: 010010010010 Cun 3: 001001001001

    =>Thi gian=>

    3.3.ng c lai.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    8/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 8

    L loi kt hp gia STEP tthng thay i v loi nam chm vnh cu. Rotor chong c STEP lai c nhiu rng, ging nh loi tthng thay i, cha li thatrn ng tm xoay quay trc ca n. Rng ca rotor to ng dn gip nhhng cho tthng u tin vo trong lkhng kh.

    STEP lai hot ng ging nh loi n cc v lng cc.

    Mch iu khin n gin:

    4.ng c bc sdng trong bi: 4 pha, 5 dy iu khin.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    9/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 9

    4.1.Cu trc v nguyn l hot ng:

    Do u chung ngun nn khi t mc in p 0V (mc logic 0) th sc dng chyqua cc cun dy v ngc li khi t mc in p 5V (mc logic 1) th khng cdng qua cc cun dy.

    Khi cp 1 xung in p ln 1 cun dy stato (phn ng) th roto (phn cm) cang c squay i 1 gc nht nh, gc y l 1 bc quay ca ng c. Vy iu khin ng c quay lin tc th chng ta chvic cp xung ln lt cho cccun dy.

    C 2 cch iu khin ng c bc l:

    iu khin Full bc; iu khin Na bc.

    4.1.1.iu khin Full bc:

    iu khin FULL bc c ngha l mi ln cp in p cho cc cun dy, ng csquay 1 bc (5.625 ), thtcp xung iu khin nh sau (thtttrisang phi: cun 1 -> cun 2 -> cun 3 -> cun 4):Bc 1: 0110

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    10/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 10

    Bc 2: 1100Bc 3: 1001Bc 4: 0011

    4.1.2.iu khin Na bc:iu khin ng c quay na bc, thtcc xung cp vo cc cun dy nhsau (thtttri sang phi: cun 1 ->...-> cun 4 cun 1 ->...-> cun 4)):Bc 1: 0110 1110Bc 2: 1100 1101Bc 3: 1001 1011Bc 4: 0011 0111Khi iu khin na bc, ng c schy mt hn so vi khi chy FULLbc.

    4.2.S v nguyn l hot ng ca ng bc trn KIT:

    4.2.1.S :

    4.2.2.Nguyn l hot ng c bn ca mch:

    - Bxl (dng PIC 16F877A) lm nhim vnhn tn hiu iu khin bn ngoinh sbc,tc ,hin ththng strn mn hnh LCD,iu khin cho ng c

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    11/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 11

    quay theo thng snhp vo.Nh vy i vi PIC 16F877A,y l vi iu khin40 chn vi 5 cng vo ra.N c 8K flash ROM v 368 byte RAM.

    - Cc thng snh sbc,tc quay,chiu quay c np vo bng phm bm

    v chuyn n bvi xl qua PORT B.Da vo cc thng sny iu khinv hin thtrn LCD qua cc chn RC0RC4.ng thi xut dliu qua cc chnRD4RD7.Dliu iu khin ny thng qua ULN203 iu khin motor quay theothng snhp vo.

    4.2.3.Cc khi lin quan khc:

    - Khi LCD: dng loi 2 dng 16 k tLCD 1602.Sdng ngun nui thp t2,55V.c thhot ng 2 ch4 v 8bit.

    - Khi iu khin ngoi: nhp cc thng s nh tc ,s bc,chiu quaycho ng c. y s dng cc phm nhn c kiu nh sau.

    - Khi IC ULN2003:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    12/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 12

    i vi mi cun dy ng c dn dng c mch nh hn 500mA,mchdarlington h ULN200x s dn ng cho cun dy hoc cc ti cm ngkhc trc tip t tn hiu vo logic.

    in tr trn transitor darlington phi thch hp vi tn hiu ra TTLlng cc chun.cc pht ca mi darlington NPN c ni vi chn8,l chn ni t.Mi transitor c bo v bng 2 diode,mt ni giacc pht v cc thu bo v transitor khi in p ngc.Nu chn 9ni vi ngun ca ng c th diode ny s bo v transitor khi nhnhn ca t cm.

    Vi cc ng cln c dng > 0.5A cc IC hULN khng png cta c thdng cc Tranzitor trng(IRF).Mt sloi IRF thng dng:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    13/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 13

    IRF540 tranzitor ngc c thchu dng n 20AIRF640 tranzitor ngcc thchu dng n 18A ngct no iu khinc nhrle,transitor cng sut... Tn hiu iu khin c thc aratbiukhin nhvi mch chuyn dng, mIRF250 tranzitor ngc cthchu

    dng n 30A.

    Chc nng cc chn ca ULN 2003:IC ULN2003 c u vo 8 chn t 1 7 c chcnng nhn tn hiu dngvo cn khuch iIC ULN2003 c u ra 8 chn t 9 16,tn hiu ra cc chn ckhuch itheo yu cu v lm nhim v ni vi cc thit b h tr dng.

    Chn 8 thng ni t,chn 9,10 thng dng ni ngun5v.Chip ULN2803 cngging nhchip ULN2003 m ttrn nhngn c18 chn v 8 darlington cho php mt chip c thdn ng cho mtcp ng cttrbin thin hoc nam chm vnhcu ncc.

    4.3.Code iu khin ng c bc:

    #include

    //static uint8_t QUAY_THUAN_FULL[4]={0x0C,0x24,0x30,0x18}; // Xung cap

    cho che do FULL buoc

    static uint8_t

    QUAY_THUAN_HALF[8]={0x0C,0x04,0x24,0x20,0x30,0x10,0x18,0x08}; //

    Xung cap cho che do nua buoc

    void main()

    {

    uint8_t i;

    DDRB = 0x00;

    while(TRUE)

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    14/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 14

    {

    /*

    Che do FULL buoc: i

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    15/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 15

    Kit PIC V4 htrcdng 16F, 18F 40 Chn.Phin bn ny MHG cp nhpthm tnh nng USB Ngoi ra, phin bn ny htrcmch np MH-Pro

    M tvKIT PIC V4

    - Htrmch np

    PIC KIT2 Htrmch np MH-Pro

    Tnh nng hc tp:

    1. iu Khin Led n

    2. iu Khin Led 7 Thanh

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    16/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 16

    3. LCD1602

    4. Giao Tip IR

    5. Nhit DS18B20

    6. ADC

    7. Led Matrix

    8. UART

    9. DS1307 ( Thi Gian Thc)

    10. EEPROM 24C02

    11. oTn S555

    12. KeyBoard 4x4

    13. Relay

    14. Ci Chip

    15. CAN MCP2510

    16. iu Khin ng C Bc

    2.Chc nng cc khi c bn sdng trong bi lin quan ti KIT PIC V4

    2.1.IC 74LS138.

    2.1.1.Gii thiu vIC 74LS138:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    17/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 17

    - 74LC138 l IC MSI gii m 3 ng sang 8 ng hay tch knh 1 ng sang8 ng thng dng v c hot ng logic tiu biu, n cn c dng nh mchgii m a chtrong cc mch iu khin v trong my tnh.

    - S chn v k hiu logic:

    Trong :

    - A0, A1, A2 l 3 ng a chng vo.- E1, E2 l cc ng vo cho php (tc ng mc thp).- E3 l ng vo cho php tc ng mc cao.- O0 n O7 l 8 ng ra (tc ng mc thp).

    2.1.2.Hot ng ca IC 74LC138:

    - a dliu nhphn 3bit vo C, B, A(LSB), ly dliu ra cc ng O0 nO7; ng cho php E2 v E3 t mc thp, ng cho php E1 t mc cao.Chng hn khi CBA l 001 th ng O1 xung thp cn cc ng cn li mc cao.

    2.2. LED (4 con LED):

    LED 7 thanh 4 sthc cht l 4 con led 7 thanh n ghp vi nhau. Cc thanhA,B,C,..,H ca 4 led c ni chung vi nhau. LED 7 thanh 4 scng c 2 kiu l

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    18/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 18

    anot chung v catot chung.Led chn bi l led anode chung mc tn hiu vo mc cao.

    2.2.1.SLED:

    2.2.2.Cch qut LED:

    Nh bit mt ca chng ta sau khi nhn thy mt hnh nh phi mt khong40ms xl (tng ng 24 hnh trn 1s). Vy nu chng ta cho mt LED sngtt lin tc vi khong thi gian gia 2 ln thay i trng thi b hn 40ms th mtchng ta skhng thnhn ra c sthay i v ta vn ngh LED ang sng.

    Tuy nhin, khi sdng phng php qut LED th slng LED c sdng skhng nhiu (khong 20 LED), l do y l nu slng LED qu nhiu th thigian sng trung bnh cho cc LED sgim xung (LED bmi).

    Cc hm cn sdng qut LED:

    - LED7_ChuyenDoi(unsigned long int number): hm ny tch ln lt ccchshng trm nghn, chc nghn hng n vhin thln LED 7thanh.

    - LED7_OnLed(unsigned char addr): hm ny xc nh vtr LED 7 cn hinthv dliu c hin th.

    - LED7_Display(unsigned long int number): hm ny a scn hin thlnmn hnh LED 7 thanh 4 s.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    19/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 19

    2.3.PIC 16F877A:

    2.3.1.Gii thiu:

    PIC 16F877A l loi vi iu khin 8bit tm trung ca hng microchip.

    - PIC 16F877A c kin trc Havard, sdng tp lnh kiu RISC (ReducedInstruction Set Computer) vi ch35 lnh c bn.- Tt ccc lnh c thc hin trong mt chu k lnh ngoi trcc lnh rnhnh.- S chn vi chip loi cm 40 chn:

    2.3.2. Cc chc nng c bn:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    20/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 20

    2.3.3.S khi vi iu khin PIC16F877A:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    21/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 21

    2.4.Mch ma trn phm 3x3:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    22/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 22

    2.4.1.Smch:

    2.4.2.Nguyn l lm vic:

    - Ma trn phm gm 9 phm bm nn ta c 9 trng hp bm phm n gin hata bm tSW1-SW9. Lc mch ma trn phm hot ng theo nguyn l sau.

    Nhn SW1: chn RB0 = 0 chn RB0 c kch hot nhng do c in trR1 nngi trnhn vo smc thp, ngc li RB5 = 1, cc chn RB1,2 = 1, RB3,4 = 1.Gn gi trsau khi nhn l X th X sbng X1 = 011001YY (Trong YY l 2chn RB6,7 gn gi trxut qua LED).

    Nhn SW2: tng tta c chn RB0 = 0 , chn RB4 = 1, cc chn RB1,2 = 1,RB3,5 = 0. V X2 = 011010YY

    Nhn SW3: tng tta c gi trX3= 011100YY

    Nhn SW4: X4= 101001YY

    Nhn SW5:X5 = 101010YY

    Nhn SW6:X6= 101100YY

    Nhn SW7:X7= 110001YY

    Nhn SW8:X8= 110010YY

    Nhn SW9:X9= 110100YY

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    23/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 23

    Cc gi trtX1-X9 c nhp vo con PIC 16F877A thng qua con PIC iu khin hin thLED.

    3.Gii thiu vphn mm m phng Protues:

    Phn mm Proteus l phn mm cho php m phng hot ng ca mch in tbao gm phn thit kmch v vit chng trnh iu khin cho cc hvi iukhin nh MCS-51, PIC, AVR, Proteus l phn mm m phng mch in tca Lancenter Electronics, m phng cho hu ht cc linh kin in tthng dng,c bit htrcho ccc MCU nh PIC, 8051, AVR, Motorola.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    24/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 24

    Phn mm bao gm 2 chng trnh: ISIS cho php m phng mch v ARES dngvmch in. Proteus l cng cm phng cho cc loi Vi iu Khin kh tt, nhtrcc dng VK 8051, AVR, PIC, dsPIC, ARM ... cc giao tip I2C, SPI,

    CAN, USB, Ethenet,... ngai ra cn m phng cc mch s, mch tng tmtcch hiu qu.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    25/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 25

    4.Code chy m phng v hnh nh thc t:

    4.1.Code

    4.1.2.Code ma trn phm:

    #include "key3x3/key3x3.h"

    .................... * Ten Tep : key3x3.h

    .................... * Tom Tat : Khai bao cac ham dieu khien ma tran phim 3x3.

    ....................

    ******************************************************************

    ************

    .................... #define KEY3X3_COL1 PINB_0

    .................... #define KEY3X3_COL2 PINB_1

    .................... #define KEY3X3_COL3 PINB_2

    .................... #define KEY3X3_ROW1 PORTB_4

    .................... #define KEY3X3_ROW2 PORTB_5

    .................... #define KEY3X3_ROW3 PORTB_6

    ....................

    ******************************************************************

    ************

    .................... **/

    ....................

    .................... #ifndef __KEY_3X3_H

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    26/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 26

    .................... #define __KEY_3X3_H

    .................... #include "main.h"

    .................... /**

    4.1. 2.Code 74LS138:

    .................... #include "74ls138/74ls138.h"

    .................... /**

    ....................

    ******************************************************************

    ************

    .................... * Ten Tep : 74ls138.h

    .................... * Tom Tat : Khai bao cac ham dieu khien 74ls138

    .................... #ifndef __74LS138_H

    .................... #define __74LS138_H

    ..................../******************************************************************

    *************

    .................... Noi Dung : Xuat tin hieu ra LS138.

    .................... Tham Bien : Point : Vi tri tin hieu xuat 0-7.

    .................... Tra Ve : Khong.

    ....................******************************************************************

    **************/

    .................... void LS138_Out(uint8_t Point);

    .................... #endif

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    27/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 27

    4.1.3.Code qut led:

    #include

    #device *=16

    #use delay(clock = 20M)

    #FUSES NOWDT, HS, NOPUT, NOPROTECT, NODEBUG, NOBROWNOUT,

    NOLVP, NOCPD, NOWRT

    #use fast_io(b)

    #byte portb=0x6

    #use fast_io(d)

    #byte portd=0x8

    Void hien_thi();

    int8 font[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x9 0};

    int8 ch,dv,tr,ng;

    int16 i,k;

    void main ()

    {

    set_tris_b(0);

    set_tris_d(0);

    portd=0x00;

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    28/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 28

    while(1)

    {

    for(i=0;i

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    29/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 29

    portb=(font[ch]);

    portd=(0X02);

    delay_us(1000);

    portd=(0x00);

    portb=(font[tr]);

    portd=(0x04);

    delay_us(1000);

    portd=(0x00);

    portb=(font[ng]);

    portd=(0X08);

    delay_us(1000);

    portd=(0x00);

    }

    4.1.4.Code khai bo PIC 16F877A:.................... #include

    .................... //////// Standard Header file for the PIC16F877A device ////////////////

    .................... #device PIC16F877A

    .................... #list

    ....................

    .................... #device*=16 adc=10

    ....................

    .................... #FUSES NOWDT //No Watch Dog Timer

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    30/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 30

    .................... #FUSES HS //High speed Osc (> 4mhz for PCM/PCH)

    (>10mhz for PCD)

    .................... #FUSES NOPUT //No Power Up Timer

    .................... #FUSES NOBROWNOUT //No brownout reset

    .................... #FUSES NOLVP //No low voltage prgming, B3(PIC16)

    or B5(PIC18) used for I/O

    .................... #FUSES NOCPD //No EE protection

    .................... #FUSES NOWRT //Program memory not write protected

    .................... #FUSES NODEBUG //No Debug mode for ICD

    .................... #FUSES NOPROTECT //Code not protected from reading

    .................... #use delay(clock=F_OSC)

    *

    00AE: MOVLW 39

    00AF: MOVWF 04

    00B0: BCF 03.7

    00B1: MOVF 00,W

    00B2: BTFSC 03.2

    00B3: GOTO 0C1

    00B4: MOVLW 06

    00B5: MOVWF 7800B6: CLRF 77

    00B7: DECFSZ 77,F

    00B8: GOTO 0B7

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    31/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 31

    00B9: DECFSZ 78,F

    00BA: GOTO 0B6

    00BB: MOVLW 7B

    00BC: MOVWF 77

    00BD: DECFSZ 77,F

    00BE: GOTO 0BD

    00BF: DECFSZ 00,F

    00C0: GOTO 0B4

    ....................

    .................... /* Kieu So Nguyen Co Dau */

    .................... typedef int1 bit;

    .................... typedef signed int int8_t;

    .................... typedef signed long int16_t;

    .................... typedef signed long long int32_t;

    ....................

    .................... /* Kieu So Nguyen Khong Dau */

    .................... typedef unsigned int uint8_t;

    .................... typedef unsigned long uint16_t;

    .................... typedef unsigned long long uint32_t;

    .................... /* Kieu So Thuc */

    .................... typedef float float32_t;

    ....................

    .................... #include "DEF_16F877A.h"

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    32/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 32

    .................... /**

    ....................

    ******************************************************************

    ************

    Khai bao, dinh nghia mot so thah ghi cho PIC16F877A

    .................... #ifndef __DEF_16F877A_H

    .................... #define __DEF_16F877A_H

    .................... #byte PORTA = 0x05

    .................... #byte PORTB = 0x06

    .................... #byte PORTC = 0x07

    .................... #byte PORTD = 0x08

    .................... #byte PORTE = 0x09

    .................... #byte PINA = 0x05

    .................... #byte PINB = 0x06

    .................... #byte PINC = 0x07

    .................... #byte PIND = 0x08

    .................... #byte PINE = 0x09

    .................... //Thanh Ghi Huong

    .................... #byte DDRA = 0x85

    .................... #byte DDRB = 0x86

    .................... #byte DDRC = 0x87

    .................... #byte DDRD = 0x88

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    33/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 33

    .................... #byte DDRE = 0x89

    .................... /*********************PORTA**********************/

    .................... #bit PORTA_5 = PORTA.5

    .................... #bit PORTA_4 = PORTA.4

    .................... #bit PORTA_3 = PORTA.3

    .................... #bit PORTA_2 = PORTA.2

    .................... #bit PORTA_1 = PORTA.1

    .................... #bit PORTA_0 = PORTA.0

    .................... #bit PINA_0 = PINA.0

    .................... #bit PINA_1 = PINA.1

    .................... #bit PINA_2 = PINA.2

    .................... #bit PINA_3 = PINA.3

    .................... #bit PINA_4 = PINA.4

    .................... #bit PINA_5 = PINA.5

    .................... #bit DDRA_0 = DDRA.0

    .................... #bit DDRA_1 = DDRA.1

    .................... #bit DDRA_2 = DDRA.2

    .................... #bit DDRA_3 = DDRA.3

    .................... #bit DDRA_4 = DDRA.4

    .................... /*********************PORTB**********************/

    .................... #bit PORTB_7 = PORTB.7

    .................... #bit PORTB_6 = PORTB.6

    .................... #bit PORTB_5 = PORTB.5

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    34/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 34

    .................... #bit PORTB_4 = PORTB.4

    .................... #bit PORTB_3 = PORTB.3

    .................... #bit PORTB_2 = PORTB.2

    .................... #bit PORTB_1 = PORTB.1

    .................... #bit PORTB_0 = PORTB.0

    .................... #bit PINB_7 = PINB.7

    .................... #bit PINB_6 = PINB.6

    .................... #bit PINB_5 = PINB.5

    .................... #bit PINB_4 = PINB.4

    .................... #bit PINB_3 = PINB.3

    .................... #bit PINB_2 = PINB.2

    .................... #bit PINB_1 = PINB.1

    .................... #bit PINB_0 = PINB.0

    .................... #bit DDRB_0 = DDRB.0

    .................... #bit DDRB_1 = DDRB.1

    .................... #bit DDRB_2 = DDRB.2

    .................... #bit DDRB_3 = DDRB.3

    .................... #bit DDRB_4 = DDRB.4

    .................... #bit DDRB_5 = DDRB.5

    .................... #bit DDRB_6 = DDRB.6

    .................... #bit DDRB_7 = DDRB.7

    .................... /*********************PORTC**********************/

    .................... #bit PORTC_7 = PORTC.7

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    35/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 35

    .................... #bit PORTC_6 = PORTC.6

    .................... #bit PORTC_5 = PORTC.5

    .................... #bit PORTC_4 = PORTC.4

    .................... #bit PORTC_3 = PORTC.3

    .................... #bit PORTC_2 = PORTC.2

    .................... #bit PORTC_1 = PORTC.1

    .................... #bit PORTC_0 = PORTC.0

    .................... #bit PINC_7 = PINC.7

    .................... #bit PINC_6 = PINC.6

    .................... #bit PINC_5 = PINC.5

    .................... #bit PINC_4 = PINC.4

    .................... #bit PINC_3 = PINC.3

    .................... #bit PINC_2 = PINC.2

    .................... #bit PINC_1 = PINC.1

    .................... #bit PINC_0 = PINC.0

    .................... #bit DDRC_0 = DDRC.0

    .................... #bit DDRC_1 = DDRC.1

    .................... #bit DDRC_2 = DDRC.2

    .................... #bit DDRC_3 = DDRC.3

    .................... #bit DDRC_4 = DDRC.4

    .................... #bit DDRC_5 = DDRC.5

    .................... #bit DDRC_6 = DDRC.6

    .................... #bit DDRC_7 = DDRC.7

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    36/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 36

    .................... /*********************PORTD**********************/

    .................... #bit PORTD_7 = PORTD.7

    .................... #bit PORTD_6 = PORTD.6

    .................... #bit PORTD_5 = PORTD.5

    .................... #bit PORTD_4 = PORTD.4

    .................... #bit PORTD_3 = PORTD.3

    .................... #bit PORTD_2 = PORTD.2

    .................... #bit PORTD_1 = PORTD.1

    .................... #bit PORTD_0 = PORTD.0

    .................... #bit PIND_7 = PIND.7

    .................... #bit PIND_6 = PIND.6

    .................... #bit PIND_5 = PIND.5

    .................... #bit PIND_4 = PIND.4

    .................... #bit PIND_3 = PIND.3

    .................... #bit PIND_2 = PIND.2

    .................... #bit PIND_1 = PIND.1

    .................... #bit PIND_0 = PIND.0

    .................... #bit DDRD_0 = DDRD.0

    .................... #bit DDRD_1 = DDRD.1

    .................... #bit DDRD_2 = DDRD.2

    .................... #bit DDRD_3 = DDRD.3

    .................... #bit DDRD_4 = DDRD.4

    .................... #bit DDRD_5 = DDRD.5

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    37/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 37

    .................... #bit DDRD_6 = DDRD.6

    .................... #bit DDRD_7 = DDRD.7

    .................... /*********************PORTE**********************/

    .................... #bit PORTE_2 = PORTE.2

    .................... #bit PORTE_1 = PORTE.1

    .................... #bit PORTE_0 = PORTE.0

    .................... #bit PINE_2 = PINE.2

    .................... #bit PINE_1 = PINE.1

    .................... #bit PINE_0 = PINE.0

    .................... #bit DDRE_0 = DDRE.0

    .................... #bit DDRE_1 = DDRE.1

    .................... #bit DDRE_2 = DDRE.2

    .................... #ifndef DDR_OUT

    .................... #define DDR_OUT 0

    .................... #endif

    .................... #ifndef DDR_IN

    .................... #define DDR_IN 1

    .................... #endif

    .................... #endif

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    38/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 38

    4.2.Hnh nh qua m phng:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    39/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 39

    Tun 3:Tip tc vic np code v m phng vn cha hon chnh c .

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    40/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 40

    Tun 4: Chy led hin tht0000-9999.

    Chy thchng trnh m st0000-9999 vi code nh bn di,

    #include

    #fuses hs,nolvp,nowdt,put

    #use delay(clock=20000000)

    #use fast_io(d)

    #use fast_io(C)

    int8 gian,i,j,dem,nghin,tram,chuc,dv;

    unsigned char MA7DOAN[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,

    0x7D,0x07,0x7F,0x6F};

    void main ()

    {

    set_tris_c(0x00);

    set_tris_d(0x00);

    while (1)

    {

    for(dem=0;dem

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    41/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 41

    chuc=dem/10;

    dv=dem%10;

    for(j=0;j

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    42/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 42

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    43/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 43

    Chng III: Giao tip vi PC

    1.Gii thiu chung vVisual studio 2010:

    1.1.Khi qut vVisual studio 2010:

    Microsof visual studio: L mi trng tch hp chnh (Integrated DevelopmentEnvironment - IDE) c pht trin tMicrosoft. y l mt sn phm phnmm my tnh c cng dng gip cc lp trnh vin trong vic pht trin phnmm.

    Cc mi trng pht trin hp nht thng bao gm:

    - Mt trnh son tho m (source code editor): dng vit m.- Trnh bin dch (compiler) v/hoc trnh thng dch (interpreter).- Cng cxy dng tng: khi sdng sbin dch (hoc thng dch) m

    ngun, thc hin lin kt v c thchy chng trnh mt cch tng.- Trnh gli (debugger): htrd tm li.- Ngoi ra, cn c thbao gm hthng qun l phin bn v cc cng c

    nhm n gin ha cng vic xy dng giao din ngi dng ha (GUI).

    1.2.Lch sra i:

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    44/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 44

    Microsoft ln u ra mt Visual Studio vo nm 1997.

    VISUAL STUDIO 6.0 (98) L mt phin bn tip (version 6.0) ra i vothng 6 nm 1998 ci thin thm cho Visual Studio 97. y cng l phinbn cui cng chy trn nn tng Win9x.

    VISUAL STUDIO .NET (2002) Microsoft pht hnh Visual Studio .NET VISUAL STUDIO .NET 2003 Vo thng 4 nm 2003. VISUAL STUDIO 2005 Visual Studio 2005, c tn m l Whidbey, c

    pht hnh vo thng 10 nm 2005. Cng vi NET Framework, c nngcp ln thnh version 2.0. y cng l phin bn cui cng thch hp choWindows 2000.

    V ln lt cc nm 2008, 2010, 2012 cho ra cc phin bn VISUALSTUDIO tng ng.

    Trong khung chng trnh bo co chng ta sdng VISUAL STUDIO 2010.

    2.Ngn ngC# v Visual Basic(VB):

    *C# v VB l:

    Mt phn ca visual studio; Thun hng i tng; C chdch nn.

    *So snh vi C v C++ :

    - Cc con trchc thc sdng trong chkhng an ton. Hu ht cci tng c tham chiu an ton, v cc php tnh u c kim tra trnbm.

    - Cc i tng khng thc gii phng tng minh.- Chc n ktha, nhng cthci t nhiu interface tru tng (abstract

    interfaces )

    - C# th an-ton-kiu (typesafe) hn C++.- C php khai bo mng khc nhau("int[] a = new int[5]" thay v "int a[5]").-

    Kiu thtc thay thbng tn min khng gian (namespace).- C thm Properties, cc phng php c thgi cc Properties truy cpdliu.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    45/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 45

    3.USB v giao din HID:

    3.1.Gii thiu vUSB:

    USB (Universal Serial Bus) l mt chun kt ni tun ta dng trong my tnh.USB sdng kt ni cc thit bngoi vi vi my tnh, chng thng c thitkdi dng cc u cm cho cc thit btun theo chun cm-l-chy m vi tnhnng cm nng thit b(ni v ngt cc thit bkhng cn phi khi ng li hthng).

    USB c nhng c trng sau y:

    - Cho php mrng 127 thit bkt ni cng vo mt my tnh thng qua mtcng USB duy nht (bao gm cc hub USB);

    - Nhng si cp USB ring lc thdi ti 5 mt; vi nhng hub, c thkodi ti 30 mt (6 si cp ni tip nhau thng qua cc hub) tnh tu cmtrn my tnh.

    - Vi USB 2.0 chun tc cao, ng truyn t tc ti a n 480Mbps.

    - Cp USB gm hai si ngun (+5V v dy chung GND) cng mt cp gmhai si dy xon mang dliu.

    - Trn si ngun, my tnh c thcp ngun ln ti 500mA in p 5V mtchiu (DC).

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    46/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 46

    - Nhng thit btiu thcng sut thp (v d: chut, bn phm, loa my tnhcng sut thp...) c cung cp in nng cho hot ng trc tip tcccng USB m khng cn c scung cp ngun ring (thm ch cc thit bgii tr snh SmartPhone, PocketPC ngy nay sdng cc cng USB

    sc pin). Vi cc thit bcn sdng ngun cng sut ln (nh my in, myqut...) khng sdng ngun in tng truyn USB nh ngun chnhca chng, lc ny ng truyn ngun chc tc dng nh mt sso snhmc in thca tn hiu. Hub c thc ngun cp in ring cp inthm cho cc thit bsdng giao tip USB cm vo n bi mi cng USBchcung cp mt cng sut nht nh.

    - Nhng thit bUSB c c tnh cm nng, iu ny c ngha cc thit bcthc kt ni (cm vo) hoc ngt kt ni (rt ra) trong mi thi im m

    ngi sdng cn m khng cn phi khi ng li hthng.- Nhiu thit bUSB c thc chuyn vtrng thi tm ngng hot ng

    khi my tnh chuyn sang chtit kim in.

    3.2.Cu to ca USB:

    3.2.1. u cm USB:

    USB truyn tn hiu v ngun qua mt cp 4 si

    - Vbus: in p cung cp cho thit b.- Tn hiu D+.- Tn hiu D-.- Dy t GND.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    47/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 47

    3.2.2.IC giao tip:

    1. u cm USB 2. IC giao tip. 4. Chip nh (Flash) 5. Thch anh 12Mz.

    - Ic iu khin l mt dng vi xl chuyn dng, iu khin vic kt ni, truynnhn v lu trdliu.- Cc lai IC giao tip thng dng l: iCreat, Alcor, Phison, Oti, Profilic, SSS-Solid State System, Netac, Ameco, Chipsbank, Skymedia, USBest- Bn trong cc chip iu khin ny c mt on chng trnh m ta gi lfirmware. a phn li ca UFD u tci firmware ny m ra.

    c im vtc truyn:

    - USB tc cao (USB high-speed): 480Mb/s.- USB ton tc (USB full-speed): 12Mb/s.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    48/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 48

    - USB tc thp (USB low-speed): 1.2Mb/s.

    3.3.Giao din HID:

    Tgiao din ngi sdng trong tn gi ca lp HID chra stng tctrc tip gia con ngi vi thit bthuc lp ny. V dmt con chut c thpht hin vic chng ta di chuyn hay nhn chut gi thng tin ln my chv my chsdng thng tin ny em li cc p ng m ngi sdngang mong i trong mt ng dng cthno .

    - Tt cdliu c trao i di cng mt dng cu trc c gi l boco (report). nh dng bo co l kh linh hot v n c thp dng cho rtnhiu dng ca dliu song i vi mi mt bo co c nh ngha thkch cca n l xc nh.

    - Mt giao din HID phi c mt im cui ngt vo (interrupt Inenpoint) gi dliu ln my ch.

    - Tc trao i dliu l hn ch, c bit l khi truyn tc thp hocton tc. im cui ngt tc thp khng thvt qu 800 bytes/sec, vicc im cui ton tc th tc ti a l 64 KB/s cn im cui ngt tc cao th tc ti a vo khong 24 MB/s .

    - im cui ngt vo cho php HID gi thng tin ln my chnhng thiim m khng hbit trc.

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    49/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 49

    3.4.Th vin lin kt ng:

    3.4.1.File .DLL:

    - Cha m lnh nhphn ca cc hm th vin.- c ti vo bnhkhi ng dng gi hm th vin.- Cn c khi thc hin ng dng.- M lnh ca cc hm skhng c nhng vo trong file chng trnh ca

    ng dng.- ng dng chcn lu thng tin ca hm thvin, v khi cn, Hiu hnh

    sti cc hm th vin vo bnh.

    3.4.2. Gi hm c bn trong DLL tC#:

    gi mt hm trong DLL tC#, chng ta phi lm 3 bc:

    - Import file DLL.- Khai bo mt nguyn mu hm sgi.- Gi hm.

    3.4.3. Cc hm c bn trong USB.DLL:

    - findTargetDevice() : Phng thc ny tm kim cho thit bUSB da trnVID v PID c cung cp khi i tng c to ra.

    - readMultipleReportsFromDevice() : c dliu ln tUSB.- readSingleReportFromDevice() : c dliu nhtUSB.- registerForDeviceNotifications() : ng k thng bo thay i thit b.- writeRawReportToDevice() : Gi dliu n USB.- onUsbEvent() : Pht hin c skin USB hay khng?- isDeviceAttached() : Pht hin c USB cha?

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    50/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 50

    4.iu khin ng c giao tip my tnh:

    4.1.Phn mm iu khin trn my tnh:

    4.2.Code giao tip v iu khin ng c DC bng my tnh:

    #include

    #fuses hs,nowdt,noprotect,nolvp,put // cau hinh cho Pc

    #use delay (clock=4000000)

    #use RS232(baud = 9600,parity=N,xmit=PIN_C6,rcv=PIN_C7)

    #use fast_io(b)

    #use fast_io(c)

    #use fast_io(d)

    #use fast_io(e)

    #byte portb = 0x6

    #byte portc = 0x7

    #byte portd = 0x8

    #byte porte = 0x9

    #byte timer11 = 0xE#byte timer1h = 0xF

    #byte t1con = 0x10

    #byte intcon =0x0b

    #bit congat=intcon.2

    #bit p0 = t1con.0

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    51/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 51

    #bit p1 = t1con.1

    #bit p2 = t1con.2

    #bit p3 = t1con.3

    #bit p4 = t1con.4

    #bit p5 = t1con.5#bit b0 = portb.0

    #bit b1 = portb.1

    #bit b2 = portb.2

    #bit b3 = portb.3

    #bit b4 = portb.4

    #bit b5 = portb.5

    #bit c0 = portc.0

    #bit c1 = portc.1#bit c2 = portc.2

    #bit c3 = portc.3

    #bit c4 = portc.4

    #bit c5 = portc.5

    #bit d1 = portd.1

    #bit d2 = portd.2

    #bit d3 = portd.3

    #bit d4 = portd.4#bit d5 = portd.5

    #bit e1 = porte.1

    #bit e2 = porte.2

    Int16 value,speed; //KHAI BIEN TOAN CUC

    Int8 sansang,Hngan,Htram,Hchuc,HDonVi,x,data,tam,i;

    char z;

    #Int_rda //data nhan tu rs232 san sang

    void ngat1()

    {

    z = getc();//nhan du lieu z

    if(z!='a' && z!='b' && z!='c' && z!='d' && z!='e' && z!='f') // z khac a,b,c..

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    52/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 52

    {

    data= z;

    if(c3 == 0 && e1 ==0)//kiem tra quay thuan va quay nghich

    {c3 = 1;

    e1= 0;

    setup_ccp2(ccp_pwm); // xuat xung pwm2 ra chan c1

    set_pwm2_duty(x);//x=m,Th=m*gia tri chia tan

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);// cho chan c2 ve muc thap( dong co quay thuan)

    setup_timer_2(t2_div_by_4,255,1);

    }if(c3 == 1 && e1 ==0)//kiem tra nut nhan

    {

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(x);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);}

    if(c3 == 0 && e1 == 1)

    {

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(x);

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    }

    }

    else

    {

    if(z = 'f')

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    53/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 53

    {

    z=0;

    sansang = !sansang;

    if(sansang ==1)

    e2 = 1;else

    {

    e2 = 0;

    c3 = e1 = 0;

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);setup_timer_2(t2_div_by_4,255,1);

    x = 10;

    while(true);

    }

    }

    }

    }

    #INT_TIMER0 //ngat timer 0

    void ngat()

    {

    value = (timer1h*256)+(timer11%256);

    set_timer0(15280);

    timer11 = 0;

    timer1h = 0;

    p1 = 1;

    p2 = 0;

    p3 = 0;

    p4 = 0;

    p5 = 0;

    p0 = 1;// ON

    congat = 0;

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    54/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 54

    }

    Void hienthi();

    Void main()

    {

    enable_interrupts(INT_RDA);

    enable_interrupts(INT_TIMER0);

    enable_interrupts(GLOBAL);

    ext_int_edge(L_TO_H);//chon cach lay xung canh len

    set_tris_b(0b111111);

    set_tris_c(0b10000001);set_tris_d(0);

    set_tris_e(0b00);

    portb=portc=portd=porte=0;

    setup_timer_0(RTCC_DIV_256| RTCC_INTERNAL);//

    set_timer0(15280);// delay 50ms

    timer11 = 0;

    timer1h = 0;

    p1 = 1;p2 = 0;

    p3 = 0;

    p4 = 0;

    p5 = 0;

    p0 = 1; // On

    value = 0;

    sansang = 0;

    tam = 1;

    speed = 20;

    data = 20;

    x = 120;

    while(1)

    {

    speed = (value*20)/400;

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    55/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 55

    Hchuc = speed/10;

    HDonVi = speed%10;

    putc(Hchuc+48);

    putc(HDonVi+480);

    hienthi();

    if(b0==0)

    {

    do

    {}

    while(b0==0);

    putc('#');

    putc('4');sansang=!sansang;

    if(sansang==1)

    e2=1;

    else

    {

    e2=0;

    c3 = e1 = 0;

    setup_ccp2(ccp_pwm);set_pwm2_duty(0);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    x =10;

    while(true);

    }

    }

    if(sansang==1)

    {

    if(b1==0 || z=='a')

    {

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    56/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 56

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    x =10;

    while(true);

    delay_ms(500);

    z=0;

    c3=1;

    e1=0;

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(x);

    setup_ccp1(ccp_pwm);set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    putc('#');

    putc('1');

    }

    if(b2=0 || z=='b')

    {setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    x =10;

    while(true);

    delay_ms(500);

    z=0;

    c3=0;

    e1=1;

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    57/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 57

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    putc('#');putc('2');

    }

    if(b3==0 ||z=='c')

    {

    z=0;

    c3=e1=0;

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    putc('#');

    putc('3');

    x =10;

    }

    if(b4==0 ||z=='d')

    {

    do

    {

    }

    while(b4==0);

    delay_ms(500);

    if(data>=2)

    data=data-1;

    z= 0;

    }

    if(b5==0 || z=='e')

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    58/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 58

    {

    do

    {

    }

    while(b5==0);

    delay_ms(50);

    x =10;

    if(datadata && x>=1){

    x=x-1;

    if(c3==1 && e1==0)

    {

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(x);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);setup_timer_2(t2_div_by_4,255,1);

    while(true);

    }

    if(c3==0 && e1==1)

    {

    setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(x);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    }

    }

    if(speed

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    59/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 59

    {

    x=x+1;

    if(c3 ==1 &&e1 ==0)

    {

    setup_ccp2(ccp_pwm);set_pwm2_duty(x);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(0);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    }

    if(c3 ==0 && e1 ==1)

    {setup_ccp2(ccp_pwm);

    set_pwm2_duty(0);

    setup_ccp1(ccp_pwm);

    set_pwm1_duty(x);

    setup_timer_2(t2_div_by_4,255,1);

    while(true);

    }

    }}

    }

    }

    Void hienthi()

    {

    For(i=0;i

  • 5/25/2018 Bo Co n o Lng V i u Khi n T ng

    60/60

    Trn Vn ThnhLp TVT K34

    Bo co n o lng v iu khin tng Page 60

    portd=ht[HDonVi];

    c5=1;

    c4=0;

    delay_ms(10);

    }}