日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c51用汇编语言产生锯齿波,单片机产生四种波形并可任意切换的正弦波发生器汇编程序...

發布時間:2023/12/31 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c51用汇编语言产生锯齿波,单片机产生四种波形并可任意切换的正弦波发生器汇编程序... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

; Main.asm file generated by New Project wizard

; Created:? ?周五 5月 24 2019

; Processor: AT89C52

; Compiler:??ASEM-51 (Proteus)

;=====================================

$NOMOD51

$INCLUDE (80C52.MCU)

;======================================

; DEFINITIONS

; VARIABLES

; RESET and INTERRUPT VECTORS

;======================================

; Reset Vector

org? ?0000h

jmp? ?Start

;=======================================

; CODE SEGMENT

;=======================================

org? ?0100h

Start:

;***R4=0鋸齒波R4=1三角波R4=2正弦波R4=3方波R4=梯形波***

;***********************

;? ?? ? 鋸齒波

;***********************

MOV? ?? ???R4,#0

J0:? ? MOV? ?? ???A,#0

J0next:? ?? ?? ? CJNE? ?? ?? ?? ?? ? R4,#0,S1? ? ;判斷R4,不等0跳轉產生三角波

MOV? ?? ?? ?? ?? ? P2,A? ?? ?? ?? ?? ???;P2賦值

LCALL? ?? ?? ?? ?? ? delay? ?? ?? ?? ?? ???;延時

INC? ?? ?? ?? ?? ? A? ?? ?? ?? ?? ?? ?? ?;增加A的值,產生鋸齒波上升沿

JB? ?? ?? ?? ?? ? P1.0,J0p11? ?? ?? ?;掃描檢測按鍵給R4賦值選擇輸出信號波形

MOV? ?? ?? ?? ?? ? R4,#0? ?? ?? ?? ?? ???;產生鋸齒波信號

J0p11:? ?? ?? ? JB? ?? ?? ?? ?? ? P1.1,J0p12

MOV? ?? ?? ?? ?? ? R4,#1? ?? ?? ?? ? ;產生三角波信號

J0p12:? ? JB? ?? ?? ?? ?? ? P1.2,J0p13

MOV? ?? ?? ?? ?? ? R4,#2? ?? ?? ?? ?? ?? ?;產生正弦波信號

J0p13:? ?? ?? ? JB? ?? ?? ?? ?? ? P1.3,J0p14

MOV? ?? ?? ?? ?? ?? ?R4,#3? ?? ?? ?? ?? ?? ?;產生方波信號

J0p14:? ?? ?? ? JB? ?? ?? ?? ?? ?? ? P1.4,J0p15

MOV? ?? ?? ?? ?? ? R4,#4? ?? ?? ?? ?? ?? ?;產生梯形波信號

J0p15:? ?? ?? ?SJMP? ?? ?? ?? ?J0next

;***************************

;? ?? ?? ? 三角波

;***************************

S1:? ?? ? MOV? ?? ?? ?? ?? ? A,#0

S1n1:? ?? ?? ? CJNE? ?? ?? ?? ?? ? R4,#1,Z3? ?? ?? ?? ?? ? ;判斷R4,不等于1則跳轉正弦波發生

MOV? ?? ?? ?? ?? ? P2,A? ?? ?? ?? ?? ?? ???;產生三角波的上升沿

LCALL? ?? ?? ?? ?? ???delay? ?? ?? ?? ?? ?? ???;調用延時

INC? ?? ?? ?? ?? ? A? ?? ?? ?? ?? ?? ???;增加A

JB? ?? ?? ?? ?? ? P1.0,S11p11? ?? ?? ?? ?;掃描檢測按鍵確定輸出信號種類

MOV? ?? ?? ?? ?R4,#0? ?? ?? ?? ?? ?? ???;產生鋸齒波信號

S11p11:??JB? ?? ?? ?? ?P1.1,S11p12

MOV? ?? ???R4,#1? ?? ?? ?? ?? ?? ?? ?? ?;產生三角波信號

S11p12:??JB? ?? ?? ?? ?P1.2,S11p13

MOV? ?? ???R4,#2? ?? ?? ?? ?? ?? ?? ?? ? ;產生正弦波信號

S11p13:??JB? ???P1.3,S11p14

MOV? ? R4,#3? ?? ?? ?? ?? ?? ?? ?? ?;產生方波信號

S11p14:? ?? ?? ?JB? ???P1.4,S1p1

MOV? ? R4,#4? ?? ?? ?? ?? ?? ?? ?? ?;產生梯形波信號

S1p1:? ? CJNE? ?? ?? ?? ?? ?? ?A,#255,S1n1

S1n2:? ? CJNE? ?? ?? ?? ?? ???R4,#1,Z3

MOV? ?? ?? ?? ?? ? P2,A? ?? ?? ?? ?? ?? ?? ?? ?;產生三角波的下降沿

LCALL? ?delay

DEC? ?? ?? ?? ?? ? A? ?? ?? ?? ?? ?? ?? ?? ?;減小A

JB? ?? ?? ?? ?? ? P1.0,S12p11? ?? ?? ?;掃描檢測按鍵狀態確定輸出信號波形

MOV? ?? ?? ?? ?? ? R4,#0? ?? ?? ?? ?? ?? ?? ?? ?;產生鋸齒波信號

S12p11:??JB? ?? ?? ?? ?? ? P1.1,S12p12

MOV? ?? ???R4,#1? ?? ?? ?? ?? ?? ?? ?? ???;產生三角波信號

S12p12:??JB? ?? ?? ?? ?? ? P1.2,S12p13

MOV? ?? ???R4,#2? ?? ?? ?? ?? ?? ?? ?? ?;產生正弦波信號

S12p13:? ?? ?? ?JB? ???P1.3,S12p14

MOV? ?? ?? ?? ? R4,#3? ?? ?? ?? ?? ?? ?;產生方波信號

S12p14:? ?? ?? ? JB? ?? ?? ?? ???P1.4,S1p2

MOV? ? R4,#4? ?? ?? ?? ?? ?? ?;產生梯形波信號

S1p2:? ?? ? CJNE? ?? ???A,#0,S1n2

SJMP? ?? ???S1n1

;**********************************

;? ?? ?? ?? ?? ?? ?? ?正弦波

;**********************************

Z3:? ?? ?? ? MOV? ?? ?? ?? ?? ? R0,#0

Z3NEXT:? ?? ?? ?CJNE? ?? ???R4,#2,F4? ? ;判斷R4,不等于2跳轉輸出方波

MOV? ?? ?? ?? ?? ? A,R0

MOV? ?? ?? ?? ?? ? DPTR,#TAB? ?;將正弦波的表頭給DPTR,轉到表格去查表

MOVC? ?? ???A,@A+DPTR

MOV? ?? ?? ?? ?? ? P2,A

LCALL? ?? ?? ? DELAY

INC? ?? ?? ?? ?? ? R0

JB? ?? ?? ?? ?? ? P1.0,Z3p11

MOV? ?? ?? ?? ?? ? R4,#0

Z3p11:??JB? ?? ???P1.1,Z3p12? ?? ???;掃描檢測按鍵選擇輸出波形

MOV? ?? ?? ?? ?? ?? ?R4,#1

Z3p12:??JB? ?? ?? ?? ???P1.2,Z3p13

MOV? ?? ?? ?? ?? ?? ?? ?R4,#2

Z3p13:??JB? ?? ???P1.3,Z3p14

MOV? ?? ? R4,#3

Z3p14:??JB? ?? ???P1.4,Z3next

MOV? ???R4,#4

SJMP? ???Z3NEXT

;*******************************

;? ?? ?? ?? ? 方波

;*******************************

F4:? ? CJNE? ?? ?? ?? ?? ???R4,#3,T5? ?? ?? ? ;判斷R4,不等于3則跳轉梯形波

MOV? ?? ?? ?? ?? ???A,#0

MOV? ?? ?? ?? ?? ???P2,A

CALL? ?? ?? ?FBDELAY

MOV? ?? ?? ?? ?? ???A,#255

MOV? ?? ?? ?? ?? ???P2,A

CALL? ?? ?? ?FBDELAY

F40:? ???JB? ?? ?? ???P1.0,F41? ?? ? ;掃描檢測按鍵分別選擇輸出波形

MOV? ?? ?? ? R4,#0

F41:? ???JB? ?? ?? ?? ?P1.1,F42

MOV? ?? ?? ? R4,#1

F42:? ???JB? ?? ?? ?? ?P1.2,F43

MOV? ?? ?? ???R4,#2

F43:? ???JB? ?? ?? ? P1.3,F44

MOV? ?? ?? ? R4,#3

F44:? ???JB? ?? ?? ? P1.4,F4

MOV? ?? ?? ? R4,#4

JMP? ?? ?? ? F4

;*******************************

;? ?? ?? ???梯形波

;*******************************

T5:? ?? ?? ?MOV? ?? ?? ? A,#0

T5b:? ? CJNE? ?? ?? ? R4,#4,T51b? ?? ?? ?? ?? ?? ? ;判斷R4,不等4則跳轉

JMP? ?? ?? ? T51b1

T51b:? ?JMP? ?? ?? ? J0? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?;跳轉到鋸齒波那一步

T51b1:??MOV? ???P2,a

LCALL? ?? ?? ?delay

INC? ?? ?? ?? ?A? ?? ?? ?? ?? ?? ?? ?? ?? ? ;產生梯形波的上升沿;

JB? ?? ?? ?? ?P1.0,T5b0? ?? ?? ?? ?;掃描檢測按鍵選擇輸出波形

MOV? ?? ?? ?? ???R4,#0

T5b0:? ???JB? ?? ?? ?? ?P1.1,T5b1

MOV? ?? ?? ???R4,#1

T5b1:? ???JB? ?? ?? ?? ?P1.2,T5b2

MOV? ?? ?? ???R4,#2

T5b2:? ???JB? ?? ???P1.3,T5b3

MOV? ?? ? R4,#3

T5b3:? ???JB? ?? ?? ?? ?P1.4,T5b10

MOV? ?? ?? ???R4,#4

T5b10:? ?CJNE? ?? ?? ?? ?? ?? ???A,#255,T5b

LCALL? ?? ?? ?? ? fbdelay

T5b11:? ?CJNE? ?? ?? ???R4,#4,T52b

JMP? ?? ?? ?? ?? ?T52b2

T52b:? ? JMP? ?? ?? ?? ?? ?J0

T52b2:? ?? ?? ?MOV? ?? ?? ?? ???P2,a

LCALL? ?? ?? ? delay

DEC? ?? ?? ?? ?A? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ;產生梯形波的下降沿

JB? ?? ?? ?? ? P1.0,T5b12? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? ;掃描檢測按鍵選擇輸出波形

MOV? ?? ?? ???R4,#0

T5b12:? ? JB? ?? ?? ?? ? P1.1,T5b13

MOV? ?? ?? ???R4,#1

T5b13:? ? JB? ?? ?? ?? ? P1.2,T5b14

MOV? ?? ? R4,#2

T5b14:? ? JB? ?? ?? ?? ? P1.3,T5b15

MOV? ?? ?? ?? ? R4,#3

T5b15:? ? JB? ?? ?? ?? ?? ???P1.4,T5b16

MOV? ?? ?? ?? ???R4,#4

T5b16:? ?CJNE? ?? ?? ?? ?? ?? ?A,#0,T5b11

JMP? ?? ?? ?? ?? ???T5

DELAY:? ?? ?? ???MOV? ?? ?? ? R6,#2? ?? ?? ?? ?? ?? ?? ?;延時函數

D1:? ?? ?? ?? ?? ? MOV? ?? ?? ? R7,#20

DJNZ??R7,$

DJNZ??R6,D1

RET

fbdelay:? ?MOV??R1,#40? ?? ?? ?? ?? ?? ?? ? ;方波延時函數

D2:? ?? ???MOV??R2,#255

DJNZ R2,$

DJNZ R1,D2

RET

;正弦波波形表

TAB:

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, 75H, 78H, 7bH, 7eH

Loop:

jmp Loop

;=============================================

END

總結

以上是生活随笔為你收集整理的c51用汇编语言产生锯齿波,单片机产生四种波形并可任意切换的正弦波发生器汇编程序...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。