
ORG 0000H 再试试
MOV SP,#60H 栈起点设置为60H
MOV 7AH,#01H
MOV 7BH,#02H
MOV 7CH,#03H
MOV 7DH,#04H 复位状态字型枣袭卜码送缓凳穗冲区
LooP: ACALL DIS
LCALL DAY
SJMP 禅升LooP
------------显示子程序----------------
4共阴极LED,P0控制段,P2控制位
DIS: MOV DPTR,#TAB
DIS1: MOV R0,#7AH
MOV R1,#0feH 反向驱动位选择初值
MOV R2,#04H
DIS2: MOV A,@R0
MOVC A,@A+DPTR
ORL P2,#0FH 消隐
MOV P0,A
MOV A,R1
MOV P2,A
LCALL DAY 1ms
INC R0
RL A
MOV R1,A
DJNZ R2,DIS2
RET
TAB: DB 03FH,06H,05BH,4FH,66H,6DH,7DH,07H
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H,00H,40H
------------1ms延时子程序----------------
DAY: MOV R6,#1
D1: MOV R7,#248
D2: NOP
NOP
DJNZ R7, D2
DJNZ R6, D1
RET
END
这个简单,我来好了:ORG 0000H
AJMP MAIN
ORG 0010H
MAIN:MOV P0,#0FFH 给按键接口赋高游毁闷电平
MOV A,P0 假设P1.0是开,P1.1是关开关
SUBB A,#FE
ACALL DELAY去抖
JZ RUN
SUBB A,#FD
ACALL DELAY去抖神弯10MS
JZ STOP
SJMP MAIN
RUN: MOV P2,#0FEH假设P2.0是控制口,低电平开
SJMP MAIN
STOP: MOV P2,#0FEH假设P2.0是控制口,高余孙电平关
SJMP MAIN
DELAY: MOV R7,#08H
DELAY1:MOV R6,#0FFH
DELAY2:DJNZ R6,DELAY2
DJNZ R7,DELAY1
RET
END
用十进制形式显示字符位置的代码如下:DSEG SEGMENT
msgi db "please input a string:$"显示信息,提示输入一串字符
buf db 50,0
table db 50 dup (?)输迅轮入字符串缓冲区
msgd db 0dh,0ah,"the location is:$"显示信息,提示0所在位置
DSEG ENDS
CSEG SEGMENT
assume cs:CSEG, ds:DSEG,es:DSEG
MAIN PROC FAR 主程序入口
mov ax, dseg
mov ds, ax
mov es,ax
lea dx,msgi显示信息,提示输入一串字符
mov ah,9
int 21h
lea dx,buf输入字符串
mov ah,0ah
int 21h
lea si,buf
mov cl,[si+1]输入字符实际个数存入CX中
mov ch,0
lea di,table输入字符起始地址存入DI
mov al,30h要查亩清信找的字符0送AL
cld置方向标志为地址增量
repnz scasb
jnz tj
lea dx,msgd显示信息,提示0所在位置
mov ah,9
int 21h
sub di,offset table
mov bx,di
call disp用十进制形式显示位置
tj:
mov ah,1按任意键退出
int 21h
mov ax, 4c00h 程序结束,返回到 *** 正悄作系统系统
int 21h
MAIN ENDP
disp proc near
mov cx,10000d
call dec_div
mov cx,1000d
call dec_div
mov cx,100d
call dec_div
mov cx,10d
call dec_div
mov cx,1d
call dec_div
ret
dec_div proc near
mov ax,bx
mov dx,0
div cx
mov bx,dx
mov dl,al
add dl,30h
mov ah,2
int 21h
ret
dec_div endp
disp endp
CSEG ENDS
END MAIN
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)