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

📄 lesson10.asm

📁 单片机实验
💻 ASM
字号:
PORT EQU 7FFFH
CSEG AT 4000H
        LJMP START
CSEG AT 4100H
START:  MOV  R1,#02H      ;置计数初值于R1
        ACALL PRG1        ;显示锯齿波
        MOV  R1,#01H      ;置计数初值于R1
        ACALL PRG2        ;显示三角波
        MOV  R1,#01H      ;置计数初值于R1
        ACALL PRG3        ;显示正弦波
        LJMP  START       ;转START循环显示
PRG1:   MOV  DPTR,#PORT+1 ;DAC寄存器端口地址送DPTR
        MOV  A,#00H       ;初值送ACC
LOOP:   MOV  B,#0FFH
LOOP1:  MOV  DPTR,#PORT   ;DAC输入寄存器端口地址
        MOVX @DPTR,A      ;送出数据
        INC  DPTR         ;加一,为DAC寄存器端口地址
        MOVX @DPTR,A      ;启动转换
        INC  A            ;数据加一
        CJNE A,#0FFH,LOOP1
        MOV  A,#00H
        DJNZ B,LOOP1
        DJNZ R1,LOOP      ;计数值减到40H了吗?没有则继续
        RET               ;产生锯齿波
PRG2:   MOV  DPTR,#PORT+1
        MOV  A,#00H
LP0:    MOV  B,#0FFH
LP1:    MOV  DPTR,#PORT   ;LP1循环产生三角波前半周期
        MOVX @DPTR,A
        INC  DPTR
        MOVX @DPTR,A
        INC  A
        CJNE A,#0FFH,LP1  ;数据为FFH吗?不等则转LP1
        MOV  R2,#0FEH   
LP2:    MOV  DPTR,#PORT   ;LP2循环产生三角波后半周期
        MOV  A,R2         
        MOVX @DPTR,A
        INC  DPTR
        MOVX @DPTR,A
        DJNZ R2,LP2        
        DJNZ B,LP1
        DJNZ R1,LP0  ;计数值到80H则退出执行下一步
        RET
PRG3:   MOV  B,#00H
LP3:    MOV  DPTR,#DATA0
        MOV  R4,#0FFH     ;FFH为DATA0表中的数据个数
LP4:    MOVX A,@DPTR      ;从表中取数据
        MOV  R3,DPH
        MOV  R5,DPL
        MOV  DPTR,#PORT
        MOVX @DPTR,A
        INC  DPTR
        MOVX @DPTR,A
        MOV  DPH,R3
        MOV  DPL,R5
        INC  DPTR         ;地址下移
        DJNZ R4,LP4
        DJNZ B,LP3
        DJNZ R1,PRG3
        RET
DATA0:  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,76H,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,8H,7H,6H,5H,4H,3H,2H
	DB 02H,1H,0H,0H,0H,0H,0H,0H
	DB 00H,0H,0H,0H,0H,0H,1H,2H
	DB 02H,3H,4H,5H,6H,7H,8H,9H
	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,51H,55H,57H,5AH,5DH,60H,63H
	DB 69H,6CH,6FH,72H,76H,79H,7CH,80H                     
       END

⌨️ 快捷键说明

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