找回密码
 立即注册
查看: 117|回复: 0

汇编实操项目·利用外部中断控制步进电机正反转

[复制链接]
  • TA的每日心情
    开心
    2024-2-19 18:02
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    11

    主题

    23

    回帖

    84

    积分

    注册会员

    积分
    84
    发表于 2023-12-13 20:59:11 来自手机 | 显示全部楼层 |阅读模式
    主控芯片:STC89C52RC FOC(12Mhz)
    下载软件:STC-ISP
    编译软件:KEIL uVision C51
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序开始地址
    ORG 0000H
    AJMP MAIN
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断INT0开始地址
    ORG 0003H
    AJMP HWZDJ
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;外部中断INT1开始地址
    ORG 0013H
    AJMP HWZDC
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;重新分配MAIN主程序开始地址(跳过中断地址)
    ORG 0030H
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序
    MAIN:
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断配置
    PEIZHI:
    CLR HW0
    CLR HW1
    SETB IT0
    SETB IT1
    SETB EA
    SETB EX0
    SETB EX1
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;数码管显示 及 中断标志位判断
    WAIT:
    JBC HW0,CARCOME
    JBC HW1,CARGO
    SJMP WAIT
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;红外对射中断处理标志位
    HW0 EQU 20H.0
    HW1 EQU 20H.1
       
        HWZDJ:
        SETB HW0
        RETI
       
        HWZDC:
        SETB HW1
        RETI
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断处理函数(进入)
    CARCOME:
    MOV R5,#16     ;配置转动度数 角度=data*5.625
    LCALL BJDJZ
    LCALL DELAY2S
    MOV R5,#16
    LCALL BJDJF
    AJMP SMG
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;中断处理函数(离开)
    CARGO:
    MOV R5,#16
    LCALL BJDJF
    LCALL DELAY2S
    MOV R5,#16
    LCALL BJDJZ
    AJMP SMG
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    DELAY2S:MOV R7,#100  ;延时2s(延时时间约=R5*R6*R7*2*1us)
    S2:MOV R6,#100
    S1:MOV R5,#100
    DJNZ R5,$
    DJNZ R6,S1
    DJNZ R7,S2
    RET
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;步进电机函数
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;步进电机正转函数
    BJDJZ:
    MOV R7,#00H
    MOV R6,#00H
    MOV DPTR,#TABZ
    DJZZ:
    MOV A,R6
    MOVC A,@A+DPTR
    MOV 90H,A
    LCALL BJDJYS
    INC R6
    INC R7
    CJNE R6,#8,DJZZ
    MOV R6,#00H
    CJNE R7,#64,DJZZ
    DJNZ R5,BJDJZ
    CLR HW0
    CLR HW1
    RET
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;步进电机反转函数
    BJDJF:
    MOV R7,#00H
    MOV R6,#00H
    MOV DPTR,#TABF
    DJFZ:
    MOV A,R6
    MOVC A,@A+DPTR
    MOV 90H,A
    LCALL BJDJYS
    INC R6
    INC R7
    CJNE R6,#8,DJFZ
    MOV R6,#00H
    CJNE R7,#64,DJFZ
    DJNZ R5,BJDJF
    CLR HW0
    CLR HW1
    RET
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;步进电机延时(约800us)
    BJDJYS:MOV 70H,#8
    DJCD:MOV 71H,#100
    DJNZ 71H,$
    DJNZ 70H,DJCD
    RET
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;步进电机驱动字型表
    TABZ:DB 080H,0C0H,040H,060H,020H,030H,010H,090H
    TABF:DB 090H,010H,030H,020H,060H,040H,0C0H,080H
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    END
    LED点亮世界🇨🇳
    回复 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-5-18 22:42 , Processed in 0.051618 second(s), 29 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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