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

📄 boxing.s

📁 数控电压源程序数控电压源程序数控电压源程序数控电压源程序
💻 S
字号:
	.module boxing.c
	.area lit(rom, con, rel)
_Sin::
	.byte 0,2
	.byte 4,6
	.byte 8,10
	.byte 12,14
	.byte 16,18
	.byte 20,22
	.byte 24,26
	.byte 28,30
	.byte 32,34
	.byte 36,38
	.byte 40,42
	.byte 44,46
	.byte 48,50
	.byte 52,54
	.byte 56,58
	.byte 60,61
	.byte 63,'A
	.byte 'C,'E
	.byte 'G,'I
	.byte 'K,'M
	.byte 'O,'Q
	.byte 'S,'T
	.byte 'V,'X
	.byte 'Z,92
	.byte 94,96
	.byte 'b,'c
	.byte 'e,'g
	.byte 'i,'k
	.byte 'm,'n
	.byte 'p,'r
	.byte 't,'v
	.byte 'w,'y
	.byte 123,125
	.byte 126,128
	.byte 130,132
	.byte 133,135
	.byte 137,138
	.byte 140,142
	.byte 143,145
	.byte 147,148
	.byte 150,152
	.byte 153,155
	.byte 156,158
	.byte 159,161
	.byte 163,164
	.byte 166,167
	.byte 169,170
	.byte 172,173
	.byte 175,176
	.byte 177,179
	.byte 180,182
	.byte 183,185
	.byte 186,187
	.byte 189,190
	.byte 191,193
	.byte 194,195
	.byte 196,198
	.byte 199,200
	.byte 201,203
	.byte 204,205
	.byte 206,207
	.byte 209,210
	.byte 211,212
	.byte 213,214
	.byte 215,216
	.byte 217,218
	.byte 219,221
	.byte 222,222
	.byte 223,224
	.byte 225,226
	.byte 227,228
	.byte 229,230
	.byte 231,232
	.byte 232,233
	.byte 234,235
	.byte 236,236
	.byte 237,238
	.byte 239,239
	.byte 240,241
	.byte 241,242
	.byte 243,243
	.byte 244,244
	.byte 245,245
	.byte 246,246
	.byte 247,247
	.byte 248,248
	.byte 249,249
	.byte 250,250
	.byte 250,251
	.byte 251,252
	.byte 252,252
	.byte 252,253
	.byte 253,253
	.byte 253,254
	.byte 254,254
	.byte 254,254
	.byte 254,255
	.byte 255,255
	.byte 255,255
	.byte 255,255
	.byte 255,255
	.dbfile E:\张秋伟\我的实验\数控电压源\boxing.c
	.dbsym e Sin _Sin A[202:202]kc
	.area text(rom, con, rel)
	.dbfile E:\张秋伟\我的实验\数控电压源\boxing.c
	.dbfunc e saw _saw fV
;           data -> <dead>
;              i -> R16
	.even
_saw::
	.dbline -1
	.dbline 47
; //包含所需头文件
; #include <ioM16v.h>
; #include <macros.h>
; #include "delay.h"
; 
; /*------宏定义------*/
; #define uchar	unsigned char
; #define uint	unsigned int
; #define BYTE unsigned char 
; 
; #define DAC_DATA    PORTB
; #define DAC_DDR     DDRB
; 
; extern uchar  dec_to_bin(uchar data);
; 
; const BYTE Sin[]={0x00,0x02,0x04,0x06,0x08,0x0a,0x0c,
;                   0x0e,0x10,0x12,0x14,0x16,0x18,0x1a,
; 				  0x1c,0x1e,0x20,0x22,0x24,0x26,0x28,
; 				  0x2a,0x2c,0x2e,0x30,0x32,0x34,0x36,
; 				  0x38,0x3a,0x3c,0x3d,0x3f,0x41,0x43,
; 				  0x45,0x47,0x49,0x4b,0x4d,0x4f,0x51,
; 				  0x53,0x54,0x56,0x58,0x5a,0x5c,0x5e,
; 				  0x60,0x62,0x63,0x65,0x67,0x69,0x6b,
; 				  0x6d,0x6e,0x70,0x72,0x74,0x76,0x77,
; 				  0x79,0x7b,0x7d,0x7e,0x80,0x82,0x84,
; 				  0x85,0x87,0x89,0x8a,0x8c,0x8e,0x8f,
; 				  0x91,0x93,0x94,0x96,0x98,0x99,0x9b,
; 				  0x9c,0x9e,0x9f,0xa1,0xa3,0xa4,0xa6,
; 				  0xa7,0xa9,0xaa,0xac,0xad,0xaf,0xb0,
; 				  0xb1,0xb3,0xb4,0xb6,0xb7,0xb9,0xba,
; 				  0xbb,0xbd,0xbe,0xbf,0xc1,0xc2,0xc3,
; 				  0xc4,0xc6,0xc7,0xc8,0xc9,0xcb,0xcc,
; 				  0xcd,0xce,0xcf,0xd1,0xd2,0xd3,0xd4,
; 				  0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdb,
; 				  0xdd,0xde,0xde,0xdf,0xe0,0xe1,0xe2,
; 				  0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe8,
; 				  0xe9,0xea,0xeb,0xec,0xec,0xed,0xee,
; 				  0xef,0xef,0xf0,0xf1,0xf1,0xf2,0xf3,
; 				  0xf3,0xf4,0xf4,0xf5,0xf5,0xf6,0xf6,
; 				  0xf7,0xf7,0xf8,0xf8,0xf9,0xf9,0xfa,
; 				  0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,
; 				  0xfc,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,
; 				  0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,
; 				  0xff,0xff,0xff,0xff,0xff,0xff}; 
; 
; void saw(void)//锯齿波发生函数
; {
	.dbline 49
;   uchar  i,data;
;   for(i=0;i<255;i++)
	clr R16
	xjmp L5
L2:
	.dbline 50
	.dbline 52
	out 0x18,R16
	.dbline 53
L3:
	.dbline 49
	inc R16
L5:
	.dbline 49
	cpi R16,255
	brlo L2
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbsym l data 1 c
	.dbsym r i 16 c
	.dbend
	.dbfunc e square _square fV
	.even
_square::
	.dbline -1
	.dbline 57
;   {
;    //data=dec_to_bin(i);
;    DAC_DATA=i;
;   }
; }
; 
; void square(void)//方波发生函数
; {
	.dbline 58
;   DAC_DATA=0x00;
	clr R2
	out 0x18,R2
	.dbline 59
;   delay_nms(5000);
	ldi R16,5000
	ldi R17,19
	xcall _delay_nms
	.dbline 60
;   DAC_DATA=0xff;
	ldi R24,255
	out 0x18,R24
	.dbline 61
;   delay_nms(5000);
	ldi R16,5000
	ldi R17,19
	xcall _delay_nms
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e SIN _SIN fV
;              i -> R20
	.even
_SIN::
	xcall push_gset1
	.dbline -1
	.dbline 65
; }
; 
; void SIN(void)
; {
	.dbline 66
;   uchar i=0x00;
	clr R20
	.dbline 67
;   DAC_DATA=Sin[i];
	ldi R24,<_Sin
	ldi R25,>_Sin
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	out 0x18,R30
	.dbline 68
;   i++; 
	inc R20
	.dbline 69
;    if(i==200) 
	cpi R20,200
	brne L8
	.dbline 70
;    { 
	.dbline 71
;      i=0x00; 
	clr R20
	.dbline 72
;    } 
L8:
	.dbline 73
;     delay_nms(5000);
	ldi R16,5000
	ldi R17,19
	xcall _delay_nms
	.dbline -2
L7:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend

⌨️ 快捷键说明

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