الشرقاوي وافق
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 829894
ادارة المنتدي التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 103798
الشرقاوي وافق
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 613623
عزيزي الزائر / عزيزتي الزائرة يرجي التكرم بتسجبل الدخول اذا كنت عضو معنا
او التسجيل ان لم تكن عضو وترغب في الانضمام الي اسرة المنتدي
سنتشرف بتسجيلك
شكرا التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 829894
ادارة المنتدي التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 103798
الشرقاوي وافق
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.



 
الرئيسيةأحدث الصورالتسجيلدخول

 

 التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه

اذهب الى الأسفل 
كاتب الموضوعرسالة
Admin
Admin
Admin
Admin


ذكر عدد المساهمات : 34923
نقاط : 160119
السٌّمعَة : 1074
تاريخ التسجيل : 14/05/2009
الموقع : http://www.autoformer.net/

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه Empty
مُساهمةموضوع: التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه   التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه Dc3srhibiyuaw8ppyxj6الجمعة أغسطس 05 2011, 15:25

هذه هى
أحدى الطرق للتحويل من تماثلى الىرقمى, حيث الفكره تعتمد على توليد عداد
يعد من 0000 الى 1111 ثم تحويل هذا العداد الى جهود مختلفه (كما عملنا فى
الرابطه السابقه)
ثم أخذ كل جهد من هذه الجهود ومقارنته بالجهد المراد تحويله(بواسطه المقارن 339 )
فعندما يكون الجهد الخارج من العداد(الموصل بالطرف 6 للمقارن) اعلى من
الجهد المراد تحويله(الموصل بالطرف 7 للمقارن) يتحول خرج المقارن من الواحد
المنطقى الى صفر منطقى ويشعر
البرنامج بهذا التغير فيوقف العد ويخرج العدد الحالى فى العداد داخل صندوق رسائل(MSGBOX)

- وهذا هو البرنامج




plain text



Private Declare Sub out Lib "inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer
Private Sub Command1_Click()
For i = 0 To 15
out &H378, i
a = inp(&H379) And &H8
If a = 0 Then
Exit For
End If
dealy 1
Next i
MsgBox i
End Sub
Sub dealy(i As Long)
j = Timer + i
Do Until j <= Timer
Loop
End Sub

حيث وضعنا تأخير ثانيه واحده بين كل رقم والرقم التالى فى العداد حتى نلاحظ عمل البرنامج
على الثنائيات الضوئيه فى الدائره
-والدائره كالتالى

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 339_2820042145150.737591

مع ملاحظه توصيل الأطراف 10,11,12,13 من منفذ الطابعه بالأرضى مع توصيل أى
طرف من 18 الى 25 للمنفذ بالأرضى. ثم نوصل خرج المقارن(الطرف 1) بالطرف 15
للمنفذ.ثم توصيل QA,QB,QC,QD الى الأطراف 2,3,4,5 فى المنفذ على الترتيب
بعد ذلك نغير الجهد بواسطه المقاومه المتغيره R1 (وهو يمثل الجهد المراد تحويله) ونشغل البرنامج

- البرنامج التالى هو تطوير البرنامج السابق حيث سوف ياخذ عينه من الجهد كل خمسه ثوانى
ويحولها الى ارقام عشريه ثم يضع هذه الأرقام داخل list box لذلك يجب أضافه قائمه بأسم
(list1) بجوار زر الأمر ثم يمكن أجراء أى عمليات على هذه الأرقام المعبره عن الجهود
ولأنهاء البرنامج(أنظر الرابطه السابقه)



expand |

plain text



Private Declare Sub out Lib "inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer
Dim z As Boolean
Private Sub Command1_Click()
Do While z = True
Command1.SetFocus
For i = 0 To 15
out &H378, i
a = inp(&H379) And &H8
If a = 0 Then
Exit For
End If
dealy 1
Next i
List1.AddItem i
DoEvents
dealy 5
Loop
End Sub
Sub dealy(i As Long)
j = Timer + i
Do Until j <= Timer
Loop
End Sub
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
z = False
End Sub
Private Sub Form_Load()
z = True
End Sub

ملاحظه أخيره المقاومات فى الدائره السابقه تعطى اقصى جهد لها 2.5 فولت اى
أقصى جهد للتحويل هو 2.5 فولت . ولرفع هذا الجهد الى 4 فولت يجب استخدام
الدائره 741 التاليه(وتم
شرحها فى الرابطه السابقه)

ثم نوصل خرج 741 (الطرف 6) بالطرف 6 للمقارن 339

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 741%281%29





























































ناقشنا فى أعلى طريقة ادخال البيانات الى الحاسب بصوره تماثليه(جهود)
ونناقش الأن طريقه ادخال البيانات الى الحاسب بصوره رقميه. هناك طرق عديده
لعمل ذلك ومنها الطرق التاليه.

الطريقه الأولى

يوجد فى منفذ الطابعه خمسة اطراف للأدخال يمكن أدخال فى كل طرف bit واحده أى يمكن
أدخال 5 bit فى منفذ الطابعه . سوف نستغل هذا بتوصيل 4 مفاتيح لأربعه اطراف وسوف نسحب كل
طرف بواسطه مقاومه 10 ك الى الجهد الموجب . وعند ضغط اى مفتاح يتم وصل الطرف الى الأرضى
ثم يتم تشغيل البرنامج ( أ ثناء ضغط المفتاح) ليقرأ اى مفتاح تم ضغطه.
اطراف الأدخال port B (379


ويمكن قرأة الأطراف الأربعه لمعرفه أى مفتاح مضغوط حاليا وذلك بأى لغه وسوف نستخدم لغه الأسمبلى
ولغه الفيجوال بيسك.
حيث نضغط المفتاح أثناء تشغيل البرنامج

الدائره فى الملف in_bit

أولآ برنامج الأسمبلى





plain text



الكود:
.model  small
.stack  64h
.code
  main    proc
      mov  dx,379h
      in    al,dx
   
      mov  dx,378h
      out  dx,al

      mov  ah,4ch
      int  21h

main    endp
  end

عند عدم ضغط اى مفتاح يخرج من منفذ الطابعه ( port a(378
الرقم الثنائى 01111111
وعند ضغط مفتاح 1 يخرج 01110111
ومفتاح 2 يخرج 01101111
و3 يخرج 01011111
و4 يخرج 00111111

ثانيا برنامج فيجوال بيسك






plain text



Private Declare Sub out Lib "inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer
Private Sub Command1_Click()
a = inp(&H379)
Print a
End Sub

عند عدم ضغط أى مفتاح يطبع على الفورم الرقم العشرى 127
وضغط مفتاح 1 يطبع 119
و2 يطبع 111
و3 يطبع 95
و4 يطبع 63

الملف المرفق

ملف مرفق(ملفات)





  • التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه Zip
    in_digital.zip (75.11كيلو )


    عدد مرات التحميل : 1188

  • التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه Zip
    in_digital.zip (75.11كيلو )


    عدد مرات التحميل : 854




الطريقه الثانيه

ادخال بايت -- حيث عند نا خمسه bit فقط كأدخال لذلك سوف نسخدم اربعه منها ونستخدم دائره
خارجيه مع طرف من ميناء الخرج © ورقمه 37A للتحكم فى هذه الدائره . بحيث ندخل البايت
على مرتين كل مره ندخل 4 bit .
وسوف نستخدم برنامج فيجوال بيسك لقرأه البايت بالكامل .حيث الدخل من الدائره سيكون بالسداسى
عشر والقرأه من البيسك بالعشرى
الدائره تتكون من الحاجز 74244 والعاكس 7404 وهى فى الملف in_byte





plain text



Private Declare Sub out Lib "Inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "Inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer

Private Sub Command1_Click()
out &H37A, 1
isn = inp(&H379) And 240
isn = isn / 16
out &H37A, 0
msn = inp(&H379) And 240
no = msn + isn
Print no

End Sub

الطريقه الثالثه
----------------
هى عباره عن مصفوفه مفاتيح2*2 . ويمكن بتعديل بسيط فى البرنامج مع زياده عدد
المفاتيح جعلها 5*5 بأعتبار ان اقصىعدد للمداخل هو خمسه مداخل فى منفذ الطابعه.
حيث x1,x2 هى الصفوف وتوصل الى اطراف الدخل فى المنفذ 15 ,13 in3,in4 فى portB -379
على الترتيب و y1,y2 هى العمدان وتوصل الى المخارج فى المنفذ 2,3 d0,d1 portA--378
نلاحظ بدل من استخدام جهد موجب خارجى لسحب المقاومات الى+5 فولت نستخدم طرف 6
d4 فى portA -- 378 فى منفذ الطابعه ويجب اخراج واحد عليه بأستمرار
أثناء الأختبار وذلك بدل من استخدام مصدر قدره خارجى وبذلك توصل كل
المقاومات الى طرف 6
الدائره بسيطه جدا فى ملف in_matrix

حيث برنامجنا اساسا بلغه الأسمبلى ولصعوبه طباعه النتائج بلغه الأسمبلى على الشاشه عملنا البرنامج
بالأسمبلى وأخراج النتائج بلغه دلفى لسهوله كتابه كود الأسمبلى داخل لغه دلفى وصعوبه ذلك فى الفيجوال
بيسك

كود الأسمبلى بسيط وهو عباره عن مسح للعمدان بجعل كل العمدان واحايد وعمود واحد فقط عليه صفر
منطقى وذلك بواسطه الأخراج من portA - 378 حيث يصبح عمود y1 عليه صفر فى البدايه
ثم قرأه الصفوف منportB-379 x1,x2 أذا ظهر الصفر فى القرأه فمعنى ذلك أن هناك مفتاح مضغوط
فى العمود الأول فيضع قيمه الصف التى تعبر عن x1,x2 فى السجل cl وقيمه العمود التى تعبر عن
y1,y2 فى السجل bl ويخرج من البرنامج
واذا لم يكن هناك مفتاح مضغوط يعمل ازاحه للصفر (اى للعمود التالى) ليفحص عمود جديد
ثم يعمل مقارنه اذا كان الرقم الجديد للعمود هو أخر عمود . يبدأ المسح من أول عمود من جديد
واذا لم يكن كذلك يفحصه بواسطه قرأه x1,x2 وهكذا حتى أخر عمود ثم يبدأمن جديد حتى نضغط مفتاح
ليخزن رقم الصف والعمود له ويخرج من البرنامج

حيث نضع زرين button1,button2 ومحررين edit1,edit2 على فورم الدلفى ونكتب الكود



expand |

plain text



var

r1,r2:real;
Form1: TForm1;


implementation

{$R *.dfm}

procedure ali();
var
x,y:byte;

begin
asm
@loop1:
mov bl,$0fe
@loop2:
mov dx,$378
mov al,bl
out dx,al

mov dx,$379
in al,dx
mov cl,al
and al,$18
cmp al,$18
jne @loop3

mov al,bl
not al
rcl al,1
not al
mov bl,al
cmp al,11111011b
jne @loop2
jmp @loop1

@loop3:

mov x,cl
mov y,bl
end;
r1:=x;
r2:=y;
end;





procedure TForm1.Button1Click(Sender: TObject);

begin
ali();

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.text:=floattostr(r1);
edit2.text:=floattostr(r2);
end;

end.

نشغل البرنامج ثم نضغط زر 1 button1 فى الفورم ثم نضغط مفتاح وليكن s1 ثم نضغط زر 2
button2 فى الفورم فيطبع فى المحرر الآول edit1 رقم الصف 119 والثانى رقم العمود 254
ثم نضغط زر 1 من جديد ثم s2 ليطبع 111و254 و s3 يطبع 119و253 و s4 يطبع111
و253


دائره أدخال in_bit

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 22_09_05_10_59_13_1127455153in_bit

دائره ادخال بايت in_byte

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 22_09_05_11_26_55_1127456815in_byte

دائره أدخال مصفوفه in_matrix

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 22_09_05_11_22_23_1127456543in_matrix
الطريقه الرابعه
-------------------
هى طريقه المقاطعه. حيث فكره المقاطعه هى ان البرنامج يستطلع (polling) خط معين بأستمرار وعندما
تأتى عليه أشاره معينه(يتحول الخط من منخفض الى عالى او العكس مثلا) يذهب
لينفذ أمر معين (كود معين) ثم يلغى الأشاره على هذا الخط ليتمكن الجهاز
الخارجى من عمل مقاطعه مره ثانيه.

سوف نستخدم فى هذه الدائره قلاب من نوع (D)
D flip flop --7474 --ودائره نفى( و) NAND 7400


التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 29_09_05_10_01_28_1128056488interrupt

حيث نستخدم مفاتيح موصله الى مانع ارتداد (debounce) عباره عن أحادى
الأستقرار (monstable) --(555) -- ثم نستغل دائره 7400 فى نفى خرج
مانع ألأ رتداد وجعله نبضه سالبه بدل من نبضه موجبه ثم نستخدم هذه النبضه
فى قدح القلاب 7474 كا دخل له على الطرف preset(s)
حيث CK,D غير مستخدمه فى القلاب أى نستخدمه هنا كا R-S FLIP FLOP

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 29_09_05_10_02_15_1128056535debounce


سوف نستخدم دائرتان 555 ونوصل كل دائره بمفتاح خاص بها
حيث عند ضغط احد المفاتيح يصبح (Q) للقلاب عالى و (Q\) منخفض طرف 5و6
ويعطى اشاره عاليه على خط ال interrupt موصل للأطراف (Q\) دليل على
ان احد المفاتيح قد ضغط وذلك ينبه البرنامج ان احد المفاتيح ضغط ويتعرف
البرامج على هذه الأشاره ويذهب ليعمل مسح للمفاتيح(عن طريق مداخل المنفذ
الموصله الى الأطراف (Q) ) ثم ينفذ الكود الخاص بهذا المفتاح وبعد
ذلك يعطى أشاره منخفضه على خط CLR الموصل الى الأطراف 1و13 (حيث هى
عاليه فى الحاله العاديه) ليتم تنظيف المخارج (Q,Q\) ليتم بذلك أرجاع خط
المقاطعه منخفض أستعدادا لمقاطعه جديده

حيث ننفى خرج NAND الخاصه بخط المقاطعه لانها موصله بطرف in7 (طرف 11) فى المنفذ وهو
منفى داخل الحاسب حيث نريده فعال عالى لنستخدمه فى البرنامج

يجب توصيل جميع المداخل غير المستخدمه فى المنفذ الى الأرضى وهى هنا المداخل in5,in6




expand |

plain text



Private Declare Sub out Lib "Inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "Inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer
Dim z As Boolean
Private Sub Command1_Click()
Do Until z = False
dealy 1
a = inp(&H379)
If (a And &H80) = &H80 Then

If (a And &H88) = &H88 Then
Print "mohamed"
End If
If (a And &H90) = &H90 Then
Print "ibrahim"
End If

out &H37A, 1
out &H37A, 0
End If
DoEvents
Loop
End Sub
Sub dealy(i As Long)
j = Timer + i
Do Until j <= Timer
Loop
End Sub
Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
z = False
End Sub

Private Sub Form_Load()
z = True
End Sub


نشغل برنامج الفيجوال بيسك السابق ثم نضغط زر command1 ثم نضغط على المفتاح الأول
(debounce1) فيطبع كلمه mohamed على الفورم ثم نضغط المفتاح الثلنى (debounce2)
فيطبع كلمه (ibrahim) ونلاحظ وجود تأخير بسيط بين الضغط والطباعه بسبب أمر(dealy) فى الكود



الطريقه الخامسه
--أستخدام الأشعه تحت الحمراء---
الفكره هى توليد أربعه ترددات بواسطه أربعه مفاتيح موصله الى عديم
الأستقرار( 555 ) ثم نرسل هذه الترددات بواسطه ثنائى ضوئى تحت أحمر
ويستقبله ترانزستور ضوئى ثم بواسطه احادى الأستقرار
(74123) نحول كل تردد الى جهد ثم بواسطه ثنائى زينر والمقارن (339) نقارن كل جهد وجهود ثابته
فينتج تسلسل معين من الواحايد والأصفار على مخارج الدائره ( 339) ثم نحول هذا التسلسل بواسطه
دائره استبعاد(أو) --(7486) exclusive--or-- ألى كود ثنائى يقدح
مدخل واحد فقط من مداخل منفذ الطابعه لكل تردد مرسل--- PORT B ---379---

---ثم اخيرا بواسطه برنامج فيجوال بيسك نفحص المداخل ثم ينفذ الكود الخاص بكل مفتاح مضغوط

جربت الدائره وكانت المسافه بين المرسل والمستقبل حوالى 20سم
ولزياده المسافه نستخدم عدسه بالأضافه الى عمل تعديل بموجه حامله
للترددات------

--دائره--555--
وهى تعمل كا مولد ترددات غير مستقر
عند ضغط المفتاح الأول يظهر التردد 1.5 ك هرتز على رجل 3
والثانى 2.5 ك والثالث 4 ك والرابع 6 ك

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_49_43_1132894183555
--دائره--7406--
يغذى خرج ال 555 دائره الحاجز 7406--BUFFER-- لزياده قيمه التيار للترددات وتغذيه
الثنائيات الضوئيه IR LED
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_52_17_113289433774_5


--- دانره ---741---
يستقبل الترانزستور الضوئى ترددات الأشعه تحت الحمراء ثم تكبر بواسطه 741 ثم تغذى مدخل 74123
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_55_13_1132894513741



--دائره---74123 --
يستخدم أحادى الأستقرار كا محول من تردد الى جهد
حيث يحول التردد الأول الى 0.5 فولت والثانى الى 0.8 والثالث الى 1 فولت والرابع الى 2 فولت
ويتم تغذيه هذه الجهود ا لى دائره المقارن 339

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_56_36_1132894596741_3

--دائره --339 ---
يتم بواسطه ثنائى الزينر والمقاومات فى مدخل 339 أنتاج جهود ثابته ليتم المقارنه بها مع الجهد
الواصل الى مدخل المقارن 339 لنحصل فى مخرج المقارن على هذا التسلسل
الجهد الأول يخرج الرقم الثنائى 0001 والثانى 0011 والثالث 0111 والرابع 1111

نلاحظ أنه يمكن تغير المقاومات فى مدخل 555 وأيضا المقاومات فى مدخل 339
بشكل مناسب حتى تتم المقارنه بشكل صحيح و نحصل على هذا التسلسل

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_57_45_1132894665339

---دائره --7486 --
اخيرا نستخدم دائره 7486 لتحويل التسلسل السابق الى الكود الثنائى
0001 و 0010 و 0100 و 1000

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 24_11_05_08_58_46_11328947267486

---ثم نوصل مخارج 7486 -- 11 و 8 و6 و3 بأطراف منفذ الطابعه 10و12و13و15
مع توصيل أرضى المنفذ بأرضى الدائره-- الدوائر فى الملفwireless
نشغل البرنامج والدائره---عند ضغط المفتاح الأول يطبع على الفورم كلمه mohamed والثانى
ahamed واثالث ali والرابع يشغل برنامج الحاسبه



expand |

plain text



Private Declare Sub out Lib "inpout32.dll" Alias "Out32" (ByVal portaddress As Integer, ByVal value As Integer)
Private Declare Function inp Lib "inpout32.dll" Alias "Inp32" (ByVal portaddress As Integer) As Integer
Dim z As Boolean
Private Sub Command1_Click()
Do Until z = False
dealy 1
ali
DoEvents
Loop
End Sub
Sub dealy(i As Long)
j = Timer + 1
Do Until j <= Timer
Loop
End Sub

Private Sub Command1_KeyDown(KeyCode As Integer, Shift As Integer)
z = False
End Sub

Private Sub Form_Load()
z = True
End Sub
Sub ali()
a = inp(&H379) And &H8
If a = &H8 Then
Print "mohamed"
End If
b = inp(&H379) And &H10
If b = &H10 Then
Print "ahamed"
End If
c = inp(&H379) And &H20
If c = &H20 Then
Print "ali"
End If
d = inp(&H379) And &H40
If d = &H40 Then
x = Shell("c:\windows\calc.exe", 1)
End If

End Sub


----الطريقه السادسه---
أستخدام المتحكم microcontroller 16F84

قبل أن نربط الحاسب بالمتحكم توازيا---- نبدأ بمقدمه صغيره عن المتحكم -----

حيث هذا برنامج بسيط يخرج العدد 77 الى منفذ B فى المتحكم






plain text



processor 16f84
include
__config _RC_OSC & _WDT_OFF & _PWRTE_ON


org 0
movlw H'00'
tris PORTB
loop:
movlw H'77'
movwf PORTB
goto loop
end

ولأختبار البرنامج نستخدم برنامج MBLAB كالأتى
نعمل الأعدادات التاليه فى برنامج ال mblab
debugger=>select tool=>mblab sim
configure=>select device=>pic16f84
debugger=>settings=>4Mhz
project=>new
ونكتب أسم للمشروع ونختار مسار التخزين
file=>new
نكتب الكود السابق ثم
file=>save
نكتب أسم للملف
project=> add file to project
نضيف الملف السابق الى المشروع
project=>build all
بعد بناء الملف بنجاح سوف يتم عمل نسخه سداسيه عشر تلقائيا--ويمكن بذلك تحميلها--حرقها--داخل
المتحكم بواسطه أى مبرمجه

ولعمل محاكاه للبرنامج بواسطه mblab نعمل الأتى
view=>special function registers
windows=>tile horizontally
لتصبح شاشه ال mblab كالأتى

التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 01_12_05_10_15_42_1133504142Mplab1
ثم
debugger=>run
debugger=>halt
or
debugger=>step into


---بعد تحميل البرنامج داخل المتحكم يمكن اختباره بواسطه الدائره التاليه
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه 01_12_05_10_17_17_113350423716f84%28_%29



وهذا برنامج اخر يعمل على الدائره السابقه وهو لعداد ازاحه



expand |

plain text



; File DEMOF84.ASM
; Assembly code for PIC16F84 microcontroller

; Blinks LEDs on outputs in a rotating pattern.
; With 75-kHz osc, each LED stays on 1/2 second.

; CPU configuration
; (It's a 16F84, RC oscillator,
; watchdog timer off, power-up timer on)

processor 16f84
include
__config _RC_OSC & _WDT_OFF & _PWRTE_ON

; Declare variables at 2 memory locations

J equ H'1F' ; J = address hex 1F
K equ H'1E' ; K = address hex 1E

; Program

org 0 ; start at address 0

; Set port B as output and initialize it

movlw B'00000000'; w := 00000000 binary
tris PORTB ; port B ctrl register := w
movlw B'00000001'; w := 00000001 binary
movwf PORTB ; port B itself := w

; Clear the carry bit

bcf STATUS,C

; Rotate the bits of port B leftward through the carry bit

mloop: rlf PORTB,f

; Waste some time by executing nested loops

movlw D'50'; w := 50 decimal
movwf J; J := w
jloop: movwf K; K := w
kloop: decfsz K,f; K = K-1, skip next if zero
goto kloop
decfsz J,f; J = J-1, skip next if zero
goto jloop

; Do it all again

goto mloop

end

منقـــــــــــــــــــــــــــــــــول
الرجوع الى أعلى الصفحة اذهب الى الأسفل
https://mathematiquecher.forumactif.com
 
التحويل من تماثلى الى رقمىبواسطه منفذ الطابعه
الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1
 مواضيع مماثلة
-
» كيف تختار الطابعه التي تريد أن نشتريها
» كتاب :الطابعه الكمبيوتريه:الاصلاح و الصيانه
» هل تريد منفذ شات لموقعك او منتداك ؟
» دارة تحكم بثمانية أجهزة عبر منفذ LPT
» التحويل

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
الشرقاوي وافق :: منتدى الرجل :: تعلم الاليكترونيك و الكهرباء-
انتقل الى: