سلام به همه دوستای خوب من دارم روی یه سیستم کنترل از راه دور از طریق خط تلفن کار میکنم برای این کار همه به شماره گیری نیاز دارم هم به دیکذ کرذن اون بهترین گزینه برای این کار MT8888 یا MT8880 هست اما برای راه اندازی اون توی کذ ویژن به مشکل بر خورد کردم اگه یکی کمکم کنه ممنون میشم در ضمن اگه کسی در مورد ارتباط میکرو با ETHERNET یا هموم شبکه محلی اطلاعت داره ما رو دریابه با تشکر مجتبی باوفا.
اطلاعیه
Collapse
No announcement yet.
درخواست کمک برای راه انداری MT8880 MT8888
Collapse
X
-
درخواست کمک برای راه انداری MT8880 MT8888
سه کس را شنیدم که غیبت رواست وز این درگذشتی چهارم خطاست
یکی پادشاهی ملامت پسند کز او بر دل خلق بینی گزند
حلال است از او نقل کردن خبر مگر خلق باشند از او بر حذر
دوم پرده بر بی حیائی متن که خود میآدرد پرده بر خویشتن
ز حوضش مدار ای برادر نگاه که او میآدرافتد به گردن به چاه
سوم کژ ترازوی ناراست خوی ز فعل بدش هرچه دانی بگوی -
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
دوباره سلام میشه یکی به داد ما برسه من الان برنامه براش نوشتم اما مشکل سر مد دریافتش دارم برای ارسال برنامه نوشتم خیلی هم خوب کار میکنه من طبق دستور دتاشیت عمل میکنم اما درست کار نمیکنه
اینم برنامه ای که نوشتم:
/************************************************** ***
This program was produced by the
CodeWizardAVR V1.25.5 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 2007/10/22
Author : F4CG
Company : F4CG
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
************************************************** ***/
#include <mega16.h>
#include <delay.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x1B ;PORTA
#endasm
#include <lcd.h>
#define HI 1
#define LOW 0
#define IRQ PORTD.4
#define RD PORTD.5
#define RSO PORTD.6
#define CS PORTD.7
#define WR PORTC.0
#define D0 PORTD.0
#define D1 PORTD.1
#define D2 PORTD.2
#define D3 PORTD.3
/////////////////////////////////////////////////////////
// send pulse //
/////////////////////////////////////////////////////////
void send_pulse0 (void)
{
////////////////////////////////writ to transmit data register (send a digit 0)
RSO=0;
WR=0;
RD=1;
delay_us(10);
D0=0;
D1=1;
D2=0;
D3=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse1 (void)
{
////////////////////////////////writ to transmit data register (send a digit 1)
RSO=0;
delay_us(10);
D0=1;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse2 (void)
{
////////////////////////////////writ to transmit data register (send a digit 2)
RSO=0;
delay_us(10);
D0=0;
D1=1;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse3 (void)
{
////////////////////////////////writ to transmit data register (send a digit 3)
RSO=0;
delay_us(10);
D0=1;
D1=1;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse4 (void)
{
////////////////////////////////writ to transmit data register (send a digit 4)
RSO=0;
delay_us(10);
D0=0;
D1=0;
D2=1;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse5 (void)
{
////////////////////////////////writ to transmit data register (send a digit 5)
RSO=0;
delay_us(10);
D0=1;
D1=0;
D2=1;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse6 (void)
{
////////////////////////////////writ to transmit data register (send a digit 6)
RSO=0;
delay_us(10);
D0=0;
D1=1;
D2=1;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse7 (void)
{
////////////////////////////////writ to transmit data register (send a digit 7)
RSO=0;
delay_us(10);
D0=1;
D1=1;
D2=1;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse8(void)
{
////////////////////////////////writ to transmit data register (send a digit 8)
RSO=0;
delay_us(10);
D0=0;
D1=0;
D2=0;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse9 (void)
{
////////////////////////////////writ to transmit data register (send a digit 9)
RSO=0;
delay_us(10);
D0=1;
D1=0;
D2=0;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_setare (void)
{
////////////////////////////////writ to transmit data register (send a digit setare)
RSO=0;
delay_us(10);
D0=1;
D1=1;
D2=0;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_morab (void)
{
////////////////////////////////writ to transmit data register (send a digit morab)
RSO=0;
delay_us(10);
D0=0;
D1=0;
D2=1;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_A (void)
{
////////////////////////////////writ to transmit data register (send a digit A)
RSO=0;
delay_us(10);
D0=1;
D1=0;
D2=1;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_B (void)
{
////////////////////////////////writ to transmit data register (send a digit B)
RSO=0;
delay_us(10);
D0=0;
D1=1;
D2=1;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_C (void)
{
////////////////////////////////writ to transmit data register (send a digit C )
RSO=0;
delay_us(10);
D0=1;
D1=1;
D2=1;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void send_pulse_D (void)
{
////////////////////////////////writ to transmit data register (send a digit D)
RSO=0;
delay_us(10);
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(10);
///////////////////////////////////////////////////////////////////////////////END
}
void reset(void)
{
}
///////////////////////end off reset
/////////////////////////////////////////
// make_tone //
//// ////
/////////////////////////////////////////
/////////////////////////////////////////
/////////////////////////////////////////
void make_tone (void)
{
/////////////////////////wrlth too A register
RSO=1;
D0=1;
D1=0;
D2=0;
D3=1;
WR=0;
RD=1;
delay_us(10);
///////////////////////////// END OF A
delay_ms(100);
RSO=1;
WR=1;
RD=0;
delay_us(1);
/////////////////////////wrlth too B register
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(10);
/////////////////////////////END OF B
}
void main(void)
{
// Declare your local variables here
////////////////////////////////////////////////////////
// reset MT8888 //
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////////////////////////////
////////////////////////////////read statos rejister
//IRQ=1;
CS=0;
delay_ms(100);
RSO=1;
WR=1;
RD=0;
delay_us(1);
////////////////////////////////writh to control register01
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(1);
////////////////////////////////writh to control register02
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(1);
////////////////////////////////writh to control register 03
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(1);
////////////////////////////////writh to control register04
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
WR=0;
RD=1;
delay_us(1);
////////////////////////////////read status register
RSO=1;
WR=1;
RD=0;
delay_us(10);
/* /////////////////////////writh too A register
RSO=1;
D0=1;
D1=0;
D2=1;
D3=1;
delay_us(20);
WR=0;
RD=1;
delay_us(50);
///////////////////////////// END OF A
/////////////////////////wrlth too B register
RSO=1;
D0=0;
D1=0;
D2=0;
D3=0;
delay_us(20);
WR=0;
RD=1;
delay_us(10);
/////////////////////////////END OF B */
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;
// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=Out
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=0
PORTC=0x00;
DDRC=0x01;
// Port D initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0
PORTD=0x00;
DDRD=0xFF;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// LCD module initialization
lcd_init(16);
while (1)
{
lcd_clear();
lcd_gotoxy(0,1);
lcd_putsf("DIALING"
delay_ms(250);
reset();
make_tone();
send_pulse1();
lcd_gotoxy(0,0);
lcd_putsf("1"
delay_ms(104);
make_tone();
send_pulse2();
lcd_gotoxy(1,0);
lcd_putsf("2"
delay_ms(104);
make_tone();
send_pulse3();
lcd_gotoxy(2,0);
lcd_putsf("3"
delay_ms(104);
make_tone();
send_pulse4();
lcd_gotoxy(3,0);
lcd_putsf("4"
delay_ms(104);
make_tone();
send_pulse5();
delay_ms(104);
lcd_gotoxy(4,0);
lcd_putsf("5"
make_tone();
send_pulse6();
delay_ms(104);
lcd_gotoxy(5,0);
lcd_putsf("6"
make_tone();
send_pulse7();
delay_ms(104);
lcd_gotoxy(6,0);
lcd_putsf("7"
make_tone();
send_pulse8();
delay_ms(104);
lcd_gotoxy(7,0);
lcd_putsf("8"
make_tone();
send_pulse9();
delay_ms(104);
lcd_gotoxy(8,0);
lcd_putsf("9"
make_tone();
send_pulse0();
delay_ms(104);
lcd_gotoxy(9,0);
lcd_putsf("0"
make_tone();
send_pulse_A();
delay_ms(104);
lcd_gotoxy(10,0);
lcd_putsf("A"
make_tone();
send_pulse_B();
delay_ms(104);
lcd_gotoxy(11,0);
lcd_putsf("B"
make_tone();
send_pulse_C();
delay_ms(104);
lcd_gotoxy(12,0);
lcd_putsf("C"
make_tone();
send_pulse_D();
delay_ms(104);
lcd_gotoxy(13,0);
lcd_putsf("D"
make_tone();
send_pulse_setare();
delay_ms(104);
lcd_gotoxy(14,0);
lcd_putsf("*"
make_tone();
send_pulse_morab();
delay_ms(104);
lcd_gotoxy(15,0);
lcd_putsf("#"
delay_ms(104);
lcd_gotoxy(0,1);
lcd_putsf("END "
delay_ms(1000);
// Place your code here
};
}
سه کس را شنیدم که غیبت رواست وز این درگذشتی چهارم خطاست
یکی پادشاهی ملامت پسند کز او بر دل خلق بینی گزند
حلال است از او نقل کردن خبر مگر خلق باشند از او بر حذر
دوم پرده بر بی حیائی متن که خود میآدرد پرده بر خویشتن
ز حوضش مدار ای برادر نگاه که او میآدرافتد به گردن به چاه
سوم کژ ترازوی ناراست خوی ز فعل بدش هرچه دانی بگوی
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
سلام
چرا هیچکس به این تاپیک پاسخی نداده؟واقعا جای تعجب داره تو این انجمن که مطمئنا خیلی آدمای مطلع در این زمینه هست!
منم دارم رو پروژه ای مشابه این کار می کنم.
شما مطمئنید مشکل از برنامه ای هست که نوشتید؟
راستش من این آسی 8870 رو تست کردم با خط تلفن و هیچ جوابی نگرفتم...یعنی وقتی تن رو روی خط ارسال می کنم هیچ عکس العملی از طرف آی سی مشاهده نمی شه!!
یکبارم یه مقاومت 220 اهمی رو با دست بین دو سر خط تلفن قرار دادم و برق منو گرفت:eek: :cry2: اما قبلش چندین بار همین کارو کرده بودم تا خط وصل بشه و مشکلی پیش نیومده بود!!
یه بارم یه مقاومت 2.2 اهمی قرار دادم و زنگ زدم اون طرف خط صدای آهنگ می اومد!! احتمالا روی hold قرار گرفته ولی دفعه های بعدی که زنگ می زدم دیگه این اتفاق نم افتاد!!
من که کلی دارم سر این پروژه حرص می خورم نمی فهمم باید چی کار کرد :cry:It's okay to pick your friends, but don't pick them to pieces- means give prize then criticism if it's a friend!
دیدگاه
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
نوشته اصلی توسط beheshtaeinسلام
چرا هیچکس به این تاپیک پاسخی نداده؟واقعا جای تعجب داره تو این انجمن که مطمئنا خیلی آدمای مطلع در این زمینه هست!
منم دارم رو پروژه ای مشابه این کار می کنم.
شما مطمئنید مشکل از برنامه ای هست که نوشتید؟
راستش من این آسی 8870 رو تست کردم با خط تلفن و هیچ جوابی نگرفتم...یعنی وقتی تن رو روی خط ارسال می کنم هیچ عکس العملی از طرف آی سی مشاهده نمی شه!!
یکبارم یه مقاومت 220 اهمی رو با دست بین دو سر خط تلفن قرار دادم و برق منو گرفت:eek: :cry2: اما قبلش چندین بار همین کارو کرده بودم تا خط وصل بشه و مشکلی پیش نیومده بود!!
یه بارم یه مقاومت 2.2 اهمی قرار دادم و زنگ زدم اون طرف خط صدای آهنگ می اومد!! احتمالا روی hold قرار گرفته ولی دفعه های بعدی که زنگ می زدم دیگه این اتفاق نم افتاد!!
من که کلی دارم سر این پروژه حرص می خورم نمی فهمم باید چی کار کرد :cry:
من با mt8870 کار کردم یه کم قلق داره برنامه نویسی اونم زیاد سخت نیست
دیدگاه
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
من از مدار و برنامه کتاب 10 پروژه با AVR استفاده کردم .حتما اون مدارو ببندین چون کاملا عملیه و فوری جواب داد. راجع بع MT8870وMT8888 و خط تلفن و کنترل وسایل از راه دور و تلفن گویا و تلفن داخلی و شماره گیری و..... این کتاب بی نظیره. کامل ترین مرجع ممکنه که تو عمرم دیدم. حتما یه سری بزنید.
دیدگاه
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
:applause: :applause: :applause:
یک راهنمایی برای دوستانی که با mt8880 کار میکنن .
فقط این را در اول بگم که این آی سی انواع گوناگونی دارد . که حروف لاتین آخر آن مشخص کننده این موضوع است . مثلاً MT8880CE را میتوان با اطلاعات کاتالوگ آن راه انداخت اما MT8880BE را نمی توان راه انداخت . چون این آی سی ساخت کشور چین است و باید هنگام رویداد وقفه این آی سی بصورت مداوم پایه Q2 را (0) و (1) کرد .
دیدگاه
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
نوشته اصلی توسط sanatizadeh:applause: :applause: :applause:
یک راهنمایی برای دوستانی که با mt8880 کار میکنن .
فقط این را در اول بگم که این آی سی انواع گوناگونی دارد . که حروف لاتین آخر آن مشخص کننده این موضوع است . مثلاً MT8880CE را میتوان با اطلاعات کاتالوگ آن راه انداخت اما MT8880BE را نمی توان راه انداخت . چون این آی سی ساخت کشور چین است و باید هنگام رویداد وقفه این آی سی بصورت مداوم پایه Q2 را (0) و (1) کرد .
دیدگاه
-
پاسخ : درخواست کمک برای راه انداری MT8880 MT8888
نوشته اصلی توسط babaki
اگه ممکنه یه راهنمایی کنید که چجوری میشه فهمید طرف مقابل گوشی تلفن رو برداشته و یا گذاشته ؟؟؟؟
ببنین دوست عزیز وقتی شما گوشی تلفن را بر می دارید گویی یک مقاومت 330 اهم با دو سر خط موازی شده و این باعث افت جریان در خط می شود و مخابرات این را تشخیص می دهد و بوق مشغولی را روی خط ارسال می کند.
شما وقتی می خواهید گوشی را بردارید یک مقاومت 330 اهم با دوسر خط موازی کنید.
دیدگاه
دیدگاه