مساعدة مطلوبة في AT89C4051

V

vinash

Guest
مرحبا ،
أنا قادم جديد الى ميدان ميكروكنترولر والقيام ببعض المشاريع البسيطة للحصول على دراية ميكروكنترولر.وأنا حاليا الشروع في استخدام AT89C4051 باعتبارها شركة تطوير العقبة.أنا في الواقع محاولة لاستخدام التطبيق المذكرات المقدمة من الموقع التالي :
** ح ع : / / www.atmel.com/dyn/resources/prod_documents/DOC0524.PDF
فإنه سيكون من المفيد جدا إذا ما كان هناك شخص لمساعدتي مع الترميز (جيم البرنامج) للتطبيق.لقد حاولت عدة مرات ولكنها فشلت.مساعدتكم greaatly سيكون موضع تقدير.
لقد فعلت conections لتحويل شركة تطوير العقبة وكان متصلا الجهد الإيجابي للإشارة إلى 1.1 الدبوس.وكتبت برنامج بسيط جدا ، التي من شأنها أن تكون قادرة على انتاج التيار الكهربائي القراءة على المصابيح ،.
من هذا البرنامج هو على النحو التالي :

# تشمل <AT89x051.h>

أ شار [10] = (0x03 ، 0x13 ، 0x23 ، 0x33 ، 0x43 ، 0x53 ، 0x63 ، 0x73 ، 0x83 ، 0x93) ؛ / * والترقيم من 0-9 * /باطلة الرئيسي (الفراغ)

(ي كثافة العمليات ، adc_data ؛
في حين (1) (

P1_1 = adc_data ؛
P1 = أ [٪ adc_data 10] ؛
ل(ي = 0 ؛ ي <30000 ؛ ي ) ؛

)
)أنا دائما الحصول على صفر على بلدي عرض الصمام ، مهما غيرت مساهمة الجهد ، يمكن للشخص يرجى help.I صباحا يكافح مع هذا لبضعة أيام.شكرا لك

 
وأتساءل ما كنت البيانات المخزنة في adc_data وأيضا التخطيطي الذي تستخدمه.
إذا كنت تستخدم P1 كامل (8 دبابيس) للسيطرة على الصمام ، حيث تحصل على adc_data؟
أيضا ، ما هو معنى P1_1 = adc_data؟

 
ولقد ربطت 8.2K المقاوم على الأرض مباشرة
، بدلا من ربطها مكثف 30Pf كما هو مبين في الرسم البياني schmetic (في موقع معين).لقد فعلت هذا حتى انه كلما كان هو على السلطة ، فإنه على ضوء المصابيح على التوالي بدلا من ذلك تحتاج الى تبديل اذا كان متصلا الأول وفقا للschmetic معين.

P1_1 = adc_data ،
ما أحاول القيام به هو تعيين 8 بت البيانات الواردة من امدادات التيار الكهربائي (دبوس من 1.1) إلى adc_data معالجة.

P1 = [٪ adc_data 10] ؛
واني اسعى لإخراج البيانات التي يتم تخزينها في معالجة adc_data للاتصالات الصمام.

هذا هو كل شيء واني اسعى الى do.I نأمل أنك سوف تكون قادرة على حل مشكلتي.شكرا لك.

 
vinash كتب :

...

P1_1 = adc_data ،

ما أحاول القيام به هو تعيين 8 بت البيانات الواردة من امدادات التيار الكهربائي (دبوس من 1.1) إلى adc_data معالجة.P1 = [٪ adc_data 10] ؛

واني اسعى لإخراج البيانات التي يتم تخزينها في معالجة adc_data للاتصالات الصمام.

...
 
مرحبا ،
شكرا للمساعدة ، في الواقع انا مرتبكة جدا عن كيفية قراءة مدخلا (على سبيل المثال كيفية قراءة مساهمة الجهد من P1.1) لقد قرأت في ورقة البيانات وكانوا قد ذكر أنه من أجل استخدام منفذ كمدخل ، مجرد كتابة 1s لهم.سيكون أمرا رائعا لو كنت قادرا على مساعدتي في this.I أنا أيضا لم تكن متأكدا من كيفية التقاط البيانات التي يتم الحصول عليها من P1.1.

 
لجعل الميناء ليكون الميناء المدخلات ، والكتابة 1s إلى الميناء.يمكنك أيضا تعيين طرف واحد لتكون عالية لجعل دبوس دبوس أن يكون الإدخال.لقد فعلت ذلك أيضا في AT89C51.

على أية حال ، لدي سؤال ، إذا كان ميناء 1 يستخدم كميناء الإخراج ، وأنا أريد أن ترسل جميع المصابيح 1s إلى 8 باستخدام ميناء 1 ، يمكن للتحكم أن تفعل ذلك؟أو أنها سوف تجعل ميناء 1 كمدخل الميناء؟أنا باستخدام AT89C51.

 
مرحبا Lekka ،
إذا الذي يكون الحالة ، لذلك أقول ، وأنا على إعطاء الأوامر مثل
P1 = 0x03 ، هل هذا يعني أنني تلقائيا باستخدام P1.0 وP1.1 كمدخلات وبقية الدبابيس والانتاج؟

 
لست متأكدا من كيفية البرنامج أنه في C. أنا باستخدام لغة التجميع وAsem51 المجمع.

لجعل ميناء (1)
، منفذ الإدخال ، رمز
وسائل التحقق P1 ، # FFH

لجعل دبوس واحد (مثل رقم التعريف الشخصي 1.1)
، وإدخال دبوس ، رمز
SETB P1.1

الفكرة هي ، قمت بتعيين منفذ معين واحد أو دبوس العالية ، الميناء أو دبوس سيتم إدخال منفذ الإدخال أو دبوس.دون أن تفعل هذا ، لا يمكنك الحصول على البيانات باستخدام لهم.

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

 
مرحبا Tofinkh ،
البرنامج الذي كنت قد كتبت في أدناه :

كما أنني قد تم الرفع الملف ، من فضلك لا ننظر لها ورجاء اسمحوا لي أن أعرف إذا كنت تجد أي خطأ ، وذلك بفضل الكثير ، وأنا لا نقدر على مساعدتكم

# تشمل <AT89x051.h>

أ شار [10] = (0x07 ، 0x17 ، 0x27 ، 0x37 ، 0x47 ، 0x57 ، 0x67 ، 0x77 ، 0x87 ، 0x97) ؛
شار ب [10] = (0x0F ، 0x1F ، 0x2F ، 0x3F ، 0x4F ، 0x5F ، 0x6F ، 0x7F ، 0x8F ، 0x9F) ؛
تأخير باطلة (كثافة العمليات العد) ؛
باطلة الرئيسي (الفراغ)

(
غير الموقعة adc_data شار ؛

P1 = 0x03 ؛ / / الإعداد P1.0 وP1.1 كمدخلات وبقية P1 كإخراج
في حين (1) (
P1_1 = adc_data ؛ / / قراءة البيانات (من مساهمة الجهد) من P1.1 وتخزينها في adc_data
التأخير (5) ؛
P1 = P1 &0x03؛ / / P1 مجموعة أخرى من هذا القبيل أن P1.0 وP1.1 هي المدخلات والمخرجات موانئ أخرى P1 زارة العلاقات الخارجية
P1 = أ [٪ adc_data 10] ؛ / / العثور على ما تبقى من البيانات التي تم الحصول عليها على سبيل المثال إذا كان 0x15 ، والباقي هو 1 بالتالي P1 & 0x03 = 1
/ / و[1] = 1
، وبالتالي سوف يتم عرضها 1
التأخير (5) ؛
)
)تأخير باطلة (كثافة العمليات العد)
(
ي كثافة العمليات ؛
ل(ي = 0 ؛ ي <العد ؛ ي ) (
تواصل ؛
)
)

 
مرحبا ،

كنت أفضل أن التحقق من كيفية وتعمل شركة تطوير العقبة الأولى في المستند.إذا كنت ترغب في طرح قيمة من P1.1 وتخزينها في adc_data ، ينبغي أن يكون
adc_data = P1_1 ؛

لدفع شريحة 7 الصمام ، لديك لتمكين الصمام قبل إرسالها إلى القيمة ، وP1.2 وP1.3 في التخطيطي ، وتمكين الصمام واحد في وقت واحد.يرجى إلقاء نظرة على ورقة البيانات أيضا.

 
مرحبا ، أنا كان تعديل قانون ، والقانون الجديد للالنحو التالي : وكما كنت قد ذكرت من P1.2 وP1.3 بعد أن تم تبديل منخفضة كلما أدى الاهتمام يستخدم.كنت قد فعلت ذلك
، وأيضا في الوقت الحاضر أنا فقط باستخدام واحدة أدت إلى اختبار لوكنت قد احتفظت دائما P1.3 منخفضة وP1.2 دائما عالية حتى أن واحدا فقط بقيادة يستخدم.ولكن ما زلت لا يحصل أي أرقام عن الصمام.آمل أن تكونوا قد تكون قادرة على مساعدة.شكرا لك.

# تشمل <AT89x051.h>

أ شار [10] = (0x07 ، 0x17 ، 0x27 ، 0x37 ، 0x47 ، 0x57 ، 0x67 ، 0x77 ، 0x87 ، 0x97) ؛
شار ب [10] = (0x0F ، 0x1F ، 0x2F ، 0x3F ، 0x4F ، 0x5F ، 0x6F ، 0x7F ، 0x8F ، 0x9F) ؛
تأخير باطلة (كثافة العمليات العد) ؛
باطلة الرئيسي (الفراغ)

(
غير الموقعة adc_data شار ، ض ؛

P1 = 0x03 ؛ / / الإعداد P1.0 وP1.1 كمدخلات وبقية P1 كإخراج
في حين (1) (
P3_7 = 0 ؛
P1 = P1 &0x03؛ / / P1 مجموعة أخرى من هذا القبيل أن P1.0 وP1.1 هي المدخلات والمخرجات موانئ أخرى P1 زارة العلاقات الخارجية
adc_data = P1_1 ؛ / / قراءة البيانات (من مساهمة الجهد) من P1.1 وتخزينها في adc_data
ض = P1 &0x03؛
ض أ = ٪ [adc_data 10] ؛
التأخير (5) ؛
P1 = P1 &0x03؛
P1 = أ [adc_data] ؛ / / العثور على ما تبقى من البيانات التي تم الحصول عليها على سبيل المثال إذا كان 0x15 ، والباقي هو 1 بالتالي P1 & 0x03 = 1
/ / و[1] = 1
، وبالتالي سوف يتم عرضها 1
التأخير (5) ؛

)
)تأخير باطلة (كثافة العمليات العد)
(
ي كثافة العمليات ؛
ل(ي = 0 ؛ ي <العد ؛ ي ) (
تواصل ؛
)
)

 
vinash ، كما AT89C4051 ليس لديها "الحقيقي" شركة تطوير العقبة وشركة تطوير العقبة في مذكرتكم التطبيق هو الذي أدلى به للمقارنة بسيطة الصليب الأحمر وبعض الدوائر.عليك أن تقرأ هذه الوثيقة قبل كنت ترغب في الحصول على قيمة تمثيلية.وينبغي ألا يتم ذلك عن طريق مجرد كتابة adc_data = P1_1.
يرجى التحقق بعناية حول طلبك المذكرة الأولى.هته

 
مرحبا Tofinhk ،
شكرا لكم على التفضل aadvice ، سوف تحاول أن تفعل شيئا حيال ذلك.ولكن على أي حال ، نقدر حقا لمساعدتك قد جعلت

 

Welcome to EDABoard.com

Sponsor

Back
Top