注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
lz94s的个人空间 https://home.eeworld.com.cn/space-uid-46607.html [收藏] [复制] [分享] [RSS]
日志

请教达人一段程序

已有 841 次阅读2009-6-3 20:28 |

这是我找的一段用单片机52和dac0832以及lm324 生成低频信号

求注释,谢谢了!答辩急用 本人邮箱www.lz94s@sina.com,谢谢!!

;按键KEY1:锯齿波  按键KEY2:三角波  按键KEY3: 正弦波 

;按键KEY4: 方波;

    ORG  0000H

   LJMP  MAIN

    ORG  0100H

MAIN:MOV SP,#50H

;利用dac0832产生锯齿波;

B1: MOV A,#00H

LP1:SETB  P1.5

    SETB  P1.6

    SETB  P1.7

    CLR   P1.4

    MOV   DPTR,#4000H

    MOVX  @DPTR,A

    CJNE  A,#0F0H,MORE

    JNB   KEY2,B2

    JNB   KEY3,B3

    JB    KEY4,D0

    LJMP  B4

D0: SJMP  B1

MORE:INC  A

     SJMP LP1

 

;利用dac0832产生三角波;

B2: MOV A,#00H

UP1:SETB  P1.4

    SETB  P1.6

    SETB  P1.7

    CLR   P1.5

    MOV   DPTR,#4000H

    MOVX  @DPTR,A

    INC   A

    JNZ UP1

DOWN1: DEC  A

       MOVX @DPTR,A

       JNZ  DOWN1

       JNB  KEY1,B1

       JNB  KEY3,B3

       JB   KEY4,C0

       LJMP B4

C0:    SJMP UP1

  

;利用dac0832产生正弦波;

B3:    MOV R1,#00H ;取表格初值

;在表格里取数送到指定地址/////////////////////

LOOP1:SETB  P1.4

      SETB  P1.5

      SETB  P1.7

       CLR  P1.6

       MOV  A,R1

       MOV  DPTR,#SETTAB

       MOVC A,@A+DPTR

       MOV  DPTR,#4000H

       MOVX @DPTR,A

       INC  R1;表格加一

       JNB  KEY1,B1

       JNB  KEY2,B2

       JB   KEY4,E0

       LJMP B4

E0:    AJMP LOOP1 ;循环

SETTAB:

;正弦表格/////////////////////////////////////

DB 80H,83H,86H,89H,8DH,90H,93H,96H

DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH

DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H

DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H

DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H

DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H

DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH

DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH

DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH

DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H

DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH

DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH

DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H

DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H

DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H

DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H

DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H

DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H

DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH

DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H

DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H

DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH

DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H

DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H

DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H

DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H

DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H

DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H

DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H

DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH

DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H

DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H

 

;利用dac0832产生方波;

B4: MOV A,#00H

LP2:SETB  P1.4

    SETB  P1.6

    SETB  P1.5

     CLR  P1.7

    MOV   DPTR,#4000H

    MOVX  @DPTR,A

    LCALL DELY

    MOV A,#0FFH

    MOVX  @DPTR,A

    LCALL DELY

    JB    KEY1,J0

    LJMP  B1

J0: JB    KEY2,J1

    LJMP  B2

J1: JB    KEY3,J2

    LJMP  B3

J2: SJMP  B4

 

DELY:   MOV   R7,#05H

DLY0:   MOV   R6,#00H

        nop

DLY1:   DJNZ  R6,DLY1

        DJNZ  R7,DLY0

        RET

DELAY:  MOV   R4,#100

DLAY0:  MOV   R3,#98

        NOP

DLAY1:  DJNZ  R4,DLAY1

        DJNZ  R3,DLAY0

        RET

KEY1  BIT  P1.0

KEY2  BIT  P1.1

KEY3  BIT  P1.2

KEY4  BIT  P1.3

END

 

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章