基于51超声波测距器设计--中国矿业大学徐海学院电子04-1 鲍海鸿(2)

2019-01-26 14:28

MULLOOP2:

DIV4BY2:

DIVLOOP1: DIVLOOP2: MOV R5, A

MOV A, R6 ADDC A, #00H MOV R6, A MOV A, R7 ADDC A, #00H MOV R7, A

DJNZ 46H, MULLOOP1 RET

*四字节/两字节无符号数除法程序* MOV 46H, #20H MOV R0, #00H MOV R1, #00H

MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A MOV A, R0 RLC A MOV R0, A MOV A, R1 RLC A MOV R1, A CLR C MOV A, R0 SUBB A, R2 MOV B, A MOV A, R1 SUBB A, R3 JC DIVLOOP2 MOV R0, B MOV R1, A CPL C

DJNZ 46H, DIVLOOP1 MOV A, R4 RLC A MOV R4, A MOV A, R5 RLC A MOV R5, A MOV A, R6 RLC A MOV R6, A MOV A, R7 RLC A MOV R7, A RET ; END

附C51程序

#INCLUDE

#DEFINE UCHAR UNSIGNED CHAR #DEFINE UINT UNSIGNED INT

#DEFINE ULONG UNSIGNED LONG

EXTERN VOID CS_T(VOID); EXTERN VOID DELAY(UINT);

EXTERN VOID DISPLAY(UCHAR*); //DATA UCHAR DISPLAY(UCHAR*); DATA UCHAR TESTOK;

VOID MAIN (VOID) {

DATA UCHAR DISPRAM[5]; DATA UINT I; DATA ULONG TIME; P0=0XFF; P2=0XFF; TMOD=0X11; IE=0X80; WHILE (1) {

CS_T();

DELAY(1);

TESTOK=0; EX0=1; ET0=1;

WHILE(! TESTOK) DISPLAY(DISPRAM); IF (1==TESTOK) {

TIME=TH0;

TIME=(TIME<<8)| TL0; TIME*=172;

TIME/=10000;

DISPRAM[0]=(UCHAR) (TIME); TIME/=10;

DISPRAM[1]=(UCHAR) (TIME); TIME/=10;

DISPRAM[2]=(UCHAR) (TIME); DISPRAM[3]=(UCHAR) (TIME/10); IF (0==DISPRAM[3]) DISPRAM[3]=17; } ELSE {

DISPRAM [0]=16;

DISPRAM [1]=16; DISPRAM [2]=16; DISPRAM [3]=16; }

FOR (I=0;I<300;I++) DISPLAY(DISPRAM); } }

VOID CS_R(VOID) INTERRUPT 0 {

TR0=0; ET0=0; EX0=0; TESTOK=1; }

VOID OVERTIME(VOID) INTERRUPT 1 {

EX0=0;

TR0=0;

ET0=0;

TESTOK=2; }

NAME CS_T ?PR?CS_T?CS_T SEGMENT CODE PUBLIC CS_T RSEG ?PR?CS_T?CS_T CS_T: PUSH ACC MOV TH0, #00H MOV TL0, #00H MOV A, #4D SETB TR0 CS_T1: CPL p1.0 NOP NOP NOP NOP NOP NOP NOP

NOP NOP NOP

DJNZ ACC,CS_T1

POP ACC RET ;

END NAME DELAY

?PR?_DELAY?DELAY SEGMENT CODE PUBLIC _DELAY

RSEG ?PR?_DELAY?DELAY _DELAY: PUSH ACC MOV A,R7 JZ DELA1 INC R6 DELA1: MOV R5,#50D DJNZ R5, $ DJNZ R7,DELA1 DJNZ R6,DELA1 POP ACC RET END

NAME DISPLAY

?PR?_DISPLAY?DISPLAY SEGMENT CODE ?CO?_DISPLAY?DISPLAY SEGMENT DATA

EXTRN CODE (_DELAY) PUBLIC _DISPLAY

RSEG ?CO?_DISPLAY?DISPLAY ?_DISPLAY?BYTE: DISPBIT: DS 1 DISPNUM: DS 1

RSEG ?PR?_DISPLAY?DISPLAY _DISPLAY: PUSH ACC PUSH DPH PUSH DPL PUSH PSW INC DISPNUM MOV A,DISPNUM CJNE A,#4D,DISP1 DISP1: JC DISP2

MOV DISPNUM,#00H MOV DISPBIT,#0FEH DISP2: MOV A,R1

ADD A,DISPNUM MOV R0,A MOV A,@R0

MOV DPTR,#DISPTABLE

MOVC A,@A+DPTR MOV P0,A

MOV A,DISPNUM CJNE A,#2D,DISP3 CLR P0.7 DISP3: MOV P2,DISPBIT MOV R5,#00H MOV R7,#0AH LCALL _DELAY MOV P0,#0FFH MOV P2,#0FFH MOV A,DISPBIT RL A

MOV DISPBIT,A POP PSW POP DPL POP DPH POP ACC RET

DISPTABLE: DB

0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH,0BFH,0FFH END


基于51超声波测距器设计--中国矿业大学徐海学院电子04-1 鲍海鸿(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:教育的历史形态:起源、发展与未来趋势

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: