دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

مشاهده این پیام به این معنی است که شما در سایت عضو نیستید، لطفا در صورت تمایل جهت عضویت در سایت علمی نخبگان جوان اینجا کلیک کنید.

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 2 , از مجموع 2

موضوع: چگونه با استفاده از PIC16c71 يک ولتمتر سريال بسازيم

  1. #1
    دوست آشنا
    نوشته ها
    999
    ارسال تشکر
    186
    دریافت تشکر: 1,117
    قدرت امتیاز دهی
    38
    Array

    Arrow چگونه با استفاده از PIC16c71 يک ولتمتر سريال بسازيم

    ولتمتر سريال:
    ساختن يک ولتمتر سريال ساده که بتواند از 0 تا 5 ولت را اندازه بگيرد واقعا ساده است.اين کار به کمک Microsoft Visual Basic نسخه 5 به بالا و نرم افزارهاي Melabs وPicBasic انجام پذير است.شما به اين دليل به Microsoft Visual Basic Pro نياز داريد که بتوانيد از مولفه MsComm Control آن استفاده کنيد.اين Control در نسخه "آموزشي" Visual Basic 5 موجود نيست.PIC 16c71 با داشتن يک مبدل A/D داخلي اين کار را ساده ساخته است.پين هاي 17 و18و1و2 ورودي هاي آنالوگ هستند,يعني به ترتيب AIN0 وAIN1 وAIN2 و AIN3.


    نرم افزار ولتمتر سريال , جهت دريافت اطلاعات فرستاده شده از طرف ميکروکنترلر PIC ,بر پورت سريال نظاره مي کند و پس از دريافت داده ,نتيجه نمايش داده شده از طريق ضرب نمودن آن در 0.02 بدست مي آيد.مبدل A/D موجود در PIC16C71 از نوع تقريب متوالي(Successive Approximation) بوده ونتايج هشت بيتي توليد مي کند.با وجود نتيجه هشت بيتي به رنج 0 تا 255(به نمايندگي از 0 تا 5 ولت) محدود مي شويم.


    شماتيک مدار PIC16C71





    کد PicBasic :

    Access PIC16C71 A/D using Peek and Poke

    Symbol ADCON0 = 8 ' A/D Configuration Register 0
    Symbol ADRES = 9 ' A/D Result
    Symbol ADCON1 = $88 ' A/D Configuration Register 1
    Symbol SO = 0 ' Serial Output on port B0

    poke ADCON1, 0 ' Set PortA 0-3 to analog inputs
    poke ADCON0, $41 ' Set A/D to Fosc/8, Channel 0, On

    Loop:
    poke ADCON0, $45 ' Start Conversion
    pause 1 ' Wait 1ms for conversion
    peek ADRES, B0 ' Get Result to variable B0

    serout SO,N2400,(#B0,10) ' Send variable to serial out

    goto Loop ' Start over again


    کد بالا که بسيار ساده است,با استفاده از Micro Engineering's PicBasic نوشته شد.با استفاده از دستورات PEEK و POKE در PicBasic قادر خواهيم بود به رجيستر هاي A/D داخلي PIC16C71 و پين هاي پورت A دست پيدا کنيم.بعد از آمادهسازي رجيسترهاي A/D براي استفاده از AN0 -به خاطر پذيرش سيگنال هاي آنالوگ- برنامه در يک حلقه ساده باقي مي ماند و به طور پيوسته مقادير آنالوگ نمونه برداري شده در پين(پايه) 17 (موسوم به RA0/AN0) را مي فرستد.

    کد ويژوال بيسيک :






    Form1


    با ايجاد يکForm ساده , MSComm Control , يک تايمر, يک Text Box و يک دکمه جهت خارج شدن از برنامه مي توانيد مانند آنچه در پنجره کد بالا و Form1 مي بينيد برنامه Visual Basic خود را بسازيد.
    اگر ترجيح مي دهيد از پورت Com ديگري استفاده کنيد, به سادگي در جاييکه ما CommPort1 را انتخاب کرديم پورت مورد نظرتان را وارد کنيد.به کد خط Text1.Text = Asc(DataIn) * 0.02 & " Volts DC" توجه کنيد.اين خط از کد , داده دريافتي از PIC را به مقداري که بتوان آن را در Text Box يعني ناحيه سياه رنگ نشان داد تبديل مي کند. از آنجا که مبدل A/D موجود در PIC16C71 وضوح هشت بيتي دارد , پس تنها 256 ترکيب ممکن از 0 تا 255 داريم.چون 5 ولت تقسيم بر 256 برابر با 0.0195 است,مقدار برگردانده از 250 بايستي معادل 4.87 باشد,چون 4.87=250*0.0195.مقدار 255 نزديک به 5 ولت (4.9725 ولت) را نشان مي دهد و52 ,1.04 ولت را نشان مي دهد.

    وضوح هشت بيت: براي اکثر کاربردها,وضوح هشت بيت کفايت مي کند.با وضوح هشت بيتي ما قادر خواهيم بود ورودي هاي آنالوگ را با گام صعودي 0.0195 ولت اندازه بگيريم.ما 0 را به نمايندگي از صفر ولت و 255 را به نمايندگي از پنج ولت داريم.بنابراين وضوح واقعي ما 0.0195 يا 19.5 ميلي ولت است.256 حالت مختلف -شروع از صفر و گام افزايش 19.6 ميلي ولتي مي تواند براي اکثر کاربردها کافي باشد.
    بسيار خوب,پس چرا من از مقدار 0.02 براي انجام محاسباتم استفاده کردم؟ من آن را به 0.02 گرد کردم چون بعد از اينکه در حين عملکرد مدارم ,از ولت متر خود براي قرائت مقدار دقيق استفاده کردم , متوجه شدم با استفاده از 0.02 نتايج من دقيق تر مي شود.ين احتمال وجود دارد که مدار شما اندکي با اين متفاوت باشد زيرا تاکنون ديده نشده هيچ دو وسيله اي کاملا يکسان باشند.اين ايده خوبيست که کمي آزمايش کنيد و از يک ولتمتر دقيق براي تنظيم نمودن برنامه استفاده کنيد تا به نتايج دقيق تري برسيد.
    ن
    کته: نرم افزار ويژوال بيسيک تهيه شده در اين پروژه , 32 بيتي بوده و با بهره گيري از Com1 , تحت ويندز هاي 95 و98 وبالاتر اجرا مي شود.

    نويسنده: سام الدين شافعيان(دانشجوي کارشناسي برق و الکترونيک دانشگاه مازندران)
    منبع اطلاعاتي: hessameddin.persianblog.com ايميل: shafeiyan@yahoo.com
    http://www.fadack.com/Archive/Electronic/learn/Archive_0003.htm



    ویرایش توسط hengameh : 14th April 2010 در ساعت 06:28 PM

  2. #2
    دوست آشنا
    رشته تحصیلی
    مخابرات
    نوشته ها
    1,064
    ارسال تشکر
    1,109
    دریافت تشکر: 1,646
    قدرت امتیاز دهی
    68
    Array

    پیش فرض پاسخ : چگونه با استفاده از PIC16c71 يک ولتمتر سريال بسازيم

    آیا مایلید نسخه مخصوص به خود را طراحی کنید؟ یا تنها کد VB را جهت اجرا دارید؟ این یک نسخه متفاوت و بدون تایمر است که توسط "باب کاتر" فرستاده شده است.این نسخه , شامل کد VB کامل برای ولتمتر سریال است.اینجا را کلیک کنید تا نسخه باب را داونلود کنید.
    اگه سوالی داری درباره برق داری یا چیزی می خوای کافیه اینجا کلیک کنی
    اگه می خوای از تازه ترین خبرای برقی مطلع بشی اینجا کلیک کن
    اگه تو تالار برق دنبال چیزی می گردی و پیدا نمی کنی اینجا کلیک کن





اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. آموزشی: نحوه استفاده از فايروال ويندوز xp
    توسط moji5 در انجمن آموزش نرم افزار
    پاسخ ها: 0
    آخرين نوشته: 19th November 2009, 12:11 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •