卡諾圖是組合邏輯電路設計和分析最常用和有效的數學工具,
格雷碼是特點是任意兩相鄰代碼之間只有一位數不同,其余各位均相同,正好和卡諾圖循環鄰接特點一致。
格雷碼轉換為二進制碼的51單片機匯編語言子程序如下:
;;入口:8位格雷碼存于累加器A,
;;返回值:轉換所得8位二進制碼仍存于累加器A。
GtoB: MOV R5, #8 ;;R5←循環次數
MOV 22H, A ;;原格雷碼送至RAM的22H單元暫存
LP1: RLC A ;;A帶進位左移
MOV 23H, A ;;RAM的23H單元←(A)
MOV A, 22H ;;A←(22H)
RLC A ;;A帶進位左移
MOV 22H, A ;;22H←(A)
MOV A, 23H ;;A←(23H)
JNB 10, LP2 ;;若22H單元的最低位≠1,則不取反
CPL ACC.7 ;;否則取反
LP2: DJNZ R5, LP1 ;;若剩余次數遞減至零,則處理下一位
MOV A, 22H ;;A←結果
RET
格雷碼與二進制碼對照表:
|