VXL Bao-cao

Embed Size (px)

Citation preview

  • 7/31/2019 VXL Bao-cao

    1/26

    1

    TRNG I HC BCH KHOA H NI

    VIN IN T VIN THNG

    BI TP LN VI X L

    ti : Thit k mch ng h thi gian thc s dng DS1307 vPIC16F877A v hin th ln LCD

    Gio vin hng dn : V Song Tng

    Sinh vin thc hin : Nguyn Vn Trng 20082842 (A)

    Nguyn Vn Trng 20083543 (B)

    c Cng 20083278

    Nguyn Ngc Vinh 20083169

    Lp :in t 3-K53

  • 7/31/2019 VXL Bao-cao

    2/26

    2

    Mc Lc

    1.Li ni u :1

    2.Gii thiu v nhm v timeline cng vic :...................................................................2

    3. M t h thng : ................................................................................................. 5

    4. S m phng trn PROTEUS...................................................................... 4

    5. Tng quan v cc khi : .................................................................................... 5

    a. Tng quan v PIC16F877A :............................................................................ 6

    b. Khi thi gian thc DS1307:............................................................................. 9

    c. Khi mn hnh LCD1602................................................................................11S chn ca LCD 1602a .....................................................................................12

    d. Code ca chng trnh m phng :................................................................14

    6. Kt qu m phng : .........................................................................................22

    7. Mc hon thnh cng vic :.......................................................................24

    8. Cc phn mm s dng trong qu trnh m phng :..............................23

    9. Ti liu tham kho :.........................................................................................25

  • 7/31/2019 VXL Bao-cao

    3/26

    3

    LI NI U

    Ngy nay, cc h thng nhng tr nn ph bin v ng vai tr quan trngtrong i sng con ngi.V d quanh ta c rt nhiu sn phm nhng nh lvi sng, ni cm in, iu ha, in thoi di ng, t, my bay, tu thy, ccu o, c cu chp hnh thng minh, robot v.v ta c th thy hin nay hthng nhng c mt mi lc mi ni trong cuc sng ca chng ta.

    Qua mn hc K thut Vi x l, chng em hiu thm v cc h thng nhngtrong thc t, v c im, tnh u vit cng nh tnh ng dng ca chng ivi con ngi. Vi mong mun lm r cc kin thc hc v gii thiu ccng dng c bn ca h thng nhng, nhm chng em a ra m hnh thit kng h thi gian thc mt sn phm rt quen thuc v cn thit trong isng.

    Do thi gian thc hin v kin thc cn hn ch nn cn nhiu sai st trong qutrnh thc hin ti, rt mong c s b sung ng gp ca cc thy c vcc bn.

    Chng em xin chn thnh cm n cc thy c trong Vin in t Vin thng,cm n thy V Song Tng tn tnh hng dn v gip chng em thc

    hon thnh ti ny.

  • 7/31/2019 VXL Bao-cao

    4/26

    4

    2.Gii thiu v nhm v timeline cng vic:

    Nhm chng em gm 4 thnh vin nh sau :

    1.Nguyn Vn Trng SHSV:20082842 (A) ( trng nhm)2.Nguyn Vn Trng 20083543 (B)3. c Cng 200832784.Nguyn Ngc Vinh 20083169

    3.Timeline cng vic ca nhm:

    Cng vic Phn cng

    Nghin cu ti,tm hiu ti liu C nhm

    V mch bng Orcad, M phng bng Proteus Cng + Vinh

    Thit k mch bng tay Trng A

    Giao tip vi my tnh Trng B

    Vit bo co Cng

  • 7/31/2019 VXL Bao-cao

    5/26

    5

    4.M t h thng :

    ti nhm thit k 1 b ng h thi gian thc m bo t cp nht thi gianca h thng v hin th gi tr ln LCD . Vi thit k s dng c ngun ngoi v PINVBat lm cho h thng hot ng c khi mt in th h thng thi gian thc vn hotng.

    Ngoi ra ti cn c tng tc vi phm bm nhm Reset h thng.

    5.S m phng trn PROTEUS

    RE3/MCLR/VPP1

    RA1/AN1/C12IN1-3

    RA2/AN2/VREF-/CVREF/C2IN+4

    RA4/T0CKI/C1OUT6

    RA5/AN4/SS/C2OUT7

    RB0/AN12/INT33

    RB1/AN10/C12IN3-34

    RB2/AN835

    RA7/OSC1/CLKIN13

    RA6/OSC2/CLKOUT14

    RD5/P1B28

    RD6/P1C29

    RD7/P1D30

    RC4/SDI/SDA23

    RC5/SDO24

    RC3/SCK/SCL18

    RC2/P1A/CCP117

    RC1/T1OSI/CCP216

    RC0/T1OSO/T1CKI15

    RB7/ICSPDAT40

    RB6/ICSPCLK39

    RB5/AN13/T1G38

    RB4/AN1137

    RD322

    RD221RD120

    RD019

    RC7/RX/DT26

    RC6/TX/CK25

    RE2/AN710

    RE1/AN69

    RE0/AN58

    RA3/AN3/VREF+/C1IN+5

    RD427

    RB3/AN9/PGM/C12IN2-36

    RA0/AN0/ULPWU/C12IN0-2

    U1

    PIC16F887

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3 LCD

    LM016L

    X1CRYSTAL

    R1

    4.7k

    R24.7k

    D1

    LED-YELLOW

    R3

    4.7k

    R4

    4.7k

    R5

    1k

    VBAT3

    X11

    X2 2

    SCL6

    SDA5

    SOUT7

    U2

    DS1307

  • 7/31/2019 VXL Bao-cao

    6/26

    6

    1. Tng quan v cc khi :

    a. Tng quan v PIC16F877A :S chn ca Pic16f877a :

    Pic16f877a c 5 cng vo ra: PortA(RA0-RA5), PortB(RB0-RB7), PortC(RC0-

    RC7), PortD(RD0-RD7), PortE(RE0-RE2). C 3 b nh thi: Timer0, Timer1,

    Timer2. 8K b nh chng trnh flash.

    T chc b nh :

  • 7/31/2019 VXL Bao-cao

    7/26

    7

    C 3 khi b nh trong pic16F877A: b nh chng trnh ,b nh d liu v

    khi b nhEEPROM. B nh chng trnh v b nh d liu c ng bus ring v

    vy c th truy cp vo tng b nh mt cch ring r.

    B m chng trnh c 13 bit v vy khng gian a ch s l 8k word x 8bit.

    Truy cp ngoi vng khng gian trn s gy li.

    B nh d liu c chia thnh 4 bank (Bank0Bank3) ,trong cc bank cha cc

    thanh ghi thng v cc thanh ghi chc nng c bit. Bank c chn ph thuc vo

    bit RP1 v RP0 (bit th 6 v bit th 5) ca thanh ghi trng thi status.

    RP1:RP0 Bank

    00 0

    01 1

    10 2

    11 3

    Cc thanh ghi chc nng c bit c CPU v b ngoi vi s dng iu khin cc

    thit b. Cc thanh ghi ny hot ng nh mt thanh RAM tnh.

    Thanh ghi trng thi cha trng thi s hc ca ALU,trng thi Reset v cc bit

    chn bank b nh d liu.

    Cc cng vo ra ca pic:

    + Port A: c 6 bit (tng ng vi 6 chn RA0RA5) cc chn ca cng A c tch hp

    mt s chc nng ngoi vi, nu mt thit b ngoi vi c enable th cng ny s khng

    hot ng nh mt cng vo ra .

  • 7/31/2019 VXL Bao-cao

    8/26

    8

    Bnh thng Port A s l mt cng vo ra 2 chiu. Thanh ghi xc inh chiu tng ng

    ca cc chn port A l thanh ghi TrisA. Cc bit thanh ghi TrisA bng 1 s xc nh

    cc chn port A l u vo ngc li s l u ra.

    + Port B: rng 8 bit(tng ng vi 8 chn RB0RB7), l mt cng vo ra 2 chiu.

    Thanh ghi qui inh chiu ca cng B l thanh ghi Tris B. Thit lp cc bit thanh ghi

    TrisB bng 1 s lm cho cng B l cng vo ngc li s l cng ra.

    + Port C: rng 8 bit(tng ng vi cc chn RC0RC7), bnh thng n l mt cng

    vo ra 2 chiu, thanh ghi qui nh chiu ca cng l thanh ghi TrisC. Cc chn

    RC3,RC4 dng kt ni truyn nhn thng tin vi cc thit b ngoi vi.

    + Port D: rng 8 bit (RD0RD7),n c th l cng vo hoc cng ra. Port D c th

    c cu hnh nh mt cng vi x l rng 8 bit (cng slave song song) bng cch

    thit lp bit iu khin PSPSTATUS (TrisE.4). ch ny th u vo la tn hiu

    TTL.

    + Port E: rng 3 bit(RE0RE2), c cu hnh l u ra hoc u vo. Port E c th l

    u vo iu khin I/O khi bit PSPSTATUS (TrisE.4) c thit lp.

    T hnh v ta c th thy, pic16F877A c 2 chn Vcc v 2 chn GND, pic c

    th hot ng c ta phi cp ngun cho tt c cc chn ny.

    Ngoi cp ngun cung cp ta phi cp ngun xung daong cho vi iu khin hot

    ng. ta s dng mt thch anh 20MHz cp xung dao ng. ngun dao ng c cp

    thng qua 2 chn 13 v 14 ca pic.

    Mch reset cho vi iu khin l mt cng tc h thng qua chn MCLR ca vi iu

    khin. mch s thc hin reset khi chn ny t mc logic 1 xung logic 0. khi cng tc

    h th chn ny lun mang mc logic 1 do lun c ni vi ngun thng qua mt

    in tr hn dng R1, in tr ny phi c gi tr nh hn hoc bng 10k m bo

    in p cung cp chovi iu khin.

  • 7/31/2019 VXL Bao-cao

    9/26

    9

    b.Khi thi gian thc DS1307:

    DS1307 l chip thi gian thc hay RTC (Read time clock). y l mt IC tch

    hp cho thi gian bi v tnh chnh xc v thi gian tuyt i cho thi gian : Th,

    ngy,thng, nm, gi, pht, giy. Chip ny c 7 thanh ghi 8 bit mi thanh ghi ny

    cha : Th , ngy, thng, nm, gi , pht, giy. Ngoi ra DS1307 cn cha 1 thanh

    ghi iu khin ng ra ph v 56 thanh ghi trng cc thanh ghi ny c th dng nh l

    RAM. DS1307 c c thng qua chun truyn thngI2C nn do c c v

    ghi t DS1307 thng qua chun truyn thng ny. Do n c giao tip chun I2C

    nn cu to bn ngoi n rt n gin.

    - DS1307 l mt IC thi gian thc vi ngun cung cp nh, dng cp nht thi

    gian v ngy thng vi 56 bytes SRAM. a ch v d liu c truyn ni tip qua 2

    ng bus 2 chiu. N cung cp thng tin v gi, pht, giy, th, ngy, thng,

    X1CRYSTAL

    D1LED-YELLOW

    R34.7k

    R44.7k

    R51k

    VBAT3

    X11

    X22

    SCL6

    SDA5

    SOUT7

    U2

    DS1307

  • 7/31/2019 VXL Bao-cao

    10/26

    10

    nm.Ngy cui thng s t ng c iu chnh vi cc thng nh hn 31 ngy, bao

    gm c vic t ngnhy nm. ng h c th hot ng dng 24h hoc 12h vi

    ch th AM/PM. DS1307 c mt mch cm bin in p dng d cc in p li v

    t ng ng ngt vi ngun pin cung cp.

    - DS 1307 hot ng vi vai tr slave trn ng bus ni tip. Vic truy cp c thi

    hnh vi ch th START v mt m thit b nht nh c cung cp bi a ch cc

    thanh ghi. Tip theo cc thanh ghi s c truy cp lin tc n khi ch th STOP

    c thc thi.

    M t hot ng ca cc chn:

    + X1 v X2 l u vo dao ng cho DS1307. Cn dao ng thch anh 32.768Khz.

    Vbatl ngun nui cho chip. Ngun ny t ( 2V- 3.5V) ta ly pin c ngun 3V.

    y l ngun cho chip hot ng lin tc khi khng c ngun Vcc m DS1307 vn

    hot ng theo thi gian.

    + Vccl ngun cho giao tip I2C. in p cung cp l 5V chun v c dng

    chung vi vi iu khin. Nu Vcc khng c m Vbat c th DS1307 vn hot ng

    bnh thng nhng m khng ghi v c d liu c.

    +) GND l ngun MASS chung cho Vcc v VBAT

    + SCL(serial clock input): SCL c s dng ng b s chuyn d liu

    trn ng dy ni tip.

    + SDA(serial data input/out): l chn vo ra cho 2 ng dy ni tip. Chn

    SDA thit k theo kiu cc mng h , i hi phi c mt in tr ko trong khihot ng.

    + SQW/OUT(square wave/output driver)- khi c kch hot th bit SQWE

    c thit lp 1, chn SQW/OUT pht i 1 trong 4 tn s

    (1Hz,4kHz,8kHz,32kHz). Chn ny cng c thit k theo kiu cc mng h

  • 7/31/2019 VXL Bao-cao

    11/26

    11

    v vy n cng cn c mt in tr ko trong. Chn ny s hot ng khi c Vcc

    v Vbat c cp.

    c. Khi mn hnh LCD1602.

    hin th cc thng s trong qu trnh giao tip gia ngi iu khin vi h

    thng nh xem ngy gi v xem cc thng s khi thc hin iu khin h thng

    (Active).S dng LCD text 16x2.

    RE3/MCLR/VPP1

    RA1/AN1/C12IN1-3

    RA2/AN2/VREF-/CVREF/C2IN+4

    RA4/T0CKI/C1OUT6

    RA5/AN4/SS/C2OUT7

    RB0/AN12/INT33

    RB1/AN10/C12IN3-34

    RB2/AN835

    RA7/OSC1/CLKIN13

    RA6/OSC2/CLKOUT14

    RD5/P1B28

    RD6/P1C29

    RD7/P1D30

    RC4/SDI/SDA23

    RC5/SDO24

    RC3/SCK/SCL18

    RC2/P1A/CCP117

    RC1/T1OSI/CCP216

    RC0/T1OSO/T1CKI15

    RB7/ICSPDAT40

    RB6/ICSPCLK39

    RB5/AN13/T1G38

    RB4/AN1137

    RD322

    RD221

    RD1 20RD0

    19

    RC7/RX/DT26

    RC6/TX/CK25

    RE2/AN710

    RE1/AN69

    RE0/AN58

    RA3/AN3/VREF+/C1IN+5

    RD427

    RB3/AN9/PGM/C12IN2-36

    RA0/AN0/ULPWU/C12IN0-2

    U1

    PIC16F887

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3

    LM016L

    R14.7k

    R24.7k

  • 7/31/2019 VXL Bao-cao

    12/26

    12

    S chn ca LCD 1602a

    Chc nng cc chn:

    Chn s Tn Chc nng

    1 Vss Chn ni t cho LCD, khi thit k mch ta ni chn ny vi

    GND ca mch iu khin

    2 Vdd Chn cp ngun cho LCD, khi thit k mch ta ni chn ny vi

    VCC=5V ca mch iukhin

    3 Vee Chn ny dng iu chnh tng phn ca LCD.

    4 RS Chn chn thanh ghi (Register select). Ni chn RS vi logic 0

    (GND) hoc logic1 (VCC) chn thanh ghi.

    + Logic 0: Bus DB0-DB7 s ni vi thanh ghi lnh IR ca

    LCD ( ch ghi -write) hoc ni vi b m a ch ca

    LCD ( ch c - read)

  • 7/31/2019 VXL Bao-cao

    13/26

    13

    + Logic 1: Bus DB0-DB7 s ni vi thanh ghi d liu DR bn

    trong LCD.

    5 R/W Chn chn ch c/ghi (Read/Write). Ni chn R/W vi logic

    0 LCD hot ng ch ghi, hoc ni vi logic 1

    LCD ch c.

    6 E Chn cho php (Enable). Sau khi cc tn hiu c t ln bus

    DB0-DB7, cc lnh ch c chp nhn khi c 1 xung cho php

    ca chn E.

    + ch ghi: D liu bus s c LCD chuyn vo(chp

    nhn) thanh ghi bn trong n khi pht hin mt xung (high-to-

    low transition) ca tn hiu chn E.

    + ch c: D liu s c LCD xut ra DB0-DB7 khi pht

    hin cnh ln (low-to-high transition) chn E v c LCD gi

    bus n khi no chn E xung mc thp.

    7-14 DB0-

    DB7Tm ng ca bus d liu dng trao i thng tin vi MPU.C 2 ch s dng 8 ng bus ny :

    + Ch 8 bit : D liu c truyn trn c 8 ng, vi bit

    MSB l bit DB7.

    + Ch 4 bit : D liu c truyn trn 4 ng t DB4 ti

    DB7, bit MSB l DB7.

    15 Lamp+ n LCD

    16 Lamp- n LCD

  • 7/31/2019 VXL Bao-cao

    14/26

    14

    d. Code ca chng trnh m phng :2. #define W 03. #define F 14.5. // register files6. #byte INDF =0x007. #byte TMR0 =0x018. #byte PCL =0x029. #byte STATUS =0x0310.#byte FSR =0x0411.#byte PORTA =0x0512.

    #byte PORTB =0x0613.#byte PORTC =0x0714.#byte PORTD =0x0815.#byte PORTE =0x0916.17.#byte EEDATA =0x10C18.#byte EEADR =0x10D19.#byte EEDATH =0x10E20.#byte EEADRH =0x10F21.#byte ADCON0 =0x1F22.#byte ADCON1 =0x9F23.#byte ADRESH =0x9F24.#byte ADSESL =0x9F25.26.#byte PCLATH =0x0a27.#byte INTCON =0x0b28.#byte PIR1 =0x0c29.#byte PIR2 =0x0d30.#byte PIE1 =0x8c31.#byte PIE2 =0x8d32.33.#byte OPTION_REG =0x8134.#byte TRISA =0x8535.#byte TRISB =0x8636.#byte TRISC =0x8737.#byte TRISD =0x88

  • 7/31/2019 VXL Bao-cao

    15/26

    15

    38.#byte TRISE =0x8939.40.#byte EECON1 =0x18C41.#byte EECON2 =0x18D42.43.//DINH NGHIA BIT44.#bit ra5 =0x05.545.#bit ra4 =0x05.446.#bit ra3 =0x05.347.#bit ra2 =0x05.248.#bit ra1 =0x05.149.#bit ra0 =0x05.050.51.#bit rb7 =0x06.752.#bit rb6 =0x06.653.#bit rb5 =0x06.554.#bit rb4 =0x06.455.#bit rb3 =0x06.356.#bit rb2 =0x06.257.#bit rb1 =0x06.158.#bit rb0 =0x06.059.60.#bit rC7 =0x07.761.#bit rC6 =0x07.662.#bit rC5 =0x07.563.#bit rC4 =0x07.464.#bit rC3 =0x07.365.#bit rC2 =0x07.266.#bit rC1 =0x07.167.#bit rC0 =0x07.068.69.#bit rD7 =0x08.770.

    #bit rD6 =0x08.671.#bit rD5 =0x08.572.#bit rD4 =0x08.473.#bit rD3 =0x08.374.#bit rD2 =0x08.275.#bit rD1 =0x08.176.#bit rD0 =0x08.0

  • 7/31/2019 VXL Bao-cao

    16/26

    16

    77.78.#bit rE2 =0x09.279.#bit rE1 =0x09.180.#bit rE0 =0x09.081.82.83.#bit trisa5 =0x85.584.#bit trisa4 =0x85.485.#bit trisa3 =0x85.386.#bit trisa2 =0x85.287.#bit trisa1 =0x85.188.#bit trisa0 =0x85.089.90.#bit trisb7 =0x86.791.#bit trisb6 =0x86.692.#bit trisb5 =0x86.593.#bit trisb4 =0x86.494.#bit trisb3 =0x86.395.#bit trisb2 =0x86.296.#bit trisb1 =0x86.197.#bit trisb0 =0x86.098.99.#bit trisc7 =0x87.7100. #bit trisc6 =0x87.6101. #bit trisc5 =0x87.5102. #bit trisc4 =0x87.4103. #bit trisc3 =0x87.3104. #bit trisc2 =0x87.2105. #bit trisc1 =0x87.1106. #bit trisc0 =0x87.0107.108. #bit trisd7 =0x88.7109.

    #bit trisd6 =0x88.6110. #bit trisd5 =0x88.5111. #bit trisd4 =0x88.4112. #bit trisd3 =0x88.3113. #bit trisd2 =0x88.2114. #bit trisd1 =0x88.1115. #bit trisd0 =0x88.0

  • 7/31/2019 VXL Bao-cao

    17/26

    17

    116.117. #bit trise2 =0x89.2118. #bit trise1 =0x89.1119. #bit trise0 =0x89.0120.121. // INTCON Bits for C122. #bit gie = 0x0b.7123. #bit peie = 0x0b.6124. #bit tmr0ie = 0x0b.5125. #bit int0ie = 0x0b.4126. #bit rbie = 0x0b.3127. #bit tmr0if = 0x0b.2128. #bit int0if = 0x0b.1129. #bit rbif = 0x0b.0130.131. // PIR1 for C132. #bit pspif = 0x0c.7133. #bit adif = 0x0c.6134. #bit rcif = 0x0c.5135. #bit txif = 0x0c.4136. #bit sspif = 0x0c.3137. #bit ccp1if = 0x0c.2138. #bit tmr2if = 0x0c.1139. #bit tmr1if = 0x0c.0140.141. //PIR2 for C142. #bit cmif = 0x0d.6143. #bit eeif = 0x0d.4144. #bit bclif = 0x0d.3145. #bit ccp2if = 0x0d.0146.147. // PIE1 for C148.

    #bit adie = 0x8c.6149. #bit rcie = 0x8c.5150. #bit txie = 0x8c.4151. #bit sspie = 0x8c.3152. #bit ccp1ie = 0x8c.2153. #bit tmr2ie = 0x8c.1154. #bit tmr1ie = 0x8c.0

  • 7/31/2019 VXL Bao-cao

    18/26

    18

    155.156. //PIE2 for C157. #bit osfie = 0x8d.7158. #bit cmie = 0x8d.6159.

    #bit eeie = 0x8d.4160.161. // OPTION Bits162. #bit not_rbpu = 0x81.7163. #bit intedg = 0x81.6164. #bit t0cs = 0x81.5165. #bit t0se = 0x81.4166. #bit psa = 0x81.3167. #bit ps2 = 0x81.2168. #bit ps1 = 0x81.1169. #bit ps0 = 0x81.0170.171. // EECON1 Bits172. #bit eepgd = 0x18c.7173. #bit free = 0x18C.4174. #bit wrerr = 0x18C.3175. #bit wren = 0x18C.2176. #bit wr = 0x18C.1177. #bit rd = 0x18C.0178.179. //ADCON0180. #bit CHS0 =0x1F.3181. #bit CHS1 =0x1F.4182. #bit CHS2 =0x1F.5183.184. void write_DS1307(int8 address,int8 data)185. {186. shortint status;187.

    i2c_start();188. i2c_write(0xd0);189. i2c_write(address);190. i2c_write(data);191. i2c_stop();192. i2c_start();193. status=i2c_write(0xd0);

  • 7/31/2019 VXL Bao-cao

    19/26

    19

    194. while(status==1)195. {196. i2c_start();197. status=i2c_write(0xd0);198.

    }199. }200. //==========================201. // read data one byte from DS1307202. //==========================203. int8 read_DS1307(int8 address)204. {205. BYTE data;206. i2c_start();207. i2c_write(0xd0);208. i2c_write(address);209. i2c_start();210. i2c_write(0xd1);211. data=i2c_read(0);212. i2c_stop();213. return(data);214. }215. // -----------------216. void ds1307_int(void)217. {218. int temp;219. temp=read_DS1307(0x00);220. temp=temp&0x80;221. if(temp==0x80)222. write_DS1307(0x00,0x00);223. temp=read_DS1307(0x07);224. temp=temp&0x90;225. if(temp!=0x90)226.

    write_DS1307(0x07,0x90);227. }228.229. #include230.231. #define LCD_RS PIN_D2232. //#define LCD_RW PIN_A1

  • 7/31/2019 VXL Bao-cao

    20/26

    20

    233. #define LCD_EN PIN_D3234.235. #define LCD_D4 PIN_D4236. #define LCD_D5 PIN_D5237.

    #define LCD_D6 PIN_D6238. #define LCD_D7 PIN_D7239.240. // misc display defines-241. #define Line_1 0x80242. #define Line_2 0xC0243. #define Clear_Scr 0x01244.245. // prototype statements246. #separate void LCD_Init ( void );// ham khoi tao

    LCD247. #separate void LCD_SetPosition ( unsignedint cX

    );//Thiet lap vi tri con tro248. #separate void LCD_PutChar ( unsignedint cX );//

    Ham viet1kitu/1chuoi len LCD249. #separate void LCD_PutCmd ( unsignedint cX) ;//

    Ham gui lenh len LCD250. #separate void LCD_PulseEnable ( void );// Xung

    kich hoat

    251. #separate void LCD_SetData ( unsignedint cX );//Dat du lieu len chan Data

    252. // D/n Cong253. #use standard_io (C)254. #use standard_io (D)255.256. //khoi tao

    LCD**********************************************257. #separate void LCD_Init ( void )258.

    {259. LCD_SetData ( 0x00 );260. delay_ms(200); /* wait enough time after

    Vdd rise >> 15ms */261. output_low ( LCD_RS );// che do gui lenh262. LCD_SetData ( 0x03 ); /* init with specific

    nibbles to start 4-bit mode */

  • 7/31/2019 VXL Bao-cao

    21/26

    21

    263. LCD_PulseEnable();264. LCD_PulseEnable();265. LCD_PulseEnable();266. LCD_SetData ( 0x02 ); /* set 4-bit interface

    */267. LCD_PulseEnable(); /* send dual nibbleshereafter, MSN first */

    268. LCD_PutCmd ( 0x2C ); /* function set (alllines, 5x7 characters) */

    269. LCD_PutCmd ( 0x0C ); /* display ON, cursoroff, no blink */

    270. LCD_PutCmd ( 0x06 ); /* entry mode set,increment & scroll left */

    271. LCD_PutCmd ( 0x01 ); /* clear display */272. }273.274. #separate void LCD_SetPosition ( unsignedint cX )275. {276. /* this subroutine works specifically for 4-bit

    Port A */277. LCD_SetData ( swap ( cX ) | 0x08 );278. LCD_PulseEnable();279. LCD_SetData ( swap ( cX ) );280. LCD_PulseEnable();281. }282.283. #separate void LCD_PutChar ( unsignedint cX )284. {285. /* this subroutine works specifically for 4-bit

    Port A */286. output_high ( LCD_RS );287. LCD_PutCmd( cX );288.

    output_low ( LCD_RS );289. }290.291. #separate void LCD_PutCmd ( unsignedint cX )292. {293. /* this subroutine works specifically for 4-bit

    Port A */

  • 7/31/2019 VXL Bao-cao

    22/26

    22

    294. LCD_SetData ( swap ( cX ) ); /* send highnibble */

    295. LCD_PulseEnable();296. LCD_SetData ( swap ( cX ) ); /* send low

    nibble */297. LCD_PulseEnable();298. }299. #separate void LCD_PulseEnable ( void )300. {301. output_high ( LCD_EN );302. delay_us ( 3 ); // was 10303. output_low ( LCD_EN );304. delay_ms ( 3 ); // was 5305. }306.307. #separate void LCD_SetData ( unsignedint cX )308. {309. output_bit ( LCD_D4, cX & 0x01 );310. output_bit ( LCD_D5, cX & 0x02 );311. output_bit ( LCD_D6, cX & 0x04 );312. output_bit ( LCD_D7, cX & 0x08 );313. }

    6.Kt qu m phng :

  • 7/31/2019 VXL Bao-cao

    23/26

    23

    Mch in :

    RE3/MCLR/VPP1

    RA1/AN1/C12IN1-3

    RA2/AN2/VREF-/CVREF/C2IN+4

    RA4/T0CKI/C1OUT6

    RA5/AN4/SS/C2OUT7

    RB0/AN12/INT33

    RB1/AN10/C12IN3-34

    RB2/AN835

    RA7/OSC1/CLKIN13

    RA6/OSC2/CLKOUT14

    RD5/P1B28

    RD6/P1C29

    RD7/P1D30

    RC4/SDI/SDA23

    RC5/SDO24

    RC3/SCK/SCL18

    RC2/P1A/CCP117

    RC1/T1OSI/CCP216

    RC0/T1OSO/T1CKI15

    RB7/ICSPDAT40

    RB6/ICSPCLK39

    RB5/AN13/T1G38

    RB4/AN1137

    RD322

    RD221

    RD120

    RD019

    RC7/RX/DT 26

    RC6/TX/CK25

    RE2/AN710

    RE1/AN69

    RE0/AN58

    RA3/AN3/VREF+/C1IN+5

    RD427

    RB3/AN9/PGM/C12IN2-36

    RA0/AN0/ULPWU/C12IN0-2

    U1

    PIC16F887

    D7

    14

    D6

    13

    D5

    12

    D4

    11

    D3

    10

    D2

    9

    D1

    8

    D0

    7

    E

    6

    RW

    5

    RS

    4

    VSS

    1

    VDD

    2

    VEE

    3 LC

    LM016L

    X1CRYST

    R14.7k

    R24.7k

    D1

    LED-YELLOW

    R34.7k

    R44.7k

    R51k

    VBAT3

    X11

    X22

    SCL6

    SDA5

    SOUT7

    U2

    DS1307

  • 7/31/2019 VXL Bao-cao

    24/26

    24

    7.Mc hon thnh cng vic :

    Nhn chung d n hon thnh v mch m phng v chy n nh khu cabi tp ln.

    8.Cc phn mm s dng trong qu trnh m phng :

    MPlab Ver 8.4 , Proteus ver 7.7 , Visual Studio 2010, Orcad 10.5

  • 7/31/2019 VXL Bao-cao

    25/26

    25

  • 7/31/2019 VXL Bao-cao

    26/26

    9.Ti liu tham kho :

    Website : Google.com

    Picvietnam.com

    Dientuvietnam.net

    Ebook : Tutorial PIC 16F877A

    Library Microchip

    Datasheet Pic16f877a , DS1307 , LCD 1602.