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

📄 ex8-6.sdi

📁 DAC0832的示例程序,希望对大家有帮战哦!
💻 SDI
字号:
,,,        ORG 0000H
0000,02 00 30,START,START:  LJMP MAIN
,,,        ORG 0003H           ;外部中断 入口
0003,02 00 47,,        LJMP INSER          ;转到中断服务程序
,,,        ORG 0030H
0030,90 7F FF,MAIN,MAIN:   MOV DPTR,#7FFFH     ;DAC0832地址
0033,D2 A8,,        SETB EX0            ;允许 中断
0035,D2 88,,        SETB IT0            ;负边沿触发方式
0037,D2 AF,,        SETB EA             ;开中断
0039,20 00 3A,HERE,HERE:   JB 20H.0,ST         ;阶梯波处理
003C,20 01 41,,        JB 20H.1,TRI        ;三角波处理
003F,20 02 50,,        JB 20H.2,SQ         ;方波处理
0042,20 03 5D,,        JB 20H.3,SIN        ;正弦波处理
0045,80 F2,,        SJMP HERE           ;等待中断
,,,
0047,30 90 02,INSER,INSER:  JNB P1.0, LL1       ;中断服务程序,查询按键
004A,80 07,,        SJMP L1
004C,75 20 00,LL1,LL1:    MOV 20H,#00H
004F,D2 00,,        SETB 20H.0          ;设置阶梯波标志
0051,80 22,,        SJMP RT
0053,30 92 02,L1,L1:     JNB  P1.2, LL2
0056,80 07,,        SJMP L2
0058,75 20 00,LL2,LL2:    MOV 20H,#00H
005B,D2 01,,        SETB 20H.1          ;设三角梯波标志
005D,80 16,,        SJMP RT
005F,30 94 02,L2,L2:     JNB P1.4, LL3
0062,80 07,,        SJMP L3
0064,75 20 00,LL3,LL3:    MOV 20H,#00H
0067,D2 02,,        SETB 20H.2          ;设置方波标志
0069,80 0A,,        SJMP RT
006B,30 96 02,L3,L3:     JNB P1.6, LL4
006E,80 05,,        SJMP RT
0070,75 20 00,LL4,LL4:    MOV 20H,#00H
0073,D2 03,,        SETB 20H.3          ;设置正弦波标志
0075,32,RT,RT:     RETI                ;中断返回
,,,
0076,74 00,ST,ST:    MOV    A,#00H        ;阶梯波
0078,F0,LOOPP,LOOPP: MOVX   @DPTR,A       ;启动D/A转换
0079,04,,       INC    A
007A,20 00 FB,,       JB     20H.0,LOOPP   ;连续输出波形
007D,02 00 39,,       LJMP   HERE
,,,
0080,74 00,TRI,TRI:   MOV    A,#00H        ;三角波
0082,F0,UP,UP:    MOVX   @DPTR,A       ;启动D/A转换
0083,04,,       INC    A             ;上升沿
0084,B4 FF FB,,       CJNE   A,#0FFH,UP
0087,F0,DOWN,DOWN:  MOVX   @DPTR,A       ;启动D/A转换
0088,14,,       DEC    A             ;下降沿
0089,B4 00 FB,,       CJNE   A,#00H,DOWN
008C,20 01 F3,,       JB     20H.1,  UP        ;连续输出波形
008F,02 00 39,,       LJMP   HERE
,,,
0092,74 00,SQ,SQ:    MOV    A,#00H        ;方波
0094,F0,,       MOVX   @DPTR,A       ;DAC输出低电平
0095,11 E7,,       ACALL  DELAY         ;延时1
0097,74 FF,,       MOV    A,#0FFH
0099,F0,,       MOVX   @DPTR,A       ;DAC输出高电平
009A,11 E7,,       ACALL  DELAY         ;延时2
009C,20 02 F3,,       JB     20H.2, SQ     ;连续输出波形
009F,02 00 39,,       LJMP   HERE
,,,
00A2,90 00 D4,SIN,SIN:    MOV DPTR,#SINTAB    ;正弦波
00A5,78 6D,,        MOV R0,#6DH
00A7,E4,LOOP,LOOP:   CLR A
00A8,93,,        MOVC A,@A+DPTR
00A9,F6,,        MOV @R0,A
00AA,A3,,        INC DPTR
00AB,08,,        INC R0
00AC,B8 80 F8,,        CJNE R0,#80H,LOOP
00AF,90 7F FF,,        MOV DPTR,#7FFFH     ;DAC0832端口地址
00B2,78 6D,,        MOV R0,#6DH
00B4,E6,LOOP1,LOOP1:  MOV A,@R0           ;取得第一个1/4周期的数据
00B5,F0,,        MOVX @DPTR,A        ;送往DAC0832
00B6,08,,        INC R0
00B7,B8 7F FA,,        CJNE R0,#7FH,LOOP1
00BA,E6,LOOP2,LOOP2:  MOV A,@R0           ;取得第二个1/4周期的数据
00BB,F0,,        MOVX @DPTR,A        ;送往DAC0832
00BC,18,,        DEC R0
00BD,B8 6D FA,,        CJNE R0,#6DH,LOOP2
00C0,E6,LOOP3,LOOP3: MOV A,@R0            ;取得第三个1/4周期的数据
00C1,F4,,        CPL A               ;数据取反
00C2,F0,,        MOVX @DPTR,A        ;送往DAC0832
00C3,08,,        INC R0
00C4,B8 7F F9,,        CJNE R0,#7FH,LOOP3
00C7,E6,LOOP4,LOOP4:  MOV A,@R0           ;取得第四个1/4周期的数据
00C8,F4,,        CPL A               ;数据取反
00C9,F0,,        MOVX @DPTR,A        ;送往DAC0832
00CA,18,,        DEC R0
00CB,B8 6D F9,,        CJNE R0,#6DH,LOOP4
00CE,20 03 E3,,        JB 20H.3, LOOP1     ;输出连续波形
00D1,02 00 39,,        LJMP HERE
00D4,7F 89 94 9F,SINTAB,SINTAB: DB 7FH,89H,94H,9FH,0AAH,0B4H,0BEH,0C8H,0D1H,0D9H
00DE,E0 E7 ED F2,,        DB 0E0H,0E7H,0EDH,0F2H,0F7H,0FAH,0FCH,0FEH,0FFH
,,,
00E7,7C 0F,DELAY,DELAY:  MOV    R4,#0FH         ;延时子程序
00E9,7D 10,LOOP11,LOOP11: MOV    R5,#10H
00EB,00,LOOP22,LOOP22: NOP
00EC,00,,NOP
00ED,00,,NOP
00EE,DD FB,,DJNZ   R5,LOOP22
00F0,DC F7,,DJNZ   R4,LOOP11
00F2,22,,RET
,,,
000E,,,        END

⌨️ 快捷键说明

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