匯編語言編寫的 可以產生方波、三角波、鋸齒波和正弦波等多種波形 protues源程序和hex文件附件中都有
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
51hei.gif (250.84 KB, 下載次數: 39)
下載附件
2022-3-28 22:26 上傳
圖片1.png (28.02 KB, 下載次數: 40)
下載附件
2022-3-27 23:26 上傳
單片機源程序如下:
- RS EQU P3.0
- RW EQU P3.1
- E EQU P3.3
- LCD EQU P2
- BF EQU P2.7
- ORG 0000H
- LJMP MAIN
- ORG 0003H
- LJMP INT00
- ORG 0100H
- MAIN: MOV SP,#60H
- SETB IT0
- SETB EA
- SETB EX0
- LCALL LCDXS
- SJMP $
- INT00:MOV A,#01H
- ACALL W_CMD
- JNB P1.0,STW0
- JNB P1.1,TZW0
- JNB P1.2,TGW0
- JNB P1.3,SQW0
- JNB P1.4,SNW0
- STW0:LJMP STW
- TZW0:LJMP TZW
- TGW0:LJMP TGW
- SQW0:LJMP SQW
- SNW0:LJMP SNW
- INTIR:MOV A,#01H
- ACALL W_CMD
- MOV A,#34H
- ACALL W_CMD
- MOV A,#0CH
- ACALL W_CMD
- MOV A,#14H
- ACALL W_CMD
- MOV A,#80H
- ACALL W_CMD
- RETI
- STW: MOV DPTR,#NAME0
- LCALL LOP
- MOV R0,#0FEH
- MOV A,#00H
- LOOP: MOVX @R0,A
- JB P1.0,INTIR
- INC A
- SJMP LOOP
- LJMP INTIR
- TZW: MOV DPTR,#NAME1
- LCALL LOP
- MOV R0,#0FEH
- MOV A,#00H
- UP: MOVX @R0,A
- JB P1.1,MIDDLE
- INC A
- JNZ UP
- DEC A
- LCALL DELAY
- JB P1.1,MIDDLE
- DOWN: DEC A
- MOVX @R0,A
- JB P1.1,MIDDLE
- JNZ DOWN
- SJMP UP
- LJMP INTIR
- DELAY: MOV R7,#100
- DELAY1: MOV R6,#10
- NOP
- DELAY2: DJNZ R6,DELAY2
- DJNZ R7,DELAY1
- RET
- TGW: MOV DPTR,#NAME2
- LCALL LOP
- MOV R0,#0FEH
- MOV A,#00H
- UP2: MOVX @R0,A
- JB P1.2,MIDDLE
- INC A
- JNZ UP2
- DOWN2: DEC A
- MOVX @R0,A
- JB P1.2,MIDDLE
- JNZ DOWN2
- SJMP UP2
- LJMP INTIR
- SQW: MOV DPTR,#NAME3
- LCALL LOP
- MOV R0,#0FEH
- POSI: MOV A,#00H
- MOVX @R0,A
- LCALL DELAY
- JB P1.3,MIDDLE
- NEGA: MOV A,#0FFH
- MOVX @R0,A
- LCALL DELAY
- JB P1.3,MIDDLE
- SJMP POSI
- LJMP INTIR
- SNW: MOV DPTR,#NAME4
- LCALL LOP
- MOV R0,#0FEH
- MOV R1,#00H
- XX: MOV A,R1
- LCALL HANSHU
- MOVX @R0,A
- JB P1.4,MIDDLE
- INC R1
- SJMP XX
- LJMP INTIR
- HANSHU: MOV DPTR,#TAB1
- MOVC A,@A+DPTR
- RET
- MIDDLE: LJMP INTIR
- LCDXS:MOV A,#01H
- ACALL W_CMD
- MOV A,#34H
- ACALL W_CMD
- MOV A,#0CH
- ACALL W_CMD
- MOV A,#14H
- ACALL W_CMD
- MOV A,#80H
- ACALL W_CMD
- MOV DPTR,#INIT
- LOP: MOV R2,#0
- LOP1:MOV A,R2
- MOVC A,@A+DPTR
- ACALL W_DATA
- INC R2
- CJNE R2,#16,LOP1
- RET
- W_CMD:ACALL WAIT
- MOV LCD,A
- CLR RS
- CLR RW
- SETB E
- NOP
- CLR E
- RET
- W_DATA:ACALL WAIT
- MOV LCD,A
- SETB RS
- CLR RW
- SETB E
- NOP
- CLR E
- RET
- WAIT:MOV LCD,#0FFH
- CLR RS
- SETB RW
- CLR E
- NOP
- SETB E
- JB BF,WAIT
- RET
- INIT: DB ' Welcome! '
- NAME0:DB ' Sawtooth Wave '
- NAME1:DB 'Trapezoidal Wave'
- NAME2:DB 'Triangular Wave '
- NAME3:DB ' Square Wave '
- NAME4:DB ' Sine Wave '
- TAB1: DB 080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh
- DB 0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8h
- DB 0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4h
- DB 0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh
- DB 0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h
- DB 0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh,0dch
- DB 0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3h
- DB 0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h
- DB 080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052h
- DB 04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02bh,028h
- DB 026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00ch
- DB 00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,001h,000h
- DB 000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ah
- DB 00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024h
- DB 026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh
- DB 04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh
- END
復制代碼
51hei.png (14.28 KB, 下載次數: 42)
下載附件
2022-3-28 22:29 上傳
Keil匯編語言代碼下載:
仿真程序.7z
(67.65 KB, 下載次數: 75)
2022-3-28 22:29 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|