📄 lab6.asm
字号:
LIST P=16F877
INCLUDE <P16F877.INC>
REG1 EQU 0X21 ;定义寄存器
REG2 EQU 0X22 ;定义寄存器
ORG 0X00 ;主程序入口
NOP ;一个指令周期的延时
GOTO MAIN ;运行主程序
ORG 0X04 ;中断入口
NOP
GOTO MAIN ;仍然运行主程序
MAIN
BCF STATUS,RP0 ;选择存储体0
CLRF PORTA ;清空各个I/O口
CLRF PORTB
CLRF PORTC
CLRF PORTD
CLRF PORTE
BCF INTCON,GIE ;禁止所有中断
BSF STATUS,RP0 ;选择存储体1
MOVLW 0X07 ;把PORTA,PORTE全设为数字I/O口
MOVWF ADCON1
MOVLW 0X00 ;把PORTA,B,C,E设定为输出口
MOVWF TRISA ;
MOVWF TRISB ;
MOVWF TRISC ;
MOVWF TRISD
MOVWF TRISE ;
BCF STATUS,RP0 ;选择存储体0
CLRF PORTD
BEHAVIOR
NOP
BSF PORTD,0 ;PORTD口输出高电平
CALL DELAY_HIGH ;高电平时间
BCF PORTD,0 ;PORTD口输出低电平
CALL DELAY_LOW ;低电平时间
GOTO BEHAVIOR ;给舵机一个联系脉冲
DELAY_HIGH ;
MOVLW .8
MOVWF REG1
DELAY1
MOVLW .191
MOVWF REG2
DELAY2
DECFSZ REG2,F
GOTO DELAY2
DECFSZ REG1,F
GOTO DELAY1
RETURN
;
DELAY_LOW
MOVLW .61
MOVWF REG1
DELAY3
MOVLW .100
MOVWF REG2
DELAY4
DECFSZ REG2,F
GOTO DELAY4
DECFSZ REG1,F
GOTO DELAY3
RETURN
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -