Beruflich Dokumente
Kultur Dokumente
PORTE.B2
PORTD.B7
//
PWM-----CCP1/RC2
//
Led-----CCP1/RC2
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
//
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:
LT1
PORTC.B0
#define
LT2
PORTC.B1
#define
LT3
PORTC.B2
//
T1-----AN0/RA0
//
T2-----AN1/RA1
//
T3-----AN2/RA2
//
MAX----AN5/RE0
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;
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 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
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;
}
}