|
هل من الممكن تشرح لنا البرمجة
|
طيب هذا كود الاسيمبلي :
org 0x0
jmp main
delay:
mov tmod,#0x01
mov tl0,#0xac
mov th0,#0xfd
setb tr0
jnb tf0,$
clr tf0
clr tr0
ret
main:
mov p0,#0xFF
mov p1,#0xFF
mov p2,#0xFF
mov p3,#0xF
call delay
mov p0,#0x9F
mov p1,#0xFF
mov p2,#0xFF
mov p3,#0xF
call delay
mov p0,#0x9F
mov p1,#0xFF
mov p2,#0xFF
mov p3,#0xF
call delay
.
.
.
.
.
mov p0,#0xFF
mov p1,#0xFF
mov p2,#0xFF
mov p3,#0xF
call delay
jmp main
|
نقوم باعطاء بكسلات المصفوفة على شكل عمود تلوى الآخر
عن طريق الايعاز MOV الى البورتات P0,P1,P2,P4 ثم ننتظر فترة زمنية و ذلك عن طريق الايعاز call delay الذي يقوم باستدعاء البرنامج الفرعي الذي يقوم بعمل تأخير"عرض العمود لفترة زمنية" و عند انتهاء ال delay فان البرنامج يقوم بعرض بكسلات العمود الثاني و هكذا تستمر على نفس المنوال لباقي الاعمد
الى أن نُنُهي عرض جميع الأعمدة,, ثم نعيد البرنامج الى بدايته عن طريق الايعاز JMP MAIN ......