|
على ما يبدو الاخ حسن مل مني او انشغل على كل حال ما بلومو لاني مليت من هالشريحة ٦٣٠
المهم الي عندو اي اقتراح من اعضاء منتدانا الغالي مشكور مسبقا
وانا جاهز للتجريب لاني استنفذت كل محاولاتي
|
السلام عليكم
انا لا امل من اي احد ولكن النت عندي سيئ جدا جدا
على عموم اريد تجرب هذا الكود
ولكن قبل ذلك اريدك اتخلي delay ولكن 250ms في داخل (if(new_click ==1
كود:
if(new_click ==1){
delay_ms(250);
واذا لم ينجح معاك جرب مقترح ادناه ولكن ان شاء الله سوف ينجح معاك
=========================================
اريد اتخلي 4 ليدات على portc.f0,portc.f1,portc.f2.portc.f3
ومن ثم تجرب الكود ادناه
من تضغط على الارقام مفروض ليدات تعبر عن الرقم مماثل لها في DTMF
كود:
/* Author : hasan hadi mahmood.
project: DTMF control 8 relays ON & OFF .
// *00#0 all relays is OFF
// *10#1 all relays is ON
// *11#n no. relay =n is ON
// *01#F no.relay = F is OFF */
////////////////////
#define new_click porta.f4
#define new_click_dir trisa.f4
#define DTMF0 porta.f0
#define DTMF0_dir trisa.f0
#define DTMF1 porta.f1
#define DTMF1_dir trisa.f1
#define DTMF2 porta.f2
#define DTMF2_dir trisa.f2
#define DTMF3 porta.f3
#define DTMF3_dir trisa.f3
#define relay portc
#define relay_dir trisc
#define set_bit(var,pos) ( var|= (1<<pos) )
#define clear_bit(var,pos) ( var&=~(1<<pos) )
//******************init input and output***************************************
void init()
{
DTMF0_dir=1; // input
DTMF1_dir=1;
DTMF2_dir=1;
DTMF3_dir=1;
new_click_dir=1;
relay_dir=0; // output
relay=255;// ON all relays
delay_ms(1000);
relay=0;// OFF all relays
}
char output_state[5];
char code1=255 , cont=0 , flag_recive=0 , relay_ON=0 , relay_OFF=0xFF;
//****************** main program***********************************************
void main()
{
cmcon=7;
init();
while(1)
{
if(new_click ==1){
relay.f0=DTMF0;
relay.f1=DTMF1;
relay.f2=DTMF2;
relay.f3=DTMF3;
}
}
}
تذكر الاعدادات نفس اعدادات مشروع السابق
تحياتي