![]() |
|
![]() |
#1 |
Đệ tử 1 túi
Tham gia ngày: Apr 2006
Bài gửi: 19
: |
Chào các bác.Em mới học về Pic.Mong các bác chỉ giáo
Em dùng Htpic. Em viết 1 chương trình đơn giản sử dụng timer0. Nhưng chả hiểu tại sao thời gian delay ko chính xác(em mô phỏng bằng proteus). Em delay 1 giây mà mô phỏng chạy những 15 giây(sai số lớn quá) Mà ko hiểu tại sao lệnh while(1) lại ko lặp lại.Khi đèn chạy được 1 chu kỳ thì nó tắt luôn chứ ko lặp lại. các bác xem giúp em với Code:
//======================================================== //Bai toan phanh xe.Phanh duoc noi vao RB0 //khi phanh thi RB0 o muc thap //binh thuong RB0 o muc cao //co 8 led o RD8 den RD0 se sang theo quy luat(khi phanh) //10000000,01000000...00000001,11111111,00000000 //sau do lap lai neu chua nha phanh //thoi gian delay la 1 giay //thach anh 20 Mhz //======================================================== #include<pic.h> #define out PORTD __CONFIG(HS & PWRTEN & BOREN & LVPDIS &WDTDIS ); void DL(unsigned int giay); //-------------------------------------------------------------------------------------------------- const unsigned char a[]={0b10000000,0b01000000,0b00100000,0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0b11111111,0b00000000}; //======================================================== void main() { unsigned char i; TRISB = 0b11111111; //Dinh nghia cong B la INPUT RBPU =0; //co dien tro trong keo len nguon TRISD = 0b00000000; i=0; while(1) { if(RB0==0) //nhan phanh { out=a[i]; i=i+1; DL(25000); //delay 1giay if(i==11) i=0; } else { out=0; i=0; } } } //------------------------------------------------------------------------ void DL(unsigned int giay) { while(giay--) { //delay 40 microgiay PSA=1; //bo chia dung cho wdt T0CS=0; //dung dem thoi gian TMR0=56; while(!TMR0IF); TMR0IF=0; } } //=============================THE END=========================== |
![]() |
![]() |
![]() |
#2 | |
Đệ tử 9 túi
|
Trích:
![]() Tiếp, mô phỏng bằng Poteus, quét led hiển thị không chính xác bạn ạ. Nên thử bằng Board thật nhé, xem có vấn đề gì không. Trong hàm delay của bạn, là kiểu |
|
![]() |
![]() |
![]() |
|
|
![]() |
||||
Ðề tài | Người gửi | Chuyên mục | Trả lời | Bài mới |
Cách giao tiếp DS1877 và PIC6F877A | nbqvdp | Cơ bản về vi điều khiển và PIC | 7 | 05-08-2010 06:46 PM |
Hỏi về chương trình HTPIC của ngohaibac | riquelme | Các ngôn ngữ lập trình khác (CCS C, HT PIC,...) | 26 | 20-01-2007 09:42 PM |
Giúp đỡ về HTPIC | riquelme | Cơ bản về vi điều khiển và PIC | 0 | 11-01-2007 11:56 PM |
Giao tiếp Pic6f877A qua cổng máy in???? | spirit | Cơ bản về vi điều khiển và PIC | 8 | 11-09-2006 01:04 PM |