⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 读光栅尺信号.asm

📁 用c51读光栅尺信号,判断前进后退,相应增减
💻 ASM
字号:
org 0000H

AJMP Mystart

ORG 0030H
Mystart:
  mov r0,P1 ;首次读入光栅尺TTL电平信号,放入a,信号A接P1。0/2/4/,信号B接P1。1/3/5/.
  mov 0x20,0x00  ;//定义0x20~0x23为尺1foot1的地址,0x20为低字节,0x23为高字节
  mov 0x21,0x00
  mov 0x22,0x00
  mov 0x23,0x00
  
  mov 0x24,0x00
  mov 0x25,0x00
  mov 0x26,0x00
  mov 0x27,0x00

  mov 0x28,0x00
  mov 0x29,0x00
  mov 0x2A,0x00
  mov 0x2B,0x00

  mov 0x2C,0x00
  mov 0x2D,0x00
  mov 0x2E,0x00
  mov 0x2E,0x00

  

ChaiJi:
  mov r1,P1 ;开始采集信号
  mov a,r1

  xrl a,r0
  mov r2,a

  anl a,#0x03
  jz labfoot2  ;//A为0则跳labfoot2

labfoot1:
  mov a,r0
  rr a
  xrl a,r1
  anl a,#0x01
  jnz foot1add  ;//a=0>foot1=foot1+1
  
  mov a,#0x01
  addc a,0x20
  mov 0x20,a
  
 foot1add:
  mov a,0x20
  subb a,#0x01
  mov 0x20,a   


labfoot2:
  mov a,r2
  anl a,#0x0c
  jz labfoot3  ;//A为0则跳labfoot3

  mov a,r0
  rr a
  xrl a,r1
  anl a,#0x04
  jnz foot2add  ;//a=0>foot2=foot2+1
  
  mov a,#0x01
  addc a,0x24
  mov 0x24,a
  
  
 foot2add:
  mov a,0x24
  subb a,#0x01
  mov 0x24,a 

labfoot3:
  mov a,r2
  anl a,#0x30
  jz labfoot4  ;//A为0则跳labfoot4

  mov a,r0
  rr a
  xrl a,r1
  anl a,#0x10
  jnz foot3add  ;//a=0>foot3=foot3+1
  mov a,#0x01
  addc a,0x28
  mov 0x28,a 
  
 foot3add:
  mov a,0x28
  subb a,#0x01
  mov 0x28,a 


labfoot4:
  mov a,r2
  anl a,#0xc0
  jz Zhiold        ;//A为0则跳Zhiold

  mov a,r0
  rr a
  xrl a,r1
  anl a,#0x40
  jnz foot4add   ;//a=0>foot4=foot4+1
  mov a,#0x01
  addc a,0x2C
  mov 0x2C,a 
  
 foot4add:
  mov a,0x2C
  subb a,#0x01
  mov 0x2C,a 

Zhiold:  
mov a,r1  ;现采信号作旧信号,待重新采集
mov r0,a

xian:              ;//显示 

;setb rs0    ;debug用
;clr rs0     ;debug用
;mov r5,a
;mov a,0x20
;mov a,r5





mov a,#0xC0
cjne a,0x30,zhi


mov p2,0x01 ;数码管使能
mov a,r0  ;保护r0到r3
mov r3,a

mov a,0x20
anl a,#0x0F
add a,#0x30
mov r0,a
mov a,@r0
mov p0,a

mov a,r3  ;恢复r0
mov r0,a


ljmp ChaiJi

zhi:
mov 0x30,#0xC0  ;//数码管定义
mov 0x31,#0xF9
mov 0x32,#0xA4
mov 0x33,#0xB0
mov 0x34,#0x99
mov 0x35,#0x92
mov 0x36,#0x82
mov 0x37,#0xF8
mov 0x38,#0x80
mov 0x39,#0x90
mov 0x3A,#0x88
mov 0x3B,#0x83
mov 0x3C,#0xC6
mov 0x3D,#0xA1
mov 0x3E,#0x86
mov 0x3F,#0x8E

ljmp ChaiJi


end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -