BÀI 3
4) Bài 3 Nháy Led TMR1
#include<pic.h>
__CONFIG(UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS);
//=========Cac dinh nghia======================
void init(void); //su bat dau
//==========HAM NGAT==================
#define T1 10000
void interrupt MyInt(void) //chuong trinh ngat
{
static unsigned int suiClk1; //Mang tinh nguyen ,
if(TMR1IF)
{
TMR1ON = 0; //Tat ko cho TMR1 khi chua khoi tao
TMR1H = ((65535-T1)>>8); //nhap bai
TMR1L = ((65535-T1) & 0x00ff);//nhap bai thap
TMR1ON = 1;
if( suiClk1++==62) // lap 62.5 la 1s
{
suiClk1= 0;
RD0 = !(RD0);
RD2 = !(RD2); //de dao thi viet tung bit
RD4 = !(RD4);
RD6 = !(RD6);
}
TMR1IF = 0; //xoá co tràn
}
}
//==========Chuong trinh chinh'===============
void main() //chuong trinh trinh
{
init(); //bat dau chuong trinh
while(1)
{
NOP(); //ko lam gi ca
CLRWDT();
}
CLRWDT();
}
//=======E END MAIN=========
void init (void)
{
TRISB = 0b11111110;
TRISD = 0b00000000;
PORTD = 0b10101010;
//--------- khoi tao cho TMR1-------------
T1CON = 0b00111101;
//bit 7&6 =0, bit 5&4 ty le chia, bít1 là ty la chia Fosc/4 phai co;
//bit0=1 la bat,bit0=0 la tat; ty le chia 8
TMR1IE = 1; //cho phep ngat TMR1
//---------ngat toan cuc -----------
PEIE = 1; //cho phép các ngat ngoài làm viec
GIE = 1;
}
//==========THE END===============
5) Bai 4- Nhay led TMR2
#include<pic.h>
__CONFIG(UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS);
//===========Cac dinh nghia=============
void init(void); //su bat dau
//========M NGAT==============
#define T2 78
static int siClk2;
void interrupt MyInt(void) //chuong trinh ngat
{
if(TMR2IF) //ngat TMR2 chia sau dúng ,chia chuoc thì chú ý
{
TMR2 = 256 - T2;
TMR2IF = 0; //TGMNT2 = 0.2*256*78.125=4000µs=4ms
if(siClk2++==1000) //tao 1s
{
siClk2= 0;
RD0 = !(RD0); //dung dao
RD2 = !(RD2); //de dao thi viet tung bit
RD4 = !(RD4);
RD6 = !(RD6);
}
}
}
//==========Chuong trinh chinh'===========
void main() //chuong trinh trinh
{
init(); //bat dau chuong trinh
while(1)
{
NOP(); //ko lam gi ca
CLRWDT();
}
CLRWDT();
}
//=========THE END MAIN=======
void init (void)
{
TRISB = 0b11111110;
TRISD = 0b00000000;
PORTD = 0b10101010;
//--------Khoi tao cho TMR2-----------------
T2CON = 0b01000100;
//Bít7=0;Bit(6-3) là ti le chia chuoc,Bít(1-0) ti le chia sau,
//ti le chia chuac 16 chia sau là 16 tich là 256; CHÚ Ý
TMR2IE=1; //cho phép ngat
PEIE=1;
GIE=1;
}
//=========THE END===========
__________________
Chuyên sửa các thiết bị công nghiệp-Phân loại Sacmi-Lò nung-máy ép... Sách hướng dãn PIC 16F877A -DĐ 0972.404.298
|