|
Tài trợ cho PIC Vietnam |
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 |
|
Ðiều Chỉnh | Xếp Bài |
28-02-2010, 11:21 AM | #1 |
Nhập môn đệ tử
Tham gia ngày: Jan 2009
Bài gửi: 5
: |
Mở rộng đầu ra của pic 18f4431
Chào các anh chị và các bạn trên diễn đàn, em muốn hỏi vấn đề liên quan đến việc mở rộng đầu ra cho pic .Ở đây em mở rộng bằng cách quét 74151 (dmux), em viết chương trình và mô phỏng trên protues chạy đúng nhưng khi nạp xuống mạch thật lại chạy không đúng.Cụ thể là trong chương trình tại một thời điểm em chỉ quét một địa chỉ và đợi tín hiệu tác động vào đúng chân ứng với địa chỉ đó , ví dụ như a=0,b=0,c=0 ứng với D0 nhưng khi chạy thực tế thì lại không đúng như vậy tác động vào bất kì đầu vào nào ví dụ như D1,d2... đều chạy các chương trình như nhau , em không hiểu tại sao, mong mọi người giúp em với không biết chương trình em sai ở đâu ạ.
Đây là chương trình của em. Code:
#include <18f4431.h> #use delay (clock=20M) #fuses nowdt, hs,noprotect, nolvp,hpol_low #include <lcd_lib_4bitrobo.c> //********************************************* #byte TRISE = 0xF96 #byte TRISD = 0xF95 #byte TRISC = 0xF94 #byte TRISB = 0xF93 #byte TRISA = 0xF92 #byte LATE = 0xF8D #byte LATD = 0xF8C #byte LATC = 0xF8B #byte LATB = 0xF8A #byte LATA = 0xF89 #byte PORTD = 0xF83 #byte PORTC = 0xF82 #byte PORTA = 0xF80 #byte PORTE = 0xF84 #byte PORTB = 0xF81 #bit d1= portd.4 #bit c1= portc.7 #bit b1= portc.6 #bit a1=portc.5 #bit y=portc.4 int8 a,b,c,d; //------------------------------------------------ void main () { trisb=0x00; trisc=0b00010000; trisd=0x00; trisa=0xff; trise=0x00; output_high (pin_b1); output_high (pin_b3); output_high (pin_b4); output_high (pin_d7); setup_power_pwm(PWM_CLOCK_DIV_4 | PWM_FREE_RUN ,1,0,300,0,1,0); setup_power_pwm_pins(PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON,PWM_ODD_ON); set_power_pwm0_duty(0); set_power_pwm2_duty(0); set_power_pwm4_duty(0); set_power_pwm6_duty(0); { set_power_pwm0_duty(300); while (true) { d=0;c=1;b=0;a=0; d1=d;c1=c;b1=b;a1=a; if (y==1) { set_power_pwm0_duty(0); set_power_pwm2_duty(500); break;}} delay_ms(500); while (true) { d=0;c=0;b=1;a=0; d1=d;c1=c;b1=b;a1=a; if (y==1) { set_power_pwm2_duty(0); set_power_pwm4_duty(300); break;}} delay_ms(500); while (true) { d=0;c=0;b=0;a=1; d1=d;c1=c;b1=b;a1=a; if (y==1) { set_power_pwm4_duty(0); set_power_pwm6_duty(300); break;}} while (true) { d=0;c=0;b=0;a=0; d1=d;c1=c;b1=b;a1=a; if (y==1) { // set_power_pwm4_duty(0); set_power_pwm6_duty(0); break; } while (true) () } thay đổi nội dung bởi: namqn, 28-02-2010 lúc 04:21 PM. Lý do: định dạng code |
|
|