![]() |
|
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Oct 2008
Bài gửi: 95
: |
Code:
#include <16F877A.h> // #use delay(clock=20000000) // #include <lcd.c> // float vantoc,soxung; // int8 a,b,c,d,a1; // int16 sovong,i; // /////////////////ket thuc phan khai bao thu vien va cac bien////////////////////// ////////////khai bao va chuong trinh ngat cho TIMER1///////////////////// #int_TIMER1 // void TIMER1_isr(void) // { // soxung=get_timer0(); //Lay so xung ma Timer0 dem // set_timer1(65535); // Trong 1ms // if(tmr1if==1) //neu Timer1 tran thi co tmr1if =1 // { // intcon=0; //stop ngat (reset cac thong so ngat ) // a1=1; //cho a1=1 // } // } // //////////////////////////ket thuc phan TIMER1/////////////////////////// //////////////////////////bat dau chuong trinh chinh//////////////////////////// void main() { trisa=0xFF; //set RA4 input,chan lay xung tu Encoder trisb=0; //dinh huong portB la ngo ra trisc=0; //dinh huong portC la ngo ra trisd=0; //dinh huong portD la ngo ra lcd_init(); //ham khoi tao LCD lcd_gotoxy(1,1); //den vi tri hang 1 cot 1 lcd_putc("Beginning...."); //in ra beginning.... delay_ms(1000); // tao tre 1s lcd_putc('\f'); //dau cham nhap nhay setup_timer_2(T2_DIV_BY_2,254,1); //tao f(pwm)=9775Hz hay T(pwm)=0.1023ms setup_ccp1(CCP_PWM); //thiet lap chan CCP1 o che do PWM for(i=0;i<1000;i++) //tu 0 den 1000 thi toc do tang dan { set_pwm1_duty(i); // Toc do tang dan delay_ms(1); set_timer0(0); //lam moi Timer0 de chuan bi dem xung set_timer1(65535); //dat gia tri cho Timer1_khoang 1s setup_timer_0(RTCC_EXT_H_TO_L|RTCC_DIV_1);//setupTimer0_demcanhxuongxungEncoder setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); enable_interrupts(INT_TIMER1); //cho phep ngat Timer1 enable_interrupts(GLOBAL); //cho phep ngat toan cuc delay_ms(10); // if(a1==1) //cu moi lan Timer1 ngat thi a1=1 ,roi tinh vantoc,hien thi { vantoc=((float)(60*soxung)/(0.01*100)); //Tinh van toc a=vantoc/1000; //chia lay phan nguyen b=(int)(vantoc-1000*a)/100; //chia lay phan nguyen c=(int)(vantoc-1000*a-100*b)/10; //chia lay phan nguyen d=(int)vantoc%10; //chia lay phan du ///////////////////toi phan hien thi LCD///////////////////////////// lcd_gotoxy(3,3); //den vi tri hang 3 cot 3 lcd_putc(a+48); //in ra a lcd_gotoxy(3,4); //den vi tri hang 3 cot 4 lcd_putc(b+48); //in ra b lcd_gotoxy(3,5); //den vi tri hang 3 cot 5 lcd_putc(c+48); //in ra c lcd_gotoxy(3,6); //den vi tri hang 3 cot 6 lcd_putc(d+48); //in ra d lcd_gotoxy(4,3); //den vi tri hang 4 cot 3 lcd_putc("vong/phut"); //in ra "vong/phut" lcd_gotoxy(2,2); //den vi tri hang 2 cot 2 lcd_putc("toc do dc"); //in ra "toc do dc" delay_ms(5); // tmr0if=0;tmr1if=0; //Xoa co tran cua Timer0 va Timer1 } } } thay đổi nội dung bởi: namqn, 19-11-2008 lúc 10:32 PM. |
![]() |
![]() |
![]() |
#2 | |
Trưởng lão PIC bang
|
Trích:
Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
|
![]() |
![]() |
![]() |
|
|