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

📄 m4094.s

📁 AVRmega8515的AD转换
💻 S
字号:
	.module m4094.c
	.area text(rom, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
_table2::
	.blkb 2
	.area idata
	.byte 129,183
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.blkb 2
	.area idata
	.byte 194,146
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.blkb 2
	.area idata
	.byte 180,152
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.blkb 2
	.area idata
	.byte 136,179
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.blkb 2
	.area idata
	.byte 128,144
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.dbsym e table2 _table2 A[10:10]c
_led_buffer::
	.blkb 2
	.area idata
	.byte 0,3
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.blkb 2
	.area idata
	.byte 0,0
	.area data(ram, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.dbsym e led_buffer _led_buffer A[4:4]c
	.area text(rom, con, rel)
	.dbfile F:\学习\AVR单片机\AVR实验\adc0832_avr\m4094.c
	.dbfunc e update_display_dp _update_display_dp fV
;   byte_counter -> R20
;      bit_count -> R22
;         temp_i -> R10
;              k -> R12,R13
	.even
_update_display_dp::
	rcall push_xgsetF03C
	movw R12,R16
	.dbline -1
	.dbline 11
; /*4094显示模式
; 基于实验板接线方式
; */
; #include "d4094.h"
; 
; 
; uchar table2[10]={0x81,0xB7,0xC2,0x92,0xB4,0x98,0x88,0xB3,0x80,0x90};
; uchar led_buffer[4]={0,3};
; 
; void update_display_dp(uint k)
; {
	.dbline 12
; 	 uchar bit_count=0;
	clr R22
	.dbline 13
; 	 uchar byte_counter=0;
	clr R20
	.dbline 14
;      uchar temp_i=0;
	clr R10
	.dbline 16
; 	 
;      led_buffer[3]=k/1000;
	ldi R18,1000
	ldi R19,3
	movw R16,R12
	rcall div16u
	sts _led_buffer+3,R16
	.dbline 17
;      led_buffer[2]=(k%1000)/100;
	ldi R18,1000
	ldi R19,3
	movw R16,R12
	rcall mod16u
	ldi R18,100
	ldi R19,0
	rcall div16u
	sts _led_buffer+2,R16
	.dbline 18
;      led_buffer[1]=(k%100)/10;
	ldi R18,100
	ldi R19,0
	movw R16,R12
	rcall mod16u
	ldi R18,10
	ldi R19,0
	rcall div16u
	sts _led_buffer+1,R16
	.dbline 19
;      led_buffer[0]=k%10;
	ldi R18,10
	ldi R19,0
	movw R16,R12
	rcall mod16u
	sts _led_buffer,R16
	.dbline 21
; 	 
;      CLR_STR_4094;//led_str_off;
	cbi 0x15,6
	.dbline 22
;      CLR_CLK_4094;//led_clk_off;
	cbi 0x15,5
	.dbline 24
; 	
;      for(byte_counter=0;byte_counter<4;byte_counter++)
	rjmp L8
L5:
	.dbline 25
; 	   {
	.dbline 26
; 	      bit_count=8;
	ldi R22,8
	.dbline 27
; 	       temp_i=table2[led_buffer[byte_counter]];
	ldi R24,<_led_buffer
	ldi R25,>_led_buffer
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	ldd R30,z+0
	clr R31
	ldi R24,<_table2
	ldi R25,>_table2
	add R30,R24
	adc R31,R25
	ldd R10,z+0
	rjmp L10
L9:
	.dbline 30
; 
; 	       while(bit_count>0)
; 		      {
	.dbline 31
; 		      if((temp_i&0x01)==0)
	sbrc R10,0
	rjmp L12
X0:
	.dbline 32
; 			     {
	.dbline 33
; 			         CLR_DATA_4094;//led_d_off;
	cbi 0x15,4
	.dbline 34
; 			      }
	rjmp L13
L12:
	.dbline 36
; 	        	else
; 		        	{
	.dbline 37
; 			      SET_DATA_4094;//led_d_on;
	sbi 0x15,4
	.dbline 38
; 			           }
L13:
	.dbline 39
; 		temp_i=(temp_i>>1);
	lsr R10
	.dbline 42
; 		
; 	
; 		SET_CLK_4094;//led_clk_on;
	sbi 0x15,5
	.dbline 44
; 
; 		CLR_CLK_4094;//led_clk_off;
	cbi 0x15,5
	.dbline 46
; 
; 		bit_count--;			
	dec R22
	.dbline 48
; 		
; 		}
L10:
	.dbline 29
	ldi R24,0
	cp R24,R22
	brlo L9
X1:
	.dbline 50
; 	
; 	}
L6:
	.dbline 24
	inc R20
L8:
	.dbline 24
	cpi R20,4
	brlo L5
X2:
	.dbline 51
;     SET_STR_4094;
	sbi 0x15,6
	.dbline -2
L1:
	.dbline 0 ; func end
	rjmp pop_xgsetF03C
	.dbsym r byte_counter 20 c
	.dbsym r bit_count 22 c
	.dbsym r temp_i 10 c
	.dbsym r k 12 i
	.dbend
;  
;  
; }
; 
;       

⌨️ 快捷键说明

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