搜索
bottom↓
回复: 71

AT89C51检测旋转光电编码器程序(汇编),本人已经调试运行通过。检测速度5000mm/min(电路

[复制链接]

出0入0汤圆

发表于 2010-4-26 09:39:14 | 显示全部楼层 |阅读模式
前几天一直因为光电编码器检测犯愁,因本人是菜鸟,只会用51的汇编在论坛也请教了不少的高手,不过大部分人都说可以但检测速度不行等等,现在吧我的程序发上来和大家共同研究讨论,本例分辨率0.05MM(精度可可以改的更高,但我们要求精度没有那么高)
增量式旋转光电编码器 5V 2500线,线与输出方式。
因本程序最终是用在产品上,主处理器还要处理其他程序,顾采用2个51单片机完成。如果只是做实验用完全可以用一个D触发器比如4013等替代AT89C2051,不过没有倍频。
程序完成后的显示效果:

(原文件名:图像001.jpg)


(原文件名:图像002.jpg)


(原文件名:图像003.jpg)


(原文件名:图像004.jpg)
光电编码器输出正交信号方式如下图所示:
顺时针旋转A超前B相信号90°:
A: _|--|__|--|_
B: __|--|__|--|
逆时针旋转B相信号超前A相信号90°:
A:__|--|__|--|_
B:_|--|__|--|__
下面是AT89C2051检测并进行二倍频程序:
;采用外部中断方式
ORG 00H
LJMP MAIN
ORG 03H
LJMP INT0
ORG 13H
LJMP INT1
ORG 50H
MAIN: MOV SP,#40H
      MOV P3,#0FFH
      MOV IE,#10000101B        ;设定外部中断
      MOV TCON,#00000101B
      SETB EA
MA1:  MOV P1,#0FFH
      MOV P3,#0FFH
      SJMP MA1
      ;*******************
INT0:    PUSH   PSW
        CLR    EA
I0:     JNB   P1.0,FAN
        CLR P3.4
        SJMP INT0END
FAN:    CLR P3.5
INT0END:   
        POP PSW
        SETB EA
        MOV P3,#0FFH
        RETI
        
INT1:   PUSH PSW
        CLR EA
        JNB P1.0,ZHENG
        CLR P3.5
        SJMP INT1END
ZHENG:  CLR P3.4
INT1END:
        POP PSW
        SETB EA
        MOV P3,#0FFH
        RETI                  
处理后由P3.4\P3.5分别在顺时针和逆时针时输出脉冲信号,送入AT89C51的T0,T1进行计数

下面是计数及处理程序

AT89C51负责信号处理并在12864液晶显示模块上把实际值显示出来,分辨率0.05MM
液晶模块用的金鹏的OCMJ4X8C
RS EQU P0.0                    ;选择I/O口定义,RS为指令/数据选择端
RW EQU P0.1
E EQU P0.2                    ;选择I/O口定义,E为使能端
PSB EQU P0.3
RESET EQU P0.4
FIRST_COL  EQU 36H  ;定义字符/汉字显示起始行
FIRST_ROW EQU 37H  ;定义字符/汉字显示起始列
WORD_WID EQU 38H  ;定义字符/汉字显示长度
WORD_LIN EQU 39H  ;定义字符/汉字显示行数
FIRST_ADD EQU 3AH   ;定义字符/汉字显示起始位置
START_ADD EQU 3BH        ;起始位置缓存单元
FIRST_LIN EQU 3CH  ;起始行位置缓存单元
A0     EQU    30H
A1     EQU    31H  ;
A2     EQU    32H
B0     EQU    33H
B1     EQU    34H
Z0     EQU    35H  ;
Z5     BIT   20H.0              ;正反负数标志
   ORG  00H
   LJMP MAIN
   ORG  0BH
   LJMP TT0
   ORG  1BH
   LJMP TT1
   ORG  50H
MAIN: MOV SP,#40h
SETB RESET
SETB PSB
CLR RW
        MOV A0,#00H
        MOV A1,#00H
        MOV A2,#00H
        MOV B0,#00H
        MOV B1,#00H
        CLR Z5
        MOV TMOD,#66H ;定时器定时方式2,自动装载
        MOV TH0,#0ECH  ;计够20个脉冲产生次中断
        MOV TL0,#0ECH  ;设检测盘周长为250MM,1P脉冲为0.05MM
        MOV TH1,#0ECH  ;2P脉冲为0.1MM,20P为1MM,200P为10MM
        MOV TL1,#0ECH
        SETB TR0
        SETB TR1
        SETB ET1
        SETB ET0
        SETB EA
QIU1: LCALL INITIL   ;调用系统初始化程序
        MOV A, #0CH   ;开显示,关游标
        LCALL INPUT
        LCALL DELAY01
   MOV A, #01H   ;DDRAM清零,DDRAM地址计数器到00H
        LCALL INPUT
        LCALL DELAY01
        LCALL QIU2
QIU3:   LCALL INITIL   ;调用系统初始化程序
        MOV A, #0CH   ;开显示,关游标
        LCALL INPUT
        LCALL DELAY01
   MOV A, #01H   ;DDRAM清零,DDRAM地址计数器到00H
        LCALL INPUT
        LCALL DELAY01
        MOV FIRST_ADD,#00H    ;设定字符/汉字显示起始位置为第一个显示单元
        MOV FIRST_LIN,#01H  ;设定字符/汉字显示起始位置为第一行
        MOV word_WID,#08H  ;每行显示汉字个数
        MOV word_LIN,#04H  ;显示行数
MOV START_ADD,#00H  ;清首个显示地址缓存单元
        SETB TR0
        LJMP QIU2
;-----------------**************
QIU: LJMP QIU1
;*******************************
TT0:   PUSH  PSW           ;计够20P脉冲中断发生即1MM
       PUSH  A
       MOV A,A2
       JNZ T00
       MOV A,A1
       JNZ T00
       MOV A,A0
       JNZ T00
       CLR Z5
T00:   JB Z5,T02
       MOV A,A0
       ADD A,#01H
       DA A
       MOV A0,A
       CJNE A,#00H,TT0END  ;够100即100mm
       ;MOV A0,#00H
       MOV A,A1
       ADD A,#01H
       DA A
       MOV A1,A
       CJNE A,#00H,TT0END  ;够100即10000MM=10M
      ; MOV A1,#00H
       MOV A,A2
       ADD A,#01H
       DA A
       MOV A2,A
       CJNE A,#03H,TT0END ;够3即30M
       MOV A2,#00H
       MOV A1,#00H
       MOV A0,#00H
       CLR Z5
       SJMP TT0END
T02:   MOV A,A0
       ADD A,#99H ;-1程序
       DA A
       MOV A0,A
       CJNE A,#99H,TT0END  ;有借位产生执行下面程序
      ; MOV A0,A
       MOV A,A1
       ADD A,#99H
       DA A
       MOV A1,A
       CJNE A,#99H,TT0END
     ;  MOV A1,#00H
       MOV A,A2
       JNZ T03
       ADD A,#99H
       DA A
       MOV A2,A
       CJNE A,#99H,TT0END
       MOV A2,#00H
       MOV A1,#00H
       MOV A0,#00H
T03:   CLR Z5
TT0END:
       POP A
       POP PSW
       RETI
;********************************
TT1:   PUSH PSW
       PUSH A
       MOV A,A2
       JNZ T10
       MOV A,A1
       JNZ T10
       MOV A,A0
       JNZ T10
       SETB Z5
T10:   JB Z5,T11
       MOV A,A0
       ADD A,#99H
       DA A
       MOV A0,A
       CJNE A,#99H,TT1END
       MOV A,A1
       ADD A,#99H
       DA A
       MOV A1,A
       CJNE A,#99H,TT1END
       MOV A,A2
       ADD A,#99H
       DA A
       MOV A2,A
       CJNE A,#99H,TT1END
       MOV A2,#00H
       MOV A1,#00H
       MOV A0,#00H
T110:  SETB Z5
       SJMP TT1END
T11:   MOV A,A0
       ADD A,#01H
       DA A
       MOV A0,A
       CJNE A,#00H,TT1END  ;够100即100mm
       MOV A0,#00H
       MOV A,A1
       ADD A,#01H
       DA A
       MOV A1,A
       CJNE A,#00H,TT1END  ;够100即10000MM=10M
       MOV A1,#00H
       MOV A,A2
       ADD A,#01H
       DA A
       MOV A2,A
       CJNE A,#00H,TT1END  ;够100即100M
       MOV A2,#00H
       SETB Z5
TT1END:
       POP A
       POP PSW
       RETI
;**********************************************************
INITIL: LCALL DELAY   ;延时
     ;首先选择基本指令集
        MOV A, #30H   ;30---基本指令操作
        LCALL  INPUT                    ;调写入子程序
        LCALL  DELAY01
        MOV A, #01H   ;指令#01H为:清除屏幕文字,把地址指针指向00H单元
        LCALL  INPUT   ;调写入子程序
        LCALL  DELAY01
        MOV A, #06H   ;指定在资料写入或读取时,设定游标的移动方向及指定显示的移位
        LCALL  INPUT
        LCALL  DELAY01
        RET
;-----------------
;汉字显示子程序
;---------------
QIU2:   ;********1*********
        MOV A,#80H
        LCALL INPUT
        MOV R1,#08H
        MOV DPTR,#TA
WORD1: CLR A    ;因为要连续输入机内码高位(区码)、低位(位码)
        MOVC A, @A+DPTR   ;所以要输入两次数据,如果是字符就是输入两个字符字符代码可以看说明书
        LCALL DISPL   ;DATA INPUT
        INC DPTR   ;显示地址会自动加一,如果连续写就不用再输入地址,空白可用某空白汉字或字符代替
        CLR A
        MOVC A, @A+DPTR
        LCALL DISPL   ;DATA INPUT
        LCALL DELAY01
        INC DPTR
        DJNZ R1,WORD1
        ;**********2***********
        MOV A,#90H
        LCALL INPUT
        MOV DPTR,#TB1
        MOV R1,#08H
WORD2:  CLR A    ;因为要连续输入机内码高位(区码)、低位(位码)
        MOVC A, @A+DPTR   ;所以要输入两次数据,如果是字符就是输入两个字符字符代码可以看说明书
        LCALL DISPL   ;DATA INPUT
        INC DPTR   ;显示地址会自动加一,如果连续写就不用再输入地址,空白可用某空白汉字或字符代替
        CLR A
        MOVC A, @A+DPTR
        LCALL DISPL   ;DATA INPUT
        LCALL DELAY01
        INC DPTR
        DJNZ R1,WORD2
        ;*********3************
        MOV A,#88H
        LCALL INPUT
        MOV DPTR,#TB2
        MOV R1,#08H
WORD3:  CLR A    ;因为要连续输入机内码高位(区码)、低位(位码)
        MOVC A, @A+DPTR   ;所以要输入两次数据,如果是字符就是输入两个字符字符代码可以看说明书
        LCALL DISPL   ;DATA INPUT
        INC DPTR   ;显示地址会自动加一,如果连续写就不用再输入地址,空白可用某空白汉字或字符代替
        CLR A
        MOVC A, @A+DPTR
        LCALL DISPL   ;DATA INPUT
        LCALL DELAY01
        INC DPTR
        DJNZ R1,WORD3
;**********位移显示处理区************
HUANSUAN: CLR C
          MOV A,TL0
          MOV B,TL1
          SUBB A,B
          JNC  SS0        ;有借位说明A是负数,即补码,要调整后使用
          CPL A
          INC A
SS0:      MOV Z0,A
;************小数转换****************
          CLR C
          MOV A,Z0
          MOV B,#5
          MUL AB
          MOV Z0,A
          MOV A,Z0
          MOV B,#100
          DIV AB
          MOV A,B
          MOV B,#10
          DIV AB
          MOV B0,A
          MOV B1,B
;********至此小数位转换完毕***********
        JNB Z5 ,SS4
        MOV A,#89H
        LCALL INPUT
        CLR A
        MOV DPTR,#TA0
        MOVC A,@A+DPTR
        LCALL WE
        CLR A
        MOV DPTR,#TA1
        MOVC A,@A+DPTR
        LCALL WE
        SJMP SS5
SS4:    MOV A,#89H
        LCALL INPUT
        CLR A
        MOV DPTR,#TA0
        MOVC A,@A+DPTR
        LCALL WE
        MOV A,#20H
        LCALL WE
SS5:    MOV A,#8AH
        LCALL INPUT
        MOV DPTR,#TAB1
        MOV A,A2
        LCALL WD1
        MOV A,A2
        LCALL WD2
        MOV A,A1     ;8B
        LCALL WD1
        MOV A,A1
        LCALL WD2    ;8C
        MOV A,A0
        LCALL WD1
        MOV A,A0
        LCALL WD2
        MOV A,#8EH
        LCALL INPUT
        MOV A,B0
        LCALL WD2
        MOV A,B1
        LCALL WD2
;**********4*************
        MOV A,#98H
        LCALL INPUT
        MOV DPTR,#TAB1
       ; MOV R1,#08H
WORD4:  ;CLR A    ;因为要连续输入机内码高位(区码)、低位(位码)
       ; MOVC A, @A+DPTR   ;所以要输入两次数据,如果是字符就是输入两个字符字符代码可以看说明书
      ;  LCALL DISPL   ;DATA INPUT
       ; INC DPTR   ;显示地址会自动加一,如果连续写就不用再输入地址,空白可用某空白汉字或字符代替
       ; CLR A
      ;  MOVC A, @A+DPTR
       ; LCALL DISPL   ;DATA INPUT
      ;  LCALL DELAY01
      ;  INC DPTR
      ;  DJNZ R1,WORD4
       MOV A,TL0
       LCALL WD1
       MOV A,TL0
       LCALL WD2
       MOV A,TL1
       LCALL WD1
       MOV A,TL1
       LCALL WD2             ;2
       MOV A,#20H
       LCALL WE
       MOV A,#20H
       LCALL WE
       MOV A,A2
       LCALL WD1
       MOV A,A2
       LCALL WD2
       MOV A,A1
       LCALL WD1
       MOV A,A1
       LCALL WD2             ;2
       MOV A,A0
       LCALL WD1
       MOV A,A0
       LCALL WD2
       MOV A,#20H
       LCALL WE
       MOV A,#20H
       LCALL WE             ;2
       JB Z5,S0
       MOV A,#00H
       LCALL WD1
       MOV A,#00H
       LCALL WD2
        LJMP QIU3
S0:    MOV A,#11H
       LCALL WD1
       MOV A,#11H
       LCALL WD2
       LJMP QIU3
;*************************
WD1:   ANL A,#0F0H
       SWAP A
       MOVC A,@A+DPTR
       LCALL DISPL
       LCALL DELAY01
       RET
WD2:   ANL A,#0FH
       MOVC A,@A+DPTR
WE:    LCALL DISPL
       LCALL DELAY01
       RET
WR:     CLR A
        MOVC A,@A+DPTR
        LCALL DISPL
        INC DPTR
        CLR A
        MOVC A,@A+DPTR
        LCALL DISPL
        CLR A
        LCALL DELAY01
        RET
READ:   MOV P3, #0FBH   ;读数据子程序
        ;p3--CONTRAL I/O
        NOP    ;p3=11111011B   RS=1 R/W=1   READ DATA
        SETB E    ;E=E(I/O)
        LCALL  DELAY01
        MOV A, P1   ;p1=DATA(I/O)
        NOP
        CLR E
        RET
;--------------------------------------
CHK_BUSY:    CLR     RS   ;读忙状态子程序
        SETB    RW
        SETB    E
HEHE1:  JB      P1.7,HEHE1
        CLR     E
        RET
;--------------------------------------
;写数据子程序
;----------------------------
DISPL:  LCALL CHK_BUSY   ;p3--CONTRAL I/O
        NOP    ;p3=11111001B   RS=1 WRITE DATA
        SETB RS
        CLR RW
        SETB E    ;E=E(I/O)
        MOV  P1, A   ;p1=DATA(I/O)
        LCALL  DELAY01
        NOP
        CLR E
        NOP
        MOV     P1,#0FFH
        RET
;--------------------------------------
;写指令子程序
;----------------------------
INPUT:  LCALL CHK_BUSY  ;以确保上一指令/数据模块已经接收处理完
        ;p3--CONTRAL I/O
        NOP    ;p3=11111000B RS=0 WRITE INSTRUTION
        CLR  RS
        CLR RW
        SETB E    ;E=E(I/O)
        MOV P1, A   ;p1=DATA(I/O)
        LCALL  DELAY01
        NOP
        CLR E
        NOP
        MOV     P1,#0FFH
        RET
;----------------------
;DELAY TIME
;---------------------
DELAY:  MOV  R5,#03H
C0: MOV  R6, #0FFH
C1:     MOV  R7, #0FFH
C2:     DJNZ R7, C2
        DJNZ R6, C1
        NOP
        NOP
        DJNZ R5, C0
        RET

DELAY01: MOV  R6, #6
D5:     MOV  R7, #08h
D6:     DJNZ R7, D6
        DJNZ R6, D5
        RET
;------------------
DELAY02: MOV  R6, #6
D52:     MOV  R7, #18h
D62:     DJNZ R7, D62
        DJNZ R6, D52
        RET
;--------------------------------------
TA:   DB '程序制作山东济南'
TB1: DB 'xiaomage_2000'
TB2: DB '长:         .   mm'
TB3: DB '                      '
TA0: DB ':'
TA1: DB '-'
TAB1;pB "0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F";
TAB: DB '.'

        END

出0入0汤圆

 楼主| 发表于 2010-4-26 09:40:18 | 显示全部楼层
最下面一行的数字字符是我调试程序的时候为了方便调试加上的,可以只看前3行的效果。

出0入0汤圆

发表于 2010-4-26 10:58:17 | 显示全部楼层
大哥没有C代码啊..........汇编吃力~~~~~

出0入0汤圆

 楼主| 发表于 2010-4-26 11:09:23 | 显示全部楼层
不会C啊,C刚入门,不好意思~

出0入0汤圆

发表于 2010-4-26 13:36:31 | 显示全部楼层
呵呵,恭喜搞定了啊。
汇编看起来真的很吃力,楼主加油,把C拿下后写程序就简单多了。

出0入0汤圆

发表于 2010-4-26 14:06:12 | 显示全部楼层
用什么地方的?

出0入0汤圆

 楼主| 发表于 2010-4-26 14:34:43 | 显示全部楼层
任何需要光电编码器检测的地方都可以用啊

出0入0汤圆

 楼主| 发表于 2010-4-26 14:50:34 | 显示全部楼层
本程序电路图,后面光耦部分是其他用途实验时不必加,另我这个版本的12864的对比度V0和VOUT是内置的,所以电路的3脚和18脚都是K空脚,如果大家用的时候有对比度的话需要在加个可调电阻。
电路图来了,解压就可以
点击此处下载 ourdev_549346.rar(文件大小:12K) (原文件名:Backup of Copy of Sheet1.rar)

出0入0汤圆

发表于 2010-4-26 16:24:51 | 显示全部楼层
回复【3楼】xiaomage_2000  
不会C啊,C刚入门,不好意思~
-----------------------------------------------------------------------

不会C却会汇编,真是能人.........

怎么之前不是还有几句话么?编辑掉了?

出0入0汤圆

发表于 2010-4-26 16:59:53 | 显示全部楼层
用硬件捕捉吗?

出0入0汤圆

发表于 2010-4-26 18:02:19 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-4-26 19:00:16 | 显示全部楼层
记号

出0入0汤圆

发表于 2010-4-26 20:34:01 | 显示全部楼层
谢谢楼主,按个抓印

出0入0汤圆

发表于 2010-4-26 21:43:33 | 显示全部楼层
汇编强人啊~

出0入0汤圆

发表于 2010-4-26 21:43:47 | 显示全部楼层
汇编强人啊~

出0入0汤圆

 楼主| 发表于 2010-4-27 08:29:50 | 显示全部楼层
回复【8楼】90999
回复【3楼】xiaomage_2000   
不会C啊,C刚入门,不好意思~
-----------------------------------------------------------------------
不会C却会汇编,真是能人.........
怎么之前不是还有几句话么?编辑掉了?
-----------------------------------------------------------------------
忘记了呵呵,应该没有吧,汇编也是自己看书学的,之前上学有过单片机课可惜没有听过,(当然了老师也是个照本宣的)惭愧~~

出0入0汤圆

 楼主| 发表于 2010-4-27 08:32:14 | 显示全部楼层
回复【9楼】dianzidog
用硬件捕捉吗?
-----------------------------------------------------------------------

是的,用的外部中断2051的2个外部中断全用上了,这个看图就可以了。

出0入0汤圆

 楼主| 发表于 2010-4-27 08:44:33 | 显示全部楼层
为了大家更好的了解光电编码器把我之前在网上找到的一些资料全部上传给各位参考,因为我的方法不一定是最好的,大家看看多交流沟通如果有了更好的思路记得告诉我啊~
点击此处下载 ourdev_549548.rar(文件大小:1.93M) (原文件名:编码器,光栅.rar)
点击此处下载 ourdev_549549.rar(文件大小:187K) (原文件名:编码器辨向.rar)
点击此处下载 ourdev_549550.rar(文件大小:42K) (原文件名:光电编码器4倍频.rar)
点击此处下载 ourdev_549551.rar(文件大小:187K) (原文件名:光电编码器鉴相.rar)
点击此处下载 ourdev_549552.rar(文件大小:217K) (原文件名:光栅四倍频细分电路模块的分析与设计.rar)
点击此处下载 ourdev_549553.rar(文件大小:180K) (原文件名:基于单片机的增量式光电编码器接口的设计.rar)

出0入0汤圆

发表于 2010-4-27 08:52:52 | 显示全部楼层
顶下----

出0入0汤圆

 楼主| 发表于 2010-4-27 14:58:07 | 显示全部楼层
都快沉底了,自己顶顶,怕是裤子穿不上了~~

出0入0汤圆

发表于 2010-5-6 11:23:52 | 显示全部楼层
回复【19楼】xiaomage_2000
-----------------------------------------------------------------------

xiaomage_2000 大哥。。能不能帮帮忙啊。。 我的课题是 “基于单片机的风向跟踪装置设计”  我的思路是 风向标连接增量式光电编码器,风向标旋转产生脉冲经过AT89C51处理,再经过步进电机旋转,带动风力发电机的转向 从而实现风力发电机发电效率最大化 即风向跟踪功能。。。你的程序我能用在proteus的 AT89C51中吗。。。我现在主要是先把仿真搞出来 能不能在你的基础上帮我改下。。万分感谢!!!

出0入0汤圆

发表于 2010-5-6 11:45:25 | 显示全部楼层
我的QQ是 505084380  我可以把  方案资料和现在的电路发给你 您帮看看?

出0入0汤圆

 楼主| 发表于 2010-5-7 11:41:19 | 显示全部楼层
回复【21楼】ivan261024
我的qq是 505084380  我可以把  方案资料和现在的电路发给你 您帮看看?
-----------------------------------------------------------------------

楼上的朋友,我加不上你啊~居然还要输入什么手机号码~~
你加我吧QQ604673856(射手)

出0入0汤圆

 楼主| 发表于 2010-5-7 11:59:20 | 显示全部楼层
回复【20楼】ivan261024
回复【19楼】xiaomage_2000  
-----------------------------------------------------------------------
xiaomage_2000 大哥。。能不能帮帮忙啊。。 我的课题是 “基于单片机的风向跟踪装置设计”  我的思路是 风向标连接增量式光电编码器,风向标旋转产生脉冲经过at89c51处理,再经过步进电机旋转,带动风力发电机的转向 从而实现风力发电机发电效率最大化 即风向跟踪功能。。。你的程序我能用在proteus的 at89c51中吗。。。我现在主要是先把仿真搞出来 能不能在你的基础上帮我改下。。万分感谢!!!
-----------------------------------------------------------------------

不过我有个想法,1,你直接把风力发电和风向标按在一起
2:你可以计算出步进电机的细分度数,配上一致的光电编码器,然后先吧电机和风向标同时调到一个位置上,直接把光电编码器信号输入步进驱动器,这边给几个脉冲,步进电机走几步,只要方向对了,一样而且应该会很准的嘿嘿~~

出0入0汤圆

发表于 2010-5-7 12:05:16 | 显示全部楼层
电机控制方向的单片机都有QEP的抓捕功能模块了,不必搞的这么麻烦啊。
上个正交编码器的相序图给大家看看了。A,B,INDEX三线的。

(原文件名:QEP.jpg)

出0入0汤圆

 楼主| 发表于 2010-5-12 10:24:38 | 显示全部楼层
我知道LM3S818是内带的~可惜现在还没有学会C更别提用ARM了

出0入0汤圆

发表于 2010-6-19 10:59:01 | 显示全部楼层
MARK

出0入0汤圆

发表于 2010-7-10 22:15:49 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-7-10 23:31:52 | 显示全部楼层
好资料

出0入0汤圆

发表于 2010-7-11 10:01:01 | 显示全部楼层
做的不错!学习!

出0入0汤圆

发表于 2010-7-12 18:01:46 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-8-30 16:30:50 | 显示全部楼层

出0入0汤圆

发表于 2010-10-22 19:31:52 | 显示全部楼层

出0入0汤圆

发表于 2010-12-27 10:12:12 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 10:39:57 | 显示全部楼层
好贴

出0入0汤圆

发表于 2010-12-27 11:28:38 | 显示全部楼层
mark,不错的东西

出0入0汤圆

 楼主| 发表于 2010-12-27 11:33:55 | 显示全部楼层
哇!我居然有裤子了!!!哈哈哈!!终于结束了裸奔生活~~感谢TV~~感谢ourdev~~感谢am

出0入0汤圆

发表于 2010-12-27 12:47:34 | 显示全部楼层
光电编码器很多人在用,好.

出0入0汤圆

发表于 2010-12-27 19:18:22 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 20:17:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2010-12-27 22:50:20 | 显示全部楼层
难得几个用汇编的

出0入0汤圆

发表于 2010-12-27 23:21:42 | 显示全部楼层
记号 学习下

出0入0汤圆

发表于 2011-5-10 08:35:56 | 显示全部楼层
我想仿照一个.搂主大哥能不能把原理图中的元器件电阻电容参数发个给我,342187780@qq.com

出0入0汤圆

发表于 2011-5-10 11:27:08 | 显示全部楼层
mark 标记

出0入0汤圆

发表于 2011-5-10 19:49:27 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-5-10 22:26:32 | 显示全部楼层
标记

出0入0汤圆

发表于 2011-5-11 09:32:48 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-5-11 09:43:39 | 显示全部楼层
好贴,留印,以便学习。

出0入0汤圆

发表于 2011-5-24 01:15:45 | 显示全部楼层
可以把硬件电路各个模块的功能解释一下吗,谢谢

出0入0汤圆

发表于 2011-10-3 23:37:43 | 显示全部楼层
回复【楼主位】xiaomage_2000
-----------------------------------------------------------------------

请教怎样才能学好单片机汇编语言编程,交个朋友geneen@163.com

出0入0汤圆

发表于 2011-10-4 00:09:00 | 显示全部楼层
楼主真正高手,我们公司旋转编码器用stm8,也用汇编,c实时性不一定跟的上,我们项目都用汇编的。

出0入0汤圆

发表于 2011-10-4 01:00:10 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-10-4 15:01:44 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-4 22:14:08 | 显示全部楼层
汇编有点吃力呀~不过可以借鉴一下楼主的思路~

出0入0汤圆

发表于 2011-10-6 12:45:42 | 显示全部楼层
很强大!

出0入0汤圆

发表于 2011-10-7 09:04:56 | 显示全部楼层
如果有c源码及硬件原理,就更加易懂了

出0入0汤圆

发表于 2011-10-7 10:31:15 | 显示全部楼层
这个标记一下

出0入0汤圆

发表于 2011-10-7 12:29:21 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-16 09:30:42 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-11-8 13:25:49 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-11-22 13:38:29 | 显示全部楼层
这个好

出0入0汤圆

发表于 2012-12-24 09:14:34 | 显示全部楼层
做的不错!学习!

出0入0汤圆

发表于 2012-12-26 17:05:06 | 显示全部楼层
转编码器是不是老式鼠标里的那种?

出0入0汤圆

发表于 2013-1-24 18:01:50 | 显示全部楼层
我也是用汇编的,也正在试这个编码器,能否留个个联系方式请教一下,我的QQ 920084641

出0入0汤圆

发表于 2014-10-12 20:12:54 | 显示全部楼层
不错!
但语句中:INT0及INT1  不要用!!

出0入0汤圆

发表于 2014-10-21 17:04:38 | 显示全部楼层
汇编大神!!

出0入0汤圆

发表于 2014-10-21 19:25:32 | 显示全部楼层
xiaomage_2000 发表于 2010-4-26 11:09
不会C啊,C刚入门,不好意思~

和我一样~~~~~~~~~~~~~看到汇编倍感亲切

出0入0汤圆

发表于 2014-10-21 20:06:42 | 显示全部楼层
汇编,,,真心霸道。。。。

出0入0汤圆

发表于 2014-10-21 20:08:19 | 显示全部楼层
牛人一枚

出0入0汤圆

发表于 2014-10-21 20:37:19 | 显示全部楼层
汇编, 码霸级的存在

出0入0汤圆

发表于 2016-9-9 13:46:21 | 显示全部楼层
汇编强人啊~
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 22:31

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表