Sie sind auf Seite 1von 14

Cu 1:

#define LEVEL PORTB


#define ADJ

PORTE.B2

#define START PORTA.B0


#define STOP

PORTD.B7

//

PWM-----CCP1/RC2

//

Led-----CCP1/RC2

unsigned char iLevel;


unsigned char code
Code7Seg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void main()
{
TRISB=0x00; ANSELH=0x00;
TRISE.B2=1; ANSEL.B7=0;
TRISA.B0=1; ANSEL.B0=0;
TRISD.B7=1;

TRISC.B2=0;PWM1_Init(1000);PWM1_Stop();
iLevel=EEPROM_Read(0x00);
if(iLevel>9) {iLevel=0;EEPROM_Write(0x00,iLevel);} else;
LEVEL=Code7Seg[iLevel];
while(1)
{
if(ADJ==0)
{
Delay_ms(50);
iLevel++;if(iLevel>9) iLevel=0;else;
EEPROM_Write(0x00,iLevel);LEVEL=Code7Seg[iLevel];
PWM1_Set_Duty(iLevel*10*255/100);
while(ADJ==0);Delay_ms(50);
}
else
if(START==0)
{
PWM1_Set_Duty(iLevel*10*255/100);
PWM1_Start();
}
else
if(STOP==0)
{
PWM1_Stop();
}
else;
}
}
Cu 2:

#define LED1

PORTD //Tens

#define LED2

PORTB //Units

#define Led

PORTC.B5

//

Sensor T1CKI/RC0

//

TxPC

RX/RC7

//

RxPC

TX/RC6

//

CodeRUN='1'; CodeSTOP='0' from PC

char Mode;//Mode='1': RUN;Mode='0':STOP


unsigned char iCount,iCountOld;//range in [0..24]
unsigned char code
Code7Seg[10]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char TXTiCount[6];
void interrupt()
{

if(RCIF_bit==1)
{
RCIF_bit=0;
Mode=UART1_Read();
}
else;
}

void main()
{
TRISD=0x00;
TRISB=0x00;ANSELH=0x00;
TRISC.B5=0;
TRISC.B0=1;
TRISC.B6=0;TRISC.B7=1;RCIE_bit=1;PEIE_bit=1;GIE_bit=1;UART1_Init(9600);

T1OSCEN_bit=0;TMR1CS_bit=1;T1CKPS1_bit=0;T1CKPS0_bit=0;T1SYNC_bit=1;TMR
1GE_bit=0;
TMR1ON_bit=1;iCount=TMR1L=0;LED1=LED2=Code7Seg[0];
Mode='0';

while(1)
{
if(Mode=='1') {Led=~Led;Delay_ms(1000);TMR1ON_bit=1;}
else if(Mode=='0') {Led=0;TMR1ON_bit=0;}
else;
if(TMR1L>=24+1) TMR1L=1;else;

iCount=TMR1L;
if(iCount!=iCountOld)

{
iCountOld=iCount;
WordToStrWithZeros(iCount,TXTiCount);
LED1=Code7Seg[TXTiCount[3]-48];
LED2=Code7Seg[TXTiCount[4]-48];
UART1_Write(iCount);
}
else;
}
}

Cu 3:

// LCD module connections


sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;

sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;


sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections
#define

LT1

PORTC.B0

#define

LT2

PORTC.B1

#define

LT3

PORTC.B2

//

T1-----AN0/RA0

//

T2-----AN1/RA1

//

T3-----AN2/RA2

//

MAX----AN5/RE0

unsigned char Temp1,Temp2,Temp3,TempMAX;


unsigned char TempTXT[6];
void main()
{
ANSELH=0x00;
TRISC.B0=0;TRISC.B1=0;TRISC.B2=0;
TRISA.B0=1;TRISA.B1=1;TRISA.B2=1;TRISE.B0=1;
ANSEL.B0=1;ANSEL.B1=1;ANSEL.B2=1;ANSEL.B5=1;
Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
//1234567890123456
Lcd_Out(1,1,"T1=

T2=");

Lcd_Out(2,1,"T3=

MAX=");

while(1)
{
Temp1=ADC_Read(0)/2.046;
Temp2=ADC_Read(1)/2.046;
Temp3=ADC_Read(2)/2.046;
TempMAX=ADC_Read(5)/(1023/150);if(TempMAX>150) TempMAX=150;else;

if(Temp1>TempMAX) LT1=1;else LT1=0;


if(Temp2>TempMAX) LT2=1;else LT2=0;
if(Temp3>TempMAX) LT3=1;else LT3=0;

WordToStrWithZeros(Temp1,TempTXT);
Lcd_Chr(1,4,TempTXT[2]);
Lcd_Chr(1,5,TempTXT[3]);
Lcd_Chr(1,6,TempTXT[4]);

WordToStrWithZeros(Temp2,TempTXT);
Lcd_Chr(1,14,TempTXT[2]);
Lcd_Chr(1,15,TempTXT[3]);
Lcd_Chr(1,16,TempTXT[4]);

WordToStrWithZeros(Temp3,TempTXT);
Lcd_Chr(2,4,TempTXT[2]);
Lcd_Chr(2,5,TempTXT[3]);
Lcd_Chr(2,6,TempTXT[4]);

WordToStrWithZeros(TempMAX,TempTXT);
Lcd_Chr(2,14,TempTXT[2]);
Lcd_Chr(2,15,TempTXT[3]);
Lcd_Chr(2,16,TempTXT[4]);

}
}

INT UART :
Vd1:
#define Led

PORTE.B0

bit Mode;
void interrupt()
{
if(RBIF_bit==1)
{
RBIF_bit==0;
Mode=0;
Led=0;
}
else;
}
void main()
{
TRISE.B0=0;ANSEL.B5=0;
ANSELH=0x00;
TRISB.B0=1;TRISB.B1=1;TRISB.B7=1;

IOCB0_bit=1;IOCB1_bit=1;IOCB7_bit=1;
RBIE_bit=1;GIE_bit=1;
Mode=1;
while(1)
{
if(Mode==1) {Led=~Led;Delay_ms(1000);}
else Led=0;

}
}
VD2:
#define Led

PORTE.B0

bit Mode;
void interrupt()
{
if(RBIF_bit==1)
{
RBIF_bit==0;
Mode=0;
Led=0;
}
else
if(RCIF_bit==1)
{
RCIF_bit==0;
Mode=0;
Led=0;
}
else;
}
void main()
{
TRISE.B0=0;ANSEL.B5=0;
ANSELH=0x00;
TRISB.B0=1;TRISB.B1=1;TRISB.B7=1;

IOCB0_bit=1;IOCB1_bit=1;IOCB7_bit=1;
RBIE_bit=1;GIE_bit=1;

TRISC.B7=1;
RCIE_bit=1;PEIE_bit=1;
UART1_Init(9600);

Mode=1;
while(1)
{
if(Mode==1) {Led=~Led;Delay_ms(1000);}
else Led=0;
}
}
ON/Off Blind led:
#define Led

PORTE.B0

char Mode;
void interrupt()
{
if(RBIF_bit==1)
{
RBIF_bit==0;
Mode='0';
Led=0;
}
else
if(RCIF_bit==1)
{
RCIF_bit==0;

Mode=UART1_Read();

}
else;
}
void main()
{
TRISE.B0=0;ANSEL.B5=0;
ANSELH=0x00;
TRISB.B0=1;TRISB.B1=1;TRISB.B7=1;

IOCB0_bit=1;IOCB1_bit=1;IOCB7_bit=1;
RBIE_bit=1;GIE_bit=1;

TRISC.B7=1;
RCIE_bit=1;PEIE_bit=1;
UART1_Init(9600);

Mode='0';
while(1)
{
if(Mode=='1') Led=1;
else
if(Mode=='2') {Led=~Led;Delay_ms(1000);}
else
if(Mode=='0') Led=0;
else;
}
}
INT T0:
#define Led

PORTE.B0

#define Pulse PORTD.B0

#define Error 17
void interrupt()
{
if(T0IF_bit==1)
{
T0IF_bit=0;
TMR0=-100+Error;
Pulse=~Pulse;
}
else;
}
void main()
{
TRISE.B0=0;ANSEL.B5=0;//RE0 as an output
GIE_bit=1;T0IE_bit=1;//enable interrupt Timer0
TMR0=-100+Error;T0CS_bit=0;PSA_bit=1;
TRISD.B0=0;//pulse output

while(1)
{
Led=~Led;Delay_ms(1000);//blink Led
}
}
UART:
unsigned char TxData;
unsigned int iADC;

void main()
{
TRISC.B6=0;

UART1_Init(9600);
TRISE.B2=1;ANSEL.B7=1;
while(1)
{
iADC=ADC_Read(7);
TxData=iADC;

if(UART1_Tx_Idle()==1) UART1_Write(TxData);
else;
}
}

PWM:
#define Start PORTD.B0
#define Stop

PORTD.B1

#define Duty

PORTD.B2

unsigned char Percent;


void main()
{
TRISD.B0=1;TRISD.B1=1;
TRISC.B2=0;
PWM1_Init(5000);//f=5000Hz=5kHz
Percent=50;//Duty=50%
PWM1_Set_Duty((Percent*255)/100);
//PWM1_Start();
while(1)
{
if(Start==0) PWM1_Start();else
if(Stop==0) PWM1_Stop();else

if(Duty==0)
{
Delay_ms(50);
Percent++;
if(Percent>100) Percent=0;else;
PWM1_Set_Duty((Percent*255)/100);
while(Duty==0);
Delay_ms(50);

}
else;
}
}

Das könnte Ihnen auch gefallen