ماتريكس بقيادة 5x7

Z

ZeleC

Guest
مرحبا ،
الدردشة تحاول العمل مع اثنين من أرقام 5x7 المصفوفة التي تقودها. ويمكن إعطاء أي روابط أو مساعدة على كيفية العمل مع pic16f87x سلسلة جيم في اللغة
أشكركم كثيرا

 
؛ 5x7 قاده مصفوفة الاختبار
؛ PORTB المستخدمة في اختيار الصف (0 على (1) قبالة)
؛ PORTC <4:5> البيانات المستخدمة ، clk التحول من 74164 ريج

ع = قائمة 18F252
# تشمل <P18F252.INC>

؛************************************************* ***********
؛ الثوابت

؛ عدد الأعمدة في الشاشة
؛ لتغيير عدد من العروض ، وتغيير NCHARS
NCHARS equ d' 6 '
NSTRINGS equ d' 27 '
أعمدة equ 5 * NCHARS
DWELL_TIME equ d' 9 '

FontTable equ 0x01000
StringTable equ 0x00800

؛************************************************* ***********
؛ المتغيرات

؛ كما يتعارض استخدامها لعرض الصفوف
cblock 0x000
CurrentRow ؛ الخلاف للعرض
CurrentString ؛ الرقم القياسي الحالي لسلسلة من عرض
CurrentColumn ؛ تهم من الأعمدة كما يتم عرض أحرف
CurrentCharIndex ؛ مؤشر الطابع حاليا عرض
CurrentCharData ؛ طابع لعرض البيانات
AdvanceWidth ؛ مسبقا لعرض تشار يسحبها
CurrentStrLen ؛ طول سلسلة الحالي
RowRingCounter ؛ تحمل خاتم مضادة للعرض على التوالي
DwellCounter ؛ كم بتكرار قبل التمرير
اللجنة الثمانعشرية لنزع السلاح

؛ يستخدمها سجل تحول الكتابة الروتينية
cblock
ShiftReg ؛ الحرارة فار لاجراء تحول في البايت
ShiftBits ؛ بت عدد من التحول إلى التحول ريج
ShiftCounter ؛ الحرارة مضادة
اللجنة الثمانعشرية لنزع السلاح

؛ استخدامها لتتبع ما يجري سلسلة عرض
cblock
StringCharIndex ؛ مؤشر الطابع الحالي في سلسلة
StringSubCharIndex ؛ مؤشر الى الطابع الحالي في بت
اللجنة الثمانعشرية لنزع السلاح

؛ المستعملة لتأخير الحلقات
cblock
DelayCountL
DelayCountH
اللجنة الثمانعشرية لنزع السلاح

؛ GetCharData المستعملة في روتين ثانوي
cblock
GCDTemp
اللجنة الثمانعشرية لنزع السلاح

؛************************************************* ***********
؛ رمز البرنامج يبدأ هنا

org 00200h ؛ وابتداء من برنامج EPROM
يبدأ
clrf LATB ؛ اضحة PORTB الناتج مزلاج
clrf TRISB ؛ PORTB دبابيس اجعل جميع النواتج
clrf LATC ؛ الحرف الأول PORTC
movlw b'10001000 '
movwf TRISC ؛ جعل معظم portc دبابيس النواتج
clrf CurrentString ؛ تبدأ سلسلة 0

؛ إنشاء سلسلة ، تشار ، subchar التعويضات هنا
clrf CurrentCharIndex
دعوة GetStrChar ؛ الحصول على طول البايت (بداية سلسلة)
movwf CurrentStrLen
movlw - NCHARS
movwf StringCharIndex
clrf StringSubCharIndex
setf LATB

ScrollLoop
movlw DWELL_TIME
movwf DwellCounter

؛ نفسه يحصل على عرض صورة للDWELL_TIME المتكررة
DwellLoop
؛ إعادة برمجة إذا تحول من المقرر...
btfsc PORTC (3)
إعادة
Display7Rows
movlw b'10111111 '
movwf RowRingCounter ؛ اقامة عرض عالية قليلا الصف الأول
clrf CurrentRow

DisplayRow
movlw الأعمدة
movwf CurrentColumn
movf StringSubCharIndex ، ث
addwf CurrentColumn ، و
movff StringCharIndex ، CurrentCharIndex
DisplayChar
؛ من أجل البحث عن البيانات الحالية تشار
movf CurrentCharIndex ، ث
دعوة GetCharData

movlw 0x5
addwf AdvanceWidth ، ث
cpfsgt CurrentColumn
غوتو DisplayLastChar
movwf ShiftBits
movf CurrentCharData ، ث
دعوة ShiftData

movlw 0x5
addwf AdvanceWidth ، ث
subwf CurrentColumn ، و ؛ بحثا عن مزيد من أعمدة لعرضها
بليزية DisplayNextRow ؛ القيام به اذا لم يترك لعرض الأعمدة
incf CurrentCharIndex ؛ المقبل الذهاب إلى آخر تشار
غوتو DisplayChar ، وتكرار فعل حتى روتينية
DisplayLastChar
movff CurrentColumn ، ShiftBits ؛ ملاحظة
: لا مسبقا الماضي تشار!
movf CurrentCharData ، ث
دعوة ShiftData
DisplayNextRow
؛ توقف لفترة طويلة بما فيه الكفاية لشخص ما لرؤية البيانات
movff RowRingCounter ، LATB
دعوة التأخير
clrf LATB
comf LATB
rrncf RowRingCounter ، و ؛ الانتقال إلى الصف التالي
incf CurrentRow
movlw 0x7
cpfseq CurrentRow
غوتو DisplayRow
DisplayRowsDone
decfsz DwellCounter
غوتو DwellLoop

movff StringCharIndex ، CurrentCharIndex
دعوة GetCharData
incf StringSubCharIndex
movlw 0x5
addwf AdvanceWidth ، ث
cpfseq StringSubCharIndex
غوتو ScrollLoop

clrf StringSubCharIndex
incf StringCharIndex
movf CurrentStrLen ، ث
cpfseq StringCharIndex
غوتو ScrollLoop

incf CurrentString
movlw NSTRINGS
cpfslt CurrentString
clrf CurrentString
clrf CurrentCharIndex
دعوة GetStrChar ؛ الحصول على طول البايت (بداية سلسلة)
movwf CurrentStrLen
movlw - NCHARS
movwf StringCharIndex
غوتو ScrollLoop

؛ التأخير روتين ثانوي
تأخير
؛ العودة
clrf DelayCountL
Delay1
decfsz DelayCountL
غوتو Delay1
العودة

؛ ShiftData روتين ثانوي
ويتخذ في البايت ث والتحولات التحول الى تسجيل
؛ نوبات ShiftBits بت ، بدءا MSB

ShiftData
movwf ShiftReg
movff ShiftBits ، ShiftCounter

؛ الاختبار الأخير قليلا ، وضعها في الانتاج قليلا
ونحن هنا في قلب الانتاج
ShiftData_Loop
btfsc ShiftReg (4)
LATC قوات حرس الحدود (4)
btfss ShiftReg (4)
اف LATC (4)

؛ القوية السلوفاكية ساعة
قوات حرس الحدود LATC (5)
اف LATC (5)

؛ تستمر حتى 5 بت هي تحول
rlncf ShiftReg ، و

decfsz ShiftCounter ، و
غوتو ShiftData_Loop

العودة

؛ GetStrChar روتينية
؛ اعادة الطابع CurrentCharIndex'th في سلسلة من
؛ CurrentString مؤشر (ث)
GetStrChar
movf CurrentString ، ث ؛ TBLPTRH : سلسلة TBLPTRL يحصل على تعويض
mullw 0x40 ، (سلسلة يبدأ PRODH : PRODL)
movff PRODH ، TBLPTRH
movf PRODL ، ث
addwf CurrentCharIndex ، 0 ؛ الحالية إضافة إلى طابع يقابل ث
movwf TBLPTRL
btfsc حالة وجيم
incf TBLPTRH
movlw (StringTable>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

& 0xff ؛ إضافة قاعدة تعويض StringTable
addwf TBLPTRH ؛ عالية من أجل
movlw StringTable & 0xff
addwf TBLPTRL ثم منخفضة من أجل البايت
btfsc حالة وجيم
incf TBLPTRH
* tblrd ؛ TABLAT تحصل الطابع مدونة
movf TABLAT ، ث ؛ العودة الطابع في مدونة ث
العودة

؛ GetCharData روتين ثانوي
؛ العودة الطابع بيانات تشار في مؤشر ث على التوالي لCurrentRow
؛ القيمة المعادة CurrentCharData
** يحل محل هذا شيء ذكاء **
GetCharData
؛ حساب تعويض تشار في الجدول
movwf GCDTemp
movf CurrentStrLen ، ث
cpfslt GCDTemp
غوتو GetCharDataNull
movlw 0x00
cpfsgt GCDTemp
غوتو GetCharDataNull
دعوة GetCharDataFromTable
movwf CurrentCharData
العودة
GetCharDataNull
clrf CurrentCharData
clrf AdvanceWidth ؛ لا تقدم لاغية
العودة
GetCharDataFromTable
دعوة GetStrChar ؛ الحصول على الطابع المقبل
mullw 0x08 ؛ TBLPTRH : TBLPTRL الحصول على تعويض عن البيانات على التوالي
movff PRODH ، TBLPTRH ؛ (8 بايت / الطابع)
movff PRODL ، TBLPTRL
movf CurrentRow ، ث ؛ إضافة الحالي على التوالي في
addwf TBLPTRL
btfsc حالة وجيم
incf TBLPTRH
movlw (FontTable>>

<img src="http://www.edaboard.com/images/smiles/icon_cool.gif" alt="هادئ" border="0" />

& 0xff ثم تضيف FontTable قاعدة addr
addwf TBLPTRH
movlw FontTable & 0xff
addwf TBLPTRL
btfsc حالة وجيم
incf TBLPTRH
* tblrd
clrf AdvanceWidth ؛ مجموعة AdvanceWidth إذا كان هذا تشار
btfsc TABLAT ، 5 ؛ يتطلب العمود اضافية الفضاء
incf AdvanceWidth
movf TABLAT ، ث
العودة

org StringTable
# تشمل "text.asm"

org FontTable
# تشمل "5x7.asm"

الغاية ؛ التوجيه رمز يدل على نهاية
عذرا ، لكنك في حاجة إلى تسجيل الدخول لمشاهدة هذه الضميمة

 
يمكنك تنزيل ملف rar : PICBASIC بروتون قانون PIC16F84A Proteus محاكاة DSN الملفات ، والخامس باء ضعه أوليفر (باء
~ ليست مني).يمكن لأية هيئة تطوير رموز المنتدى 7x5 10 مع نظام بيانات تطبيق القانون باستخدام مصفوفة pic16f877

http://www.edaboard.com/viewtopic.php؟p=392571 # 392571

 
مرحبا ،
يمكنك أن تجد في مجموعها نقطة مصفوفة البرنامج التعليمي مع رمز لل16f84 في الموافقة المسبقة عن علم :http://blitzlogic.com/

من أجل وحدة واحدة : http://blitzlogic.com/Matrix.htm
لكامل المشروع البحث في الموقع.

المتعة.

عبد الحميد أ.

 
نظرة http://www.maxim-ic.com/quick_view2.cfm/qv_pk/3291

 

Welcome to EDABoard.com

Sponsor

Back
Top