"Skills, Knowledge, Abilities, and Experiences

are only useful....

If you are at the right place "

เพิ่ม 16 Bit INDEX ให้กับ MCS-51

16 bit INDEX for MCS-51

เนื่องจาก MCS-51 มี DPTR เพียงตัวเดียวเท่านั้น ในงานบางอย่างเรามีความจำเป็นต้องใช้ Index หลายตัว ซึ่งเราอาจจะแก้ปัญหาได้ด้วยการเก็บค่า Index ให้อยู่ใน Internal RAM และใช้วิธีสลับค่าไปมาระหว่าง DPTR กับค่าใน RAM นั้นซึ่งก็ใช้งานได้ดี แต่อาจจะใช้เวลาอยู่บ้างและค่อนข้างจะต้องเขียนคำสั่งยาวสักหน่อย  เคยอ่านบทความแนะนำของ SILA Research ที่ได้เขียนเป็นบทความแนะนำเทคนิคการเพิ่ม DPTR ไว้ด้วยการนำ Register R0 และ R1 ไว้ดังนี้ครับ โดยใน MCS-51 จะมีคำสั่งที่เกี่ยวข้องไว้ให้เรียบร้อยแล้วคือ MOVX A,@R0  MOVX @R0,A และทั้งสองคำสั่งนี้สามารถใช้ได้กับ r1 ด้วย ปัญหาอยู่ที่ว่า การนับ Address ขนาด 16 bit จะเป็นไปได้อย่างไรในเมื่อ r0 และ r1 มีค่าเพียง 8 bit เท่านั้น คำตอบก็คือ […]

Get in Touch !