ขอเขียนเป็น MCS-51 นะครับ
การทำงาน คือ การรับค่าจาก 7segment โดยปรกติเราไม่สามารถต่อ ขา port mcu กับ 7segment โดยตรงได้เพราะอาจเกิดการกวนกันระหว่าง
mcuตัวแสดงผล กับ ตัวรับค่าได้ควรต่อผ่าน ic buffer เช่น 7407 เมื่อได้ค่าจาก 7segment ก็เอามาเปรืยบเทียบกับค่าข้อมูลที่เรากำหนดเอง ในที่นี้กำหนดเป็น
0 ทั้งสองหลัก เมื่อเปรียบเทียบแล้วเป็น 0 ทั้งสองหลัก ก็ให้ p3.1 เป็น 0 ถ้าไม่ใช่ให้เป็น 1 ผมไม่รู้ว่าจะเอาไปทำอะไรนะครับแต่วิธีการแบบนี้ไม่มีใครทำกัน
เพราะต้องใช้ ขาport ถึง 14 ขา ก็ประมาณ 2portถ้าหากใช้ ic ขยายport ก็ทำได้ แต่ก็ยุ่งยากมากขึ้น ลองเอาตัวอย่างนี้ไปต่อยอดดูครับ บอกหมดเดี๋ยวไม่สนุก
DIGIT1 EQU R0
DIGIT2 EQU R1
MAIN: MOV DIGIT1,P2
MOV DIGIT2,P1
CHK_DIGIT1: CJNE DIGIT1,#00000000B,CHK_OK2 ;CHECK DIGIT1=? (NO)=GOTO SET PORT P3.1 (YES)=GOTO CHECK DIGIT2
AJMP CHK_DIGIT2
CHK_DIGIT2: CJNE DIGIT2,#00000000B,CHK_OK2 ;CHECK DIGIT2=? (NO)=GOTO SET PORT P3.1 (YES)=GOTO CLEAR PORT P3.1
AJMP CHK_OK1
CHK_OK1: CLR P3.1
AJMP MAIN
CHK_OK2: SETB P3.1
AJMP MAIN
END