Professional Documents
Culture Documents
MC LC
CHNG I : PHN CNG PIC16F.......................................................................................... 4
I.KIN TRC .......................................................................................................................... 4
1.Kin trc Von neumann .................................................................................................... 4
2.Kin trc harvard ............................................................................................................. 4
II.INSTRUCTION PIPELINING ........................................................................................... 5
III.KCH THC T LNH ................................................................................................. 9
IV.THIT K PHN CNG CHO PIC .............................................................................. 10
1.Mch nguyn l.................................................................................................................. 10
2.Chun ICSP(In-Circurt Serial Programming) .................................................................... 11
3.Cc tnh nng c bit, cc bit cu hnh ca PIC16F887................................................... 11
CHNG II : XUT NHP I/O PORT .................................................................................. 21
I.MC CH TH NGHIM ................................................................................................ 21
II.DNG C TH NGHIM ............................................................................................... 21
III.C S L THUYT ....................................................................................................... 21
1.Thanh ghi qui nh tn hiu x l ...................................................................................... 21
2.Chc nng ca thanh ghi TRIS ......................................................................................... 22
3. Chc nng ca thanh ghi PORT ...................................................................................... 22
4.Nhng thanh ghi c bit ch c ring PORTB .............................................................. 23
IV.BI TP THC HNH .................................................................................................. 26
V.BI TP T GII ........................................................................................................... 32
CHNG III : ADC MODULE................................................................................................ 33
I.MC CH TH NGHIM ................................................................................................ 33
II.DNG C TH NGHIM ................................................................................................. 33
III.C S L THUYT ...................................................................................................... 33
1.Tn hiu tng t v tn hiu s ........................................................................................ 33
2.ADC ca vi iu khin PIC16F887 ................................................................................... 34
3.Lm vic vi LCD 16x2 ................................................................................................... 38
IV.BI TP THC HNH .................................................................................................. 40
V.BI TP T GII ............................................................................................................. 44
1
. .................................................................................. 62
Von Neumann
Architecture
8-bit
Bus
CPU
Program
& Data
Memory
Harvard
Architecture
8-bit
Bus
14-bit
Bus
CPU
Data
Memory
Program
Memory
10
11
12
15
CPD (Code Protect Data): Bit ny tch cc mc thp, khi cu hnh bng 0, cho php bo v
d liu trong EEPROM, s khng th c li d liu EEPROM t PIC bng bt c chng trnh
vi s h tr ca thit b np no.
nh ngha tring Hi tech C:
// Data EE Read Protect
#define DUNPROTECT
0x3FFF
// Do not read protect EEPROM data
#define CPD
0x3F7F
// Read protect EEPROM data
CP(Code Protect): Bo v ton b b nh chng trnh, tch cc mc thp, khi c xa
bng 0, khng th c li ni dung t b nh chng trnh ca PIC.Ch : trong qu trnh g ri
(Debug), CP khng cho php, MPLAB s cnh bo v yu cu nu c tnh cho php CP (CP=0)
trong qu trnh g ri.
// Code Protect
#define UNPROTECT
0x3FFF
// Code is not protected
#define CP
0x3FBF
// Code is protected
#define PROTECT
CP
//alternate
MCLRE(Master Clear Enable): y l tnh nng cho php PIC c th b reset bng chn
MCLR. Khi bit MCLRE(tch cc mc thp) c cho php (b xa bng 0), th chn Master
Clear c th reset PIC khi c cp mc 0, v khi PIC hot ng, phi cp mc logic1. Mch
in trn chn MCLR nn dng nh hnh :
17
18
20
21
Hai thanh ghi ny c tng cng 14bit t ANS0 n ANS13 , s quy nh tn hiu lm vic
ca cc chn t AN0 n AN13 l tn hiu s hay tn hiu analog .
ANSX=0 : Cho php chn ANX x l tn hiu s .
ANSX=1 : Cho php chn ANX x l tn hiu tng t .
Trong : X= 0 13
2.Chc nng ca thanh ghi TRIS :
Trong cc chn x l tn hiu s , hot ng ca chn c th l ng ra (lm cho led chp tt,
kch transistor , iu khin hot ng IC....) , hay c th l ng vo (c trng thi nt nhn , c
encoder , c tn hiu t cm bin s....). Nh vy , khi to cho cc chn l ng ra hay ng
vo tn hiu s , chng ta cn ch n thanh ghi TRISX (X=A,B,C,D,E):
TRISXY
0
0
1
1
1
RXY
0
1
0
1
x
Kt qu
Ng ra mc thp(0V)
Ng ra mc cao(+5V)
Tng tr cao (R=)
Ng vo , tc ng mc thp
X l tn hiu tng t .
25
Ngt on-change
Xy ra trn c PORTB
Ch cn tn hiu logic thay i l xy ra ngt,
khng phn bit cnh ln hay cnh xung.
Cc bit khi to :
IOCBx , RBIE , RBIF , GIE
cho ln ngt tip theo c thc hin th
cn phi xa c ngt INTF v c ( hoc ghi)
vo thanh ghi PORTB.
26
}
}
//(-------------5-----------)
void delay(unsigned char counter) //Chng trnh con lm tng thi gian delay
{
unsigned char value=0;
while(counter>value)
{
value++;
_delay(100000);
//tr 1ms vi Fosc = 4MHz
}
}
void RB_0( )
{
RE1^=1;RE2= .RE1;
// led RE1 v led RE2 chp tt xen k
27
//delay 0.2s
}
void RB_1( )
{
RE1^=1;RE2 .RE1;
// led RE1 v led RE2 cng chp tt
delay(5);
//delay 0.5s
}
void RB_2( )
{
RE1= .;RE2= .;
// led RE1 sng v led RE2 tt
delay(1);
//delay 0.1s
RE1= .;RE2= .;
// led RE1 tat v LED2 sng
delay(7);
//delay 0.7s
}
*Bc 3: Bin dch chng trnh, np xung kt th nghim , tin hnh nhn cc nt nhn v
quan st 2 led.
*Bc 4: Thay i chng trnh nh sau:
Thm vo dng : (-------------1------------) on code sau:
IOCB0=IOCB1=IOCB2=1;
//Cho php ngt onchange chn B0,B1,B2
RBIE=1;
//Cho php ngt onchange ton PORTB
RBIF=0;
//Reset c ngt
PEIE=1;
//Cho php ngt ngoi vi
GIE=1;
//Cho php ngt ton cc
Xa cc dng 2,3,4.
Thm vo dng: (-------------5-----------) on code sau:
void interrupt isr( )
//Chng trnh con x l tt c ngt
{
if(RBIE&&RBIF)
//Chng trnh con cho ngt on-change
{
if(!RB0)
so_lan_nhan=0;
//nhn RB0
else if(!RB1) so_lan_nhan=1;
//nhn RB1
else if(!RB2) so_lan_nhan=2;
//nhn RB2
RBIF=0;
//Reset c ngt
}
}
*Bc 5: Bin dch chng trnh, np xung kt th nghim , tin hnh nhn cc nt nhn v
quan st 2 led.
*Bc 6: Nhn xt s khc nhau v tc p ng khi nhn nt nhn trc v sau khi sa code,
gii thch, rt ra kt lun:
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------28
31
32
Tn hiu tng t
Tn hiu s
33
VREF-
VREF+
Tn hiu tng t
34
35
Hai thanh ghi ADRESH v ADRESL l hai thanh ghi dng cha kt qu khi b ADC
chuyn i hon tt , b ADC ca vi iu khin PIC16F887 c phn gii 10-bit do cn hai
byte cha kt qu, tuy nhin kt qu c th lu theo hai kiu : canh tri (ADFM=0) v canh
phi (ADFM=1).
i vi nh dng kt qu bn tri : ADFM=0 th ta c th c kt qu nh sau :
phn gii 10-bit :
Kt qu = ADRESH*4+ADRESL >> 6
(1)
phn gii 8-bit :
Kt qu = ADRESH
(2)
i vi nh dng kt qu bn phi : ADFM=1 th ta c th c kt qu nh sau :
phn gii 10-bit :
Kt qu = ADRESH*256+ADRESL
(3)
phn gii 8-bit :
Kt qu = ADRESH*64+ADRESL>>2
(4)
R rng ta thy biu thc (1) v (4) gy kh khn trong vic lp trnh v thi gian cn tn
ton lu hn , do ta rt ra kt lun:
Khi cn c ADC 8-bit th cn nh dng kt qu bn tri(ADFM=0)
Khi cn c ADC 10-bit th cn nh dng kt qu bn phi(ADFM=1)
2.3 Ngt ADC :
Khi ADC cng c th to ra s kin ngt (ngt trong) , s kin ngt xy ra khi b ADC
chuyn i hon tt .
Bc 4 : Ti thiu cn phi khai bo 2 dng lnh sau (t en) trong chng trnh khi c
lin quan ti file LCD:
38
//Cc lnh c s dng cho lcd c th tham kho trong file LCD.c v d :
lcd_gotoxy(x,y); //Lnh ny dng di chuyn con tr i n cc v tr trn mn hnh lcd,
trong x l gi tr ca hng ngang (x=[0,1]) , y l gi tr ca hng dc(y=[0,15]).
lcd_putc(k t cn in); //Lnh ny dng in k t ln mn hnh lcd ti v tr con tr .
lcd_puts(chui cn in); //Lnh ny dng in chui ln mn hnh lcd ti v tr con tr ,
ch chui cn in nm gia hai du v k t cn in nm gia hai du .
lcd_putc(\f) ; //xa mn hnh lcd , sau con tr tr v v tr (0,0).
while(1)
{
}
}
*Ngoi ra cn c th s dng hm printf nhng cn khai bo nh sau :
#include<htc.h>
#include<stdio.h> //khai bo th vin cho hm printf
__CONFIG(.);
#include lcd.h
//khai bo th vin hm lcd.h
void main( )
{
lcd_init( );
//lnh khi to lcd
printf(In gia tri :%3d , bien2);
printf(In gia tri :%03d , bien2);
printf(In gia tri :%5.3d , bien2);
39
char bien2=6;
float bien1=19.66667 ;
unsigned int bien3=60000;
printf(In ra man hinh );
printf(In ra \n man hinh );
printf(In gia tri :%d , bien2);
printf(In gia tri :%3d , bien2);
while(1); printf(In gia tri :%03d , bien2);
printf(In gia tri :%5.3d , bien2);
}
//Hin th chui In gia tri :19.6666
void putch(charprintf(In
ki_tu) gia tri :%f , bien1);
printf(In gia tri :%3.2f , bien1);
//Hin th chui In gia tri : 19.67
{
lcd_putc(ki_tu);
printf(In gia tri :%d , bien3);
//Hin th chui In gia tri :-5536
}
printf(In
gia
tri
:%ld
,
bien3);
th cng
chuithc
In gia
tri :60000
Ch : Khi vit chng trnh c lin quan lcd//Hin
m phn
t khng
c lcd hay
lcd kt ni khng ng vi th vin lcd.h th con tr chng trnh s dng ngay lnh lcd_init();
IV.BI TP THC HNH :
Bi 1: Vit chng trnh c ADC 8 bit chn AN3 v thc hin theo yu cu sau :
Hin th gi tr thanh ghi ANSEL hng (0,0) ca LCD.
Hin th gi tr in p chn AN3 hng (0,1) ca LCD.
nh thi bng hm delay , in p tham chiu trong , Fosc = 4Mhz , giao tip LCD
bng th vin LCD.h
S phn cng :
41
44
45
46
TMR0=0
+
TMR0=1
+
TMR0=2
+
TMR0=3
+
:
1 1 1 1 1 1 1 1
TMR0=255
+
TMR0
255
Over flow
48
(2550) 4
50
T=
Trong :
T thi gian nh thi timer 1
TMR1L , TMR1H : thanh ghi cha gi tr m ca timer 1
FOSC : tn s hot ng ca vi iu khin
Prescaler : t l b chia .
3.2Thanh ghi iu khin timer1 :
52
T=
Trong
T
PR2
TMR2
Prescaler
Postscaler
Fosc
54
.;
.;
.;
.;
}
void putch(char c)
//Chng trnh con cho hm printf( )
{
lcd_putc(c);
}
void interrupt isr( )
{
if(TMR1IE&&TMR1IF)
//Ngt trn timer 1
{
ss++;
if(ss==60)
{
ss=0;
mm++;
if(mm==60)
{
mm=0;
hh++;
}
}
lcd_gotoxy(0,0);
printf("\fBay Gio La :\r\n %02d:%02d:%02d",hh,mm,ss);
TMR1H=239;
//Khi to gi tr m ban u cho timer1 (-------2--------)
TMR1L=255;
//
(-------3--------)
TMR1IF=0;
}
}
*Bc 3 : Np chng trnh xung kit th nghim , jumper J1(XTAL).Quan st lcd , v so snh
kt qu vi ng h thc, nhn xt :
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Da vo cng thc nh thi ca timer 1, chng minh nhng thng s cc dng (1),(2),(3):
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------58
59
60
61
63
65
66
67
68
*Bi 4 : Vit chng trnh to xung PWM 8 bit chn CCP2(RC1) vi tn s 15 KHz theo
yu cu sau (To mt project mi vi tn 04_04_ MSSV)::
Nhn nt nhn (khng gi ) chn RB0 ln 1 : rng xung 15% .
Nhn nt nhn (khng gi ) chn RB0 ln 2 : rng xung 30% .
Nhn nt nhn (khng gi ) chn RB0 ln 3 : rng xung 45% .
Nhn nt nhn (khng gi ) chn RB0 ln 4 : rng xung 60% .
Nhn nt nhn (khng gi ) chn RB0 ln 5 : rng xung 75% .
70
*Bi 5 :Vit chng trnh theo yu cu sau (To mt project mi vi tn 04_05_ MSSV):
Nhn RB0 ng c quay cng chiu kim ng h , PWM 10Khz , rng xung 90%.
Nhn RB1 ng c quay ngc chiu kim ng h , PWM 15Khz , rng xung 70%.
71
Hnh 45: S truyn nhn 8 bit theo giao thc song song v ni tip .
Cc thng s c bn trong truyn nhn ni tip :
Baud rate (tc baud ): truyn nhn ni tip xy ra thnh cng th cc thit b phi
thng nht vi nhau v khong thi gian ginh cho mt bit truyn , hay ni cch khc l tc
truyn phi c ci t ging nhau , tc ny gi l tc baud .Tc baud l s bit truyn
trong 1 giy . V d nu tc baud l 9600 th thi gian ginh cho mt bit truyn l 1/9600(s).
Frame (khung truyn ) : Khung truyn quy nh v s bit trong mi ln truyn , cc bit
bo nh start , stop , cc bit kim tra nh parity , ngoi ra s lng cc bit trong mt d liu cng
c quy nh bi khung truyn . Hnh trn m t v d v mt khung truyn theo UART , khung
truyn ny c bt u bng mt start bit , tip theo l 8 bit , sau l 1bit parity dng
kim tra d liu v cui cng l 2 bits stop .
Start bit : start bit l bit u tin c truyn trong mt frame , bit ny c nhim v bo
cho thit b nhn bit rng c mt gi d liu sp c truyn ti .Start bit l bit bt buc phi c
trong mt khung truyn .
Data : l s d liu m chng ta cn phi truyn nhn , data c th l gi 8 bit hay 9 bit
ty theo yu cu truyn nhn m ta quy nh .Trong truyn thng ni tip UART , bit c trng s
nh nht LSB(Least significant bit ) s c truyn trc , sau bit c trng s ln nht s
c truyn sau cng MSB(Most signnificant bit ).
Parity bit : parity dng kim tra d liu truyn c ng khng , c hai loi parity l
parity chn (event parity )v parity l (odd parity ) .
Stop bit : stop bit l mt hoc cc bit bo cho thit b rng cc bit c gi xong. Sau
khi nhn c stop bit , thit b nhn s tin hnh kin ra khung truyn m bo tnh chnh
xc ca d liu .Stop bit l bit bt buc xut hin trong khung truyn .
73
Trong :
FOSC l tn s hot ng ca vi iu khin .
n=SPBRGH:SPBRG
V d : Tnh tc baud 9600 ,vi iu kin cc bit khi to nh sau :
SYNC=0 ; BRG16=1; BRGH=1; Fosc= 4Mhz
Khi theo bng ta c :
9600= 4(+1)
n=103
Do : SPBRG=103 , SPBRGH=0;
IV:BI TP THC HNH :
Bi 1 :Vit chng trnh truyn nhn UART ca vi iu khin vi my tnh , iu khin
hot ng ca led theo yu cu sau :
Vi iu khin nhn mt s t my tnh v iu khin hai led RE1 va RE2 vi 4 trng thi
Nhn s 1: Hai led tt , gi ln my tnh chui "Number 1".
Nhn s 2: Hai led sng, gi ln my tnh chui "Number 2".
Nhn s 3:Led RE1 sng,RE2 tt ,gi li my tnh chui "Number 3".
Nhn s 4:Led RE1 tt ,RE2 sng ,gi li my chui "Number 4".
S khc :Hai led cng chp tt vi chu k _delay(100000);gi li my tnh chui "Other
numbers".
78
//Hai led tt
RE1=RE2=.;send_string("Number 2\r");
break;
case 2:
case 3:
RE1=0;RE2=.;
send_string("Number 3\r");
break;
case 4:
RE1=.;RE2=.;
send_string("Numer 4\r");
//RE2 tt , RE1 sng
break;
default:
RE1^=.;RE2=RE1;
//Hai led cng chp tt.
send_string("Other numbers\r");
break;
}
_delay(100000);
}
}
void interrupt isr()
{
if(RCIF)
{
data=RCREG;
}
}
void send_char(char c)
{
while(!TXIF);
TXREG=c;
}
void send_string(char *s)
{
while(*s)
send_char(*s++);
}
*Bc 3 : Np chng trnh vo kt th nghim , kt ni my tnh vi kt th nghim bng cng
COM(Nu s dng Laptop khng c cng COM th cn c cp USBCOM ).
80
81
Bi 5 : Vit chng trnh truyn nhn gia my tnh v vi iu khin vi yu cu sau : my tnh
hin th vn tc ng c trn Terminal , baud 9600, Fosc = 4Mhz .
82
83
PH LC
I.CA S CHNG TRNH :
Thanh Menu
Thanh Cng C
Ca s vit
chng trnh
84
3.Chn Next :
85
10
86
13
12
15
16
87
17
18
Tm gi tr
0,1(false, true)
0 = >255
-128=>127
-32768 => 32767
0=>65535
0=>255
-128=>127
88
32
32
32
32
0=>4294967295
-2147483648=>2147483647
1.755 .10-38 =>6.8056.1038
1.755 .10-38 =>6.8056.1038
Tn bin :
Tn bin bao gm cc k t t A ti Z ,cc s t 0 ti 9 v du _ , tn bin khng bt
u vi mt s v khng trng vi t kha .
V d :
2.Kiu con tr :
Khai bo con tr :
<Kiu con tr >
89
K hiu
+
*
/
%
5.Php ton gn :
Ton t
+=
-=
*=
/=
%=
V d
Biu thc
a+=8
a-=8
a*=8
a/=8
a%=8
Bng
a=a+8
a=a-8
a=a*8
a=a/8
a=a%8
V d
++a
a++
--a
a--
Bng
Tng bin a ln 1 n v.
V d
b>a
b>=a
b<a
b<=a
b==a
b!=a
ngha
Ln hn
Ln hn hoc bng
B hn
B hn hoc bng
Bng
Khng bng
90
AND
Tham s 2
0
1
0
1
OR
0
1
0
1
NOT
Tham s 1
0
0
1
1
&&
0
0
1
1
||
Kt qu
0
0
0
1
0
1
1
1
0
1
1
0
ngha
o bit
Dch tri
Dch phi
V d
a=~b
a=b<<2
a=b>>2
&
AND bit
c=a&b
OR bit
c=a|b
XOR bit
c=a^b
Kt qu
b=5
b=0b01011001
b=0b11101011
a=0b01101110
b=0b01101011
a=0b01101110
b=0b01101011
a=0b01101110
b=0b01101011
a=-5
a=0b01100100
b=0b00010110
c=0b01101010
c=0b01101111
c=0b00000101
91
12.Cu iu kin :
Cu iu kin c hai dng sau : if hoc if-else
Dng if :
if(<iu kin>)cu lnh ;
Nu <iu kin> ng th cu lnh c thc hin .
Nu <iu kin> sai th cu lnh khng c thc hin .
V d :
char a,b;
a=1, b=5;
if(a==1)
a=5;
b=6;
Kt qu : a=5 , b=6
Dng if-else :
if(<iu kin>)cu lnh 1 ; else cu lnh 2;
92
if(<iu kin>)
{cu lnh 1; cu lnh 2 ; cu lnh 3 ;}
else
{cu lnh 4 ; cu lnh 5;}
V d :
char a,b
c=1 ; b=5;
if(a==1)
{
a=5;
b=6;
}
else
b=3;
Kt qu : a=5 , b=6.
Ch :
char a,b;
a=1;b=5;
if(a==1)
a=5;
b=6;
else
93
switch(<la chn>)
{
case hng 1:
cu lnh 1:
..................
break;
case hng 2 :
cu lnh 5 ;
..................
break ;
default :
cu lnh n ;
..................
}
94
do
lnh 1;
lnh 2;
...........
lnh n;
while(<iu kin>);
Vng lp do_while() thc hin lnh 1 , lnh 2,.....,lnh n , sau xt <iu kin>
Nu iu kin ng th tip tc lp li thc hin lnh 1 , lnh 2 ....lnh n.
Nu iu kin sai th thot ra ngoi v thc hin lnh tip theo lnh while .
Khc vi vng lp while , vng lp do_while thc hin lnh bn trong t nht 1 ln , nu
iu kin sai .
95
96
table[0][1]
table[1][1]
table[2][1]
table[0][2]
table[1][2]
table[2][2]
table[0][3]
table[1][3]
table[2][3]
97
98
99
100
// reset LCD
lcd_put_byte(0,0x30);
for(i=0;i<5;i++){Nop();}
lcd_put_byte(0,0x30);
for(i=0;i<5;i++){Nop();}
lcd_put_byte(0,0x32);
for(i=0;i<10;i++){Nop();}
for(i=0;i<10;i++){Nop();}
for(i=0;i<10;i++){Nop();}
//
//
//
__delay_ms(100);
__delay_ms(100);
__delay_ms(100);
while(lcd_busy());
lcd_put_byte(0,FOUR_BIT & LINES_5X7);
// Set LCD
type
101
// display off
// display on
// clear display
// cursor shift
// clear display
LCD_DATA4_TRIS = 1;
LCD_DATA5_TRIS = 1;
LCD_DATA6_TRIS = 1;
LCD_DATA7_TRIS = 1;
LCD_RW = 1;
LCD_RS = 0;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
LCD_EN = 1;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
busy = LCD_DATA7;
LCD_EN = 0;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
LCD_EN = 1;
102
return busy;
}
unsigned char lcd_get_byte(unsigned char rs)
{
BYTE_VAL b;
LCD_DATA4_TRIS = 1;
LCD_DATA5_TRIS = 1;
LCD_DATA6_TRIS = 1;
LCD_DATA7_TRIS = 1;
LCD_RW = 1;
LCD_RS = 0;
if(rs) LCD_RS = 1;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
LCD_EN = 1;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
b.bits.b7 = LCD_DATA7;
b.bits.b6 = LCD_DATA6;
b.bits.b5 = LCD_DATA5;
b.bits.b4 = LCD_DATA4;
LCD_EN = 0;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
LCD_EN = 1;
//
__delay_us(20);
for(i=0;i<2;i++){Nop();}
b.bits.b3 = LCD_DATA7;
b.bits.b2 = LCD_DATA6;
b.bits.b1 = LCD_DATA5;
b.bits.b0 = LCD_DATA4;
103
TRISDbits.TRISD1
TRISDbits.TRISD3
TRISDbits.TRISD2
TRISDbits.TRISD4
TRISDbits.TRISD5
TRISDbits.TRISD6
TRISDbits.TRISD7
unsigned char;
// 8-bit unsigned
void lcd_init();
unsigned char lcd_busy();
unsigned char lcd_get_byte(unsigned char rs);
void lcd_put_byte(unsigned char a,unsigned char b);
void lcd_gotoxy(unsigned char col, unsigned char row);
void lcd_putc(char c);
void lcd_puts(const char* s);
//#endif
107