- 打卡等级:偶尔看看III
- 打卡总天数:56
- 最近打卡:2025-04-15 09:09:55
中级会员
- 积分
- 246
|
主控芯片: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 |
|