亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? motor_main.s

?? 基于AVRICC開發環境的ATMEL mega16單片機的電機速度控制程序
?? S
字號:
	.module motor_main.c
	.area code(ram, con, rel)
	.area lit(rom, con, rel)
_table::
	.byte 189,132
	.byte 217,205
	.byte 228,'m
	.byte 125,133
	.byte 253,237
	.dbfile C:\icc\speedloop\motor_main.c
	.dbsym e table _table A[10:10]kc
	.area data(ram, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
_ledbuff::
	.blkb 2
	.area idata
	.byte 189,189
	.area data(ram, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
	.blkb 2
	.area idata
	.byte 189,189
	.area data(ram, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
	.dbsym e ledbuff _ledbuff A[4:4]c
	.area text(rom, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
	.dbfunc e port_init _port_init fV
	.even
_port_init::
	.dbline -1
	.dbline 19
; //ICC-AVR application builder : 2005-8-3 
; // Target : M16
; // Crystal: 4.0000Mhz
; //closed speed loop controlling 
; 
; #include <iom16v.h>
; #include <macros.h>
; 
; #pragma data:code
; const unsigned char table[]={0xbd,0x84,0xd9,0xcd,0xe4,0x6d,0x7d,0x85,0xfd,0xed};//7segment
; #pragma data:data
; unsigned char ledbuff[]={0xbd,0xbd,0xbd,0xbd};
; 
; unsigned char adc_res8,count;
; unsigned char ad_mux;
; unsigned int adc_res16,count16;
; 
; void port_init(void)
; {
	.dbline 20
;  PORTA = 0x00;
	clr R2
	out 0x1b,R2
	.dbline 21
;  DDRA  = 0xF0;//HIGH 4BIT AS OUTPUT
	ldi R24,240
	out 0x1a,R24
	.dbline 22
;  PORTB = 0x00;
	out 0x18,R2
	.dbline 23
;  DDRB  = 0xfd;//t1 input other output
	ldi R24,253
	out 0x17,R24
	.dbline 24
;  PORTC = 0x00; //m103 output only
	out 0x15,R2
	.dbline 25
;  DDRC  = 0x00;
	out 0x14,R2
	.dbline 26
;  PORTD = 0x00;
	out 0x12,R2
	.dbline 27
;  DDRD  = 0xFF;//port d as a output
	ldi R24,255
	out 0x11,R24
	.dbline -2
L1:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer0_init _timer0_init fV
	.even
_timer0_init::
	.dbline -1
	.dbline 36
; }
; 
; 
; //TIMER0 initialize - prescale:64
; // WGM: Normal
; // desired value: 2mSec
; // actual value:  2.000mSec (0.0%)
; void timer0_init(void)
; {
	.dbline 37
;  TCCR0 = 0x00; //stop
	clr R2
	out 0x33,R2
	.dbline 38
;  TCNT0 = 0x16; //set count
	ldi R24,22
	out 0x32,R24
	.dbline 39
;  OCR0  = 0x57;  //set compare
	ldi R24,87
	out 0x3c,R24
	.dbline 40
;  TCCR0 = 0x05; //start timer
	ldi R24,5
	out 0x33,R24
	.dbline -2
L2:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 36
	jmp _timer0_ovf_isr
	.area text(rom, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
	.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
;           temp -> R16
	.even
_timer0_ovf_isr::
	st -y,R2
	st -y,R3
	st -y,R16
	st -y,R24
	st -y,R25
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 45
; }
; 
; #pragma interrupt_handler timer0_ovf_isr:10
; void timer0_ovf_isr(void)
; {
	.dbline 47
;  unsigned char temp;
;  temp=SREG;
	in R16,0x3f
	.dbline 49
;  //unsigned int temp16;
;  TCCR1B=0X00;//STOP T1
	clr R2
	out 0x2e,R2
	.dbline 50
;  TCCR0=0X00;//STOP T0
	out 0x33,R2
	.dbline 51
;  count++;
	lds R24,_count
	subi R24,255    ; addi 1
	sts _count,R24
	.dbline 52
;  count16=TCNT1;
	in R2,0x2c
	in R3,0x2d
	sts _count16+1,R3
	sts _count16,R2
	.dbline 53
;  TCNT1H = 0x00 /*INVALID SETTING*/; //setup
	clr R2
	out 0x2d,R2
	.dbline 54
;  TCNT1L = 0x00 /*INVALID SETTING*/;
	out 0x2c,R2
	.dbline 56
;   
;  TCNT0 = 0x16; //reload counter value
	ldi R24,22
	out 0x32,R24
	.dbline 57
;  OCR0=0X57;
	ldi R24,87
	out 0x3c,R24
	.dbline 58
;  TCCR0=0X05;//START TIMER0
	ldi R24,5
	out 0x33,R24
	.dbline 59
;  TCCR1B=0X07;//START T1
	ldi R24,7
	out 0x2e,R24
	.dbline 60
;   if (count16==0)
	lds R2,_count16
	lds R3,_count16+1
	tst R2
	brne L4
	tst R3
	brne L4
X0:
	.dbline 61
;    {
	.dbline 62
;    	TCCR0=0X00;
	clr R2
	out 0x33,R2
	.dbline 63
;    }
L4:
	.dbline 64
;  SREG=temp;
	out 0x3f,R16
	.dbline -2
L3:
	ld R2,y+
	out 0x3f,R2
	ld R25,y+
	ld R24,y+
	ld R16,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbsym r temp 16 c
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 71
; }
; //TIMER1 initialize - prescale:Rising edge
; // WGM: 0) Normal, TOP=0xFFFF
; // desired value: 1Hz
; // actual value: Out of range
; void timer1_init(void)
; {
	.dbline 72
;  TCCR1B = 0x00; //stop
	clr R2
	out 0x2e,R2
	.dbline 73
;  TCNT1H = 0x00 /*INVALID SETTING*/; //setup
	out 0x2d,R2
	.dbline 74
;  TCNT1L = 0x00 /*INVALID SETTING*/;
	out 0x2c,R2
	.dbline 75
;  OCR1AH = 0x00 /*INVALID SETTING*/;
	out 0x2b,R2
	.dbline 76
;  OCR1AL = 0x00 /*INVALID SETTING*/;
	out 0x2a,R2
	.dbline 77
;  OCR1BH = 0x00 /*INVALID SETTING*/;
	out 0x29,R2
	.dbline 78
;  OCR1BL = 0x00 /*INVALID SETTING*/;
	out 0x28,R2
	.dbline 81
;  //OCR1CH = $OCR1CH$;
;  //OCR1CL = $OCR1CL$;
;  ICR1H  = 0x00 /*INVALID SETTING*/;
	out 0x27,R2
	.dbline 82
;  ICR1L  = 0x00 /*INVALID SETTING*/;
	out 0x26,R2
	.dbline 83
;  TCCR1A = 0x00;
	out 0x2f,R2
	.dbline 84
;  TCCR1B = 0x07; //start Timer
	ldi R24,7
	out 0x2e,R24
	.dbline -2
L6:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer2_init _timer2_init fV
	.even
_timer2_init::
	.dbline -1
	.dbline 91
; }
;        
; //TIMER2 initialize - prescale:1
; // WGM: PWM Phase correct
; // actual value: 15.686KHz (93.6%)
; void timer2_init(void)
; {
	.dbline 92
;  TCCR2 = 0x00; //stop
	clr R2
	out 0x25,R2
	.dbline 93
;  ASSR  = 0x00; //set async mode
	out 0x22,R2
	.dbline 94
;  TCNT2 = 0x01; //setup
	ldi R24,1
	out 0x24,R24
	.dbline 95
;  OCR2  = 0xFF;
	ldi R24,255
	out 0x23,R24
	.dbline 96
;  TCCR2 = 0x61; //start
	ldi R24,97
	out 0x25,R24
	.dbline -2
L7:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e adc_init _adc_init fV
	.even
_adc_init::
	.dbline -1
	.dbline 111
; }
; 
; //#pragma interrupt_handler timer2_ovf_isr:5
; //void timer2_ovf_isr(void)
; //{
; // unsigned char temp;
; // temp=SREG;
; // OCR2=adc_res8;
; // SREG=temp; 
; //}
; 
; //ADC initialize
; // Conversion time: 3uS
; void adc_init(void)
; {ad_mux=0x01;
	.dbline 111
	ldi R24,1
	sts _ad_mux,R24
	.dbline 112
;  ADCSR = 0x00; //disable adc
	clr R2
	out 0x6,R2
	.dbline 113
;  ADMUX = (1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(ad_mux&0x0f); //select adc input 0
	andi R24,15
	ori R24,224
	out 0x7,R24
	.dbline 114
;  ACSR  = 0x80;
	ldi R24,128
	out 0x8,R24
	.dbline 115
;  ADCSRA = (1<<ADEN)|(1<<ADSC)|(1<<ADIE)|(1<<ADPS2)|(1<<ADPS1);
	ldi R24,206
	out 0x6,R24
	.dbline -2
L8:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e init_devices _init_devices fV
	.even
_init_devices::
	.dbline -1
	.dbline 133
; }
; 
; //#pragma interrupt_handler adc_isr:15
; //void adc_isr(void)
; //{
; // 	 unsigned char temp;
; //	 temp=SREG;
;  	// adc_res8=ADCH;
; 	 //hex2bcd(adc_res8);
; 	 //ad_mux=0x01;
; 	 //ADMUX=(1<<REFS1)|(1<<REFS0)|(1<<ADLAR)|(ad_mux&0x0f);
; //	 ADCSRA|=(1<<ADSC);//start adc again
; // SREG=temp;
; //}
; 
; //call this routine to initialize all peripherals
; void init_devices(void)
; {
	.dbline 135
;  //stop errant interrupts until set up
;  CLI(); //disable all interrupts
	cli
	.dbline 136
;  port_init();
	xcall _port_init
	.dbline 137
;  timer0_init();
	xcall _timer0_init
	.dbline 138
;  timer1_init();
	xcall _timer1_init
	.dbline 139
;  timer2_init();
	xcall _timer2_init
	.dbline 142
;  //adc_init();
; 
;  MCUCR = 0x00;
	clr R2
	out 0x35,R2
	.dbline 143
;  GICR  = 0x00;
	out 0x3b,R2
	.dbline 144
;  TIMSK = 0x41; //enable timer0 timer2 interrupt sources
	ldi R24,65
	out 0x39,R24
	.dbline 145
;  SEI(); //re-enable interrupts
	sei
	.dbline -2
L9:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e delay_1ms _delay_1ms fV
;              i -> R16,R17
	.even
_delay_1ms::
	.dbline -1
	.dbline 149
;  //all peripherals are now initialized
; }
; void delay_1ms(void)
; {
	.dbline 151
;  unsigned int i;
;  for (i=0;i<542;i++)
	clr R16
	clr R17
	xjmp L14
L11:
	.dbline 152
L12:
	.dbline 151
	subi R16,255  ; offset = 1
	sbci R17,255
L14:
	.dbline 151
	cpi R16,30
	ldi R30,2
	cpc R17,R30
	brlo L11
	.dbline -2
L10:
	.dbline 0 ; func end
	ret
	.dbsym r i 16 i
	.dbend
	.dbfunc e hex2bcd _hex2bcd fV
;           temp -> R20
;              i -> R22
;            cnt -> R10,R11
	.even
_hex2bcd::
	xcall push_gset3
	movw R10,R16
	.dbline -1
	.dbline 155
;  ;
; }
; void hex2bcd(unsigned int cnt)
; {
	.dbline 157
;  unsigned char i,temp;
;  for (i=0;i<4;i++)
	clr R22
	xjmp L19
L16:
	.dbline 158
	.dbline 159
	ldi R18,10
	ldi R19,0
	movw R16,R10
	xcall mod16u
	mov R20,R16
	.dbline 160
	ldi R24,<_table
	ldi R25,>_table
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	lpm R30,Z
	ldi R24,<_ledbuff
	ldi R25,>_ledbuff
	mov R26,R22
	clr R27
	add R26,R24
	adc R27,R25
	st x,R30
	.dbline 161
	ldi R18,10
	ldi R19,0
	movw R16,R10
	xcall div16u
	movw R10,R16
	.dbline 162
L17:
	.dbline 157
	inc R22
L19:
	.dbline 157
	cpi R22,4
	brlo L16
	.dbline -2
L15:
	xcall pop_gset3
	.dbline 0 ; func end
	ret
	.dbsym r temp 20 c
	.dbsym r i 22 c
	.dbsym r cnt 10 i
	.dbend
	.dbfunc e display _display fV
;              i -> R20
	.even
_display::
	xcall push_gset1
	.dbline -1
	.dbline 166
;  	 {
; 	  temp=cnt%10;
; 	  ledbuff[i]=table[temp];
; 	  cnt=cnt/10;
; 	 }
; }
; 
; void display(void)
; {
	.dbline 168
;  	 unsigned char i;
; 	 for (i=0;i<4;i++)
	clr R20
	xjmp L24
L21:
	.dbline 169
	.dbline 170
	ldi R24,<_ledbuff
	ldi R25,>_ledbuff
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	out 0x18,R2
	.dbline 171
	mov R17,R20
	subi R17,252    ; addi 4
	ldi R16,1
	xcall lsl8
	mov R2,R16
	com R2
	out 0x1b,R2
	.dbline 172
	xcall _delay_1ms
	.dbline 173
	mov R17,R20
	subi R17,252    ; addi 4
	ldi R16,1
	xcall lsl8
	in R2,0x1b
	or R2,R16
	out 0x1b,R2
	.dbline 174
L22:
	.dbline 168
	inc R20
L24:
	.dbline 168
	cpi R20,4
	brlo L21
	.dbline -2
L20:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e main _main fI
	.even
_main::
	.dbline -1
	.dbline 179
; 	 {
; 	  PORTB=ledbuff[i];
; 	  PORTA=~(1<<(4+i));
; 	  delay_1ms();
; 	  PORTA|=(1<<(4+i));
; 	 }
; }
; 
; 
; main()
; {
	.dbline 180
;  	  init_devices();
	xcall _init_devices
	.dbline 181
; 	  count=0;
	clr R2
	sts _count,R2
	xjmp L27
L26:
	.dbline 183
	.dbline 185
	lds R16,_count16
	lds R17,_count16+1
	xcall _hex2bcd
	.dbline 186
	xcall _display
	.dbline 187
L27:
	.dbline 182
	xjmp L26
X1:
	.dbline -2
L25:
	.dbline 0 ; func end
	ret
	.dbend
	.area bss(ram, con, rel)
	.dbfile C:\icc\speedloop\motor_main.c
_count16::
	.blkb 2
	.dbsym e count16 _count16 i
_adc_res16::
	.blkb 2
	.dbsym e adc_res16 _adc_res16 i
_ad_mux::
	.blkb 1
	.dbsym e ad_mux _ad_mux c
_count::
	.blkb 1
	.dbsym e count _count c
_adc_res8::
	.blkb 1
	.dbsym e adc_res8 _adc_res8 c

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品亚洲一区二区三区免费| 国产欧美一二三区| 色综合久久久久久久久| 成人免费观看男女羞羞视频| 国产一区二区不卡老阿姨| 男女视频一区二区| 美腿丝袜亚洲三区| 久久国产精品一区二区| 久久成人综合网| 国产综合久久久久久久久久久久| 久久99久久99精品免视看婷婷| 麻豆精品在线观看| 国产在线精品一区二区不卡了| 国产精品66部| 91女人视频在线观看| 在线一区二区三区四区五区 | 国产乱码一区二区三区| 久久99精品久久久久婷婷| 国产在线视频一区二区三区| 国产精品自在在线| 99在线精品免费| 欧美日韩免费高清一区色橹橹| 欧美视频精品在线观看| 欧美成人一区二区三区片免费| 久久伊99综合婷婷久久伊| 国产精品美女久久久久久| 亚洲自拍偷拍麻豆| 日韩av一区二区三区| 国产乱子伦视频一区二区三区| 99热精品国产| 欧美一区二区三区免费| 久久精品视频免费| 亚洲美女淫视频| 久久99精品久久久| 99久久久国产精品| 91精品国产乱码久久蜜臀| 国产日产欧美一区二区视频| 亚洲美腿欧美偷拍| 国产在线麻豆精品观看| 欧美综合视频在线观看| 精品女同一区二区| 一区二区三区中文字幕| 美女网站一区二区| av中文一区二区三区| 日韩欧美一区二区久久婷婷| 亚洲欧洲精品一区二区三区| 免费一级片91| 91黄色免费看| 国产精品久久三| 蜜臀av性久久久久蜜臀av麻豆| 成人av网站免费| 欧美一区二区三区的| 亚洲人成网站色在线观看| 久久狠狠亚洲综合| 欧美精品欧美精品系列| 国产精品欧美久久久久无广告 | 亚洲国产精品久久艾草纯爱| 国产精品羞羞答答xxdd| 日韩精品一区二区三区四区| 亚洲一区二区三区四区的| 国产成人在线免费| 精品国产一区二区精华| 亚洲线精品一区二区三区| 不卡区在线中文字幕| 国产丝袜欧美中文另类| 久久丁香综合五月国产三级网站| 欧美日韩综合在线| 亚洲一区二区三区在线看| 99国产精品久久久久久久久久久| 国产欧美一区二区三区鸳鸯浴| 久久精品国产精品青草| 日韩一区二区在线看片| 亚洲大片在线观看| 欧美影片第一页| 一区二区三区国产豹纹内裤在线| 白白色亚洲国产精品| 国产农村妇女毛片精品久久麻豆 | 在线中文字幕一区| 亚洲视频 欧洲视频| 日本乱人伦一区| 国产精品国产自产拍在线| 成人av网站在线观看免费| 中文字幕日本乱码精品影院| 成人av网站免费| 亚洲蜜桃精久久久久久久| 在线亚洲免费视频| 日韩专区中文字幕一区二区| 91麻豆精品国产91久久久久久| 琪琪久久久久日韩精品| 欧美精品一区二区三区高清aⅴ | 91啪亚洲精品| 亚洲自拍偷拍九九九| 91精品福利在线一区二区三区 | 欧美一区二区三区四区视频| 裸体健美xxxx欧美裸体表演| 日韩精品一区二区三区中文精品| 极品少妇xxxx偷拍精品少妇| 国产丝袜美腿一区二区三区| 色婷婷久久久久swag精品 | 欧美va亚洲va在线观看蝴蝶网| 久久99热狠狠色一区二区| 久久精品无码一区二区三区| 99久久精品免费| 香港成人在线视频| 久久亚洲综合av| 色丁香久综合在线久综合在线观看| 一区二区三区欧美日| 欧美电影免费提供在线观看| 白白色 亚洲乱淫| 午夜欧美电影在线观看| 久久综合色天天久久综合图片| 成人av在线资源| 亚洲人午夜精品天堂一二香蕉| 欧美伦理电影网| 国产麻豆精品95视频| 国产精品动漫网站| 日韩欧美国产一区二区在线播放| 成人免费观看视频| 免费观看成人av| 日韩美女视频19| 精品国产乱码久久| 欧美午夜电影网| 成人涩涩免费视频| 午夜精品久久久久久久久| 国产偷国产偷精品高清尤物 | 国产麻豆视频一区二区| 一区二区三区在线免费视频| 久久影院午夜片一区| 欧美午夜精品久久久久久孕妇| 国产成人精品免费| 久久激五月天综合精品| 亚洲国产wwwccc36天堂| 国产精品电影一区二区三区| 欧美videos中文字幕| 欧美剧情片在线观看| 91蜜桃免费观看视频| 福利电影一区二区三区| 老司机精品视频线观看86| 亚洲成av人片在www色猫咪| 日韩美女视频一区二区 | 波多野结衣视频一区| 国内精品久久久久影院一蜜桃| 午夜国产不卡在线观看视频| 亚洲精品国产品国语在线app| 国产精品网站在线播放| 久久精品亚洲精品国产欧美kt∨| 日韩一区二区免费在线电影| 欧美人与性动xxxx| 欧美日本韩国一区二区三区视频 | 亚洲午夜久久久| 亚洲丝袜另类动漫二区| 国产精品美女久久久久aⅴ国产馆| 久久伊人中文字幕| 精品国产三级a在线观看| 欧美大片一区二区| 欧美成人一级视频| 精品国产一区二区三区忘忧草| 日韩免费看的电影| 精品美女在线观看| 亚洲精品在线免费观看视频| 久久亚洲欧美国产精品乐播 | 国产精品国产精品国产专区不蜜 | 国产伦精品一区二区三区免费迷| 久久97超碰国产精品超碰| 久国产精品韩国三级视频| 韩国v欧美v日本v亚洲v| 国产乱子轮精品视频| 高清不卡在线观看| 色综合久久久久网| 欧美精选午夜久久久乱码6080| 欧美日本在线观看| 久久麻豆一区二区| 中文字幕在线一区免费| 亚洲激情中文1区| 日韩av午夜在线观看| 经典一区二区三区| 成人av电影在线观看| 欧美综合视频在线观看| 日韩精品一区二区三区在线播放 | 亚洲色图.com| 日本成人在线一区| 国产精品亚洲成人| 欧美在线高清视频| 日韩免费视频一区| 国产精品第13页| 日本大胆欧美人术艺术动态| 国产aⅴ精品一区二区三区色成熟| 91丨porny丨首页| 欧美一级在线免费| 国产精品成人一区二区艾草| 日韩中文字幕亚洲一区二区va在线 | 亚洲成年人网站在线观看| 久久精品理论片| 91丝袜国产在线播放| 欧美videos中文字幕| 亚洲欧美一区二区三区久本道91 | 亚洲尤物视频在线| 国产精品一二三四| 欧美亚洲一区二区在线观看| 精品国产髙清在线看国产毛片|