Professional Documents
Culture Documents
الميكروكنترولر معرض الأزهر للتطبيقات الهندسية 2 PDF
الميكروكنترولر معرض الأزهر للتطبيقات الهندسية 2 PDF
Applications ................................................................................................. 50
Real time clock..................................................................................................................................50
Ultrasonic ..........................................................................................................................................52
ٝهجَ اُجذء ك ٢اُؾذ٣ش ػٖ ٛز ٙاالؽ٤بء ًبٕ الثذ ٖٓ اُؾذ٣ش اٝال ػٖ ٗٞع
أٌُ٤شً٘ٝزشُٝش أُغزخذّ كٓ ٢ؼظْ اُزطج٤وبد ٘ٛ ٖٓٝب ًبٗذ اُجذا٣خ ...
: PIC16F877A VS PIC18F4550
ش اُـ٤ ؽذ ًج٠ُؾجخ ا٣ ٞٛٝ PIC18F4550 ٞٛ سطٌُٞزا اٛ ٠ع أُغزخذّ كُٞ٘ا
. طخ٤عذ ثؼذ االخزالكبد اُجغٞ ٌُٖ رPIC16F877A اُخبفخ ثـConfiguration
: االخزالكبدٙزٛ ْٛمؼ أٞ٣ ٍٝزا اُغذٛ
Features PIC16F877A PIC18F4550
Operating Frequency DC – 20 MHz DC – 48 MHz
Data Memory (Bytes) 368 2048
Data EEPROM 256 256
Memory (Bytes)
Interrupt Sources 15 20
I/O Ports Ports A, B, C, D, E Ports A, B, C, D, E
Timers 3 4
Capture/Compare/PWM 2 1
Modules
دً ١بٗذ ٗظشح عش٣ؼ ٚػِ ٠أ ْٛاٍ Featuresاُِٞٓ ٢عٞد ٙك ٚ٤ُٝ PIC18F ٢اؽزـِ٘ب
ثٜ٤ب ٓؼ ة ٝ PIC16Fا ْٛاُلشٝم ث. ْٜ٘٤
اىذاٝزة:
ٛالؽع اٗ ٚثؼذ أُ ٍٝلخ اُـ ledsهلذ ٝاُغجت اٗ ٚأٓ ٍٝب ٞ٣فَ إ
ُٞportb=0b10000000ؽقِخ shift leftاُـ ًِٚ ٌٕٞ٤ٛ registerأفلبس
اُؾَ اٗ ٠أخِ ٠اُؤ٤خ األثزذائ٤خ ُـ portbاأل portb=0b00000001; ٠ٛٝثذاخَ
)٣ٝ ,,while (1قجؼ اٌُٞد ثٜزا اُؾٌَ:
اُـ IC7493د ٟػجبسح ػٖ ) (4 BIT binary counterأٓ ٍٝب أدclk (pulse) ٚ٣
ث٤ؾقِ increment ٚثٔوذاس1
0000
0001
:
1111
clk ًَ ٓغ
increment ِٚؾق٤ٛ
16Page Technical Support 2015
00000000
00000001
:
11111111
ثؼذ ٛزح اُؤ٤خ ث٤ؾقَ ٝٝ roll overهزٜب اٍ timerث٤شكغ flagػؾبٕ ٘٣ج ٠ٜ٘إ
اُزبٔ٣ش خِـ ػذ ,اٍ flagاعٔ. Tmr0if ٚ
ُٞ Tmr0ifهٔ٤زٜب ة ٣ zeroؼ٘ ٠اٍ ُ timerغ ٚث٤ؼذ ُٞ,هٔ٤زٜب ة ٣ 1ؼ٘ ٠اٍtimer
ؽقٌِٛٝ . roll over ٚزا ُ ٞػبٝص اٍ ٣ timerؼَٔ roll overثؼذ ػذد ٓؼ ٖ٤أؽِٔ ٚة
IV
Iv=256-count
ػِ ٠عج َ٤أُضبٍ ُ ٞػبٝصاُزبٔ٣ش ٣ؼذ 156ػذح ٝهزٜب اُؤ٤خ اإلثزذائ٤خ
Iv=256-156=100
ػؾبٕ أك ْٜأٌُ٤ش ٝاٗ٣ ٚؾَٔ اُؤ٤خ اإلثزذائ٤خ د ٟاهٛ ٌُٖ tmr0=160; ُٚٞؾزبط ًَ ٓب
٣ؾقَ roll overالصّ أؽِٔخ اٍ initial valueإلٕ أٌُ٤شٓ ٝؼ رً٠
ثبُذسعخ اٌُبك٤خ اُِ ٠رخِ٣ ٚ٤جذأ ػذ ٖٓ ٤ٛ ٌُٖ 100ؼذ ٖٓ.0
ٍالصظاث:
flag _1ثؼذ ٓب اٍ ٌٕٞ٣ flagة 1أٌُ٤شٓٝؼ ٤ٛقلشُ ٙؾذ ٓب ٣زؤًذ اٗ ٠ؽلذ اُـ
ثبٗ ٠أٗب اُِ ٠أفلش.ٙ
_2اُـ clkاُِ ٠ثزضٝد اُؼذاد ُٜ٤ب ٓقذس:ٖ٣
ىنِ ٕذا اىؼذد صغٞزرذا ألُ اىشٍِ اىي ٚبٞقذرٝؼذ ,, 256μs ٕ٘ ٔٝفَا اىضو ؟؟؟
اُؾَ اٗ ٠أثطؤ اٍ ٝ ٌُٖ clockهزٜب ٛجطؤ أداء اُـ cpuكٔق٘ؼ ٠أٌُ٤شٝ ٝعذٝا ؽَ اخش
ٝمؼٞا ثؼذ اٍ MUXؽبعخ روَِ اُزشدد ك٤ض٣ذ اُضٖٓ ٞٛٝ prescaler ٞٛٝػجبسح ػٖ
.frequency divider
اُـ ٤ٛ frequency dividerوجَ اُوغٔخ ػِٝ .1,2,8,16.......256 ٠ثٌذ ٞٛ ُٞ ٙك ٠اٍ
٤ٛ timer modeؼذ أًزش ألٗٝ ٠هزٜب ٛوغْ اُزشدد اُِ MH1 ٞٛ ٠ػِ٠
18Page Technical Support 2015
:ٞٛ ٚؾغج٣ ٌٖٔٓ ٖٓ ص٠ أهق٠٘ؼ٣ ,,ٌجش٤ٛ ٖٓ كبُض256 ٠نشة اُضٖٓ كٛ ٌُٖ 256
256*256=65536μS=0.6sec
. counter mode ٍظ ا٤ُٝ time mode ٍ ا٠ كprescaler ٍ ا٠ أٗب ثزؾٌْ ك: الصع
ٍ أؽذ اٙدٝ option_reg register ٚٔ اعregister ٍ ٖٓ خالٚ٤ ثوذس أرؾٌْ كًَٙ د
ظ ُٔغشد٤ُٝ ٖ٤وشأ ُـشك ٓؼ٣ٝ ٌزت٤ ث٠٘ؼ٣ ) special function register(SFR
. ٙ دregister ٍ ا٠ِا ٗزؼشف ػُٞ هت رؼب,, ٖ٣اُزخض
: timer اهregister اىخاصت بـbits و اهٞتفاص
رغزخذّ إلخز٤بس اُـ falling َٛ edgeأّ ٝ risingاُز ٠عٞف ٣زْ ػذٛب ثبُٔئهذ
ٖٓTMR0خالٍ اُطشف RA4 / T0CKIك ٠ؽبُخ اٍ . counter mode
اُؤ٤خ = 1رضا٣ذ ػ٘ذ اإلٗزوبٍ ٖٓ ٓشرلغ اُ٘ٓ ٠خلل fallingػِ ٠اُطشف RA4 /
.T0CKI
اُؤ٤خ = 0رضا٣ذ ػ٘ذ االٗزوبٍ ٖٓ ٓ٘خلل آُ ٠شرلغ risingػِ ٠اُطشف .RA4 /
T0CKI
ٓؼ ثزلشم كٓ ٠ؼظْ األؽ٤بٕ ٌُٖ rising edge or falling edgeثزلشم ُٔب ٌٕٞ٣
ػ٘ذ ٟػذاد ُغشاط َٛاٍ ٣ counterؼذ أٓ ٍٝب اُغضء األٓبٓ ٖٓ ٠اُؼشث٤خ ٣ذخَ ٝال ُٔب
اُغضء اُخِل ٠اُِ٣ ٠ذخَ ,أل هجؼب أػذ ُٔب أربًذ إ اُؼشث٤خ دخِذ ٣ؼ٘ ٠اُغضء اُخِل٠
: prescaler rate ٖ٤٘ ارٚ٤ُٝ 3 bit ٖٓ ٌٕٞٓ ٞٛٝ ٓؼبَٓ اُوغٔخٞٛ prescaler اُـ
ْوغ٣ وذس٣ ٚٗ كبTMR ٠ِ ػُٞ watch dog ٟ أWDT ٠ٗاُضبٝ timer/counter ٍٝاال
ٍوغْ ا٣ وذس٣ WDT مغٝ ٠ِارا ًبٕ ػٝ 256 ٠ُ ا, .... ٝ أ4ٝ أ2 ٠ِ ػCLOCK ٍا
.1:12 ٠ُ ا1:1 ٖٓCLOCK
ٝ أWDT اءٞ ع, ٙؽذُٞ prescaler ُٚ timer ًَ pic 18 أٓبpic 16 ٠زا كٛ
. كوو256μs شُؾذ٤وذس أػذ ؿٛ ٓؼprescaler ٍ ٓغزخذٓزؼ اُٞ.TMR0
EXAMPLE:
Setup TIMR0 for 100μs delay, fosc=4MHZ???
Ans:
_ Timer mode (TOSC=0)
_100μs < 256 μs (no need prescaler)
_fosc=4MHZ
_Ftimer=4/4=1MHZ
_ T pulse=1/(10^6) = 1 μs
_ no. of pulses=100μs/1 μs=100 pulse
_ option_reg= 0b11010000
23Page Technical Support 2015
_ initial value =256-100=156
_ TMR0=156
.100μs سٝ ثؼذ ٓشflag ٍشكغ ا٤ٛ timer ٍ اًٙذ
---------------------------------------------------------------------------
EXAMPLE:
Setup TIMR0 for a delay 10ms delay, fosc=4MHZ???
Ans:
_ timer mode (TOSC=0)
_10000μs > 256 μs (need prescaler)
ثؼذover flow َؾق٤ ثprescaler ٕٝ ثذ1μs اؽذحُٞ اpulse ٍ صٖٓ اٟأٗب ػ٘ذ
٠ كالصّ أمشة ك10000μs صٖٓ هذسح٠ِص أؽقَ ػٝ هت أٗب ػب256 μs سٝٓش
prescaler its value is =10000μs/256 μs=39.06
. 64جب٣روش
count =10000μs/64 μs=156.25
سثغ ػذح ٓوذاسerror ٟ ػؾبٕ اٌُغشػ٘ذِٟٞخ ه٤ِ هerror ٗغجخ٠ٕ كٌٞ٤ٛٝ 156 جب٣روش
. 0.25/64 اُخطؤ
_ option_reg=0b11010101
_ initial value =256-156=100
_ TMR0=100
. 10ms ثؼذflag ٍشكغ ا٤ٛٝ ٙ ػذ156 ؼذ٤ٛ timer ٍ اًٙذ
EXAMPLE:
Setup TIMR0 for a delay 50ms delay, fosc=4MHZ???
Ans:
_ timer mode (TOSC=0)
24Page Technical Support 2015
_50000μs > 256 μs (need prescaler)
prescaler its value is =50000μs/256 μs=195.3125
. 256 جب٣روش
_count =195
_ option_reg=0b11010111
_ initial value =256-195=61
_ TMR0=61
٠ٔ ٌٖٓٔ اعٝ أ. ٘لغ٤ٛ ٓؼTMR0 بٜهزٝ count>256 اُـُٞ أُؾٌِخ
ٞٛ ٠ٕ اُضٖٓ أُ٘ونٌٞ٣ٝ 1 ذ٣ض٣ variable ٍ اflag َؾق٣ ًَ ٓبٝ variable
.50ms * variable
: غٝاىَشار
:اىَشزٗع األٗه
رؾبد ثظ ثؼذ ٓبٞاُغٝ ذاد٤ٍُِ ثشٗبٓظ اٝ األ٠ كٚ٘ أرٌِٔ٘ب ػ٠ُِص أػَٔ اُجشٗبٓظ اٝػب
DELAY ٍذ ٓؾٌِخ ا٤ِؽ
. timerٍثبعزخذاّ ا
:م٘د اىبزّاٍذ
ٌُٖ ٛزا اُجشٗبٓظ ٞ٣عذ ثؼل األخطبء اُز ٠ال رغؼِ٣ ٚؼَٔ ثٌلبءح ُٞ ,ػذ ٓضال ٝأفجؾذ
ُٝ tick=9غ ٌَٔ٤ٛ ٚػذ هٔذ مـطذ ع اُغٞرؼ اُزبًٗ ٠ذ٤ٛ ٙخِ٣ٝ tick=0 ٠جذأ ٣ؼذ
ٖٓ عذ٣ذ ٝرقجؼ ٣ tick=10ؼ٘ٓ ٠ؼ ٤ٛذ action ٟؿ٤ش ثؼذ ٣ ms50 *19ؼ٘ ٠أًزشٖٓ
ٗـ صبٗ٤خ ُزا ٓؼ ٗخِ tick=0 ٠أص٘بء اُنـو ػِ ٠اُغٞرؼ ٌُٖٝػ٘ذ اخزجبس ٓشٝس
اُ٘ـ صبٗ٤خ كِ ٞػذٗ ٟـ صبٗ٤خ ٗلز األٓش ٝثؼذ ٖ٣خِ. tick=0 ٠
كٓ ٠ؾٌِخ ربٗ٤خ ك ٠اٌُٞد أٗ ٚأٓ ٍٝب ٞ٣فَ ٝ ;portb=0b10000000هزٜب ُ ٞؽقَ
shiftاُٞاؽذ ٤ٛن٤غ ٣ٝجو ٠اٍ ًِٚ registerأفلبس .
ٛضٝد األٓش
ٖ٤ثٝ ٚ٘٤م ثٝالؽع ثؼل اُلشٛ 1 ٔش٣ ثزبع ربblock diagram اُـ٠٘ب ك٤٘ب ثق٤ عُٞ
: 0 ٔش٣رب
غزش٤غ٣ س2 ٖ ػجبسح ػٚٗ ال16-bit timer/counter ٚٗ_ا1
ٖ ػجبسح ػٚغغزشار٣ ًَ س٠ ثزبػٌٝش٤ُٔ الٕ اRegisters (TMR1H and TMR1L)
ٖ إ اُغؼخ ػجبسح ػٙ ًذ٠٘ ٓؼ,, ذ٤ ث8
Capacity=2^16=65536
overflow َؾق٣ ٖ٣ثؼذٝ 0XFFFF to 0X0000 ٖٓ ؼذ٣ َلن٤ٛ ٠٘ؼ٣
. TMR1IF <<< flag شكغ٤ب ثٜهزٝٝ
. َؾزـ٣ ٓؼ٠٘ؼ٣ 0 بٜ٤ِ ػُٞ , َؾزـ٣ ٔش٣ اُزب٠٘ؼ٣ 1 بٜ٤ِ ػُٞ AND gate اُـ
,, كوو1, 2, 4 or 8 divisions of the clock input ٖ ػجبسح ػprescaler _ اُـ3
. prescaler ٔش كوِِذ اُـ٣ ًجشد عؼخ اُزب٠ٗال
ٚ٤ ك0 ٔش٣ ربٟ_ ص4
Timer mode (0)
Counter mode (1)
اِٞٔؼ٣ ْْٜٗ آٜ أهذس اعزخذRC0/T1OSO and RC1/T1OSI pins اُـٟكؼ٘ذ
peripheral electronics ٟخ ٖٓ أ٣ عب٠ُِ اpulses ُِـcount
input ( ًـpin RC1) ّ أهذس أعزخذ٠ٗ ا: خ٤ٗلخ رب٤ظٝ ْٜ٤ُ ًٕٔبٝ
ٝ
LP quartz oscillator (low ُــoutput ( ًـpin RC0)
power)
. بٜ ؽطز٠ُِغزبُخ ا٣ذ رجغ اُزشدد ثزبع اٌُش٣ض٤ٛ 1 ٔش٣ب ربٜهزٝٝ
Bit 3:
ُ ٞػبٝص ٓضال أؽـَ ًش٣غزبُخ ص ٟثزبػ ٚاُغبػخ
Bit 0:
Pres=
IV=65536-50,000=15536
.H اُـ٠ٖ ك٤اُجبهٝ L اُـ٠ ك٢ُٝ األ8 bit ٍ أمغ اbinary ٠ُ ا15536 ٍْ اُشهٞأؽ
IV=0X3CB0=0B0011110010110000
TMR1L=0XB0
TMR1H=0X3C
T1CON=0B00010001;
Example2:
Setup timer1 for a 500ms delay Fosc=4Mhz?
Sol.:
500,000>65536
Pres=
IV=65536-62500=3036=0X0BDC
IV=0B0000101111011100
TMR1L=0XDC
TMR1H=0X0B
T1CON=0B00110001;
=Flag
ه٤ت أٗب ًذ ٙاُٞعِ٤خ اُِ ٠ثؼشف ثٜ٤ب اُزبٔ٣ش خِـ ٝال أل ٠ٛاُـ ,, flagه٤ت ٌٖٓٔ اُــ
ٓ ٌٕٞ٣ CPUؾـٝ ٍٞاُزبٔ٣ش ٣شكغ اُـ ٓٝ flagؼ أخذ ثبُ ٠ؿ٤ش ثؼذ ٓذح ٌٖٓٔ روَِ ٗغجخ
اُذهخ ,,ػؾبٕ ًذ ُٞ ٙػبٝص اُــ CPUرغزغ٤ت ثغشػخ ُِــ flagأعزخذّ اُــ interrupt
: ِٕٞٗ٘ ّ٘ػ
Internal interrupt
External interrupt
interrupt ش٤ؼ ؿ٣ٓؼ٘ذٝ , interrupt ُِــsource ًزاٟ أٗب ػ٘ذ٢هزُٞت د٤ه
ػ ُ٘لظ اُـٝش٤ٛ َؾق٤ٛ interrupt ٟ إ أٙ ًذ٠٘ ٓؼ,, اؽذٝ services routine
ٖ٤أٗلز أٓش ٓؼٝ interrupt ٓقذس اُـ٠ِ ػcheck َٔ الصّ أػٙ ػؾبٕ ًذ, function
َٔ اػ1 ٔش٣ ٖٓ ربٟ عبُٞ , ٘خ٤ أػَٔ ؽبعخ ٓؼ0 ٔش٣ ٖٓ ربٟ عبflag اُـُٞ ُخٞوٛ ٠٘ؼ٣
. ٚ٤ٗ ربٚؽبع
UART TX interrupt
enable UART RX interrupt enable A/D interrupt TMR1 INT
TXIE RCIE ADIE T1IE
PEIE : Bit 6
PEIE(6): to enable/disable other peripheral interrupts
enable peripheral interrupts = )1( بٜٔز٤ه
disable peripheral interrupts = )0( بٜٔز٤ه
T0IE : Bit 5
TOIE (5): to enable/disable TMR0 interrupt
enable TMR0 interrupt = )1( ٔخ٤اُو
disable TMR0 interrupt = )0( ٔخ٤اُو
ن٣ ػٖ هشinternal clock بس ٗظبّ اُـ٤زْ اخز٣ TMR0 interrupt ّ ؽبُخ اعزخذا٠ك
ب ثقلشٜٔز٤ هOPTION_REG ثبُـbit 5 ٠ٛٝ TOCS _ bit ٠ِ أخ٠ٗا
. TOCS=0 ٟأ
رقجؼٝ Interrupt Flag زْ سكغ اُـ٣ ٔش٣ ُِزبoverflow َؾق٣ ًَ ٓبٝ
Interrupt اُـInterrupt َؾق٣ TMR0 ُِـoverflow َؾق٣ ًَ ٓبٝ, T0IF=1
الصّ ٗبخذ ثبُ٘ب اٗ٘بٝ ,, ارشكغtimer0 flag إ اُـ٠ٜ٘ٔل٤ٛ ٠ُِ اٞٛ ٙد
َؾق٣ ٘لغ٣ ٕ ػؾبsubroutine interrupt اُـ٠ كTOIF ُِخبٗخclear َٔٗؼ
ذ٣ ٖٓ عذinterrupt
TOIF=0
RBIE : Bit 3
ػ٘ذinterrupt االهشاف إٔ رغجتٙزُٜ ٌٖٔ٣ َ ًٔذاخPORT B ئخ أهشاف٤ٜػ٘ذ ر
. ) اُؼٌظٝ ٓ٘خلل أ٠ُاء ٖٓ ٓشرلغ اٞخ ( ع٤ب أُ٘طوٜش ؽبُز٤رـ
. PORT B ؽبُخ أُ٘لز٠ش ك٤س رـٖٝ أُوبهؼخ ػ٘ذ ؽذ٤ٌٔ) = ر1( ٔخ٤اُو
. ٖ أُوبهؼخ٤ٌٔ) = ػذّ ر0( ٔخ٤اُو
T0IF : Bit 2
,, 1 ب ثـٜٔز٤ رقجؼ هoverflow كبرا ؽذس,, أّ ال0ٔش٣ ُزبoverflow َ ؽذسٛ ٖ٤رج
ٝ أset ) آبT0IE ( Bit 5 َن عؼ٣ب ػٖ هشٜ٘٤ٌٔ ػذّ رٝب اٜ٘٤ٌٔ ر٠ٌٖٔ اُزؾٌْ ك٣ٝ
. clear
٠ ُِخبٗخ كclear َٔغت ػ٣(TMR0 غزش٤غ٣ ثشoverflow سٝ) = ؽذ1( ٔخ٤اُو
) اُجشٗبٓظ
. overflow ٠ُقَ ثؼذ ا٣ ُْ 0 ٔش٣غزش رب٤غ٣) = س0( ٔخ٤اُو
ارا ًبٗذ خبٗخ رٌٔ ٖ٤أُوبهؼخ أُ٘بظشح ؿ٤ش ٌٓٔ٘خ أ )0( ٟكال رؾذس ٓوبهؼخ أعبعب .أٓب
إ ًبٗذ ٌٓٔ٘خ أ )1( ٟكزؾذس أُوبهؼخ ػ٘ذ سكغ اُـ . flag
45Page Technical Support 2015
)Example: (portb interrupt
اُجشٗبٓظ ث٤جذأ ٖٓ ػ٘ذ mainرلنَ اُِ٤ذ ر٘ٞس ٝرطلٝ ٠ث ٖ٤اٍ on & offصٖٓ اٗزظبس
٠ِٓ 100صبٗ٤خ أٓ ٍٝب اٍ ٣ userنـو ع اٍ ٣ switchوق اُجشٗبٓظ ػِ ٠ؽبُز٣ ٚؼُ٘ٞ ٠
مـطذ ٞ٘ٓ led1ٝسح ٛزلنَ ٓ٘ٞسح ُ ٞمـطذ ٓ led1ٝطل٤خ ٛزلنَ ٓطل٤خ ُؾذ ٓب
٣شٝػ ُذاُخ ٘٤ُ interruptلز اُِ ٠كٜ٤ب ٣ٝشعغ ُِجشٗبٓظ االفِ ٠ربٗ٤ٛ ٠شٝػ ُِٔوبهؼخ
ٞ٘٣س ٣ٝ led 2لنَ 3صٞاٗ ٠صْ ٣طلٜ٤ب ٣ٝشٝػ ُِجشٗبٓظ االفٌِٛٝ ٠زا ثظ ػ٘ذ ؽذٝس
ٓوبهؼخ ٣شكغ ػِْ أُوبهؼخ اُخبؿ ة ٝ portbرقجؼ ُ bit0=1زا الثذ ثؼذ ٜٗب٣خ اٍ
interruptاٗ ٠أفلش bit0ػؾبٕ أهذس أػَٔ ٓوبهؼخ ربٗٝ ٠رُي ػٖ هش٣ن االٓش
;ًٔ intcon.f0=0ب ٓ ٞٛج ٖ٤ثبٌُٞد .
46Page Technical Support 2015
: و اىذائزةٞت٘ص
:م٘د اىبزّاٍذ
USB Speed
اُـ ,, three versions ٚ٤ُ USB bus specificationاألهذّ ٣ٝ USB1.0 ٠ٛٝخزِق
ٓؼذٍ ٗوَ اُج٤بٗبد ث ٚؽغت اُغشػ ٚأُغزخذٓخ
Low speed—1.5Mb/sec
Full speed—12Mb/sec
ٗٝضٍ االفذاس ُٜ USB 2.0ب ٓؼذٍ ٗوَ ث٤بٗبد High speed—480Mb/sec
ٝاالفذاس األعذد ٓ ُٚ USB 3.0ؼذٍ ٗوَ ث٤بٗبد .Super speed—5Gb/sec
Oscillator Configurations
ػ٘ذٓب ٗغزخذّ أٌُ٤شًٗٞٝزشُٝش ُالرقبٍ ٖٓ خالٍ ٣ USBغت اعزخذاّ عبػخ ثزشدد 6
ُِMHzغشػخ أُ٘خلنخ أُِ MHz 48ٝغشػ ٚاٌُبِٓخ الٕ ه ْ٤اٌُش٣غزبالد ثزٌٕٞ
ٝ standardدا٣شح اُـ ٖٓ clockعٞا ٙكٜ٤ب prescalerث٤خِ ٠٘٤أهذس أهغْ اُزشدد ػِ٠
1أ 2 ٝأ 4 ٝأ ٌُٖ . 8 ٝأُؾٌِخ اٗ٘ب ُِغشػ ٚاٌُبِٓخ ٘ٛغزخذّ ًش٣غزبٍ ثزشدد MHz 48
ٝد ٙرشدد ػبُ ٠عذا ٣ؼ٘ ٌٕٞ٤ٛ ٠ك noise ٠ػبُ٤خ ؿ٤ش اٜٗب ؿ٤ش ٓزبؽخ ثٞكشح ٌِٓٝلخ ,,
ُٝؾَ أُؾٌِخ د ٟهذٓذ ؽشًخ ٌٓ٤شٝؽ٤ت ػَٔ سائغ ٠ٛٝدا٣شح ٓنبػق رشدد ( ػٖ
هش٣ن دائشح )ٝ (Phase Lock Loop (PLLاُز٣ ٟؼط ٠٘٤اُزشدد أُطِٞة ٝأُغزخذّ
ُِغشػ ٚاٌُبِٓخ ػٖ هش٣ن ًش٣غزبُخ رزشاٝػ هٔ٤زٜب ٖٓ MHz 4أًُ, 48 ٠ب رزْ
أُؼبُغخ إلُـبء اُنٞمبء داخِٜب ُ .زُي عٞف ٗغزخذّ ٛز ٙأُ٤ضح إلٗزبط اُغشػخ اٌُبِٓخ
ُالرقبٍ ػجش . USB
ك ٠اُؾٌَ اُز ٟثؤعلَ ع٘الؽع اٗ٘ب ٌ٘٘ٔ٣ب اعزخذاّ اُـ PLL optionأ٘ٓ ٝغزخذٓٞػ
ٗٝغزخذّ ًش٣غزبُخ ٓجبؽشح ثبُزشدد أُطِٞة ٝاالػذداد د٣ ٟزْ مجطٜب ٖٓ خالٍ
أٌُ٤شٝع٘ٛٝ ٠زٌِْ ػٜ٘ب ك ٠اُـ sectionاُوبدّ.
ك ٠ؽبُخ اعزخذاّ اُـ ٗ PLL optionالؽع إ رشدد اٌُش٣غزبُخ ث٤ذخَ ػِprescaler ٠
( )1,2,3,4,5,6,10,12كؼِ ٠كشك اٗ٘ب اعزخذٓ٘ب ًش٣غزبُخ ٘ٛ 4MHZخزبس
prescalerهٔ٤ز ٚثٞاؽذ ٣ؼ٘٤ٛ (PLLDIV = 000) ٠خشط ٖٓ اُـ ٝ MUXهزٜب رشدد
هٔ٤ز٣ 4MHZ ٚذخَ ػِٓ ٠نبػق اُزشدد ك٘٤زظ ثبُلؼَ ٝ MHz 96ثؼذ اُوغٔخ ػِ2 ٠
رٌٝ ,,, MHz48 ٕٞارا اعزخذٓ٘ب ًش٣غزبٍ MHz 20ػ٘ذئز ٣غت إٔ ٌٕٞ٣أُؼبَٓ
prescalerثخٔغخ ٌٛٝزا .أؽ٘ب ًذ ٙارٌِٔ٘ب ػٖ اُـ , USB clockثبُ٘غجخ ُِـ CPU
ٍيض٘ظت :
اُؾ٤ئبٕ األًضش أ٤ٔٛخ ٝاُِزإ ٣غت إٔ ٌٗٞ٣ب فؾ٤ؾبٕ رٔبٓب ٔٛب :اػذاداد
أٌُ٤شً٘ٝزشُٝش ٝ configurationاُـ USB device descriptorؽزً ُٞ ٠بٕ ٘ٛبى
ؽ٠ء فـ٤ش عذا ؿ٤ش فؾ٤ؼ ؽُٜٔٞب كبٕ االرقبٍ ُٖ ٣زؾون .
Microcontroller Configuration
61Page Technical Support 2015
هجَ ثشٓغخ أٌُ٤شًٗٞٝزشُٝش رؤًذ إٔ اػذادار ٚفؾ٤ؾخ .هْ ثبٗؾبء ثشٗبٓظ
ٌُِٔ٤شًٗٞٝزشُٝش P18F4550 .ارٛت اُ ٠اُوبئٔخProject→Edit Project ,:
أُٞمٞع إٔ ٓغز ٟٞاُغٜذ ُخو ث٤بٗبد )ٗٝ volt 3.3 ٞٛ USB (D+ and D-ظشا
ألٕ أٌُ٤شًٗٞٝزشُٝش ٣ؼَٔ ػ٘ذ ُ volt 5زُي ٞ٣عذ ٓ٘ظْ اُغٜذ v 3.3اُخبؿ ثؼَٔ
٣ USBغت ػِ٤ي رٌٔ.) enable ( ٚ٘٤
ٞ٣عذ هشف ك ٠اُـ VUSB (pin14) ٞٛٝ pic18f4550ارا ً٘ذ ال رش٣ذ اعزخذاّ
ٓ٘ظْ اُغٜذ v 3.3اُذاخٌِ٘ٔ٣ , ٠ي اُزـز٣خ ثٔقذس v 3.3ػِٛ ٠زا اُطشف ٝ .ارا
اعزخذٓذ أُ٘ظْ اُذاخِ ٠ػ٘ذئز ٣زْ امبكخ ٌٓضق nF 220ػِٛ ٠زا اُطشف ثبُ٘غجخ
ُألسمُ ٠ؼَٔ اعزوشاس ُِٔقذس اُذاخِ. ٠
Library Routines
HID_Enable
HID_Read
HID_Write
HID_Disable
USB_Interrupt_Proc
HID_Enable
Description Enables USB HID communication.
Parameters
٠ رؤر٠ اُزUSB بٗبد٤ذ ؽلع ث٣ش رش٤كخ ؽٞ أُقل:ReadBuffer
Example HID_Enable(&readbuff,&writebuff);
Notes ٖٓ أٌُزجخٟاٍ األخشٝ اُذاُخ هجَ اعزخذاّ اُذٙزٛ غت اعزذػبء٣
.USB HID
HID_Read
Description Read Buffer كخٞ أُقل٠ب كٜ٘٣رخضٝ host اعزوجبٍ اُشعبُخ ٖٓ اُـ
HID_Write
Description Function sends data from Write Buffer (writebuff) to
host.
Parameters writebuff: Write Buffer, same parameter as
used in initialization; see HID_Enable.
len: specifies a length of the data to be
transmitted.
71Page Technical Support 2015
Returns If the data transmitting has failed, the function returns
0. Otherwise, it returns number of transmitted bytes.
HID_Disable
Prototype void HID_Disable(void);
Description Disables USB HID communication.
Example HID_Disable();
USB_Interrupt_Proc
Description This routine is used for servicing various USB bus
events. Should be called inside USB interrupt routine.
ٖٓ اُؼ٘ٞإ 400hاُ ٠اُؼ٘ٞإ ٖٓ 4FFhأعَ اُـ ُ ٝ,, descriptorذ٘٣ب كؼِ٤ب ٖٓ
اُؼ٘ٞإ 500hاُ ٠اُؼ٘ٞإ ُ 7FFhزخض ٖ٣اُج٤بٗبد ُ .زُي عٞف ٣زْ اػالٕ أُزـ٤شإ ًٔب
:٠ِ٣
اىذائزة :
األٞٛ ٍٝفَ اُذا٣شح ػِ ٠ثشٝرظ ُِٝزؼبَٓ ٓغ اُـ USBػِ ٠ثشٝرظ الثذ ٖٓ ر٘ضَ٣
ثشٗبٓظ ٝ virtual USB driverأُٞعٞد مٖٔ ثشٗبٓظ ثشٝرظ ٘ٛٝ ,,غزخذٓخ ػؾبٕ
ٗ ْٛٞاُغٜبص إ دا٣شح اُجشٝرظ ٓزقِخ ث ٚكؼِ٤ب .
٠ كdevices ٍ هبئٔخ ا٠ذ ارؼشف ك٣ عذdevice ٠٘الؽع إ كٛ ُِذائشحrun َٔػ٘ذ ػ
control panel اُـ
ٞٛػجبسح ػٖ shift registerث٤زؾو ك ٚ٤اُذارب اُِ ٠اؽ٘ب ػبٝصٗ ٖ٣جؼزٜب ثؼذ ًذ ٙاٍ
shift registerد ٙث٤ؾلذ اُذارب ث٘بء ػِ ٠اٍ CLKاُِ ٠ث٘ؾذدٛب ك ٠اٍ baud rate
د ٙك ٠اُزشاٗغٔ٤زش
كٗ ٠لظ اُٞهذ اٍ pinثزبػذ اٍ ٓ RXزٞفِخ ة shift registerاُذارب اُِ ٠هِؼذ
ٖٓ اٍ TXثزذخَ ػِ ٠اٍ RXاُِ ٠ث٤ؾلذ اُذارب اُِ ٠دخالُٜب ث٘لظ اٍ baud rate
ٝثٌذ ٙاُذارب ثزز٘وَ ٖٓ اٍ TXاُ ٠اٍ RX
طٞب ا ٔٝاىيٝ ٚخي ٚاه ٍ UARTش سزٝغ ٍا ّؼي ٚاه baud rate؟!
أُؾٌِخ اٗ٘ب ث٘ؼزٔذ إ اٍ ٘٤ٛ receiverزظ ٗلظ اُزشدد اُِ ٠ث٤ؾلذ ث ٚ٤اٍ transmitter
اُذارب ثظ د ٙث ٌٕٞ٤كٝ error ٚ٤اٍ errorد ٙث٤ض٣ذ ًَ آب صٝدٗب اُزشدد .
ٍ ثزبع اshift register ٍ ا٠ ك٠ُِ اُذارب ا8 clk ثؼذٙ أُضبٍ د٠ٖ ك٤ل٣ ٓب اؽ٘ب ؽبٟص
اٗ٘ب ٗوذس ٗجؼذٙ ًذ٠٘اُؼٌظ ٓؼٝ RX ٍ ثزبع اshift register ٍ ا٠دح كٞعٞٓ ثوذTX
. هذُٞ ٗلظ ا٠ٗغزوجَ كٝ
ثالػ ًالّ ًز٤ش خِٗٞب ٗؼَٔ ا ٍٝثشٗبٓظ ػِؾبٕ ٗؾٞف اٌُالّ اُِ ٠كٞم د ٙؽـبٍ اصاٟ
ثظ ك ٠اال ٍٝالصّ ٗؼشف اعٔبء اٍ registersاُِ ٠ثززؾٌْ ك ٠ػَٔ اٍ . spi
Master code
// .........................master code.........................
void main()
{
volatile char c='0',RX ;
TRISC.F5=0; //config SDO as output
TRISC.F4=1; //config SDi as input
TRISC.F3=0; //config CLK as output
SSPSTAT=0; //Input data sampled at end of data
Slave code
//.................. slave ............
void main()
{
volatile char c=65,RX; //assci value for char A
TRISC.F5=0; //config SDO as output
TRISC.F4=1; //config SDi as input
TRISC.F3=1; //config CLK as input
SSPSTAT=0;
SSPCON=0B00100101; //SLAVE MODE ,SS
CONTROL dis,idel state for clk low,enable serial port
UART1_Init(9600);
Delay_ms(100); // Wait for UART module to
89Page Technical Support 2015
stabilize
UART1_Write_Text(".............slave.............");
UART1_Write(10);
UART1_Write(13);
SSPBUF=c; // send A to the slave
while(1)
{
while(BF_bit==0); //wait Receive complete
RX= SSPBUF; //receive data
UART1_Write(RX);
if(c<90) c++; //assci value for char Z
else c=65;
if (RX == '9')
{
UART1_Write(10); //new line
UART1_Write(13);
}
SSPBUF=c;
} //end supper loop
} //end main
port ٍ ػشكذ اٙ ثؼذ ًذSPI ٍ اُذارب ٖٓ اٚ٤ش ػِؾبٕ اعزوجَ ك٤خ ػشكذ ٓزـ٣ اُجذا٠ك
ٚ ػشكزspi َُ initialization ٖ ػِٔذ٣ثؼذٝ output ٚٗ ا٠ِذ ػ٤ُِ اٚ٤فَ ثٞٛ ٠ُِا
. clk ٍؽذد ؽبُخ اٝ ss َُ enable ػِٔذٝ slave ٚٗا
Master.c
#define button1 PORTB.F0
#define button2 PORTB.F1
#define SS1 PORTB.F2
#define SS2 PORTB.F3
void main()
{
unsigned short f0=0,f1=0; //store button state
TRISB=3; //CONFIG RB0,RB1 AS INPUTS
SS1=1; //DISABLE SLAVE 1 & 2
SS2=1;
NOT_RBPU_bit=0; //ENABLE PULL-UP RESISTORS
SPI1_Init(); //// Initialize the SPI1 module with
default settings
delay_ms(100);
) START _1أ٣ bit ٍٝزْ اسعبُ :(ٚرلؼ َ٤اُجشٝرٛٝ ًٍٞٞزا ٣غؼَ عٔ٤غ اُـ slaves
ر٘زج ٚأٗ٘ٛ ٚبى آش ٓب ع٤قذس اُ ٠اؽذاٛب ك ٢اُِؾظبد اُزبُ٤خ .
:(7 bits) Slave Address _2ػ٘ٞإ اُخبدّ اُز٣ ١ش٣ذ أٌُ٤شً٘ٝزشُٝشاُزؾذس ٓؼ.ٚ
( Read/Write _3اُجذ اُزبعغ ( :آب فلش ٝاُز ٢رؼ٘ ٢إٔ أٌُ٤شً٘ٝزشُٝش ع٤طِت
ث٤بٗبد ٖٓ اُغٜبص) ٓضَ إ روشأ دسعخ ؽشاسح ( ٝآب ٝاؽذ ٝاُز ٢رؼ٘ ٢إ
أٌُ٤شً٘ٝزشُٝش ع٤شعَ ث٤بٗبد ٓضَ) أٓش رؾـٓ َ٤ؾشى أ ٝاهلبء ٓؾشى.(.
) ACK_4اُجذ اُؼبؽش)٣ :شد اُخبدّ ثبؽبسح ٝ ACKاُز ٢رؼ٘ ٢ثبٕ ػِٔ٤خ االعزوجبٍ هذ
رٔذ ث٘غبػ.
٠ٛٝ: Data (1)_5ػجبسح ػٖ byteرؾز ٟٞػِ ٠األٓش أُشاد ر٘ل٤ز ٙأ ٝاُؤ٤خ أُشاد
هشائزٜب.
114Page Technical Support 2015
.بء األٓشٜ اٗز٢٘ؼ٣ زاٛٝ ACK شد اُخبّ ثـ٣ : ACK_6
.٢ٗز أٓش صب٤ ر٘ل٠ِ ػٟٞ رؾزbyte ٖ ػجبسح ػ٠ٛٝ : Data (2)_7
.٢ٗبء ٖٓ اسعبٍ األٓش اُضبٜ االٗز: ACK_8
ٖٓ ( STOP ) ٍخ االسعب٣بٜٗ خ اسعبٍ اُذارب ثبسعبٍ اؽبسح٤ِٔ ػ٢ٜر٘ز- : STOP_9
.هجَ أُبعزش
: نزٗمْتزٗىزَٞالث اىٞت٘ص
٘ٛب ع٘غذ عئاٍ ٛبّ :ارا رْ رٞف َ٤ػؾشاد أٌُٗٞبد اإلٌُزش٤ٗٝخ ػِٗ ٠لظ اُغٌِٖ٤
ً٤ق عززٞافَ كٔ٤ب ثٜ٘٤ب ٤ًٝق ع٘غؼَ أٌُ٤شً٘ٝزشُٝش اُخبؿ ث٘ب ٣زٞافَ ٓغ ٌٕٓٞ
ٓؼٝ ٖٓ ٖ٤عو ػؾشاد أٌُٗٞبد أُزقِخ ػِٗ ٠لظ اُخطٞه؟
اُؾَ ثغ٤و ٔٓ ٞٛٝبصَ ُؾجٌبد اُؾبعت ا ٢ُ٥ؽ٤ش ٞ٣عذ ػ٘ٞإ ٓؼٌٕٞٓ ٌَُ ٖ٤
اٌُزش٣ ٢ٗٝغٔ )I²C address(٠كٔضال اُزاًشح اُخبسع٤خ اُزغِغِ٤خ ُٜ EEPROMب سهْ
ٓٔ٤ض ٣خزِق ػٖ. DS1307
اىن٘د :
اىَضناة:
ك ٢اُجذا٣خ ٗو ّٞثؼِٔ٤خ ٤ُ I2C َُ ٝ PORTB ٍ initializationؼَٔ ػِ ٠عشػخ
,100KBصْ ثؼذ رُي ٗو ّٞثبسعبٍ اُج٤بٗبد ثبُزشر٤ت ًٔب عجن ك ٢اُؾشػ ك ٢اُغضء
اُخبؿ ثؾشػ ٓجذأ ػَٔ اُجشٝر.ًٍٞٞ
ؽ٤ش رو I2C1_Start() ّٞثزلؼ َ٤اُجشٝرٝ ًٍٞٞاسعبٍ اٍ Start byteصْ ثؼذ رُي ٗوّٞ
ثبسعبٍ اٍ ٝ slave addressاٍ R/Wصْ ثؼذ رُي ٗو ّٞثبسعبٍ ) DATA(1ؽ٤ش
ٗشعَ كٜ٤ب اُؼ٘ٞإ أُشاد رخض ٖ٣اُو ٚٔ٤ك ٚ٤صْ ثؼذ رُي كٗ DATA (2) ٢و ّٞثبسعبٍ
اُج٤بٗبد ٗلغٜب أُشاد رخضٜ٘٣ب ٝ,ك ٢اُٜ٘ب٣خ رٌ I2C1_Stop() ٕٞاُز ٢رو ّٞثوطغ
االرقبٍ ٝاسعبٍ اٍ ٝ ,, Stop bitثبُٔضَ ك ًَ ٢اُخطٞاد رٌ ٕٞػِٔ٤خ اُوشاء.ٙ
ٝد ٙعذ ٍٝثٞ٤مؼ اُـٔٞافلبد اُخبفخ ثبُـ ٝ micro SDاٍ standard SD
Primary prescaler 64
edge.
ؾزـَ ثبُـ٤ٛ ْٚٗ اٜل٣ ب ػؾبٕ اُـٌبسدٜل٣ الثذ ٖٓ رؼش٠شاد اُز٤عذ ثؼل أُزـٞ٣ _3
اُـ٠ِٕ ػٌٞ٤ ثby default ٚٗ الSD card protocol ٓؼ ثبُـSPI protocol
.SD card bus
The following variable must be
Description
defined in all projects using Example :
:
MMC library:
Chip select sbit Mmc_Chip_Selec
extern sfr sbit Mmc_Chip_Select;
pin. at RC0_bit;
Direction of sbit Mmc_Chip_Selec
extern sfr
the chip _Direction atTRISC0_
sbit Mmc_Chip_Select_Direction;
select pin. bit;
Mmc_Fat_Init
Returns 0 - if MMC/SD card was detected and
successfully initialized
1 - if FAT16 boot sector was not found
255 - if MMC/SD card was not detected
.ه أفالٞ اٌُبسد ٓؼ ٓؾط٠٘ؼ٣ 255
Descriptio reads وشأ اُـ٣ٝ MMC/SD card ُِـInitialize َٔؼ٤ث
n أٌُزجخ٠ُِغزخشط اُذارب ا٣ٝ MMC/SD FAT16 boot sector
..بٛٓؾزغب
Mmc_Fat_Assign
Prototype Unsigned
short Mmc_Fat_Assign(char *filename, char file_cr
e_attr);
Description أؽزكخٝ أٚ أًزجٝ أٙ ٓؾزبط أهشا٠ُِ ُِِٔق اAssign َٔب ثزؼٜلز٤ظٝ
. Parameters 2 ؾزبط٤ األٓش ث....
َ( ٓضfile_name.extension) ٙ اعْ أُِق ثبٓزذاد:filename -1
اء هشاءحٞ عٚ٘٤خ ٓؼ٤ِٔ ػٚ٤ِ ٓؾزبط أػَٔ ػ٠ُِ( اfile1.TXT)
....ًزبثخ
file creation and attributes اخزقبس:file_cre_attr -2
file attribute مؼ اُـٞ ثز٠ُِاٝ خ٤ُ اُزبbits ب أؽذ اُـٜ٤ثنغ كٝ
٠٘ ُِوشاءح كوو ثٔؼٝ أ٠ ٓخلٞٛ َٛ ٟ صًِٚٞعٝ اؿ أُِقٞ خ٠ٛٝ
بٜٓ ثبعزخذ٠ُِ اbits ثؼل اُـٟدٝ ........... َ٣ش هبثَ ُِزؼذ٤ ؿٚٗا
.MMC ٓبد أًزش أهشأ أٌُزجخ اُخبفخ ثبُـُِٞٔؼٝ ثٌضشح
Mmc_Fat_Rewrite
Description .ٚبر٣ٞٔغؼ ٓؾز٤ٛ ٠ أُِق ٓؼ كبمُٞ ٙوشا٣ ٕ ػؾبfile لزؼ اُـ٤ث
Example Mmc_Fat_Rewrite();
لو عاوز أفتح ملف مكتوب فٌه وأكمل كتابة فٌه ممسحش المكتوب وقتها األول هجمع
Mmc_Fat_Write وبعدٌن استخدمMmc_Fat_Append اللى كتبته عن طرٌق
.الستكمال الكتابة فى الملف
Mmc_Fat_Append
Description assigned file لزؼ اُـ٣ زا األٓشٜق دارب ُِٔق ك٤ أم٠ٗ أسدد اُٞ
٠ كbyte وق ػ٘ذ أخش٤ ثfile pointers ز٘لز اُـ٣ ُٙٔب األٓش دٝ
.byte جذأ ٖٓ أخشٛ ٚ٤ أًزت كٝد أُِق أٝذ أص٤ ؽجُٞ ٙثٌذٝ أُِق
Example Mmc_Fat_Write(txt,255);
Mmc_Fat_Write("Hello world",255);
: ٝأ
char write_data[] = "azex 2015";
Mmc_Fat_Write(&write_data,11);
Mmc_Fat_Read
Description ب٤ُػ ؽبٞ أُلزassigned file كوو ٖٓ اُـbyte اؽذٝ وشأ٤ث
ب٤ رِوبئfile pointers كبٕ اُـ٠ُٝ األbyte ثؼذ هشاءح اُـٝ .ُِوشاءح
ٖٓ ُزا الثذ,, أُِق٠ ك٠ُ اُزبcharacter ػ٘ذ اُـset ؾقِخ٤ث
: اؽذ كووٝ Parameter ؾزبط٤ثٝ .ٚٓؼشكخ ؽغْ أُِق هجَ هشائز
ٕزا األٓش كبٛ ز٤ ثٔغشد ر٘لread byte ٖ اُـ٣ ُزخضbuffer :Bdata
خالٍ اُـreturned بٜٔز٤هٝ buffer اُـ٠ ثززخضٕ كread byte اُـ
.ٙ دparameter
Mmc_Fat_Set_File_Date
Description Sets the date/time stamp. Any subsequent file write
operation will write this stamp to the currently
assigned file's time/date attributs.
Parameters:
year: year attribute. Valid values: 1980-2107
month: month attribute. Valid values: 1-12
day: day attribute. Valid values: 1-31
hours: hours attribute. Valid values: 0-23
mins: minutes attribute. Valid values: 0-59
seconds: seconds attribute. Valid values: 0-
59
Requires The file must be previously
assigned. Mmc_Fat_Assign.
The file must be opened for
125Page Technical Support 2015
writing. Mmc_Fat_Rewrite or Mmc_Fat_Append.
Example filename[7] = 'B';
Mmc_Fat_Assign(&filename, 0);
Mmc_Fat_Set_File_Date(2014, 9, 15, 9, 20, 0);
Mmc_Fat_Append();
Mmc_Fat_Write(" for mikroElektronika 2010n",
27);
Mmc_Read_Sector
Description MMC card ٖٓ اُـone sector (512 bytes) وشا٤ ثٚلز٤ظٝ
: Parameters 2 ؾزبط٤ث
.ٙ ٓؾزبط أهشا٠ُِ اsector سهْ اُـٚ٤ ثنغ ك:Sector
ٕ ػؾب512 bytes بُٜٕٞ هٌٞ٣ َكخ ع األهٞ ٓقلٝ أbuffer :Dbuff
.بٜ٤ كdata أخضٕ اُـ
reading اٌُبسدُٞ 0 ثـreturn ٚٔ٤ب هُٜ function اُـٝ
. ؽذس خطؤُٞ 1 ثـreturn ٚٔ٤ هٝ .successfully
Mmc_Write_Sector
Prototype unsigned char Mmc_Write_Sector(unsigned
long sector, char *dbuff);
Description MMC ٖٓ اُـone sector ٠( ك512 bytes) ٌزت٤ ثٚلز٤ظٝ
: Parameters 2 ؾزبط٤ ثcard
.ٚ٤ ٓؾزبط أًزت ك٠ُِ اsector سهْ اُـٚ٤ ثنغ ك:Sector
.512 bytes بُٜٕٞ هٌٞ٣ َكخ ع األهٞ ٓقلٝ أbuffer :Dbuff
writing اٌُبسدُٞ 0 ثـreturn ٚٔ٤ب هُٜ function اُـٝ
اسعبٍ اُـ٠ ؽذس خطؤ كُٞ 1 ثـreturn ٚٔ٤ هٝ .successfully
٠ ؽذس خطؤ كُٞ 2 ثـreturn ٚٔ٤ هٝ . write command
. اٌُزبثخ
اللى هبدأ منه ممكن انشئ ملف أكتب فٌه أو أقرأ منهsector لو مكنتش عارف رقم ال
: دىfunction الخاص بٌه من الـsector وهكون عارف رقم ال
}
}
Mmc_Fat_QuickFormat
Returns 0 - if MMC/SD card was detected,
successfully formated and initialized
1 - if FAT16 format was unsuccessful
255 - if MMC/SD card was not detected
Description Parameter ؾزبط٤ثٝ initialize نب٣اٝ ٌُِبسدformat َٔؼ٤ث
: ٞٛٝ اؽذٝ
.11 characters ُٚٞ هlabel ٖ ػجبسح ػ:mmc_fat_label
أػَٔ ُِ runـ ٤ٛ simulationؾزـَ ٓؼبى ,,ثظ اٌُالّ د ٙك ٠اُغٔ٤ُٞ٤ؾٖ ثظ ٓؼ
٘ٛؼِٔ ٚك ٠اُؼِٔ.٠
٘ٛغزخذّ كٓ ٠ؾبس٣ؼ٘ب اُـ ( )Resistive Touchالٜٗب سخ٤قخ اُضٖٔ ٌٖٔ٣,اعزخذاّ اٟ
ؽئ ُِزؼبَٓ ٓؼٜب ٓضَ االفبثغ ٝاالهالّ اُ ٠اخشح ,ده٤وخ اُ ٠ؽذ ٓب ,عِٜخ االعزخذاّ
ٌٖٔ٣ٝرشً٤جٜب ُٝقوٜب ػِ ٠أ ٟؽئ ًٔ ,ب أٜٗب ال رزؤصش ثبُٔبء.
ًٔب ٗش ٟػ٘ذ اُنـو ر٘ضٍ اؽذ ٟاُطجوبد ُِٔظ االخش٣ٝ ٟزْ ه٤بط اُلُٞذ ٣ٝزْ رؾذ٣ذ
ٌٓبٕ اُنـطخ ا ٝأُِغخ ػِ ٠ؽغت ه٤بط اُلُٞذ
كبئذح اُطجوزبٕ ٠ٛٝاٗي إ هٔذ ثو٤بط اُلُٞذ ٖٓ اُِٞؽخ ٖٓ هجوخ ٝاؽذح كٜزا ٣ؼ٘ ٠اٗي
ؽذدد ٌٓبٕ أُِغخ ك ٠ارغبح ٝاؽذح ا ٟك ٠ثؼذ ٝاؽذ ٛٝزا ٣ؼ٘ ٠اٗي ؽذدد ٌٓبٕ أُِغخ
ك ٠اُجؼذ االكو ٠ا ٝاُجؼذ اُشاع ٠ثٔؼ٘ ٠اخش ٌٓبٕ أُِغخ
ثبُط ٍٞا ٝثبُؼشك ٛٝزا ؿ٤ش ده٤ن ثبُٔشح ٛٝزا ُٖ ٌ٣ل٠
الٗ٘ب ٌٛزا ُْ ٗؾذد ٌٓبٕ أُِغخ ًب ٗوطخ ٓؾذد ػِ٠
اُؾبؽخ كوو ٗوطخ ك ٠ثؼذ ٝاؽذ ٛٝزا ال ٌ٣ل ٠ثَ ٣غت
رؾذ٣ذٛب ًب ٗوطخ روغ ثٖ٤
144Page Technical Support 2015
ٓؾٞس ٖ٣ا ٟاؽذاص٤برٜب ك ٠أُؾٞس ٝ Xأُؾٞس Yآٌ ٟبٕ أُِغخ ثبُطٌٓٝ ٍٞبٜٗب
ثبُؼشك ُ٘ؾذد ٌٓبٕ اُ٘وطخ ثبُظجو ػِ ٠اُؾبؽخ ا ٝاُِٞؽخ ُزا كبُؾَ ٞٛإ ٗغزؼَٔ
هجوزبٕ كٗ ٠لظ اُٞهذ هجوخ ٗو٤ظ ٖٓ خالُٜب هٔ٤خ أُِغخ كٓ ٠ؾٞس ٣غبسا ٘٤ٔ٣ٝب ٝهجوخ
ٗو٤ظ ٖٓ خالُٜب هٔ٤خ أُِغخ كٓ ٠ؾٞس Yاػِٝ ٠اعلَ
٘ٛب ٗذخَ اُلُٞذ ػِ ٠اُٞؽخ ٗٝو٤ظ هٔ٤خ اُلُٞذ ُ٘ؾذد االؽذاص٤بد ثبُ٘غجخ ُِٔؾٞسX
٣غبسا ٘٤ٔ٣ٝب.
ٝػ٘ذ عٔغ اُطجوزٓ ٖ٤ؼب ٘ٛب ٌ٘٘ٔ٣ب ه٤بط االؽذاص٤بد ٌُال أُؾٞسٌ٘٘ٔ٣ٝ ٖ٣ب االٕ رؾذ٣ذ
ٌٓبٕ أُِغخ ثذهخ ػِ ٠اُِٞؽخ عٞاء اػِ ٠ا ٝاعلَ ا٘٤ٔ٣ ٝب ا٣ ٝغبسا كبرا ًبٕ اُو٤بط ك٠
اهق ٠اُ ٖ٤ٔ٤ع٘ؾزبط ُٔؼشكخ إ ًبٕ ك ٠االػِ ٠اّ ك ٠االعلَ ٘ٛٝب ٌ٘٘ٔ٣ب رؾذ٣ذ ٗوطخ
أُِغخ .
اُـ cableاُخبؿ ثبُـ touch panelثٓ flat & soft ٌٕٞ٤ؾزبط connectorػؾبٕ
أهذس أٝفِخ ثبُجٞسدح ص ٟاُِٞٓ ٠عٞد ك ٠اُقٞسح:
٘ٛالؽع عٞاء ك ٠اُذا٣شح أ ٝك ٠أُٞد ٍٞ٣إٔ اُطشف ٞٓ DRIVEAفَ ٓغ دا٣شح
اُزشاٗضعزٞساد ثؾ٤ش ُٝ ٞمؼذ ػِ 1 ٚ٤رقجؼ :
) (LEFT drive on, RIGHT drive on, TOP drive off
ٝارا ٝمؼذ ػِ 0 ٚ٤رقجؼ:
)(LEFT drive off , RIGHT drive off , TOP drive on
أٓب اُطشف ٞٓ DRIVEBفَ ٓغ دا٣شح اُزشاٗضعزٞساد ثؾ٤ش ُٝ ٞمؼذ ػِ1 ٚ٤
رقجؼ )٣ 0 ُٞٝ (BOTTOM drive onقجؼ ).(BOTTOM drive oFF
أٓب اُطشف ٞٓ read_xفَ ثبٍ ADCثبُو٘بح ُ RA0وشائخ اٍ ٞٛٝ X valueأ٣نب
ٓٞفَ ثؤؽذ أهشاف اُـ ٞٛٝ y_panelاُـ). (BOTTOM
أٓب اُطشف ٞٓ read_Yفَ ثبٍ ADCثبُو٘بح ُ RA1وشائخ اٍ ٞٛٝ Y valueأ٣نب
ٓٞفَ ثؤؽذ أهشاف اُـ ٞٛٝ X_panelاُـ). (LEFT
اىن٘د :
ع٘و ّٞثؼَٔ داُزٝ void getYٝ void getX ٖ٤ثٌَ ثغبهخ ػ٘ذ ه٤بط أُؾٞس Xاهّٞ
ثبخشاط 0كُٞذ ػِ ٠هشف 5ٝكُٞذ ػِ ٠هشف اخش ُِٔؾٞسٝ Xاه ّٞثبُو٤بط ٖٓ
اُو٘بح االٝ ٠ُٝآُ ٠زٞفِخ ػِ ٠هشف ٝاؽذ ٖٓ أُؾٞسً Yبالر: ٠
اىَشزٗع األٗه:
امبءح ٝ 2 ledsاهلبئٜب ػٖ هش٣ن . touch screen
ك ٠اُذائشح رْ رٞف َ٤أهشاف اٍ ٔٛٝ x_panelب اُطشف 3 ٝ 1ػِRB1 &RB0 ٠
ٝأهشاف اٍ ٔٛٝ y_panelب اُطشف 4 ٝ 2ػِ. RB3 &RB2 ٠
153Page Technical Support 2015
ٝرٞف َ٤هشف ٖٓ اٍ ٞٛٝ x_panelاُطشف اال ٍٝثطشف ٝ RA1اُزٔ٣ ٟضَ اُو٘بح
اُضبٗ٤خ ُِـ ٝ ADCرٞف َ٤هشف ٖٓ اٍ ٞٛٝ Y_panelاُطشف اُضبٗ ٠ثطشف RA0
ٝاُزٔ٣ ٟضَ اُو٘بح األُِ ٠ُٝـ .ADC
ك ٠اٌُٞد ُٔؼشكخ عٜذ اُ٘وطخ :X
_2ارا ً٘ب ال ٗش٣ذ اُزؾٌْ ٖٓ خالٍ ؽبؽخ ثَ فٞسح ٓطجٞػخ اعلَ ُٞؽخ أُِظ
ٝهزٜب ع٘ؾزبط اُزؾ َ٣ٞاُٝ ٠ؽذح أُِٓ ٠زش ثٌَ ثغبهخ اًزت ه٤بط اُط ٍٞاُخبؿ
ثبُقٞسح أُطجٞػخ ثبُِِٔىٔزش ا ٝاٝ ٟؽذح رش٣ذ ٌٓبٕ ٝ 128اُؼشك ا٣نب ٌٓبٕ 64ك٠
أُؼبدُخ اُِ ٠ارٌِٔ٘ب ػٜ٘ب عبثوب.
154Page Technical Support 2015
155Page Technical Support 2015
156Page Technical Support 2015
رغزخذّ اُــ LED matrixثؾٌَ ٝاعغ كٓ ٢غبٍ اُذػب٣خ ٝاإلػال ٕ إل ظٜبس ٓؼِٓٞبد
ٝسعٓٞبد ً ٝزبثبد ٝؿ٤شٛب عٞاء ًبٗذ صبثزخ أٓ ٝزؾشًخ.
٠ٛٝػجبسح ػٖ ٓغٔٞػخ ٖٓ اُــ LEDSأُشثٞهخ ٓغ ثؼنٜب ػِ ٠ؽٌَ ٓقلٞكخ .
طزٝقت ػَو شاشت اىؼزض : LED dot matrix
رزْ ػٖ هش٣ن رٞف َ٤اُِ٤ذاد ػِ ٠ؽٌَ فلٞف ٝ rowsأػٔذح ًٔ columnsب ثبُؾٌَ
ثـشك روِ َ٤ػذد األهشاف أُطِٞثخ ُزؾـِٜ٤ب .كٔضال ُ ٞػبٝص ٝؽذح ػشك ٛ 8X8ؾزبط
اُ 64 ٠هشف ٓذخَ ٓ /خشط (هشف ٌَُ ٗوطخ ُ٤ذ ٌُٖ.ثزٞف َ٤عٔ٤غ اُــ ٓ anodesغ
ثؼنٜب ك ٠ؽٌَ فلٞف ٖٓ اُقق األ R1 ٍٝاُ ٠اُقق اُضبٖٓ ٝ ,, R8رٞف َ٤اُــ
ٓ cathodesغ ثؼنٜب ك ٠ؽٌَ أػٔذح ٖٓ اُؼبٓٞد األ C1 ٍٝاُ ٠اُؼبٓٞد اُضبٖٓ C8
ٝهزٜب ٛؾزبط اُ 16 ٠هشف كوو.
ًَ ُ٤ذ ٚ٤ُ ٌٕٞ٤ٛػ٘ٞإ ثشهْ فلٝ ٚػبٓٞد ٞٛ , ٙروش٣جب ٗلظ كٌشح اٌُ٤جبد كل ٠اُؾٌَ ارا
عؼِ٘ب اُقق اُشاثغ R4ك ٠اُؾبُخ أُشرلؼخ ( ٝ )logic 1عؼِ٘ب اُؼبٓٞد اُضبُش C3ك٠
اُغذ ٍٝاُزبُ٣ ٠ؼط ٠أُغز٣ٞبد أُ٘طو٤خ اُز٣ ٠غت رطج٤وٜب ػِ ٠اُقلٞف
ٖٓ R1اُ ٌَُ R7 ٠ػبٓٞد ثـشك ػشك اُؾشف . A
ٌٖٔ٣
اُذائشح اعزخذاّ
161Page Technical Support 2015
أُزٌبِٓخ ٝ ULN2003Aاُز ٠رؾز ٟٞػِ ٠فق ٌٓ7 ٖٓ ٕٞ
:اىبزّاٍذ األٗه
فٝػشك اُؾش
Z ٠ُ اA ٖٓ
led اُــ٠ِػ
.matrix
0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0xFC,
أُؾٜذ اُضبُش صؽضؽخ ه ْ٤اُؼٔٞد األ ٍٝخطٞح اُ ٠اُ٤غبس صْ امبكخ ه ْ٤فلٞف اُؼٔٞد
اُزبٗ ٠ك ٠اُؾشف
0x00,0x00,0x00,0x00,0x00,0x00, 0xFC,0x12,
أُؾٜذ اُشاثغ اصاؽخ ثٔوذاس خبٗخ اُ ٠اُ٤غبس ٝامبكخ فلٞف اُؼٔٞد اُضبُش
0x00,0x00, 0xFC,0x12,0x12,0xFC,0x00,0x00,//view no 7
ٖٓذ اُضبٜأُؾ
0x00,0xFC0x12,0x12,0xFC,0x00,0x00,0x00,//view no 8
0xFC,0x12,0x12,0xFC,0x00,0x00,0x00,0x00,//view no 9
ذ اُؼبؽشٜأُؾ
0x12,0x12,0xFC,0x00,0x00,0x00,0x00,0x00, //view no 10
: ػؾشٟذ اُؾبدٜأُؾ
0x12,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, //view no 11
: ػؾش٠ٗذ اُضبٜأُؾ
x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}; //view no 13
: اىبزّاٍذ
. خ ُإلؽغبط ثبُؾشًخ٤ثبُغشػخ اٌُبكٝ ذ اُغبثوخُٛؼشك أُؾب
;0x00,0x00,0xFC,0x12,0x12,0xFC,0x00,0xFE
أُؾٜذ اُضبٖٓ
0xFC,0x12,0x12,0xFC,0x00,0xFE,0x90, 0x90;
:ذ اُؼبؽشٜأُؾ
0x12,0x12,0xFC,0x00,0xFE,0x90, 0x90,0x60;
: ػؾشٟذ اُؾبدٜأُؾ
0x12,0xFC,0x00,0xFE,0x90, 0x90,0x60,0x00;
0xFC,0x00,0xFE,0x90, 0x90,0x60,0x00,0x00;
:ذ اُضبُش ػؾشٜأُؾ
0x00,0xFE,0x90, 0x90,0x60,0x00,0x00,0x00;
:ذ اُشاثغ ػؾشٜأُؾ
0xFE,0x90, 0x90,0x60,0x00,0x00,0x00,0x00;
;0x90,0x60,0x00,0x00,0x00,0x00,0x00,0x00
أُؾٜذ اُغبثغ ػؾش:
;0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00
أُؾٜذ اُضبٖٓ ػؾش ٝاُز ٟثؼذ٣ ٙجذأ اُذٝسإ أ ٝاُِق ٖٓ عذ٣ذ
;0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
اىبزّاٍذ:
تطبٞقاتٔ:
٣غزخذّ ثٌضشح ك ٠أُؾبس٣غ اُز ٠رؾزبط رؾذ٣ذ أٌُبٕ ٣ٝغزخذّ ثٌضشح كٓ ٠ؾبس٣غ اُـ
automotiveالٗ ٖٓ ٠خالُ ٚثوذس أػشف ٌٓبٕ ػشث٤ز ُٞ ٠ؽقَ ػِٔ٤خ عشهخ ٝأ٣نب
ك ٠رطج٤وبد اٍ navigationكؤهذس أؽذد ٌٓبٕ ػشث٤ز ٖٓ ٠خالُٝ ٚػٖ هش٣ن Google
mapأهذس أػشف ا ٚ٣أُغبس آُِ ٠ؾزبط أٓؾ٤خ ػؾبٕ أسٝػ ٌٓبٕ ٓؼٝ ..... ٖ٤أ٣نب
٣غزخذّ ك ٠اُطبئشاد اُز ٠رؾذد ٌٓبٕ األُـبّ ٝاُطبئشاد اُخبفخ ثؼَٔ drive test
ٝؿ٤شٛب ٖٓ اُزطج٤وبد .....
فنزة ػَئ:
٣زْ رؾذ٣ذ ٌٓبٕ اُؾئ ػٖ هش٣ن 24هٔش ف٘بػ ٠رْ اهاله ْٜك ٠اُلنبء ُزـط٤خ ًبَٓ
ًًٞت األسك ثؾٌَ ٓزٞافَ ٝهذ رْ ٝمؼ ْٜعٔ٤ؼب ً ثؾ٤ش إٔ ٓ ٌٕٞ٣ب ال ٣وَ ػٖ 4
أهٔبس ف٘بػ٤خ ظبٛشح ٖٓ أٗ ١وطخ ػِ ٠عطؼ اٌُشح األسم٤خٛ .زح األهٔبس اُق٘بػ٤خ
رشعَ ٣ very low power radio signalsزْ اعزوجبُٜبػٖ هش٣ن َٖٓ ُذ ْٜ٣عٜبص اُـ
ٝ GPS receiverاُزٞٓ ٌٕٞ٣ ٟعٞد ثبُؼشثبد أ ٝػِٞٓ ٠ثِ٤ي كبٗ٣ ٚو ّٞثبعزوجبٍ
اؽبساد أسثؼخ أهٔبس ف٘بػ٤خ ػِ ٠األهَٛ .زح االؽبساد رٌ ٕٞػجبسح ػٖ اؽبساد ر٘وَ
ثغشػخ اُنٞء رؾز ٟٞػٌِٓ ٠بٕ اُؤش اُق٘بػ ٠ثٞهذ ٓؾذد ٝاُز٣ ٟزْ رؾذ٣ذ ٖٓ ٙخالٍ
عبػبد رس٣خ رٞعذ ثبُؤش اُق٘بػ.٠
183Page Technical Support 2015
أُجذأ األعبعٌُٔ ٢بٕ اٍ GPSثذ ٢ٜ٣عذاً ,كبرا ػِٔ٘ب أٌُبٕ اُذه٤ن ُؤش ف٘بػS1 ,٢
ػِ ٠عج َ٤أُضبٍ ٝ ,ػِٔ٘ب إٔ صٖٓ ٗوَ اإلؽبساد ًبٕ ٛ ,T1زا ٣غؼِ٘ب ٓٞعٞد ٕٝك٢
ٗوطخ ٓؾذدح ٖٓ ٓغبٍ اُؤش اُق٘بػ.٢
ارا هٔ٘ب ا ٕ٥ثبمبكخ هٔش ف٘بػ ٢آخش ٌٓبٗ٣ ٝ ,S2 ٚؤخز ؽٞاُ ٖٓ T1 ٢اُٞهذ إل٣قبٍ
اإلؽبساد اُ٘٤ب ,ع٘غذ أٗ ٚػ٘ذٓب ٗو ّٞثبعزخذاّ اُج٤بٗبد اُز ٢أخزٗبٛب ٖٓ اُؤشٖ٣
اُق٘بػ ٖ٤٤ع٘غزط٤غ رؾذ٣ذ ٌٓبٗ٘ب ػِ ٠اؽذ ٟاُ٘وبه اُزبُ L1 :٢أ.L2 ٝ
:GPS receiver
بزٍزت اىَ٘د٘ٝه:
187Page Technical Support 2015
اُـ.NMEA format سحٞ ف٠ كGPS receiver غزوجَ اُذارب ٖٓ اُـ٣ ُشًٝ٘زشٌٝش٤ُٔا
36 ) رٌبكئ٠اُزٝ $ sign جذأ ثـ٤ ثstring ًَ strings جؼذ٤ ثNMEA protocol
رٌبكئ٠اُزٝ CR َذ ٓض٣ رجذأ عطش عذ٠اُزٝ signsٍػخ ٖٓ اٞٔ ثـ ثٔغ٠ٜ٘ز٣ٝ(ASCII
هقٞز٣ ٚرٞ أُجؼstring اُـ٠٘ ٓؼ.(ASCII 10) رٌبكئ٠اُزٝ LF ٝ (ASCII 13)
$GPGLL ءح ثٌِٔخٝ أُجذstring َ أُضبٍ اُـ٤ عج٠ِ كؼ$ sign ثؼذ اُـًِٚٔ ٍٝ أ٠ِػ
ٖٓاُضٝ longitude ٍٞه اُطٞخطٝ Latitude ه اُؼشكٞٓبد ػٖ خطِٞ ٓؼ٠٘٤رؼط
َْ اُذارب رٛ أػشف٠ٗ ا٠ٌ٘ٔ ثز٠ُِ اchecksum ٝ data validity ٝ exact time
comma ‗ , ‘ ب ثـٛساٝ ٠ُِٖ ا٤ثٝ بٜ٘٤ٍ ثًَٞ دارب ٓلقٝ.ال الٝ بِٜاعزوج
:ٍ أُضب٠امؼ كٝ ٓبٟص
:اىبزّاٍذ
GPS اُـٚد ثٞعُٞٔ ٌُِٔبٕ اlongitude ٝ latitude ؼشك اُـ٣ ّ ثؼَٔ ثشٗبٓظٞع٘و
.خ٣ ؽبؽخ ػبد٠ِ ػreceiver
:اىن٘د
:٠ُٕ ثبُؾٌَ اُزبٌٞ ر٠اُزٝ خ٣ عب٠ُِ اmessage ت اُـ٤ْ رشرٜ ك٠ِد ػٌُٞؼزٔذ ا٣
191Page Technical Support 2015
$GPGGA,XXXXXX.XXX,XXXX.XXXX,X,XXXXX.XXXX,X,X,
XX,X.X,XXX.XX,X,X.XX,X,,*XX
.٠ٗ سهْ ٓب ؽغت ٌٓبٝ رؼجش ػٖ ؽشف ٓب أٟ دX اُـ
:اىذائزة
Sending SMS
هش٣وخ اسعبٍ سعبُخ ٖٓ آٌُٞجٞ٤رش اُ ٠اُـ :GSM
_1مغ ٖٓ SIM cardأ ٟؽشًخ ٓؾٔ( ٍٞكٞاداكٞٓ ,ٕٞث,َ٤٘٤ارقبالد ) ك ٠اُـ SIM
ٌٕٞ٣ٝ slotك ٚ٤سف٤ذ.
_3رغط٤ت اُـ hyper terminalؽغت اُ٘٣ٞذٝص اُِ ٠ثزغزخذٓخ ,أؽ٘ب ٓغزخذٓ ٖ٤ك٠
اُؾشػ ثشٗبٓظ خبؿ ث٘٣ٞذٝصٝ .7رنجو اُـ parametersثزبػز ٚصٓ ٟب ٓٞعٞد ك٠
اُقٞس..
صْ اُنـو ػِ ,, enter ٠اُـ GSM modemالصّ ٣شد ثـ ‖.―OKارا سد ػِ٤ب اٍ GSM
MODULEثـ OKكٜزا ٣ذٍ ػِ ٠إ أُٞثب َ٣ا٣ GSM MODULE ٝؼَٔ ٝأ٣نب
٣زجغ ٗظبّ AT COMMANDSألٕ ُ ٞكٓ ٠ؾٌِخ ٤ٛشد ػِ٤ب ة .Error
ٗ _5جذء ك ٠اسعبٍ اُـ ُِ AT commandـ GSM Modemاُخبؿ ثبسعبٍ اُشعبئَ
٘ٛٝشعَ ػٖ هش٣ن اُـ Text Modeك mode ٠ربٗٗ ٌٖٔٓ ٠شعَ ث ٚ٤ثظ ٓؼ دٙ
ٓؾٞس اٛزٔبٓ٘ب ٝ .ػؾبٕ ٗنجو االسعبٍ ػِ ٠اُـ ٘ٛ Text Modeجؼذ األٓش اُزبُ: ٠
ٌٗ _7زت ٗـ اُشعبُخ اُِ ٠ػٞصٗ ٖ٣جؼزٜبٗٝ ,جؼزٜب ػٖ هش٣ن مـو ><CTRL+Z
اُـ ٤ٛ modemشد ثبُـ message IDاُخبؿ ثبُشعبُخ أُجؼٞرٝ ,, ٚدٓ ٙؼ٘ب ٙإ اُشعبُخ
ارشعِذ ثذٓ ٕٝؾبًَ.
ًٝذ ٌٕٞٗ ٙاٗز٘٤ٜب ٖٓ ػِٔ٤خ اسعبٍ اُشعبئَ ٖٓ أٌُجٞ٤رش اُ GSM MODULE ٠اٝ
أُٞثب. َ٣
Interfacing GSM Modem with Micro
اىذاٝزة:
ثشٝرظ ٓلٜٞػ ٌُٖ gsmإ ٓؾزبع ٚعٜبص ٣ظٜشُ ٠اُذارب اُِ ٠خبسعٖٓ ٚ
أٌُ٤شً٘ٝزشُٝش كٜغزخذّ ٞٛ virtual terminalفَ RXثزبع أٌُ٤شٓ ٝغ TXثزبع
ٝ virtual terminalاُؼٌظٛٝ .ؾٞف اُذارب ٠ٛٝثززجؼذ.
اىتطبٞك اىتاّ:ٚ
ٗظبّ ؽش٣ن آب دسعخ اُؾشاسح رؼِ ٠ػٖ ؽبعٓ ٚؼ٘٤خ ٣جؼذ ٓغذط ٣و ٍٞكٜ٤ب إ ك ٠ؽش٣ن.
اىن٘د:
هشاءح٠غزخذّ ك٤ ث٠ُِاٝ memory index number ؼجش ػٖ اُـ٤ ثcharacter أخش
. 1ٚٔز٤ أُضبٍ اُغبثن ه٠ كٞٛٝ بٜ ؽزكٝاُشعبُخ أ
.ٌٙزت األٓش دٛ بِٜ اعزوجGSM اُـ٠َُِ ا٣_ ػؾبٕ اعزوجَ ًَ اُشعب4
SIM اُـ٠دح كٞعٞٓ ٠ُِ اSMS messages ٔخ ثٌَ اُـ٣ هب٠ِجؼز٤ٛ modem اُـٝ
.card
AT COMMANDS MEANING
CNMI NEW message indication
CMGL List message
CMGR Read message
CNMA New message aknowledgment
Coordinator
End point End point
ٌمكن القول انه األم فً
الشبكه .ال ٌمكن قٌام
الشبكة اال به وال ٌمكن
دخوله فً وضع ال
Sleepألنه هو الذي
ٌقوم بعملٌة الضبط
Router للشبكه .
Router
البد من أن ٌستقبل بٌانات ضبط
الشبكة من ال coordinatorفً
البداٌة حتى ٌدخل فً الشبكه ٌ .تمٌز
بأنه ٌمكنه القٌام بعملة ال routing
للمعلومات المرسله ٌ,مكنه إدخال
افراد جدٌده للشبكه ,ال ٌمكنه
الدخول فً وضع ال sleep
End point
: Addressing
هذ ُ ٌٕٞ٣ذ ١اُؼذ٣ذ ٖٓ اُؾجٌبد أُزغبٝسح كٌ٤ق اعزط٤غ اُزؼشف ػِ ٠االعٜضح اُز ٢ك٢
اُؾجٌ ٚاُخبف ٚث ٢ؽز ٠اعزط٤غ اُزؾذس ٓؼٜب
اىَخاه اىخاّٜ
: Digital input from remote sensor
ٗش٣ذ كٛ ٢زا أُضبٍ هشاءح ؽبُخ ٖٓٝ sensorصْ اسعبُٜب .
ًٔب ٗش ٟكبٕ اٍ Packetرؾز ١ٞػِ ٠ػذح ٓؼِٓٞبد ٝاُز ٢أٜٔٛب :
ٝ : start byteاُز٣ ١ل٤ذ االؽبسح اُ ٠ثذا٣خ اٍ Packet
: Lengthه ٍٞاُؾضٓخ أُغزوجِٚ
Architecture
slave _ master structure سحٞ ف٠زْ ك٤ ثBluetooth communication اُـ
ٌٕٞ٤ػبدح ث, عجؼخ٠ُْ اٛقَ ػذد٣ slave ٖٓ اؽذ ثؤًزشٝ master ٌٖٔ سثو٣ ش٤ؽ
َٔؼ٤ٛ slave ٠ٜٗؾذد أ٤ ث٠ُِ اٞٛ master اُـٝ اؽذٝ slave ٌِْ٤اؽذ ثٝ master
َٔؼ٤ ثmaster اُـ, slave ٖٓ د أًزشٞعٝ ؽبُخ٠ ك. ٙ ٓؼبcommunication
. أخش٠ُ اslave ٖٓ switch
VCC
GND
Tx
Rx
ش٤٤ ًزـBT module ٍ ثزبػخ اconfiguration ٍ ا٢ا كٞٓغزخذ٤ٖ ث٤٤ اُجبه2pins ٍا
BT ٍَ ا٤فٞن ر٣ٕ ػٖ هشٌٞ٤ ثٙدٝ .Baud rate ٍ اٝ Password ٍ اٝ ْاالع
ٝ Datasheet ٍ ا٢ب كٜز٣ٌٔ٘ي سإ٣ ٘خ٤آش ٓؼٝاعزخذاّ اٝ serial port ةModule
: ٢ُآش ًبُزبٝاال
Default settings:
AZEX’15
Technical Support Committee
Contact Us:
technicalcommitteeazex2015@gmail.com
10822868210