Download as pdf or txt
Download as pdf or txt
You are on page 1of 10

‫ﻋﻨﻮﺍﻥ ﻣﻘﺎﻟﻪ ‪:‬‬

‫ﺍﺭﺗﺒﺎﻁ ﺳﺮﻳﺎﻝ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻭ ﻣﻴﻜﺮﻭﻛﻨﺘﺮﻟﺮ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ‪ VB‬ﻭ‪VC++‬‬

‫ﺍﺭﺍﺋﻪ ﺩﻫﻨﺪﻩ ‪ :‬ﺑﻬﺰﺍﺩ ﺧﺰﺍﻣﺎ‬


‫ﺩﺍﻧﺸﺠﻮﻱ ﺑﺮﻕ ﺩﺍﻧﺸﮕﺎﻩ ﺁﺯﺍﺩ ﺳﺒﺰﻭﺍﺭ‬

‫ﻣﻘﺪﻣﻪ ‪:‬‬
‫ﺩﺭ ﺍﻳﻦ ﻣﻘﺎﻟﻪ ﺳﻌﻲ ﺩﺭ ﺗﺸﺮﻳﺢ ﭼﮕﻮﻧﮕﻲ ﻛﺎﺭ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﻭ ﺍﻳﺠﺎﺩ ﺍﺭﺗﺒﺎﻁ ﺑﻴﻦ ﺩﻭ‬
‫ﻛﺎﻣﭙﻴﻮﺗﺮ ﻭ ﻳﺎ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻭ ﻣﻴﻜﺮﻭﻛﻨﺘﺮﻟﺮ ﺭﺍ ﺩﺍﺭﻳﻢ‪.‬‬

‫ﻫﻤﭽﻨﻴﻦ ﭼﮕﻮﻧﮕﻲ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻮﺩﻡ ﻭ ﺍﻧﺘﻘﺎﻝ ﺍﻃﻼﻋﺎﺕ ﺍﺯ ﻃﺮﻳﻖ ﺁﻥ ﺑﺮﺭﺳﻲ ﺷﺪﻩ ﺍﺳﺖ ‪ .‬ﺩﺭ‬
‫ﺍﻳﻨﺠﺎ ﻣﺎ ﺍﺯ ‪ VB‬ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﺭﻭﺍﻟﻬﺎﻱ ‪ API‬ﻭ ﻳﺎ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ‪ ACTIVEX‬ﺍﺳﺘﻔﺎﺩﻩ‬
‫ﻛﺮﺩﻩ ﺍﻳﻢ ﻛﻪ ﺍﻟﺒﺘﻪ ﺗﻮﺿﻴﺤﺎﺕ ﺫﻛﺮ ﺷﺪﻩ ﺩﺭ ﺯﺑﺎﻧﻬﺎﻱ ﺩﻳﮕﺮﻱ ﻣﺎﻧﻨﺪ ‪ VC++‬ﻧﻴﺰ ﺻﺎﺩﻕ‬
‫ﻣﻴﺒﺎﺷﺪ ‪.‬ﻛﻪ ﺑﻪ ﺗﺸﺮﻳﺢ ﺁﻥ ﺧﻮﺍﻫﻴﻢ ﭘﺮﺩﺍﺧﺖ‬

‫‪-------------------------------------‬‬
‫ﻭ ﻳﺎ ﺑﺎ‬ ‫ﺩﺭ ﺍﻳﻦ ﻣﻘﺎﻟﻪ ﺳﻌﻲ ﺩﺭ ﺗﺸﺮﻳﺢ ﭼﮕﻮﻧﮕﻲ ﻛﺎﺭ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻭ ﺍﺭﺗﺒﺎﻁ ﺁﻥ ﺑﺎ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻱ ﺩﻳﮕﺮ‬
‫ﻣﻴﻜﺮﻭﻛﻨﺘﺮﻟﺮ ﺭﺍ ﺩﺍﺭﻳﻢ‪.‬‬
‫ﻫﻤﭽﻨﻴﻦ ﭼﮕﻮﻧﮕﻲ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻮﺩﻡ ﻭ ﺍﻧﺘﻘﺎﻝ ﺍﻃﻼﻋﺎﺕ ﺍﺯ ﻃﺮﻳﻖ ﺁﻥ ﺑﺮﺭﺳﻲ ﺷﺪﻩ ﺍﺳﺖ ‪ .‬ﺩﺭ ﺍﻳﻨﺠﺎ ﻣﺎ ﺍﺯ ‪ VB‬ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﺭﻭﺍﻟﻬﺎﻱ‬
‫‪ API‬ﻭ ﻳﺎ ﻛﻨﺘﺮﻝ ﻫﺎﻱ ‪ ACTIVEX‬ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩﻩ ﺍﻳﻢ ﻛﻪ ﺍﻟﺒﺘﻪ ﺍﻛﺜﺮ ﺗﻮﺿﻴﺤﺎﺕ ﺫﻛﺮ ﺷﺪﻩ ﺩﺭ ﺯﺑﺎﻧﻬﺎﻱ ﺩﻳﮕﺮﻱ ﻣﺎﻧﻨﺪ ‪VC++‬‬
‫ﻧﻴﺰ ﺻﺎﺩﻕ ﻣﻴﺒﺎﺷﺪ ‪.‬ﻛﻪ ﺑﻪ ﺗﺸﺮﻳﺢ ﺁﻥ ﺧﻮﺍﻫﻴﻢ ﭘﺮﺩﺍﺧﺖ ‪.‬‬
‫ﻫﺮ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺩﺍﺭﺍﻱ ﺗﻌﺪﺍﺩﻱ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﻣﻴﺒﺎﺷﺪ ﻛﻪ ﺑﻪ ﺗﺮﺗﻴﺐ ﺑﻪ ﻧﺎﻣﻬﺎﻱ ‪ Com١١,Com٢٢,Com٣٣,,‬ﻧﺎﻣﻴﺪﻩ ﻣﻴﺸﻮﻧﺪ‪ .‬ﻭ ﻫﺮ‬
‫ﻛﺪﺍﻡ ﻣﻤﻜﻦ ﺍﺳﺖ ﻛﻪ ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻭﺳﻴﻠﻪ ﺧﺎﺻﻲ ﺩﺭ ﻧﻈﺮ ﮔﺮﻓﺘﻪ ﺷﻮﺩ ‪ .‬ﻣﺜﻼ’ ﻣﻤﻜﻦ ﺍﺳﺖ ﻣﻮﺵ ﺑﻪ ‪ COM١‬ﻭ ﺍﺳﻜﻨﺮ ﺑﻪ‬
‫‪ COM٢‬ﻭ ﻫﺮ ﺩﺳﺘﮕﺎﻩ ﺳﺮﻳﺎﻝ ﺩﻳﮕﺮﻱ ﻧﻴﺰ ﺑﻪ ﻫﻤﻴﻦ ﺻﻮﺭﺕ ﺑﺮﻭﻱ ﻳﻜﻲ ﺍﺯ ﭘﻮﺭﺗﻬﺎﻱ ﺳﺮﻳﺎﻝ ﻧﺼﺐ ﺷﺪﻩ ﺩﺭ ‪ PC‬ﻣﺘﺼﻞ ﺷﻮﺩ ‪ .‬ﭘﻮﺭﺕ‬
‫ﺳﺮﻳﺎﻝ ﻛﺎﻧﺎﻟﻲ ﺑﺮﺍﻱ ﺍﻧﺘﻘﺎﻝ ﺍﻃﻼﻋﺎﺕ ﻭ ﺩﺭﻳﺎﻓﺖ ﺁﻥ ﺑﻪ ﺻﻮﺭﺕ ﺑﻴﺖ ﺑﻪ ﺑﻴﺖ ﺍﺳﺖ‪ I/O.‬ﺑﻪ ﺭﻭﺵ ﺳﺮﻳﺎﻝ ﻧﻤﻮﻧﻪ ﺍﻱ ﺍﺯ ﻧﺤﻮﻩ’ ﺍﺭﺗﺒﺎﻁ‬
‫ﺣﻤﺎﻳﺖ ﺷﺪﻩ ﺗﻮﺳﻂ ﻭﻳﻨﺪﻭﺯ ﺍﺳﺖ ﺍﻳﻦ ﺭﻭﺵ ﻫﻨﮕﺎﻡ ﺍﺭﺗﺒﺎﻁ )‪ (ONE TO ONE‬ﺑﻴﻦ ﺩﻭ ﻭﺳﻴﻠﻪ ﺍﺳﺘﻔﺎﺩﻩ ﻣﻲ ﺷﻮﺩ ﺍﻳﻦ ﺭﻭﺵ‬
‫ﻣﻴﺘﻮﺍﻧﺪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻛﺎﺑﻞ ﻳﺎ ﻣﻮﺩﻡ ﻳﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﻓﺮﺳﺘﻨﺪﻩ ﮔﻴﺮﻧﺪﻩ ﻫﺎﻱ ﻣﺎﺩﻭﻥ ﻗﺮﻣﺰ ﺍﻳﺠﺎﺩ ﮔﺮﺩﺩ ‪.‬ﺍﺭﺗﺒﺎﻁ ﺳﺮﻳﺎﻝ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ‬
‫ﺭﻭﺍﻟﻬﺎﻱ ‪ API‬ﺑﺴﻴﺎﺭ ﺷﺒﻴﻪ ﻛﺎﺭ ﺑﺎ ﻓﺎﻳﻠﻬﺎ ﻣﻴﺒﺎﺷﺪ ‪ .‬ﻫﻤﭽﻨﻴﻦ ﻭﻳﻨﺪﻭﺯ ﺩﺍﺭﺍﻱ ﺗﻮﺍﺑﻌﻲ ﺑﺮﺍﻱ ﺑﺎﺯ ﻳﺎ ﺑﺴﺘﻪ ﻛﺮﺩﻥ ﻭ ﺩﺳﺘﻜﺎﺭﻱ ﻣﺸﺨﺼﺎﺕ‬
‫ﭘﻮﺭﺕ ﻣﻴﺒﺎﺷﺪ‪ .‬ﺑﺮﺍﻱ ﻛﺎﺭ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﺗﻮﺍﺑﻌﻲ ﻣﻮﺟﻮﺩ ﺍﺳﺖ ﺗﺎ ﺑﺘﻮﺍﻥ ﺍﻃﻼﻋﺎﺕ ‪CPU‬ﺭﺍ ﺑﻪ ﺯﺑﺎﻥ ﭘﻮﺭﺕ ﺗﺮﺟﻤﻪ ﻧﻤﻮﺩ ﻭ ﺁﻧﺮﺍ ﺑﻪ ﻓﺮﻡ‬
‫ﺑﻴﺖ ﺑﻪ ﺑﻴﺖ ﺩﺭﺁﻭﺭﺩ ﺗﺎ ﺑﺮﺍﻱ ﺍﺭﺳﺎﻝ ﺁﻣﺎﺩﻩ ﺷﻮﻧﺪ ﻫﻤﭽﻨﻴﻦ ﺩﺭ ﺣﺎﻟﺖ ﺩﺭﻳﺎﻓﺖ ﺍﻃﻼﻋﺎﺕ ﻧﻴﺰ ﺑﺎ ﻛﻨﺎﺭ ﻫﻢ ﻗﺮﺍﺭ ﮔﺮﻓﺘﻦ ﺍﻳﻦ ﺑﻴﺘﻬﺎ ﻳﻚ‬
‫ﺑﺎﻳﺖ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﻭ ﺑﻪ ‪ CPU‬ﺑﺮﺍﻱ ﭘﺮﺩﺍﺯﺵ ﻓﺮﺳﺘﺎﺩﻩ ﻣﻴﺸﻮﺩ‪ .‬ﺍﻟﺒﺘﻪ ﺍﻳﻦ ﻓﺮﺍﻳﻨﺪ ﺗﻮﺳﻂ ﻻﻳﻪ ﻫﺎﻱ ﻣﺨﺘﻠﻔﻲ ﺻﻮﺭﺕ ﻣﻴﮕﻴﺮﺩ ﻭﻳﻨﺪﻭﺯ‬
‫ﺑﺮﺍﻱ ﻛﺎﺭ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﺍﺯ ﻳﻚ ﺩﺭﺍﻳﻮﺭ ﺍﻧﺘﻘﺎﻝ ﺳﺮﻳﺎﻝ ﺑﻨﺎﻡ ‪ COMM.DRV‬ﺍﺳﺘﻔﺎﺩﻩ ﻣﻴﻜﻨﺪ‪ .‬ﺍﻟﺒﺘﻪ ﺑﺎ ﻭﺟﻮﺩ ﺭﻭﺍﻟﻬﺎﻱ ‪ API‬ﺩﻳﮕﺮ‬
‫ﻧﻴﺎﺯﻱ ﺑﻪ ﭼﻨﻴﻦ ﺍﺭﺗﺒﺎﻃﻬﺎﻱ ﺳﻄﺢ ﭘﺎﺋﻴﻨﻲ ﺑﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺍﺣﺴﺎﺱ ﻧﻤﻴﺸﻮﺩ‪ .‬ﺑﻪ ﻋﻨﻮﺍﻥ ﻳﻚ ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺲ ﺑﺴﺘﻪ ﺑﻪ ﻧﻴﺎﺯ ﺧﻮﺩ‬
‫ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﺯ ﺭﻭﺍﻟﻬﺎﻱ ‪ API‬ﻭ ﻳﺎ ﺍﺯ ﻳﻜﺴﺮﻱ ‪ ACTIVEX‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﺋﻴﺪ‪ .‬ﺩﺭ ﺍﻳﻦ ﻣﻘﺎﻟﻪ ﻣﺎ ﺑﻪ ﺫﻛﺮ ﺑﺮﺧﻲ ﺍﺯ ﺭﻭﺍﻟﻬﺎﻱ ‪ API‬ﻣﻬﻢ ﻭ‬
‫ﺗﻮﺿﻴﺢ ﻳﻚ ‪ ACTIVEX‬ﺍﺭﺋﻪ ﺷﺪﻩ ﻫﻤﺮﺍﻩ ﺑﺎ ‪ VISUAL STADIO PRO‬ﺑﻨﺎﻡ ‪ COMM٣٢‬ﺧﻮﺍﻫﻴﻢ ﭘﺮﺩﺍﺧﺖ ﺩﺭﺍﻧﺘﻬﺎ‬
‫ﻧﻴﺰ ﺑﻪ ﻃﺮﻳﻘﻪ’ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻴﻜﺮﻭﻛﻨﺘﺮﻟﺮ ﺧﻮﺍﻫﻴﻢ ﭘﺮﺩﺍﺧﺖ ‪.‬‬

‫‪.‬‬ ‫ﺍﻳﺠﺎﺩ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﺗﻮﺳﻂ ‪COMM٣٢‬‬ ‫ﻗﺪﻡ ﺍﻭﻝ ‪:‬‬
‫ﺑﺮﺍﻱ ﺷﺮﻭﻉ ﺑﻪ ﻛﺎﺭ ﻭ ﺩﺳﺘﺮﺳﻲ ﺑﻪ ﭘﻮﺭﺕ ﺗﻮﺳﻂ ‪ COMM٣٢‬ﻳﻜﺴﺮﻱ ‪ property‬ﮔﻨﺠﺎﻧﺪﻩ ﺷﺪﻩ ﺍﺳﺖ ﻛﻪ ﺑﺎ ‪set‬ﻛﺮﺩﻥ ﺁﻧﻬﺎ‬
‫ﻣﻴﺘﻮﺍﻥ ﭘﻮﺭﺕ ﺭﺍ ﺁﻣﺎﺩﻩ ﺩﺳﺘﺮﺳﻲ ﻧﻤﻮﺩ ‪ .‬ﺩﺭ ﺯﻳﺮ ﺑﻪ ﺗﻮﺿﻴﺢ ﺍﻳﻦ ‪ property‬ﻫﺎ ﻣﻴﭙﺮﺩﺍﺯﻳﻢ‪.‬‬

‫]‪mscomm١.Comport=[value‬‬ ‫‪ Set‬ﻛﺮﺩﻥ ﺷﻤﺎﺭﻩ’ﭘﻮﺭﺕ‬ ‫‪-١‬‬


‫ﺍﻳﻦ ‪ property‬ﺷﻤﺎﺭﻩ ﭘﻮﺭﺕ ﻣﻮﺭﺩ ﻧﻈﺮ ﺭﺍ ‪ SET‬ﻣﻴﻨﻤﺎﻳﺪ‪ .‬ﺍﻳﻦ ﻣﻘﺪﺍﺭ ﻣﻴﺘﻮﺍﻧﺪ ﺑﻴﻦ ‪ ١٦ -٠‬ﺑﺎﺷﺪ‪ .‬ﺍﮔﺮ ﭘﻮﺭﺗﻲ ﺑﺎ ﺷﻤﺎﺭﻩ’ﻣﻮﺭﺩ‬
‫ﻧﻈﺮ ﺷﻤﺎ ﻣﻮﺟﻮﺩ ﻧﺒﺎﺷﺪ ﻳﻚ ﺧﻄﺎ ﺭﺥ ﻣﻴﺪﻫﺪ ﻛﻪ ﻣﻴﺘﻮﺍﻥ ﺍﺯ ﺁﻥ ﺑﺮﺍﻱ ﺍﻃﻤﻴﻨﺎﻥ ﺍﺯ ﺍﻧﺠﺎﻡ ﻛﺎﺭ ﺳﻮﺩ ﺑﺮﺩ‪.‬‬

‫]‪mscomm١.setting = [string value‬‬ ‫‪ set -‬ﻛﺮﺩﻥ ﻣﺸﺨﺼﺎﺕ ﭘﻮﺭﺕ‬ ‫‪٢‬‬


‫ﺍﻳﻦ ‪ property‬ﺍﻣﻜﺎﻥ ﺗﻌﺮﻳﻒ ﻣﺸﺨﺼﺎﺕ ﭘﻮﺭﺕ ﺭﺍ ﻣﻴﺪﻫﺪ ‪.‬ﺍﻳﻦ ﻣﺸﺨﺼﺎﺕ ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﺻﻮﺭﺕ ﻳﻚ ﺭﺷﺘﻪ ﺗﻌﺮﻳﻒ ﺷﻮﺩ‪.‬ﺍﻳﻦ ﺭﺷﺘﻪ‬
‫ﺷﺎﻣﻞ ﺗﻌﺮﻳﻒ “ ‪ “ boud rate , parity bit , data bit ,stop bit‬ﻣﻴﺒﺎﺷﺪ‬
‫ﻣﻘﺎﺩﻳﺮ ﻣﻌﺘﺒﺮ ﺑﺮﺍﻱ ﺍﻳﻦ ﻣﻘﺎﺩﻳﺮ ﺭﺍ ﺩﺭ ﺟﺪﻭﻝ ﺯﻳﺮ ﻧﺸﺎﻥ ﺩﺍﺩﻩ ﺷﺪﻩ ﺍﺳﺖ ‪.‬‬
‫‪110 –300 –600 –1200 – 2400 – 4800 – 9600( defult ) –14400- 19200 – 28800‬‬
‫‪Boud rate‬‬ ‫‪38400 – 56000 – 57600 - 115200 - 128000 - 256000‬‬

‫) ‪M ( mark) – E ( even ) – N ( none( defult ) ) – O ( odd ) - S ( space‬‬


‫‪Parity bit‬‬
‫) ‪4 – 5 – 6 – 7 – 8 ( defult‬‬
‫‪Data bit‬‬
‫‪Stop bit‬‬ ‫‪1( defult ) – 1.5 – 2‬‬

‫]‪portopen = [value bolean‬‬ ‫‪-٣‬‬


‫ﺑﺎ ‪ set‬ﻛﺮﺩﻥ ﺁﻥ ﺑﻪ ‪ TRUE‬ﭘﻮﺭﺕ ﻣﻮﺭﺩ ﻧﻈﺮ ﺑﺎﺯ ﺷﺪﻩ ﻭ ﺩﺭ ﺍﺧﺘﻴﺎﺭ ﻣﺎ ﻗﺮﺍﺭ ﻣﻴﮕﻴﺮﺩ ‪.‬ﺑﺮﺍﻱ ﻗﻄﻊ ﺍﺭﺗﺒﺎﻁ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺭﺍ ‪FALS‬‬
‫ﻣﻴﻜﻨﻴﻢ ‪ .‬ﺍﮔﺮ ﺷﻤﺎﺭﻩ’ ﭘﻮﺭﺕ ﺩﺭ ‪ comport‬ﺩﺭﺳﺖ ‪ set‬ﻧﺸﻮﺩ ) ﻣﻮﺟﻮﺩ ﻧﺒﻮﺩﻥ ﭘﻮﺭﺕ ( ﺑﺎ ﺑﺎﺯ ﻛﺮﺩﻥ ﭘﻮﺭﺕ ﻳﻚ ﺧﻄﺎ ﺭﺥ ﻣﻴﺪﻫﺪ‬
‫ﻛﻪ ﻣﻴﺘﻮﺍﻥ ﺑﺎ ﭼﻚ ﻛﺮﺩﻥ ﺁﻥ ﺩﺭﺳﺘﻲ ﻋﻤﻞ ﺭﺍ ﺗﺴﺖ ﻧﻤﻮﺩ‪.‬‬
‫‪‘ Open the serial‬‬ ‫‪port‬‬
‫‪MSComm1.CommPort‬‬ ‫‪= 2‬‬
‫‪MSComm1.Settings‬‬ ‫”‪= “9600,N,8,1‬‬
‫‪MSComm1.PortOpen‬‬ ‫‪= True‬‬

‫ﻗﺪﻡ ﺩﻭﻡ ‪ :‬ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﻭ ﺗﻨﻈﻴﻤﺎﺕ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ‪.‬‬


‫ﺑﺎﻓﺮﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻭﺧﺮﻭﺟﻲ ‪ :‬ﻭﻗﺘﻲ ﻛﻪ ﺷﻤﺎ ﻳﻚ ﭘﻮﺭﺕ ﺭﺍ ﺑﺎﺯ ﻣﻴﻜﻨﻴﺪ ﺩﻭ ﺑﺎﻓﺮ ﻭﺭﻭﺩﻱ ﻭ ﺧﺮﻭﺟﻲ ﺍﻳﺠﺎﺩ ﻣﻴﺸﻮﺩ ﺍﻳﻦ‬ ‫ﺗﻨﻈﻴﻢ‬
‫ﺑﺎﻓﺮﻫﺎ ﻧﮕﻬﺪﺍﺭﻧﺪﻩ’ ﺍﻃﻼﻋﺎﺕ ﻭﺭﻭﺩﻱ ﻭﺧﺮﻭﺟﻲ ﻣﻴﺒﺎﺷﻨﺪ ‪.‬ﺑﺮﺍﻱ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﺍﻳﻦ ﺑﺎﻓﺮﻫﺎ ﺗﻌﺪﺍﺩﻱ ‪ property‬ﻭﺟﻮﺩ ﺩﺍﺭﺩ‪.‬‬
‫‪ Outbuffersize‬ﻭ ‪ Inbuffersize‬ﺑﺮﺍﻱ ﺗﻌﻴﻴﻦ ﻣﻘﺪﺍﺭ ﺣﺎﻓﻈﻪ’ﺑﺎﻓﺮ ﺑﺮﺍﻱ ﻭﺭﻭﺩﻱ ﻭ ﺧﺮﻭﺟﻲ ﻣﻴﺒﺎﺷﺪ ‪ .‬ﺍﻓﺰﺍﻳﺶ ﻣﻘﺪﺍﺭ‬
‫ﺍﻳﻦ ﺣﺎﻓﻈﻪ ﻫﺎ ﺑﺎﻋﺚ ﺍﺣﺘﻤﺎﻝ ﻛﺎﻫﺶ ﺣﺎﻓﻈﻪ ﺑﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﻣﻴﺸﻮﺩ ﺍﻟﺒﺘﻪ ﺑﺎ ﻭﺟﻮﺩ ﻛﺎﻣﭙﻴﻮﺗﺮﻫﺎﻱ ﺍﻣﺮﻭﺯﻱ ﻧﻴﺎﺯﻱ ﺑﻪ ﻧﮕﺮﺍﻧﻲ ﻧﻴﺴﺖ‬
‫‪.‬ﻛﺎﻫﺶ ﺍﻳﻦ ﻣﻘﺪﺍﺭ ﻧﻴﺰ ﺑﺎﻋﺚ ﺑﺮﻭﺯ ‪ over flow‬ﻣﻴﺸﻮﺩ ﻣﮕﺮ ﺍﻳﻨﻜﻪ ﺍﺯ ‪ hand shaiking‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﺎﻳﻴﺪ ‪.‬‬
‫‪-----------------------------------------------------------------------------------------‬‬
‫‪Rthershold , Sthershold‬‬
‫‪ Sthershold‬ﻭﻇﻴﻔﻪ’ ‪ set‬ﻛﺮﺩﻥ ﻭ ﺑﺮﮔﺮﺩﺍﻧﺪﻥ ﺣﺪﺍﻗﻞ ﺗﻌﺪﺍﺩ ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﻗﺎﺑﻞ ﻗﺒﻮﻝ ﺩﺭ ﺑﺎﻓﺮ ﺧﺮﻭﺟﻲ ﻗﺒﻞ ﺍﺯ ﺭﻭﻳﺪﺍﺩ‪oncomm‬‬
‫ﻭ ﺗﻐﻴﻴﺮ ﻣﻘﺪﺍﺭ ‪ commevnt‬ﺑﻪ ﻣﻘﺪﺍﺭ ‪ commevsend‬ﺭﺍ ﺩﺍﺭﺩ ﻣﺜﻼ ‪ ٠‬ﻛﺮﺩﻥ ﺁﻥ ﺑﺎﻋﺚ ﻏﻴﺮ ﻓﻌﺎﻝ ﺷﺪﻥ ﺭﻭﻳﺪﺍﺩ ‪ oncomm‬ﺩﺭ‬
‫ﺑﺮﺍﺑﺮ ﺍﻳﻦ ﻣﻮﺭﺩ ﻣﻴﺸﻮﺩ ﻭ ‪ ١‬ﻛﺮﺩﻥ ﺁﻥ ﺑﺎﻋﺚ ﺭﻭﻳﺪﺍﺩﻥ ﺁﻥ ﺩﺭ ﺯﻣﺎﻥ ﺧﺎﻟﻲ ﺷﺪﻥ ﺑﺎﻓﺮ ﻣﻴﺸﻮﺩ ‪.‬ﺑﺮﺍﻱ ﺗﻮﺿﻴﺤﺎﺕ ﺑﻴﺸﺘﺮ ﺑﻪ ﺗﻮﺿﻴﺤﺎﺕ‬
‫ﺭﻭﻳﺪﺍﺩ ‪ oncomm‬ﻣﺮﺍﺟﻌﻪ ﻧﻤﺎﺋﻴﺪ ‪.‬‬
‫‪ Rthershold‬ﻭﻇﻴﻔﻪ’ ‪ set‬ﻛﺮﺩﻥ ﻭ ﺑﺮﮔﺮﺩﺍﻧﺪﻥ ﺗﻌﺪﺍﺩ ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﺑﺎﻓﺮ ﻭﺭﻭﺩﻱ ﻗﺒﻞ ﺍﺯ ﺍﻳﺠﺎﺩ ﺭﻭﻳﺪﺍﺩ ‪ oncomm‬ﻭ‬
‫ﺗﻐﻴﻴﺮ ﻣﻘﺪﺍﺭ ‪ commevnt‬ﺑﻪ ﻣﻘﺪﺍﺭ ‪ commevrecive‬ﺭﺍ ﺩﺍﺭﺩ ‪.‬‬
‫‪-----------------------------------------------------------------------------------------‬‬
‫‪Inputlen‬‬
‫‪ Set‬ﻛﻨﻨﺪﻩ ﻭ ﺑﺮﮔﺮﺩﺍﻧﻨﺪﻩ ﻃﻮﻝ ﺭﺷﺘﻪ’ ﺧﻮﺍﻧﺪﻩ ﺷﺪﻩ ﺗﻮﺳﻂ ‪ input‬ﻣﻴﺒﺎﺷﺪ‪ .‬ﻗﺮﺍﺭ ﺩﺍﺩﻥ ‪ ٠‬ﺩﺭ ﺁﻥ ﺑﺎﻋﺚ ﺧﻮﺍﻧﺪﻥ ﺗﻤﺎﻡ ﻣﺤﺘﻮﻳﺎﺕ ﺑﺎﻓﺮ‬
‫ﮔﻴﺮﻧﺪﻩ ﻣﻴﺸﻮﺩ‪.‬‬
‫‪Eofenable‬‬
‫ﻧﺸﺎﻧﮕﺮﺭﺳﻴﺪﻥ ﺑﻪ ﻳﻚ ﺭﺷﺘﻪ ‪ (^Z - str$(٢٦)) end of file‬ﻣﻴﺒﺎﺷﺪ ﻭ ﺑﺎ ‪ ١‬ﻛﺮﺩﻥ ﺁﻥ ﺑﺎ ﺭﺳﻴﺪﻥ ﺑﻪ ‪ eof‬ﻳﻚ ﺭﻭﻳﺪﺍﺩ‬
‫‪ oncomm‬ﺭﺥ ﺧﻮﺍﻫﺪ ﺩﺍﺩ‪.‬‬

‫ﺍﺩﺍﺭﻩ ﻛﺮﺩﻥ ﺑﺎﻓﺮﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻭ ﺧﺮﻭﺟﻲ‬


‫ﻫﻤﺎﻧﻄﻮﺭ ﻛﻪ ﮔﻔﺘﻪ ﺷﺪ ﺑﺎﻓﺮﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻭ ﺧﺮﻭﺟﻲ ﻫﻨﮕﺎﻡ ﺍﻳﺠﺎﺩ ﻳﻚ ﭘﻮﺭﺕ ﺍﻳﺠﺎﺩ ﻣﻴﺸﻮﺩ‪ .‬ﺷﻤﺎ ﺑﺎ ﻳﻜﺴﺮﻱ ‪ property‬ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﺮ‬
‫ﺭﻓﺘﺎﺭ ﺍﻳﻦ ﺑﺎﻓﺮﻫﺎ ﻛﻨﺘﺮﻝ ﺩﺍﺷﺘﻪ ﺑﺎﺷﻴﺪ‪ .‬ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ‪ binary‬ﺑﺎ‪ text‬ﺩﺭﻳﺎﻓﺖ ﻛﻨﻴﺪ‪.‬‬
‫‪Input‬‬
‫ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺑﺮﺍﻱ ﺫﺧﻴﺮﻩ ﻛﺮﺩﻥ ﻭ ﺑﺎﺯﻳﺎﺑﻲ ﺍﻃﻼﻋﺎﺕ ﺩﺭﻭﻥ ﺑﺎﻓﺮ ﻭﺭﻭﺩﻱ ﺑﻜﺎﺭ ﻣﻴﺮﻭﺩ‪ .‬ﻣﺜﻼ ﺍﮔﺮ ﻣﻴﺨﻮﺍﻫﻴﺪ ﺍﻃﻼﻋﺎﺕ ﺭﺳﻴﺪﻩ ﺭﺍ ﺩﺭ ﻳﻚ‬
‫‪text١١.text = mscomm١١.input‬‬ ‫‪ text box‬ﻧﺸﺎﻥ ﺩﻫﻴﺪ‪:‬‬
‫ﺍﺑﺘﺪﺍ ﺑﺎﻳﺴﺘﻲ ﻃﻮﻝ ﺭﺷﺘﻪ’ ﻣﻮﺭﺩ ﻧﻈﺮ ﺭﺍ ﺑﺎ ‪ inputlen‬ﻣﻌﻴﻦ ﻛﻨﻴﺪ ‪.‬‬ ‫ﻧﻜﺘﻪ ‪:‬‬
‫‪Inputmode‬‬
‫ﺑﺮﺍﻱ ﺗﻌﻴﻦ ﻓﺮﻣﺖ ﻭﺭﻭﺩﻱ ﺑﻜﺎﺭ ﻣﻴﺮﻭﺩ ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺑﻪ ﺻﻮﺭﺕ ‪ binary‬ﺑﺎ‪ text‬ﺩﺭﻳﺎﻓﺖ ﻛﻨﻴﺪ ﺍﻳﻦ ﻛﺎﺭ ﺭﺍ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ‬
‫ﺛﺎﺑﺘﻬﺎﻱ ‪ vb‬ﺑﻪ ﻧﺎﻣﻬﺎﻱ ‪ comminputmodetext‬ﻳﺎ ‪ comminputmodebinary‬ﺍﻧﺠﺎﻡ ﭘﺬﻳﺮ ﺍﺳﺖ ‪ .‬ﺩﺭ ﺍﻳﻦ ﺻﻮﺭﺕ‬
‫ﺍﻃﻼﻋﺎﺕ ﺑﻪ ﺻﻮﺭﺕ ‪ text‬ﻭ ﻳﺎ ﺑﺎﻳﻨﺮﻱ ﺩﺭ ﻳﻚ ﺁﺭﺍﻳﻪ’ ﺑﺎﻳﻨﺮﻱ ﺫﺧﻴﺮﻩ ﻣﻴﺸﻮﺩ ‪.‬‬
‫‪Inbuffercount‬‬
‫ﺑﻴﺎﻧﮕﺮ ﺗﻌﺪﺍﺩ ﺑﺎﻳﺘﻬﺎﻱ ﺭﺳﻴﺪﻩ ﻣﻲ ﺑﺎﺷﺪ ﻫﻤﭽﻨﻴﻦ ﺑﺎ ﺻﻔﺮ ﻛﺮﺩﻥ ﺁﻥ ﺑﺎﻓﺮ ﻭﺭﻭﺩﻱ ﭘﺎﻙ ﻣﻴﺸﻮﺩ‬
‫ﺑﺎﻓﺮ ﻓﺮﺳﺘﻨﺪﻩ ‪----------------------------‬‬
‫‪Output‬‬
‫ﺍﺯ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺑﺮﺍﻱ ﺍﺭﺳﺎﻝ ﺍﻃﻼﻋﺎﺕ ﻳﺎ ﺩﺳﺘﻮﺭﺍﺕ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻮﺩ ‪.‬ﻣﺎﻧﻨﺪ ﺧﺎﺻﻴﺖ ‪ input‬ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ‪ binary‬ﺑﺎ‪ text‬ﺭﺍ ﺍﺭﺳﺎﻝ‬
‫ﻛﻨﻴﺪ ﺍﻳﻦ ﻛﺎﺭ ﺭﺍ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺗﻌﺮﻳﻒ ﻣﻘﺎﺩﻳﺮ ﺑﻪ ﺻﻮﺭﺕ ‪ binary‬ﺑﺎ‪ text‬ﺍﻧﺠﺎﻡ ﺩﻫﻴﺪ ‪.‬‬
‫ﻣﺜﺎﻝ‪:‬‬
‫"‪MSComm1.Output = "ATDT 111-111111‬‬ ‫‪Send an AT command‬‬

‫"‪MsComm1.Output = "This is a text string‬‬ ‫‪Send a text string‬‬

‫‪MSComm1.Output = Out‬‬ ‫‪Send Byte array data‬‬


‫ﻧﻜﺘﻪ ‪ :‬ﺑﺮﺍﻱ ﺁﺷﻨﺎﺋﻲ ﺑﺎ ﺩﺳﺘﻮﺭﺍﺕ ‪ AT‬ﺑﻪ ﺑﺨﺶ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻮﺩﻡ ﻣﺮﺍﺟﻌﻪ ﻛﻨﻴﺪ ‪.‬‬
‫‪Outbuffercount‬‬
‫ﺷﻤﺎ ﻫﻤﭽﻨﻴﻦ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﻪ ﺗﻌﺪﺍﺩ ﻛﺎﺭﺍﻛﺘﺮﻫﺎﻱ ﺍﺭﺳﺎﻟﻲ ﺍﺯ ﻃﺮﻳﻖ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﭘﻲ ﺑﺒﺮﻳﺪ ‪.‬‬
‫‪-----------------------------------------------------------------------------------------‬‬

‫‪Hand Shaiking‬‬ ‫ﺩﺳﺘﺪﻫﻲ‬


‫ﻳﻚ ﺑﺨﺶ ﻣﻬﻢ ﺩﺭ ﺳﺎﺯﻣﺎﻧﺪﻫﻲ ﺑﺎﻓﺮﻫﺎﻱ ﻭﺭﻭﺩﻱ ﻭﺧﺮﻭﺟﻲ ﺍﻃﻤﻴﻨﺎﻥ ﺍﺯ ﺻﺤﺖ ﺍﻃﻼﻋﺎﺕ ﺭﺳﻴﺪﻩ ﻭ ﺍﻃﻼﻋﺎﺕ ﺍﺭﺳﺎﻟﻲ ﺍﺳﺖ ﻭ ﺍﻃﻤﻴﻨﺎﻥ‬
‫ﺍﺯ ﺍﻳﻨﻜﻪ ﺳﺮﻋﺖ ﺩﺭ ﺍﻃﻼﻋﺎﺕ ﺭﺳﻴﺪﻩ ﺑﺎﻋﺚ ﺳﺮﺭﻳﺰ )‪ (over flow‬ﻧﺸﺪﻩ ﺍﺳﺖ‪ Hand Shaiking .‬ﺑﺎ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺭ ﺑﺮﻭﺗﻜﻞ ﺍﺭﺗﺒﺎﻃﻲ‬
‫ﺧﻮﺩ ﺍﻃﻼﻋﺎﺕ ﺭﺳﻴﺪﻩ ﺭﺍ ﺑﺮﺭﺳﻲ ﻣﻴﻜﻨﻨﺪ ﺗﺎ ﺩﺭ ﺍﺛﺮ ﺳﺮﺭﻳﺰ ﺍﺯ ﺑﻴﻦ ﻧﺮﻓﺘﻪ ﺑﺎﺷﻨﺪ ‪.‬‬
‫ﺷﻤﺎ ﺑﺎﻳﺴﺘﻲ ﻛﻪ ﭘﺮﻭﺗﻜﻞ ﻣﻮﺭﺩ ﻧﻴﺎﺯ ﺭﺍ ﺗﻌﻴﻴﻦ ﻛﻨﻴﺪ‪ .‬ﺍﻳﻦ ﭘﺮﻭﺗﻜﻞ ﺩﺭ ﺣﺎﻟﺖ ﻋﺎﺩﻱ ﻏﻴﺮ ﻓﻌﺎﻝ ﺍﺳﺖ)‪(comnone‬‬
‫‪Setting‬‬ ‫‪Value‬‬ ‫‪Description‬‬

‫‪ComNone‬‬ ‫‪0‬‬ ‫‪No handshaking (Default).‬‬

‫‪ComXOnXOff‬‬ ‫‪1‬‬ ‫‪XOn/XOff handshaking.‬‬

‫‪ComRTS‬‬ ‫‪2‬‬ ‫)‪RTS/CTS (Request To Send/Clear To Send‬‬


‫‪handshaking.‬‬

‫‪ComRTSXOnXOff‬‬ ‫‪3‬‬ ‫‪Both Request To Send and XOn/XOff handshaking.‬‬


‫ﺍﻧﺘﺨﺎﺏ ﭘﺮﻭﺗﻜﻠﻬﺎ ﺑﺴﺘﮕﻲ ﺯﻳﺎﺩﻱ ﺑﻪ ﺩﺳﺘﮕﺎﻫﻲ ﻛﻪ ﻣﻴﺨﻮﺍﻫﻴﺪ ﺑﻪ ﺁﻥ ﻣﺘﺼﻞ ﺷﻮﻳﺪ ﺩﺍﺭﺩ ﺑﺎ ﺍﻧﺘﺨﺎﺏ ‪ comRTSXOnXOff‬ﻫﺮﺩﻭ‬
‫ﭘﺮﻭﺗﻜﻞ ﺣﻤﺎﻳﺖ ﻣﻴﺸﻮﻧﺪ‬
‫‪ :‬ﺍﮔﺮ ﺷﻤﺎ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺭﺍ ﺑﻪ ﻫﺮ ﻛﺪﺍﻡ ﺍﺯ ﻣﻘﺎﺩﻳﺮ‪ ١‬ﻭ ‪ set ٢‬ﻛﻨﻴﺪ ﺑﺎﻳﺪ ﻛﻪ ﺧﺎﺻﻴﺖ ‪ rtsenable‬ﺭﺍ ‪ true‬ﻛﻨﻴﺪ ﻭﻛﺮ ﻧﻪ ﺷﻤﺎ‬ ‫ﻧﻜﺘﻪ‬
‫ﻗﺎﺩﺭ ﺑﻪ ﺩﺭﻳﺎﻓﺖ ﺍﻃﻼﻋﺎﺕ ﻧﺨﻮﺍﻫﻴﺪ ﺑﻮﺩ ‪.‬‬
‫]‪Rtsenable = [bolean‬‬
‫ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺑﺎﻋﺚ ‪ high‬ﺷﺪﻥ ﭘﺎﻳﻪ’‪ rts‬ﻣﻴﮕﺮﺩﺩ ﭘﺎﻳﻪ’‪ rts‬ﺩﺭ ﺩﺳﺘﺪﻫﻲ ‪ rtc/cts‬ﺍﺳﺘﻔﺎﺩﻩ ﺷﺪﻩ ﻭ ﻭﺟﻮﺩ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺑﻪ ﺷﻤﺎ‬
‫ﺍﺟﺎﺯﻩ ﻣﻴﺪﻫﺪ ﻛﻪ ﺑﻪ ﺻﻮﺭﺕ ﺩﺳﺘﻲ ﺍﻳﻦ ﻛﺎﺭ ﺭﺍ ﺍﻧﺠﺎﻡ ﺩﻫﻴﺪ‬
‫‪Dsrholding‬‬ ‫‪.‬‬
‫ﺗﺸﺨﻴﺺ ﺩﻫﻨﺪﻩ’ ﻭﺿﻌﻴﺖ ﭘﺎﻳﻪ’ ‪ dsr‬ﺍﺳﺖ ﺍﻳﻦ ﺳﻴﮕﻨﺎﻝ ﺍﺯ ﻃﺮﻑ ﻓﺮﺳﺘﻨﺪﻩ ﺑﺮﺍﻱ ﺍﻋﻼﻡ ﺁﻣﺎﺩﮔﻲ ﺧﻮﺩ ﻓﺮﺳﺘﺎﺩﻩ ﻣﻴﺸﻮﺩ ‪.‬‬
‫‪Dtrenable‬‬
‫ﺑﺎ ‪ set‬ﻛﺮﺩﻥ ﺁﻥ ﺑﻪ ‪ true‬ﺧﻂ ‪ Dtr‬ﺑﺎ ﺑﺎﺯ ﺷﺪﻥ ﭘﻮﺭﺕ ‪ high‬ﻭ ﺑﺎ ﺑﺴﺘﻪ ﺷﺪﻥ ﺁﻥ ‪ low‬ﻣﻴﺸﻮﺩ‬
‫‪Setting‬‬ ‫‪Description‬‬

‫‪True‬‬ ‫‪Enable the Data Terminal Ready line.‬‬

‫‪False‬‬ ‫‪(Default) Disable the Data Terminal Ready line.‬‬

‫ﻧﻜﺘﻪ‪ :‬ﺩﺭ ﺍﻛﺜﺮ ﻣﻮﺍﻗﻊ ﺑﺎ ‪ ٠‬ﻛﺮﺩﻥ ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺑﺎﻋﺚ ‪ hangup‬ﻣﻮﺩﻡ ﻣﻴﺸﻮﻳﻢ ‪.‬‬

‫‪Ctsholding‬‬
‫ﺍﻳﻦ ﺧﺎﺻﻴﺖ ﺗﺸﺨﺒﺺ ﺩﻫﻨﺪﻩ’ ﺁﻣﺎﺩﮔﻲ ﺑﺮﺍﻱ ﺍﺭﺳﺎﻝ ﺍﻃﻼﻋﺎﺕ ﻣﻴﺒﺎﺷﺪ ﻛﻪ ﺑﺎ ﭼﻚ ﻛﺮﺩﻥ ﭘﺎﻳﻪ’ ‪ cts‬ﺍﻳﻦ ﻛﺎﺭ ﺭﺍ ﺍﻧﺠﺎﻡ ﻣﻴﺪﻫﺪ‪ .‬ﺍﻳﻦ‬
‫ﭘﺎﻳﻪ ﻭﺭﻭﺩﻱ ﺍﺳﺖ ﻭ ﺍﺭ ﻃﺮﻑ ﻓﺮﺳﺘﻨﺪﻩ ﺍﺭﺳﺎﻝ ﻣﻴﺸﻮﺩ‬
‫‪Setting Description‬‬

‫‪True‬‬ ‫‪Clear To Send line high.‬‬

‫‪False‬‬ ‫‪Clear To Send line low.‬‬

‫‪Parityreplace ----------------------------------------------------‬‬
‫ﺍﻳﻦ ﺧﻠﺼﻴﺖ ‪ set‬ﻛﻨﻨﺪﻩ ﻭ ﺑﺮﮔﺮﺩﺍﻧﻨﺪﻩ’ﻛﺎﺭﺍﻛﺘﺮ ﺟﺎﻳﮕﺰﻳﻦ ﺩﺭ ﻫﻨﮕﺎﻡ ﺭﺧﺪﺍﺩ ﺧﻄﺎﻱ ‪ parity‬ﺍﺳﺖ‪ .‬ﺍﻳﻦ ﻛﺎﺭﺍﻛﺘﺮ ﺩﺭ ﺣﺎﻟﺖ ﻣﻌﻤﻮﻝ‬

‫ﺁﻧﺮﺍ ﻏﻴﺮ ﻓﻌﺎﻝ ﻛﻨﻴﺪ ‪.‬‬ ‫؟ ﺍﺳﺖ ﻭﻟﻲ ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﻪ ﻫﺮ ﻛﺎﺭﺍﻛﺘﺮ ﺩﻳﮕﺮ ﺁﻧﺮﺍ ‪ set‬ﻛﻨﻴﺪ ﻭﻳﺎ ﺑﺎ ﻣﻘﺪﺍﺭ ﺩﻫﻲ ""‬ ‫ﺑﺮﺍﺑﺮ‬
Commevent ‫ ﻭ ﺧﺎﺻﻴﺖ‬Oncomm ‫ﺭﺧﺪﺍﺩ‬
‫ ﻭ ﺧﺎﺻﻴﺖ‬Oncomm ‫ﺩﺭ ﻫﻨﮕﺎﻡ ﺍﺟﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﺷﻤﺎ ﺑﺎﻳﺴﺘﻲ ﺑﻪ ﺭﻭﻳﺪﺍﺩﻫﺎﻱ ﻣﺨﺘﻠﻒ ﻳﺎ ﺧﻄﺎﻫﺎﻱ ﺍﻳﺠﺎﺩ ﺷﺪﻩ ﺗﻮﺟﻪ ﻧﻤﺎﻳﻴﺪ ﺭﺧﺪﺍﺩ‬
‫ ﺩﺭ ﻫﻨﮕﺎﻡ ﺭﺥ ﺩﺍﺩﻥ ﺧﻄﺎ‬.‫ ﺑﻪ ﺷﻤﺎ ﺍﺟﺎﺯﻩ’ ﺑﺪﺍﻡ ﺍﻧﺪﺍﺧﺘﻦ ﻭ ﭼﻚ ﻛﺮﺩﻥ ﺭﺧﺪﺍﺩﻫﺎ ﻭ ﺧﻄﺎﻫﺎﻱ ﮔﻮﻧﺎﮔﻮﻥ ﺭﺍ ﻣﻴﺪﻫﺪ‬Commevent
‫ ﺑﻨﺎﺑﺮﺍﻳﻦ ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﺎ ﺗﺴﺖ ﺍﻳﻦ ﺧﺎﺻﻴﺖ‬.‫ ﺗﻐﻴﻴﺮ ﻣﻴﻜﻨﺪ‬commevent ‫ ﺍﺟﺮﺍ ﺷﺪﻩ ﻭ ﻣﻘﺪﺍﺭ ﺧﺎﺻﻴﺖ‬oncomm ‫ﻳﻚ ﺭﻭﻳﺪﺍﺩ‬
‫ﻣﺘﻮﺟﻪ ﻋﻤﻠﻜﺮﺩ ﺑﺮﻧﺎﻣﻪ ﺷﻮﻳﺪ‬
. ‫ ﻧﺸﺎﻥ ﻣﻴﺪﻫﺪ‬commevent ‫ ﺟﺪﻭﻝ ﺯﻳﺮ ﻣﻘﺎﺩﻳﺮ ﺧﻄﺎﻫﺎ ﺩﺭ‬.
Constant Value Description

ComEventBreak 1001 A Break signal was received.

ComEventFrame 1004 Framing Error. The hardware detected a framing error.

ComEventOverrun 1006 Port Overrun. A character was not read from the hardware
before the next character arrived and was lost.

ComEventRxOver 1008 Receive Buffer Overflow. There is no room in the receive


buffer.

ComEventRxParity 1009 Parity Error. The hardware detected a parity error.

ComEventTxFull 1010 Transmit Buffer Full. The transmit buffer was full while
trying to queue a character.

ComEventDCB 1011 Unexpected error retrieving Device Control Block (DCB)


for the port.

. ‫ ﻧﺸﺎﻥ ﻣﻴﺪﻫﺪ‬commevent ‫ﺟﺪﻭﻝ ﺯﻳﺮ ﻣﻘﺎﺩﻳﺮ ﺭﻭﻳﺪﺍﺩﻫﺎ ﺭﺍ ﺩﺭ‬

Constant Value Description

ComEvSend 1 There are fewer than Sthreshold number of characters in the


transmit buffer.

ComEvReceive 2 Received Rthreshold number of characters. This event is


generated continuously until you use the Input property to
remove the data from the receive buffer.

ComEvCTS 3 Change in Clear To Send line.

ComEvDSR 4 Change in Data Set Ready line. This event is only fired
when DSR changes from 1 to 0.

ComEvCD 5 Change in Carrier Detect line.

ComEvRing 6 Ring detected. Some UARTs (universal asynchronous


receiver-transmitters) may not support this event.

ComEvEOF 7 End Of File (ASCII character 26) character received.


.‫ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﻃﻼﻋﺎﺕ ﻣﻔﻴﺪﻱ ﺩﺭ ﻣﻮﺭﺩ ﺍﺟﺮﺍﻱ ﺑﺮﻧﺎﻣﻪ ﻛﺴﺐ ﻛﻨﻴﺪ‬oncomm ‫ﺷﻤﺎ ﺑﺎ ﺗﺴﺖ ﺍﻳﻦ ﻣﻘﺎﺩﻳﺮ ﺩﺭ ﻫﻨﮕﺎﻡ ﺭﻭﻳﺪﺍﺩ‬
‫ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻮﺩﻡ ‪-------------------------‬‬
‫ﻳﻜﻲ ﺍﺯ ﻛﺎﺭﺑﺮﺩﻫﺎﻱ ﺟﺎﻟﺐ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺁﻥ ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻮﺩﻡ ﻣﻴﺒﺎﺷﺪ ﻣﺜﻼ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺑﺎ ﺁﻥ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ﻛﻨﻴﺪ ﻭ ﻳﺎ‬
‫ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺍﺯ ﻃﺮﻳﻖ ﺧﻂ ﺗﻠﻔﻦ ﺍﺭﺳﺎﻝ ﻭ ﻳﺎ ﺩﺭﻳﺎﻓﺖ ﻧﻤﺎﻳﻴﺪ‪ .‬ﻣﺜﻼ ﺑﺮﺍﻱ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ﺑﺎ ﺁﻥ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﺯ ﺍﻳﻦ ﺩﺳﺘﻮﺭ ﺍﺳﺘﻔﺎﺩﻩ ﻛﺮﺩ‪.‬‬
‫‪MSComm1.Output = "ATDT 0571-2642332" & vbcr‬‬
‫ﺩﺭ ﺍﻳﻦ ﻣﺜﺎﻝ ‪ AT‬ﺍﻏﺎﺯﮔﺮ ﺍﺭﺗﺒﺎﻁ ﺍﺳﺖ ‪ D‬ﻧﺸﺎﻧﺪﻫﻨﺪﻩ’‪ dialing‬ﻭ‪ T‬ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ﺑﻪ ﺭﻭﺵ ﺗﻦ ﺍﺳﺖ‪ .‬ﺩﺭ ﺣﺎﻟﺖ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﺑﺎ ﻳﻚ‬
‫ﺷﺒﻜﻪ ﺑﺎﻳﺴﺘﻲ ﺍﺯ ﻳﻚ ﻛﺎﺭﺍﻛﺘﺮ ﺑﺮﮔﺸﺘﻲ ﻧﻴﺰ ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻮﺩ ‪.‬ﺍﮔﺮ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ﺩﺭﺳﺖ ﺍﻧﺠﺎﻡ ﺷﻮﺩ ﺑﺮﮔﺸﺘﻲ ﺗﺎﺑﻊ “‪ ”ok‬ﺍﺳﺖ‪.‬‬
‫ﺩﻳﮕﺮ ﺩﺳﺘﻮﺭﺍﺕ ﻫﻤﺮﺍﻩ ‪ AT‬ﺑﻪ ﺻﻮﺭﺕ ﺯﻳﺮ ﺍﺳﺖ ‪.‬‬

‫‪D‬‬ ‫ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ) ‪( dialing‬‬


‫‪T‬‬ ‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﻴﺴﺘﻢ ﺗﻦ‬
‫‪P‬‬ ‫ﺍﺳﺘﻔﺎﺩﻩ ﺍﺯ ﺳﻴﺴﺘﻢ ﭘﺎﻟﺲ‬

‫‪,‬‬ ‫ﻭﻗﻔﻪ ﺩﺭ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ‬

‫!‬ ‫ﻭﻗﻔﻪ ﺩﺭ ﺷﻤﺎﺭﻩ ﮔﻴﺮﻱ ﺑﻪ ﻣﻘﺪﺍﺭ ‪ .٥‬ﺛﺎﻧﻴﻪ‬


‫‪H‬‬ ‫ﺑﺎﻋﺚ ‪ Hang up‬ﻣﻮﺩﻡ ﻣﻴﺸﻮﺩ‬

‫ﻣﺜﺎﻝ ‪ :‬ﺍﺭﺳﺎﻝ ﻭ ﺩﺭﻳﺎﻓﺖ ﻳﻚ ﻓﺎﻳﻞ ﺍﺯ ﻃﺮﻳﻖ ﻣﻮﺩﻡ‬


‫‪Dim Offset As Long‬‬ ‫ﺑﺨﺶ ﻓﺮﺳﺘﻨﺪﻩ ‪:‬‬
‫‪Dim FileData As Byte‬‬
‫‪Dim FileName As String‬‬
‫)(‪Private Sub Form_Load‬‬
‫"‪MSComm1.Settings = "28800,N,8,1‬‬
‫‪MSComm1.InputLen = 1‬‬
‫‪MSComm1.CommPort = 2‬‬
‫‪MSComm1.PortOpen = True‬‬
‫‪Offset = 1‬‬
‫‪Open FileName For Binary Access Read As #1‬‬
‫‪End Sub‬‬

‫)(‪Private Sub MSComm1_OnComm‬‬


‫‪If MSComm1.CommEvent = 2 Then‬‬
‫‪temp = MSComm1.Input‬‬
‫‪If Offset <= FileLen(FileName) Then‬‬
‫‪Get #1, Offset, FileData‬‬
‫‪q = FileData‬‬
‫)"‪MSComm1.Output = Format(q, "000‬‬
‫‪Offset = Offset + 1‬‬
‫‪End If‬‬
‫‪End If‬‬
‫‪End Sub‬‬

‫)‪Private Sub Form_Unload(Cancel As Integer‬‬


‫‪Close #1‬‬
‫‪End Sub‬‬
Dim ByteCount As Long : ‫ﺑﺨﺶ ﮔﻴﺮﻧﺪﻩ‬
Dim FileData As Byte

Private Sub Form_Load()


MSComm1.Settings = "28800,N,8,1"
MSComm1.InputLen = 3
MSComm1.CommPort = 1
MSComm1.PortOpen = True
Open "c:\sample.txt" For Binary Access Write As #1
End Sub

Private Sub MSComm1_OnComm()


If MSComm1.CommEvent = 2 And MSComm1.InBufferCount > 0 Then
FileData = CInt(MSComm1.Input)
ByteCount = ByteCount + 1
Put #1, ByteCount, FileData
MSComm1.Output = Chr$(26)
End If
End Sub

Private Sub Command1_Click()


MSComm1.Output = Chr$(26)
End Sub

Private Sub Form_Unload(Cancel As Integer)


Close #1
End Sub

‫ﺗﻮﺿﻴﺢ ﭘﺎﻳﻪ ﻫﺎﻱ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ‬

9-pin 25-pin ‫ﻧﺎﻡ ﭘﺎﻳﻪ‬ ‫ﺗﻮﺿﻴﺢ ﭘﺎﻳﻪ‬


TD
3 2 Transmit data
‫ﺍﺭﺳﺎﻝ ﻛﻨﻨﺪﻩ’ ﺍﻃﻼﻋﺎﺕ‬
RD
2 3 Receive data
‫ﮔﻴﺮﻧﺪﻩ’ ﺍﻃﻼﻋﺎﺕ‬
RTS
7 4 Request to send
‫ﺁﻣﺎﺩﻩ ﺑﺮﺍﻱ ﺍﺭﺳﺎﻝ‬
CTS
8 5 Clear to send
‫ﺁﻣﺎﺩﻩ’ ﺩﺭﻳﺎﻓﺖ ﺍﻃﻼﻋﺎﺕ‬
DSR
6 6 Data set ready
‫ﮔﻴﺮﻧﺪﻩ ﻣﺘﺼﻞ ﺷﺪﻩ ﻭ ﺁﻣﺎﺩﻩ ﺍﺳﺖ‬
GND
5 7 Signal ground
‫ﺯﻣﻴﻦ‬
DTR
4 20 Data terminal ready
‫ﻓﺮﺳﺘﻨﺪﻩ ﺁﻣﺎﺩﻩ ﺍﺳﺖ‬
‫ﺍﺭﺗﺒﺎﻁ ﻣﻴﻜﺮﻭﻛﻨﺘﺮﻟﺮ ﻭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺍﺯ ﻃﺮﻳﻖ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ‪.‬‬
‫‪ RS٢٣٢‬ﺑﺎ‬
‫‪ RS٢٣٢‬ﺑﺎﻳﺴﺘﻲ ﺍﺯ ﻳﻚ ﺭﺍﺑﻂ ﺳﺨﺖ ﺍﻓﺰﺍﺭﻱ ﺑﺮﺍﻱ ﺗﻄﺎﺑﻖ ﺳﻄﺢ ﺳﻴﮕﻨﺎﻝ‪٢٣٢‬‬ ‫ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﻣﻴﻜﺮﻭ ﺍﺯ ﻃﺮﻳﻖ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ‪٢٣٢‬‬
‫‪ DS٢٧٥‬ﺍﺳﺘﻔﺎﺩﻩ‬
‫‪ MAX٢٣٣‬ﻭ ﻳﺎ ‪٢٧٥‬‬
‫‪ MAX٢٣٢‬ﻳﺎ ‪٢٣٣‬‬ ‫ﺳﻄﺢ ‪ TTL‬ﺍﺳﺘﻔﺎﺩﻩ ﻧﻤﻮﺩ ﺑﺮﺍﻱ ﺍﻳﻦ ﻛﺎﺭ ﻣﻲ ﺗﻮﺍﻥ ﺍﺯ ﺗﺮﺍﺷﻪ ﻫﺎﻳﻲ ﻣﺎﻧﻨﺪ ‪٢٣٢‬‬
‫‪ RS٢٣٢‬ﺑﻜﺎﺭ ﺑﺮﺩ ‪.‬‬
‫ﻧﻤﻮﺩ ﻃﺮﺡ ﺍﺭﺍﺋﻪ ﺷﺪﻩ ﺩﺭ ﺯﻳﺮ ﺭﺍ ﻣﻴﺘﻮﺍﻥ ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﻣﻴﻜﺮﻭ ﺑﺎ ‪٢٣٢‬‬

‫‪ DS٢٧٥‬ﻧﻤﻮﺩ‬
‫ﻣﺪﺍﺭ ﺍﺭﺍﺋﻪ ﺷﺪﻩ ﺩﺭ ﺯﻳﺮ ﺭﺍ ﻧﻴﺰ ﻣﻴﺘﻮﺍﻥ ﺑﻪ ﺭﺍﺣﺘﻲ ﺟﺎﻳﮕﺰﻳﻦ ﺗﺮﺍﺷﻪ’ ‪٢٧٥‬‬

‫ﺑﺎ ﻛﺎﻣﻞ ﺷﺪﻥ ﺍﺭﺗﺒﺎﻁ ﺳﺨﺖ ﺍﻓﺰﺍﺭﻱ ﻣﻴﺘﻮﺍﻥ ﺷﺮﻭﻉ ﺑﻪ ﺍﻳﺠﺎﺩ ﻧﺮﻡ ﺍﻓﺰﺍﺭ ﻻﺯﻡ ﻧﻤﻮﺩ ‪ .‬ﺑﺮﺍﻱ ﺍﺭﺗﺒﺎﻁ ﺑﺎ ﭘﻮﺭﺕ ﺳﺮﻳﺎﻝ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻧﻴﺎﺯ ﺑﻪ‬
‫ﺗﻨﻈﻴﻢ ‪ BOUD RATE‬ﻭ ﺩﻳﮕﺮ ﺗﻨﻈﻴﻤﺎﺕ ﻻﺯﻡ ﺩﺍﺭﻳﻢ ﻛﻪ ﺗﻮﺳﻂ ﻣﻴﻜﺮﻭ ﻭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺣﻤﺎﻳﺖ ﺷﺪﻩ ﺑﺎﺷﺪ‬
‫‪.‬ﺑﺮﺍﻱ ﺗﻨﻈﻴﻢ ﺍﻳﻦ ﻣﻘﺪﺍﺭ ﺩﺭ ﻛﺎﻣﭙﻴﻮﺗﺮ ﺑﺎ ﺗﻮﺟﻪ ﺑﻪ ﺗﻮﺿﻴﺤﺎﺕ ﻗﺒﻠﻲ ﺑﺎﻳﺴﺘﻲ ‪:‬‬

‫"‪MSComm1.Settings = "9600,N,8,1‬‬
‫ﺍﻟﺒﺘﻪ ﻣﻴﺘﻮﺍﻥ ﻣﻘﺎﺩﻳﺮ ‪ Parity bit - Data bit - Stop bit‬ﺭﺍ ﺑﻪ ﻣﻘﺪﺍﺭ ﺩﻟﺨﻮﺍﻩ ﺩﺭ ﻣﻴﻜﺮﻭ ﻭ ﻛﺎﻣﭙﻴﻮﺗﺮ ‪ set‬ﻧﻤﻮﺩ‪..‬‬
‫ﺑﺮﺍﻱ ﺗﻨﻈﻴﻤﺎﺕ ﻻﺯﻡ ﺩﺭ ﻣﻴﻜﺮﻭ ﻛﻨﺘﺮﻟﺮ ﺑﻪ ﻣﺜﺎﻝ ﺯﻳﺮ ﺗﻮﺟﻪ ﻧﻤﺎﺋﻴﺪ ‪.‬‬
‫‪ORG‬‬ ‫‪00‬‬
‫‪DB 1, 2 , 3, 4, 5, 0‬‬
‫‪ORG‬‬ ‫‪100‬‬
‫‪MOV‬‬ ‫‪TMOD,#20H‬‬ ‫) ‪timer1 , mode 2 ( auto reload‬‬
‫‪MOV‬‬ ‫‪TH1,#0FAH‬‬ ‫) ‪4800 baud rate ( with xtall = 11.0592 mhz‬‬
‫‪MOV‬‬ ‫‪SCON,#50H‬‬ ‫‪8 bit , 1 stop , ren enable‬‬
‫‪SETB‬‬ ‫‪TR1‬‬ ‫‪run timer 1‬‬
‫‪MOV‬‬ ‫‪DPTR,#00H‬‬ ‫‪load data pointer to transfer data‬‬
‫‪LL1:‬‬
‫‪CLR‬‬ ‫‪A‬‬
‫‪MOVC‬‬ ‫‪A,@A+DPTR‬‬ ‫‪load ACC with data‬‬
‫‪JZ‬‬ ‫‪LL2‬‬ ‫) ‪test for 0 data ( end data‬‬
‫‪CALL‬‬ ‫‪SEND‬‬ ‫‪call sender data function‬‬
‫‪INC‬‬ ‫‪DPTR‬‬ ‫‪inc data poniter‬‬
‫‪JMP‬‬ ‫‪LL1‬‬
‫‪SEND:‬‬
‫‪MOV‬‬ ‫‪SBUF,A‬‬ ‫‪load SBUF with data and send it‬‬
‫‪LL3:‬‬
‫‪JNB‬‬ ‫‪T1,LL3‬‬ ‫‪wait for end send‬‬
‫‪RET‬‬
‫‪LL2:‬‬
‫‪END‬‬
‫‪--------------------------------------------------‬‬
‫ﻣﺜﺎﻝ ﺍﺭﺍﺋﻪ ﺷﺪﻩ ﺩﺭ ﺑﺎﻻ ﻃﺮﺡ ﺳﺎﺩﻩ ﺍﻱ ﺍﺯ ﺍﺭﺳﺎﻝ ﭼﻨﺪ ﻋﺪﺩ ﺑﻪ ﻛﺎﻣﭙﻴﻮﺗﺮ ﻣﻲ ﺑﺎﺷﺪ ‪ .‬ﻫﻤﭽﻨﻴﻦ ﺷﻤﺎ ﻣﻴﺘﻮﺍﻧﻴﺪ ﺍﻃﻼﻋﺎﺕ ﺭﺍ ﺑﻪ ﻫﻤﻴﻦ‬
‫ﺻﻮﺭﺕ ﺑﻪ ﻣﻴﻜﺮﻭ ﻣﻨﺘﻘﻞ ﻧﻤﺎ ﺋﻴﺪ ‪.‬‬
‫ﺑﺮﺍﻱ ﺁﺷﻨﺎ ﺋﻲ ﺑﻴﺸﺘﺮ ﺑﺎ ﺍﺭﺗﺒﺎﻁ ﺳﺮﻳﺎﻝ ﺩﺭ ﻣﻴﻜﺮﻭ ﻛﻨﺘﺮﻟﺮ ﻣﻲ ﺗﻮﺍﻧﻴﺪ ﺑﻪ ﻛﺘﺎﺑﻬﺎﻱ ﻣﻮﺟﻮﺩ ﺩﺭ ﺍﻳﻦ ﺯﻣﻴﻨﻪ ﻭ ﻳﺎ ﺃﺩﺭﺱ ﺍﻳﻨﺠﺎﻧﺐ ﻣﺮﺍﺟﻌﻪ‬
‫ﻧﻤﺎﺋﻴﺪ ‪.‬‬
‫ﺑﻪ ﺍﻣﻴﺪ ﺳﻮﺩﻣﻨﺪ ﺑﻮﺩﻥ ﺍﻳﻦ ﻣﻘﺎﻟﻪ ﻭ ﺍﺭﺗﻘﺎﻱ ﺭﻭﺯ ﺍﻓﺰﻭﻥ ﺳﻄﺢ ﺗﻜﻨﻮﻟﻮﮊﻱ ﺩﺭ ﻛﺸﻮﺭﻣﺎﻥ ﺍﻳﺮﺍﻥ ‪.‬‬

‫ﺑﻬﺰﺍﺩ ﺧﺰﺍﻣﺎ ﺩﺍﻧﺸﺠﻮﻱ ﺳﺒﺰﻭﺍﺭﻱ‬


‫‪b_khazama@yahoo.com‬‬
‫‪www.khazama.com‬‬
‫‪TEL = 0571 - 2642332‬‬

‫ﺁﺩﺭﺱ ‪ :‬ﺳﺒﺰﻭﺍﺭ – ﭘﺎﺭﻙ ﺑﻌﺜﺖ – ﻛﻮﭼﻪ’ ﻃﺎﻟﻘﺎﻧﻲ ‪ ) ٢٢‬ﺷﻬﻴﺪ ﻣﺤﺴﻦ ﺻﺎﻧﻌﻲ (‬

You might also like