這是單緩沖的,想改成雙緩沖,但是改了好多次都不行,就是兩個函數(shù)可以分別在兩個示波器上,求大家?guī)兔纯矗≈x謝大家啦!
89e1847f02a4a2ce235e848235abe03.png (36.72 KB, 下載次數(shù): 51)
下載附件
2020-6-23 14:02 上傳
單片機源程序如下:
ORG 0000H ;程序開始
MOV DPTR,#0FEFFH ;0832的地址
MOV SP,#60H ;設(shè)置堆棧
START:
JNB P1.1,SJB ;輸出三角波程序
JNB P1.4,ZXB ;輸出正弦波程序
SJMP START ;循環(huán)檢測開關(guān)情況
RET
/**************三角波************/
SJB: MOV R6,#00H ;給R6初值
DA1: MOV A,R6 ;R6送A
MOVX @DPTR,A ;初值給地址
INC R6 ;R6的內(nèi)容既初值+1
CJNE R6,#0FFH,DA1;初值到最大
DA2: DEC R6 ;R6內(nèi)容既初值-1
MOV A,R6 ;R6送A
MOVX @DPTR,A ;初值給地址
CJNE R6,#00H,DA2 ;初值到最小
JB P1.1,START ;開關(guān)斷開了既退出
AJMP SJB ;跳轉(zhuǎn)到SJB處
/*************正弦波************/
ZXB: MOV R1,#00H ;取表格初值
LOOP1: MOV A,R1 ;在表格里取數(shù)送到指定地址
MOV DPTR,#TAB ;把DPTR指針指向表格TAB的所在的地址。
MOVC A,@A+DPTR ;將DPTR的地址加上累加器A存的偏移量,形成的新地址中的數(shù)取出給A
MOV DPTR,#0FEFFH;建立數(shù)據(jù)指針地址為0FEFFH
MOVX @DPTR,A ;傳送數(shù)據(jù)時先把地址給DPTR,然后用MOVX指令把累加器A的內(nèi)容傳送給@DPTR
INC R1 ;加一
JB P1.4,START ;開關(guān)斷開了既退出
AJMP LOOP1 ;循環(huán)
TAB: DB 080H,083H,086H,089H,08DH,090H,093H,096H
DB 099H,09CH,09FH,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
RET
END
|