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.