PIC Vietnam

Go Back   PIC Vietnam > Microchip PIC > Cơ bản về vi điều khiển và PIC

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 17-07-2011, 03:48 PM   #1
tranbahung80
Đệ tử 1 túi
 
Tham gia ngày: Jan 2007
Bài gửi: 22
:
BÀI SỐ 2

2) BAI1-cổng- nháy led
//VAO RA CONG VA NHAY LED CONG D BANG TRE THOI GIAN
#include<pic.h>
__CONFIG(HS & PWRTEN & BOREN & LVPDIS);
//---------Cac dinh nghia va Ngat----------
void init(void);
void delay(void);
//---------Chuong trinh chinh------------------
void main()
{
CLRWDT();
init();
while(1)
{
PORTD = 0b11111111;
delay();
PORTD = 0b00000000;//0x00;
delay();
}
CLRWDT();
}
//------DINH NGHIA CONG VAF CAC NGAT-------------------
void init(void)
{
TRISD = 0b00000000; //=1 laf IN, =0 la OUT
PORTD = 0b00000000;
TRISB = 0b11111111;
TRISC = 0b11111111;
TRISA = 0b11111111; //CONG ALAGOC
TRISE = 0b00000111; // SO
ADCON1 = 0b00000010; // ANi là c?ng s?
}
//---------LAM TRE THOI GIAN------------
void delay (void)
{
unsigned int i;
for(i=0;i<65535;i++)
{
NOP(); // khoang 30 lenh,
CLRWDT();
}
}
//=========THE END=========

3) Bai 2-Nhay led-TMTO
#include<pic.h>
__CONFIG(UNPROTECT & WDTEN & HS & PWRTEN & BOREN & LVPDIS & DUNPROT & DEBUGDIS);
//========Cac dinh nghia dung moi loi=========
void init(void); // su bat dau
bit bNewTMR0; // bit la dieu kien tat mo .....
//===========HAM NGAT================
#define T0 100
unsigned int uiClk0; //la ki tu dem den bao nhieu thi chan
void interrupt MyInt(void)
{
//--------ngat TMRO--------------------
if(TMR0IF)
{
TMR0 = 256-T0;
//Thoi gian co mot ngat= (0.2µs)*(128)*((256-TMR0)=T0) (µs)=2560 µs =2.56ms
if((uiClk0++)==390) //tao thoi gian tre TMR0=1s
{
uiClk0 = 0;
bNewTMR0 = 1; //dieu kien bat tat?,
}
TMR0IF = 0; //xao co ngat,
}
}
//==========Chuong trinh chinh'=================
void main() //chuong trinh trinh
{
init(); //bat dau chuong trinh
while(1)
{
if(bNewTMR0 == 1) //khi =1 thi dung thuc hien
{
RD0 = !(RD0); //dung dao
RD2 = !(RD2); //de dao thi viet tung bit
RD4 = !(RD4);
RD6 = !(RD6);
bNewTMR0 = 0; //soa = 0
}
NOP();
CLRWDT();
}
CLRWDT();
}
//==========THE END MAIN====================
void init(void)
{
//---------Dinh nghi cac cong------------------
TRISD = 0b00000000; //cong X la ra
PORTD = 0b11111111; //CONG RA MUC 0 HAY 1
//----------Khoi tao TMRO--------------
OPTION = 0b00000110; //bA bit cuoi ty le chia 128
TMR0IE = 1; //cho phep ngat TMRO
//-----------Co ngat toan cuc--------------
//PEIE = 1; //cho phép các ng?t ngoài làm vi?c
GIE = 1; //choi phep ngat toan cuc
}
//====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
tranbahung80 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:37 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam