cần giúp phím nhấn và led đơn trên pic12f629

dttrunghien

Học sinh phổ thông
#22
của bạn đây. mới học C nên đọc phím chưa được rút gọn mong bro nào sửa code lại cho gọn
Mã:
#include <htc.h> 
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF ); 
#define _XTAL_FREQ 4000000 
#define sw GP3
void main()
{
    GPIO3=1;         
    GPIO2=0;             
    TRISIO3=1;     
    TRISIO2=0;             
    GP2=0;
    while(1)
    {
        if(!sw)                 
        {
            __delay_ms(100); 
            if(!sw) continue;
            GP2=1;
            __delay_ms(200);
lap:        if(sw)
            goto lap;         
            else
lap1:            if(!sw) goto lap1;
                GP2=0;
                __delay_ms(200);
        } 
    }
}
chào bạn bạn có thể chuyển mã cốt của b đã lập sang pic 12f509 và cho lệnh cấp vào chân 6 da led chân 7 mình có mới con ic 12f509 cảm ơn b nhiều nhé
 
Sửa lần cuối bởi điều hành viên:

dttrunghien

Học sinh phổ thông
#23
của bạn đây. mới học C nên đọc phím chưa được rút gọn mong bro nào sửa code lại cho gọn
Mã:
#include <htc.h> 
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF ); 
#define _XTAL_FREQ 4000000 
#define sw GP3
void main()
{
    GPIO3=1;         
    GPIO2=0;             
    TRISIO3=1;     
    TRISIO2=0;             
    GP2=0;
    while(1)
    {
        if(!sw)                 
        {
            __delay_ms(100); 
            if(!sw) continue;
            GP2=1;
            __delay_ms(200);
lap:        if(sw)
            goto lap;         
            else
lap1:            if(!sw) goto lap1;
                GP2=0;
                __delay_ms(200);
        } 
    }
}
bạn giúp m chuyển code này sang trạy píc 12f509 và chân lệnh vao GB1 ouput GBO và nếu bật phím và giữ phím khoảng 8 giây thì led tự tắt cảm ơn b nhé
 

imlanglavang

Học sinh phổ thông
#24
để cùng học hỏi mà các bạn gửi code mà lại không gửi file htc.h thì làm sao biết được
 

imlanglavang

Học sinh phổ thông
#25
của bạn đây. mới học C nên đọc phím chưa được rút gọn mong bro nào sửa code lại cho gọn
Mã:
#include <htc.h> 
__CONFIG(FOSC_HS & WDTE_OFF & PWRTE_ON & MCLRE_OFF & BOREN_OFF & CP_OFF & CPD_OFF ); 
#define _XTAL_FREQ 4000000 
#define sw GP3
void main()
{
    GPIO3=1;         
    GPIO2=0;             
    TRISIO3=1;     
    TRISIO2=0;             
    GP2=0;
    while(1)
    {
        if(!sw)                 
        {
            __delay_ms(100); 
            if(!sw) continue;
            GP2=1;




bạn gửi luôn file htc.h 
            __delay_ms(200);
lap:        if(sw)
            goto lap;         
            else
lap1:            if(!sw) goto lap1;
                GP2=0;
                __delay_ms(200);
        } 
    }
}
 

wintily

Học sinh phổ thông
#27
minh khai báo GP0 là chân Pin_A0.cho mình hỏi sao mình gõ chân GP0=1 thì báo lỗi Expecting LVALUE such as a variable name???Và chân GP4,GP5 mình không xuất ra 5v được
#include <12f629.h>
#include <def_12f629.h>
#device ADC=10
#fuses NOWDT,NOPUT,NOPROTECT,NOMCLR
#use delay(clock=10000000)
#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3
#define GP4 PIN_A4
#define GP5 PIN_A5
#byte T1CON =0x10
VOID intit()
{
// set_tris_a(0b000000);//set all out put
// setup_comparator(NC_NC);//disable comparators
T1CON=0;
}
void main()
{ GPIO3=TRISO3=1;
intit();
while(1)
{
if(!input(GP3))
{ output_high(GP0);
output_high(GP1);
output_high(GP2);
output_high(GP3);
output_high(GP5);
output_high(GP4);//turn on
GP0 ^=1;
delay_ms(250); // wait 250ms
}
else
{
output_low(GP1); // turn off
output_low(GP0);
output_low(GP2);
output_low(GP4);
output_low(GP5);
delay_ms(250);
}
}

}
 

hieulv105

Sinh viên đại học
#28
minh khai báo GP0 là chân Pin_A0.cho mình hỏi sao mình gõ chân GP0=1 thì báo lỗi Expecting LVALUE such as a variable name???Và chân GP4,GP5 mình không xuất ra 5v được
#include <12f629.h>
#include <def_12f629.h>
#device ADC=10
#fuses NOWDT,NOPUT,NOPROTECT,NOMCLR
#use delay(clock=10000000)
#define GP0 PIN_A0
#define GP1 PIN_A1
#define GP2 PIN_A2
#define GP3 PIN_A3
#define GP4 PIN_A4
#define GP5 PIN_A5
#byte T1CON =0x10
VOID intit()
{
// set_tris_a(0b000000);//set all out put
// setup_comparator(NC_NC);//disable comparators
T1CON=0;
}
void main()
{ GPIO3=TRISO3=1;
intit();
while(1)
{
if(!input(GP3))
{ output_high(GP0);
output_high(GP1);
output_high(GP2);
output_high(GP3);
output_high(GP5);
output_high(GP4);//turn on
GP0 ^=1;
delay_ms(250); // wait 250ms
}
else
{
output_low(GP1); // turn off
output_low(GP0);
output_low(GP2);
output_low(GP4);
output_low(GP5);
delay_ms(250);
}
}

}
Trong CCS gõ như vậy là sai cú pháp.
 

hieulv105

Sinh viên đại học
#30
mình mới tập học nhưng không có chỉ dẫn rõ ràng nên mong bạn giúp đỡ
Bạn nên vào Help của phần mềm hoặc file 12f629.h để tìm hiểu thêm về cú pháp các câu lệnh.
Trong CCS các khai báo kiểu như GPIO3=1, TRISO3=1, GP0 ^=1 là không hợp lệ.
GPIO3=1 có thể khai báo là OUTPUT_HIGH(GP3)
TRISO3=1 có thể khai báo là SET_TRIS_A(...)
GP0 ^=1 thì mình ko biết ý bạn là thế nào.
Code này sai khá nhiều, con này ko có ADC nên bỏ đi phần khai báo ADC.
Bạn dùng chân GP3 là INPUT thì ko thể xuất nó ra output_high(GP3); là OUTPUT được.
..v..v..
 

Quảng cáo Google