#include<p18cxxx.h>
#include<delays.h>
#include<string.h>
#pragma config OSC=RC
#pragma config WDT=OFF
#pragma config LVP=OFF
#pragma config BOR=OFF
#pragma config MCLRE=OFF
#define LCD PORTB
#define SDATA PORTBbits.RB2
#define CLOCK PORTBbits.RB1
#define E PORTBbits.RB0
#pragma code
void clockShiftReg(void)
{
CLOCK=1;
CLOCK=0;
}
void clearShiftReg(void)
{
char a;
SDATA=0;
for(a=0;a<6;a++)
clockShiftReg();
}
void sendNibble(char nib,char RS)
{
char a;
clearShiftReg();
SDATA=RS;
clockShiftReg();
for(a=0;a<4;a++)
{
SDATA=nib&1;
clockShiftReg();
nib>>=1;
}
E=1;
E=0;
}
void SendLCDdata(char data,char RS)
{
sendNibble(data>>4,RS);
sendNibble(data,RS);
}
void InitLCD(void)
{
Delay1KTCYx(20);
sendNibble(3,0);
Delay1KTCYx(4);
sendNibble(3,0);
Delay1KTCYx(12);
SendLCDdata(0x32,0);
SendLCDdata(0x28,0);
SendLCDdata(0x08,0);
SendLCDdata(0x01,0);
Delay1KTCYx(2);
SendLCDdata(0x06,0);
SendLCDdata(0x0c,0);
clearShiftReg();
}
void main(void)
{
ADCON1=0x7f;
TRISB=0;
PORTB=0;
InitLCD();
while(1)
{
SendLCDdata(0x80,0);
SendLCDdata(0x41,1);
}
}
Пример 7.12 PIC18 Си стр284-ЖКИ последовательная передача
- Просмотров: 1003