⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sinwave.asm

📁 51单片机汇编代码 10kHz正弦波信号发生器
💻 ASM
字号:
ORG 0000H
lJMP MAIN
ORG 000BH   ;中断入口
CPL P1.0
MOV TH0,51H   ;重置数
MOV TL0,52H
RETI
ORG 0030H
MAIN:
     MOV SP,#60H            ;设置堆栈
     MOV DPTR,#0B000H
     MOV A,#03H
     MOVX @DPTR,A
     MOV TMOD,#01H          ;设置工作方式
     MOV IE,#82H            ;开T0中断
     MOV 40H,#00H
     MOV 41H,#00H
     MOV 42H,#00H
     MOV 43H,#00H
MP1:
     LCALL DISP
     LCALL KS1
     JZ MP1
     CLR EA               ;关中断
     LCALL KEYA           ;求键号,放到50H中
     MOV 50H,A
     LJMP KEY

KS1:                         ;是否有键按下
     MOV DPTR,#0B001H
     MOV A,#00H
     MOVX @DPTR,A
     INC DPTR
     MOVX @DPTR,A
     INC DPTR
     MOVX A,@DPTR
     CPL A
     ANL A,#03H
     RET
KEYA:                     ;求键号
     LCALL T12MS
     LCALL KS1
     JNZ LK1
     SJMP KND
LK1:
     MOV R4,#00H
     MOV R2,#0FEH
LK2:
     MOV DPTR,#0B001H
     MOV A,R2
     MOVX @DPTR,A
     INC DPTR
     INC DPTR
     MOVX A,@DPTR
     JB Acc.0,LONE
     MOV A,#00H
     SJMP LKP
LONE:
     JB Acc.1,NEXT
     MOV A,#06H
LKP:
     ADD A,R4
     PUSH Acc
LK3:
     LCALL KS1
     JNZ LK3
     POP Acc
KND:
    RET
NEXT:
     INC R4
     MOV A,R2
     JNB Acc.5,KND
     RL A
     MOV R2,A
     SJMP LK2
T12MS:                          ;延时12ms
      MOV R7,#18H
TM:
      MOV R6,#0FFH
TM6:
      DJNZ R6,TM6
      DJNZ R7,TM
      RET
DISP:                               ;显示
     MOV R0,#2AH
     MOV R1,#0FEH
     MOV DPTR,#0B001H
DLP:
     MOV A,@R0
     MOV DPTR,#0B002H
     MOVX @DPTR,A
     MOV DPTR,#0B001H
     MOV A,R1
     MOVX @DPTR,A
     ACALL DIMS
     RL A
     MOV R1,A
     INC R0
     CJNE R0,#30H,DLP
     RET
DIMS:                        ;延时1ms
     MOV R7,#02H
DL:
    MOV R6,#0FFH
DL1:
    DJNZ R6,DL1
    DJNZ R7,DL
    RET
KEY:
     MOV A,50H               ;1键按下开T0
     CJNE A,#01H,ST2
     SETB TR0

     SJMP ST4
  ST2:                       ;2键按下设值
     CJNE A,#02H,ST3
     MOV 2AH,#06H
     MOV 2BH,#03FH
     MOV 2CH,#03FH
     MOV 2DH,#03FH
     MOV 2EH,#00H
     MOV 2FH,#00H
     MOV 51H,#0FEH
     MOV 52H,#16H
     MOV TH0,#0FEH
     MOV TL0,#16H
     SJMP ST4
  ST3:                       ;3键按下设值
     CJNE A,#03H,ST4
     MOV 2AH,#06H
     MOV 2BH,#6DH
     MOV 2CH,#03FH
     MOV 2DH,#03FH
     MOV 2EH,#00H
     MOV 2FH,#00H
     MOV 51H,#0FEH
     MOV 52H,#0BBH
     MOV TH0,#0FEH
     MOV TL0,#0BBH
  ST4:                        ;开中断
     SETB EA
   RET
    END
































⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -