#Include #Include
#Include #Include
h>
#include<delays.h>
char i;
void main(void)
{
TRISB=0x01;
TRISD=0x00;
ADCON1=0x0f;
PORTD=0;
while(1)
{
if(PB1==0)
{
while(PB1==0);
i++;
}
if(i==1) PORTD=0b00000001;
if(i==2) PORTD=0b00000010;
if(i==3) PORTD=0b00000100;
if(i==4) PORTD=0b00001000;
if(i>=5) PORTD=0b00001111;
}
}
#include<p18f4520.h>
#include<delays.h>
char i;
void main(void)
{
TRISB=0x01;
TRISD=0x00;
ADCON1=0x0f;
PORTD=0;
while(1)
{
if(PB1==1)
{
while(PB1==1);
i++;
}
PORTD=(i%16);
}
}
#include<p18f4520.h>
#include<delays.h>
void main(void)
{
TRISB=0x03;
TRISD=0X00;
ADCON1=0x0f;
while(1)
{
if(PB1==0 && PB2==0) PORTD=0b00000001;
if(PB1==0 && PB2==1) PORTD=0b00000010;
if(PB1==1&& PB2==0) PORTD=0b000000100;
if(PB1==1&& PB2==1) PORTD=0b000001000;
}
}
#include<p18f4520.h>
#include<delays.h>
void main(void)
{
TRISB=0x03;
TRISD=0x00;
ADCON1=0x0f;
while(1)
{
if(PB1==1) PORTD=0;
else
{
if(PB2==0)
{
while(PB2==0);
i++;
}
if(i==0) PORTD=0;
if(i==1) PORTD=0b00001000;
if(i==2) PORTD=0b00000100;
if(i>=3) PORTD=0b00001100;
}
}
}
#include<p18f4520.h>
#include<delays.h>
char i;
void ngat_ngoai(void);
//Ði?m d?t chuong trình ph?c v? ng?t có m?c uu tiên cao (vector 0008H)
#pragma code uu_tien_cao = 0x08
// N?u là chuong trình ph?c v? ng?t có m?c uu tiên th?p (vector 0018H):
// #pragma code uu_tien_thap = 0x18
//Vi?t 1 chuong trình con (có tên tùy ch?n) d? g?i t?i CTCPVN
void ngat_cao(void)
{
ngat_ngoai(); //g?i d?n CTCPVN
}
//Ði?m vi?t CTCPVN
#pragma code
#pragma interrupt ngat_ngoai
void ngat_ngoai(void)
//Noi dung cua CTCPVN
{
if(INTCON3bits.INT1IF==1)
{
LED1=0;
for(i=0;i<20;i++)
{
LED2=~LED2;
Delay10KTCYx(50);
}
INTCON3bits.INT1IF=0;
}
}
void main(void)
{
TRISB=0xff;
TRISC=0x00;
ADCON1=0x0f;
while(1)
{
LED1=~LED1;
Delay10KTCYx(50); //thoi gian tre = 10000 * (4/Fosc)* Unit
}
}
#include<p18f4520.h>
#include<delays.h>
char i;
void ngat_ngoai(void);
//Ði?m d?t chuong trình ph?c v? ng?t có m?c uu tiên cao (vector 0008H)
#pragma code uu_tien_cao = 0x08
// N?u là chuong trình ph?c v? ng?t có m?c uu tiên th?p (vector 0018H):
// #pragma code uu_tien_thap = 0x18
//Vi?t 1 chuong trình con (có tên tùy ch?n) d? g?i t?i CTCPVN
void ngat_cao(void)
{
ngat_ngoai(); //g?i d?n CTCPVN
}
//Ði?m vi?t CTCPVN
#pragma code
#pragma interrupt ngat_ngoai
void ngat_ngoai(void)
//Noi dung cua CTCPVN
{
i++;
PORTC=(i<<4);
INTCONbits.INT0IF=0;
}
void main(void)
{
TRISB=0xff;
TRISC=0x00;
ADCON1=0x0f;
*/
#include<p18f4520.h>
#include<delays.h>
*/
#include<p18f4520.h>
#include<delays.h>
void main(void)
{
TRISB=0x00;
ADCON1=0x0f;
//khoi tao timer 1
T1CON=0b11000000;
while(1)
{
T1CONbits.TMR1ON=0;
TMR1H=(65536 -1071)/256;
TMR1L=(65536 -1071)%256;
T1CONbits.TMR1ON=1;
while(PIR1bits.TMR1IF==0);// cho co ngat
PIR1bits.TMR1IF=0; // xoa co ngat
XUNG=~XUNG;
}
}
#include<p18f4520.h>
#include<delays.h>
int i;
char maled[10]={0b11000000,0b11111001,
0b10100100,0b10110000,
0b10011001,0b10010010,
0b10000010,0b11111000,
0b10000000,0b10010000};
void main(void)
{
TRISA=0xff;
TRISB=0x00;
ADCON1=0x0f;
// khoi tao timer
T0CON=0b11111000;
TMR0L=0;
while(1)
{
i=TMR0L;
PORTB=maled[i%10];
}
}
#include<p18f4520.h>
#include<delays.h>
char i;
char ma_led[]=
{0b11000000,0b11111001,
0b10100100,0b10110000,
0b10011001,0b10010010,
0b10000010,0b11111000,
0b10000000,0b10010000};
void main(void)
{
// khoi tao vao ra
TRISC=0xff;
TRISD=0x00;
ADCON1=0x0f;
// khoi tao timer1
T1CON=0b10000111;
TMR1L=0;
while(1)
{
i=TMR1L;
PORTD=ma_led[i%10];
}
}
/*
Fosc=12MHz
Tpwm=200uS
Tpwm =(PR2+1)*4*Tosc*PV
200uS =(PR2+1)*4*1/(12MHz)*PV
600 =(PR2+1)*PV
#include<p18f4520.h>
#include<delays.h>
#include<pwm.h>
void main(void)
{
//khoi tao vao ra
TRISB=0xff;
TRISC=0x00;
ADCON1=0x0f;
//thiet lap PWM, CHU KY
OpenPWM2(149);
T2CONbits.T2CKPS1=0;
T2CONbits.T2CKPS0=1;
//thiet lap do rong
SetDCPWM2(120);
while(1)
{
if(KEY1==0)
SetDCPWM2(180);
if(KEY2==0)
SetDCPWM2(360);
}
}
/*
F= 4MHz
Tpwm = 100uS
Tpwm = (PR2+1)*4*Tosc*PV
100uS=(PR2+1)*4*(1/4MHz)*PV
100=(PR2+1)*PV
PV =1
PR2=99
Tpwm = Ton + Toff
Tr?ng thái ban d?u Ton=9Toff=90µs = dutycycle * Tosc * PV = dutycycle /4
//trang thai ban dau
Ton(DT) = 90
dutycycle = 360
// nhan Key lan 1
Ton(DT) = 30
dutycycle = 120
// nhan key lan 2
Ton(DT) = 70
dutycycle = 280
// nhan key lon hon 3
Ton(DT) = 90
dutycycle = 360
*/
#include<p18f4520.h>
#include<delays.h>
#include<pwm.h>
char i;
}
}
#include<p18f4520.h>
#include<delays.h>
#include<adc.h>
int adc;
float dienap;
void main(void)
{
// khoi tao vao ra
TRISA=0xff;
TRISC=0x00;
TRISD=0X00;
TRISE=0x00;
ADCON1=0x0D;
// KHOI TAO ADC
OpenADC( ADC_FOSC_8&ADC_RIGHT_JUST&ADC_8_TAD,
ADC_CH1&ADC_INT_OFF&ADC_VREFPLUS_VDD&ADC_VREFMINUS_VSS,
13);
while(1)
{
ConvertADC();
while(BusyADC());
adc=ReadADC();
dienap=((float) adc*5)/1023;
if(dienap>=3)
LED1=1;
else
LED1=0;
}
}
#include<p18f4520.h>
#include<delays.h>
#include<adc.h>
int adc;
float dienap;
void main(void)
{
// khoi tao vao ra
TRISA=0xff;
TRISC=0x00;
TRISD=0x00;
TRISE=0x00;
ADCON1=0x0A;
// khoi tao adc
OpenADC( ADC_FOSC_8&ADC_RIGHT_JUST&ADC_8_TAD,
ADC_CH4&ADC_INT_OFF&ADC_VREFPLUS_VDD&ADC_VREFMINUS_VSS,
10);
while(1)
{
ConvertADC();
while(BusyADC());
adc=ReadADC();
PORTC=adc/256;
PORTD=adc%256;
dienap=((float)adc*5)/1023;
if(dienap>=2 && dienap<=3)
LED11=1;
else LED11=0;
}
}
#include<p18f4520.h>
#include<delays.h>
#include<usart.h>
char xx;
void main(void)
{
TRISC=0b10111111;
TRISD=0x00;
ADCON1=0x0f;
//thiet lap usart
OpenUSART( USART_TX_INT_OFF&USART_RX_INT_OFF&USART_ASYNCH_MODE
&USART_EIGHT_BIT&USART_CONT_RX&USART_BRGH_HIGH,
71);
//T?c d? baud=Fosc/ (16 * (spbrg+ 1))
// 9600=11059200/ (16 * (spbrg+ 1))
//spbrg= 71
putrsUSART("START");
while(1)
{
xx=ReadUSART();
if(xx=='k') LED1=1;
else LED1=0;
}
}