قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

   

الصورة الرمزية محمد50
محمد50
:: عضو فضي ::
تاريخ التسجيل: Mar 2006
المشاركات: 441
نشاط [ محمد50 ]
قوة السمعة:
قديم 30-09-2008, 06:17 PM المشاركة 9   
x9 برنامج بسيط للتحكم 8ليد



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


التعديل الأخير تم بواسطة : محمد50 بتاريخ 30-09-2008 الساعة 06:33 PM
اعلانات

الصورة الرمزية محمد50
محمد50
:: عضو فضي ::
تاريخ التسجيل: Mar 2006
المشاركات: 441
نشاط [ محمد50 ]
قوة السمعة:
قديم 30-09-2008, 06:28 PM المشاركة 10   
افتراضي


LIST p=16f84a ; Définition de processeur
#include <P16f84a.inc> ; Définitions des constantes

__CONFIG _CP_OFF & _PWRTE_OFF & _WDT_OFF & _HS_OSC

ORG 0000h

GOTO Début
Début BSF STATUS , RP0
MOVLW B'00000000'
MOVWF TRISB

ORG 0008h
BCF STATUS , RP0
MOVLW D'255'
MOVWF PORTB
Etiquette_1 MOVLW B'11111110'
MOVWF PORTB
MOVLW B'11111101'
MOVWF PORTB
MOVLW B'11111011'
MOVWF PORTB
MOVLW B'11110111'
MOVWF PORTB
MOVLW B'11101111'
MOVWF PORTB
MOVLW B'11011111'
MOVWF PORTB
MOVLW B'10111111'
MOVWF PORTB
MOVLW B'01111111'
MOVWF PORTB
GOTO Etiquette_1
END
هذاكود بسيط لبرنامج يتحكم فى 8ليد

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,583
نشاط [ 5282 ]
قوة السمعة:
قديم 30-09-2008, 10:01 PM المشاركة 11   
افتراضي


ابعت ملف الهيكس و ملف البروتوس لأنى لا اتعامل بالاسمبلى مع هذا الميكرو


الصورة الرمزية محمد50
محمد50
:: عضو فضي ::
تاريخ التسجيل: Mar 2006
المشاركات: 441
نشاط [ محمد50 ]
قوة السمعة:
قديم 01-10-2008, 02:09 AM المشاركة 12   
افتراضي


ابعت ملف الهيكس و ملف البروتوس لأنى لا اتعامل بالاسمبلى مع هذا الميكرو
بارك الله فيك اخى وكل عام وانت بخير
قل لى كيف كيف ارفع ملف بالقرية او مركز تحميل


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 01-10-2008, 04:26 AM المشاركة 13   
افتراضي


السلام عليكم وعيد سعيد للجميع:
من جهتي هيأت برنامجا صغيرا بالاسمبلي يجعل البيك 16F628A يكتب الرقم
5282 بهذه الدارة البسيطة حيث يتضح ان الغرض هو استخدام تقنية multiplexing للعارضات السباعية مما يجعلنا نقتصد في عدد بينات البيك:


تمت العملية بنجاح على مبلاب 8.10 ..
طلبت ببراءة من بروتوس 7.1 ان يحاكي عمل الدارة ..المفروض وكما شرح اخي محمد ان تظهر الارقام دفعة واحدة، نتيجة سرعة المسح (10ميللي ثانية تقريبا) رغم ان البيك يظهرها في الواقع، متتابعة من اليسار الى اليمين.
لكن بروتوس بدا مشاكسا وبدأ يظهر الارقام بشكل غير مفهوم :
وهاهو البرنامج :
كود:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; PIC16F628A : 5282 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LIST p=16f628a; Définition de processeur
#include <p16f628a.inc>; Définitions de constantes
__CONFIG 0x3F32
BANK0 macro
bcf STATUS,RP1
bcf STATUS,RP0 
endm
BANK1 macro
bcf STATUS,RP1
bsf STATUS,RP0 
endm
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;VARIABLES
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CBLOCK 0x20
cmpt1 : 1
cmpt2 : 1
cmpt3 : 1
ENDC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; RESET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0x000 ; Adresse de départ après reset
goto init ; Adresse 0: initialiser
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Initialisation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
init
BANK0 
MOVLW b'00000000'
MOVWF PORTA
MOVLW b'00000000'
MOVWF PORTB
MOVLW b'00000111'
MOVWF CMCON
movlw b'0'
BANK1 
movwf TRISB
movlw B'0'
movwf TRISA 
MOVLW b'00000000'
MOVWF VRCON
BANK0 
goto start 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Temporisation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
tempo
movlw .5
movwf cmpt3
b3
movlw .15
movwf cmpt2
b2
movlw .3
movwf cmpt1
b1
decfsz cmpt1,f
goto b1
decfsz cmpt2,f
goto b2
decfsz cmpt3,f
goto b3
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Programme principal
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
start 
movlw b'00001'
movwf PORTA
movlw .5
movwf PORTB
call tempo
movlw b'00010'
movwf PORTA
movlw .2
movwf PORTB
call tempo
movlw b'00100'
movwf PORTA
movlw .8
movwf PORTB
call tempo
movlw b'01000'
movwf PORTA
movlw .2
movwf PORTB
call tempo
goto start
END
والهيكس ايضا:
كود:
:020000040000FA
:10000000012803138312003085000030860007307A
:100010009F000030031383168600003085000030F7
:100020009F000313831221280530A2000F30A10086
:100030000330A000A00B1A28A10B1828A20B162829
:10004000080001308500053086001420023085004C
:100050000230860014200430850008308600142009
:0C006000083085000230860014202128A2
:02400E00323F3F
:00000001FF
وحتى أتأكد من ان البرنامج سليم ، عمدت الى تغيير توقيت المسح tempo فجعلته 500ms بدل 10ms.
وهكذا اصبحت الارقام تظهربشكل جيد لكن واحدة تلو الاخرى من اليسار الى اليمين (اي من 5 الى 2) نتيجة فارق نصف ثانية تقريبا :
الجزء tempo الذي تم تغييره في البرنامج الاول (السريع):
كود:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Temporisation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
tempo
movlw .123
movwf cmpt3
b3
movlw .131
movwf cmpt2
b2
movlw .9
movwf cmpt1
b1
decfsz cmpt1,f
goto b1
decfsz cmpt2,f
goto b2
decfsz cmpt3,f
goto b3
return
فأصبح الهيكس كالتالي:
كود:
:020000040000FA
:10000000012803138312003085000030860007307A
:100010009F000030031383168600003085000030F7
:100020009F000313831221287B30A2008330A1009C
:100030000930A000A00B1A28A10B1828A20B162823
:10004000080001308500053086001420023085004C
:100050000230860014200430850008308600142009
:0C006000083085000230860014202128A2
:02400E00323F3F
:00000001FF
وكل عام وانتم بخير


زكي شاكر
:: عضو ماسي ::
تاريخ التسجيل: May 2006
الدولة: المغرب
المشاركات: 2,945
نشاط [ زكي شاكر ]
قوة السمعة:
قديم 01-10-2008, 11:23 AM المشاركة 14   
افتراضي


ملفات التجارب بروتوس + asm + Hex :


انا انفذ الدوائر وتعمل مية مية علما بأنى استخدم لغة البيك بيسك وانفذ جميع الدوائر والعرض بيكون تمام
أخي الكريم ما يعنيني من الموضوع ليس تنفيذ الدائرة فعليا .. بل محاكاتها على برنامج افتراضي مثل بروتوس او غيره .. وذلك حتى اتمكن من تقديمها ضمن مادة تعليمية في المنتدى..وهي نفس الرغبة التي سيق ان عبر عنها أخي محمد ..
اعتقد انة فى الغالب عيب البطء كتابة كود صحيح نظريا لا يعمل صحيح عمليا لأن البطء المفروض يكون عندما تكون الدائرة شديدة التعقيدة وتحتاج لعمليات حسابية خارقة
اخي الكريم يمكنك الاطلاع على الدائرة (هنا) وملفات التجربة (هنا).. وستلاحظ ان الدائرة لا هي شديدة التعقيد، و لا هي تحتاج لعمليات حسابية خارقة..
البرنامج بسيط فهو عبارة عن اعطاء قيم متتالية للبورت B متزامنة مع قيم معينة للبورت A لاختيار الديجيت المناسب في اللحظة المناسبة..ويتخلل ذلك زمن tempo دوار يضمن السرعة الضرورية لخداع البصر..
شكرا على المتابعة وكل عام وانتم بخير


التعديل الأخير تم بواسطة : زكي شاكر بتاريخ 01-10-2008 الساعة 05:08 PM السبب: تصحيح رابط التحميل + توضيحات

الصورة الرمزية محمد50
محمد50
:: عضو فضي ::
تاريخ التسجيل: Mar 2006
المشاركات: 441
نشاط [ محمد50 ]
قوة السمعة:
قديم 01-10-2008, 08:33 PM المشاركة 15   
Thumbs up


الله يفتح عليك اخى وحبيب قلبى زكى شاكر هو ده الكلام
نعم اخى نحتاج لمحاكاه فعلية ببرتوس والله المستعان
بارك الله فيك لما قدمته لنا


التعديل الأخير تم بواسطة : محمد50 بتاريخ 01-10-2008 الساعة 08:39 PM

الصورة الرمزية 5282
5282
:: عضو ذهبي ::
تاريخ التسجيل: Jun 2008
الدولة: مصر- الاسكندرية
المشاركات: 1,583
نشاط [ 5282 ]
قوة السمعة:
قديم 01-10-2008, 08:56 PM المشاركة 16   
افتراضي


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



وأليك بعد ما حدث بعد المحاكاة استغلال كامل لموارد الحاسب والبروسيسور


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


التعديل الأخير تم بواسطة : 5282 بتاريخ 01-10-2008 الساعة 09:05 PM


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 01:44 AM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)