📄 正弦波.s
字号:
.module _正弦波.c
.area vector(rom, abs)
.org 32
jmp _timer1
.area data(ram, con, rel)
_auc_SinParam::
.blkb 2
.area idata
.byte 128,134
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 140,147
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 153,159
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 165,171
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 177,182
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 188,193
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 198,204
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 208,213
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 218,222
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 226,230
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 233,237
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 240,242
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 245,247
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 249,251
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 252,253
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 254,254
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 254,254
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 253,252
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 251,250
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 248,246
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 244,241
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 238,235
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 232,228
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 224,220
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 215,211
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 206,201
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 196,191
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 185,179
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 174,168
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 162,156
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 150,144
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 137,131
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 125,'w
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'p,'j
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'd,94
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'X,'R
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'M,'G
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'A,60
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 55,50
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 45,41
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 36,32
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 28,24
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 21,18
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 15,12
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 10,8
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 6,5
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 4,3
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 2,2
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 2,2
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 3,4
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 5,7
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 9,11
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 14,16
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 19,23
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 26,30
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 34,38
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 43,48
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 52,57
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 63,'D
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'J,'O
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'U,91
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'a,'g
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'm,'t
.area data(ram, con, rel)
.blkb 2
.area idata
.byte 'z,128
.area data(ram, con, rel)
.dbfile 正弦波.c
.dbsym e auc_SinParam _auc_SinParam A[128:128]c
_x::
.blkb 1
.area idata
.byte 0
.area data(ram, con, rel)
.dbfile 正弦波.c
.dbsym e x _x c
.area text(rom, con, rel)
.dbfile 正弦波.c
.dbfunc e timer1 _timer1 fV
.even
_timer1::
st -y,R2
st -y,R3
st -y,R24
st -y,R25
st -y,R30
st -y,R31
in R2,0x3f
st -y,R2
.dbline -1
.dbline 26
; /*******************************************************************
; 实验名称:产生正弦波演示实验
; 作者:王晓波
; 晶振:外部 8M
; 接线方法:
; 1.PD5接低通滤波输入
; 2.用示波器测其输出波形
; *******************************************************************/
; #include<iom16v.h>
; #include <macros.h>
; #include<signal.h>
; #pragma interrupt_handler timer1:9
; char auc_SinParam[128]={//128点正弦波样本值
; 128,134,140,147,153,159,165,171,177,182,188,193,198,204,208,213,
; 218,222,226,230,233,237,240,242,245,247,249,251,252,253,254,254,
; 254,254,253,252,251,250,248,246,244,241,238,235,232,228,224,220,
; 215,211,206,201,196,191,185,179,174,168,162,156,150,144,137,131,
; 125,119,112,106,100,94,88,82,77,71,65,60,55,50,45,41,
; 36,32,28,24,21,18,15,12,10,8,6,5,4,3,2,2,
; 2,2,3,4,5,7,9,11,14,16,19,23,26,30,34,38,
; 43,48,52,57,63,68,74,79,85,91,97,103,109,116,122,128
; };
; char x=0;
; //T/C1溢出中断服务
; void timer1(void)
; {
.dbline 27
; x=x+1;
lds R24,_x
subi R24,255 ; addi 1
sts _x,R24
.dbline 28
; if (x>128)
ldi R24,128
lds R2,_x
cp R24,R2
brsh L2
.dbline 29
; x=0;
clr R2
sts _x,R2
L2:
.dbline 30
; OCR1A=auc_SinParam[x];//auc_SinParam[x];//取样点指针到比较匹配寄存器
ldi R24,<_auc_SinParam
ldi R25,>_auc_SinParam
lds R30,_x
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
clr R3
out 0x2b,R3
out 0x2a,R2
.dbline -2
L1:
ld R2,y+
out 0x3f,R2
ld R31,y+
ld R30,y+
ld R25,y+
ld R24,y+
ld R3,y+
ld R2,y+
.dbline 0 ; func end
reti
.dbend
.dbfunc e main _main fV
.even
_main::
.dbline -1
.dbline 33
; }
; void main(void)
; {
.dbline 34
; DDRD=0xff;//PB3输出方式,作为OC0输出PWM波
ldi R24,255
out 0x11,R24
.dbline 35
; TIMSK=0x04; //中断屏蔽位,没有开启任何中断
ldi R24,4
out 0x39,R24
.dbline 36
; TIFR=0; //中断标志位
clr R2
out 0x38,R2
.dbline 37
; TCCR1A=0xA1; //开启PWM
ldi R24,161
out 0x2f,R24
.dbline 38
; TCCR1B=0x09;//系统时钟
ldi R24,9
out 0x2e,R24
.dbline 39
; SREG=0x80; //开启全局中断
ldi R24,128
out 0x3f,R24
.dbline 40
; OCR1A=128;//auc_SinParam[x];
clr R25
out 0x2b,R25
out 0x2a,R24
.dbline -2
L4:
.dbline 0 ; func end
ret
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -