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

📄 main.lss

📁 使用Atmega8单片机开发的一个激光治疗仪的人机接口程序
💻 LSS
📖 第 1 页 / 共 5 页
字号:
     90c:	12 ba       	out	0x12, r1	; 18
     90e:	08 95       	ret

00000910 <Timer_Init>:
}

void Timer_Init(void)
{
	TCCR0=0x05;//[--,--,--,--,--,CS02,CS01,CS00]
     910:	85 e0       	ldi	r24, 0x05	; 5
     912:	83 bf       	out	0x33, r24	; 51
	TCNT0=0x64;
     914:	84 e6       	ldi	r24, 0x64	; 100
     916:	82 bf       	out	0x32, r24	; 50
	TCCR1A = 0x08;//TCCR1A = 0x40;//OCIE1A置位//[COM1A1,COM1A0,COM1B1,COM1B0,FOC1A,FOC1B,WGM11,WGM10]
     918:	88 e0       	ldi	r24, 0x08	; 8
     91a:	8f bd       	out	0x2f, r24	; 47
	TCCR1B = 0x01; //start Timer,无分频 //[ICNC1,ICES1,--,WGM13,WGM12,CS12,CS11,CS10]
     91c:	81 e0       	ldi	r24, 0x01	; 1
     91e:	8e bd       	out	0x2e, r24	; 46
	TCNT1=0x0000;	
     920:	1d bc       	out	0x2d, r1	; 45
     922:	1c bc       	out	0x2c, r1	; 44
//	TCNT1L;
//	TCNT1H;

	//OCR1A=0x7D00;
	OCR1A=0x3E80;	//  (1/8)*0x3e80*500=1000ms
     924:	80 e8       	ldi	r24, 0x80	; 128
     926:	9e e3       	ldi	r25, 0x3E	; 62
     928:	9b bd       	out	0x2b, r25	; 43
     92a:	8a bd       	out	0x2a, r24	; 42
	//OCR1A=0x1F40;
	//OCR1A=0x0FA0;
	//OCR1A=0x07D0;
	//OCR1A=0x0320;
	//OCR1A=0x00C8;
//	OCR1AL;
//	OCR1AH;
	//OCR1B=0xFFFF;
//	OCR1BL;
//	OCR1BH;
	ICR1=0x0000;
     92c:	17 bc       	out	0x27, r1	; 39
     92e:	16 bc       	out	0x26, r1	; 38
//	ICR1L;
//	ICR1H;
	TCCR2=0x00;//[FOC2,WGM20,COM21,COM20,WGM21,CS22,CS21,CS20]//start Timer,32分频 
     930:	15 bc       	out	0x25, r1	; 37
	TCNT2=0X00;
     932:	14 bc       	out	0x24, r1	; 36
	OCR2=0xFA;	//250*1/8*32=1s
     934:	8a ef       	ldi	r24, 0xFA	; 250
     936:	83 bd       	out	0x23, r24	; 35
	ASSR;//[--,--,--,--,AS2,TCN2UB,OCR2UB,TCR2UB]
     938:	82 b5       	in	r24, 0x22	; 34
     93a:	08 95       	ret

0000093c <UART_Init>:
	//WDTCR=0x1F;//[--,--,--,WDCE,WDE,WDP2,WDP1,WDP0] //WDTCR=0x1F;
}

void UART_Init(void)
{
	UBRRL;//[UBRR7,UBRR6,UBRR5,UBRR4,UBRR3,UBRR2,UBRR1,UBRR0]
     93c:	89 b1       	in	r24, 0x09	; 9
	UBRRH;//[URSEL,--,--,--,UBRR11,UBRR10,UBRR9,UBRR8]
     93e:	80 b5       	in	r24, 0x20	; 32
	UCSRA;//[RXC,TXC,UDRE,FE,DOR,PE,U2X,MPCM]
     940:	8b b1       	in	r24, 0x0b	; 11
	UCSRB;//[RXCIE,TXCIE,UDRIE,RXEN,TXEN,UCSZ2,RXB8,TXB8]
     942:	8a b1       	in	r24, 0x0a	; 10
	UCSRC;//[URSEL,UMSEL,UPM1,UPM0,USBS,UCSZ1,UCSZ0,UCPOL]
     944:	80 b5       	in	r24, 0x20	; 32
	UDR;
     946:	8c b1       	in	r24, 0x0c	; 12
     948:	08 95       	ret

0000094a <IIC_Init>:
/******	
	UBRRH=0;
	UBRRL=23;
	UCSRB=(1<<RXEN)|(1<<TXEN);
**********/
}

void IIC_Init(void)
{
	TWBR;//[TWBR7,TWBR6,TWBR5,TWBR4,TWBR3,TWBR2,TWBR1,TWBR0]
     94a:	80 b1       	in	r24, 0x00	; 0
	TWSR;//[TWS7,TWS6,TWS5,TWS4,TWS3,--,TWPS1,TWPS0]
     94c:	81 b1       	in	r24, 0x01	; 1
	TWAR;//[TWA6,TWA5,TWA4,TWA3,TWA2,TWA1,TWA0,TWGCE]
     94e:	82 b1       	in	r24, 0x02	; 2
	TWDR;//[TWD7,TWD6,TWD5,TWD4,TWD3,TWD2,TWD1,TWD0]
     950:	83 b1       	in	r24, 0x03	; 3
	TWCR;//[TWINT,TWEA,TWSTA,TWSTO,TWWC,TWEN,--,TWIE]
     952:	86 b7       	in	r24, 0x36	; 54
     954:	08 95       	ret

00000956 <SPI_Init>:
}

void SPI_Init(void)
{
	SPCR;//[SPIE,SPE,DORD,MSTR,CPOL,CPHA,SPR1,SPR0]
     956:	8d b1       	in	r24, 0x0d	; 13
	SPSR;//[SPIF,WCOL,--,--,--,--,--,SPI2X]
     958:	8e b1       	in	r24, 0x0e	; 14
	SPDR;//[MSB,--,--,--,--,--,--,LSB]
     95a:	8f b1       	in	r24, 0x0f	; 15
     95c:	08 95       	ret

0000095e <ADC_Init>:
}

void ADC_Init(void)
{
	ADCW;
     95e:	84 b1       	in	r24, 0x04	; 4
     960:	95 b1       	in	r25, 0x05	; 5
	/****
	ADCL=0;
	ADCH=0;
	ADCSR=;//[ADEN,ADSC,ADFR,ADIF,ADIE,ADPS2,ADPS1,ADPS0]
	ADMUX=;//[REFS1,REFS0,ADLAR,--,MUX3,MUX2,MUX1,MUX0]
	*****/

 //ADCH=0;
 //ADCL=0;
ADCSRA=0X00; 
     962:	16 b8       	out	0x06, r1	; 6
ACSR  =(1<<ACD);//关闭模拟比较器  
     964:	80 e8       	ldi	r24, 0x80	; 128
     966:	88 b9       	out	0x08, r24	; 8
ADMUX=0x46;
     968:	86 e4       	ldi	r24, 0x46	; 70
     96a:	87 b9       	out	0x07, r24	; 7
ADCSRA=0xD6;
     96c:	86 ed       	ldi	r24, 0xD6	; 214
     96e:	86 b9       	out	0x06, r24	; 6
     970:	08 95       	ret

00000972 <Comparator_Init>:
}

void Comparator_Init(void)
{
	ACSR==0x80;//[ADC,ACBG,ACO,ACI,ACIE,ACIC,ACIS1,ACIS0]
     972:	88 b1       	in	r24, 0x08	; 8
     974:	08 95       	ret

00000976 <EEPROM_Init>:
}

void EEPROM_Init(void)
{
	EECR;//[1,1,BLB12,BLB11,EERIE,EEMWE,EEWE,EERELSB]
     976:	8c b3       	in	r24, 0x1c	; 28
	EEDR;//[MSB,--,--,--,--,--,--,LSB]
     978:	8d b3       	in	r24, 0x1d	; 29
	EEAR;
     97a:	8e b3       	in	r24, 0x1e	; 30
     97c:	9f b3       	in	r25, 0x1f	; 31
	EEARL;//[EEAR7,EEAR6,EEAR5,EEAR4,EEAR3,EEAR2,EEAR1,EEAR0]
     97e:	8e b3       	in	r24, 0x1e	; 30
	EEARH;//[--,--,--,--,--,--,--,EEAR8]
     980:	8f b3       	in	r24, 0x1f	; 31
     982:	08 95       	ret

00000984 <Flash_Init>:
}

void Flash_Init(void)
{
	SPMCR;
     984:	87 b7       	in	r24, 0x37	; 55
     986:	08 95       	ret

00000988 <Interrupts_Init>:
}
void Interrupts_Init(void)
{
	TIFR;//[OCF2,TOV2,ICF1,OCF1A,OCF1B,TOV1,--,TOV0]
     988:	88 b7       	in	r24, 0x38	; 56
	TIMSK=0x10;//TIMSK=0x99;//[OCIE2,TOIE2,T1CIE1,OCIE1A,OCIE1B,TOIE1,--,TOIE0]
     98a:	80 e1       	ldi	r24, 0x10	; 16
     98c:	89 bf       	out	0x39, r24	; 57
	GIFR;//[INTF1,INTF0,--,--,--,--,--,--]
     98e:	8a b7       	in	r24, 0x3a	; 58
	GIMSK;//[INT1,INT0,--,--,--,--,IVSEL,IVCE]
     990:	8b b7       	in	r24, 0x3b	; 59
	MCUCR;//[SE,SM2,SM1,SM0,ISC11,ISC10,ISC01,ISC00]
     992:	85 b7       	in	r24, 0x35	; 53
     994:	08 95       	ret

00000996 <Init_Device>:
}

// Initialization function for device,
// Call Init_Device() from your main program
void Init_Device(void)
{
	Reg_Init();
     996:	a3 df       	rcall	.-186    	; 0x8de <Reg_Init>
	Oscillator_Init();
     998:	a9 df       	rcall	.-174    	; 0x8ec <Oscillator_Init>
	Port_Init();
     99a:	ab df       	rcall	.-170    	; 0x8f2 <Port_Init>
    Timer_Init();
     99c:	b9 df       	rcall	.-142    	; 0x910 <Timer_Init>
	UART_Init();
     99e:	ce df       	rcall	.-100    	; 0x93c <UART_Init>
	IIC_Init();
     9a0:	d4 df       	rcall	.-88     	; 0x94a <IIC_Init>
	SPI_Init();
     9a2:	d9 df       	rcall	.-78     	; 0x956 <SPI_Init>
	ADC_Init();
     9a4:	dc df       	rcall	.-72     	; 0x95e <ADC_Init>
	Comparator_Init();
     9a6:	e5 df       	rcall	.-54     	; 0x972 <Comparator_Init>
	Interrupts_Init();
     9a8:	ef df       	rcall	.-34     	; 0x988 <Interrupts_Init>
     9aa:	08 95       	ret

000009ac <DelayMs>:
#include "config.h"
#include "SOUND.h"

void DelayMs(uint ms)	
{
     9ac:	ac 01       	movw	r20, r24
uint i;
for(i=0;i<ms;i++)
     9ae:	20 e0       	ldi	r18, 0x00	; 0
     9b0:	30 e0       	ldi	r19, 0x00	; 0
     9b2:	24 17       	cp	r18, r20
     9b4:	35 07       	cpc	r19, r21
     9b6:	38 f4       	brcc	.+14     	; 0x9c6 <DelayMs+0x1a>
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
     9b8:	80 ed       	ldi	r24, 0xD0	; 208
     9ba:	97 e0       	ldi	r25, 0x07	; 7
	__asm__ volatile (
     9bc:	01 97       	sbiw	r24, 0x01	; 1
     9be:	f1 f7       	brne	.-4      	; 0x9bc <DelayMs+0x10>
     9c0:	2f 5f       	subi	r18, 0xFF	; 255
     9c2:	3f 4f       	sbci	r19, 0xFF	; 255
     9c4:	f6 cf       	rjmp	.-20     	; 0x9b2 <DelayMs+0x6>
     9c6:	08 95       	ret

000009c8 <DelayUs>:
_delay_loop_2(8*250);
}

void DelayUs(uint us)	
{
     9c8:	ac 01       	movw	r20, r24
uint i;
for(i=0;i<us;i++)
     9ca:	20 e0       	ldi	r18, 0x00	; 0
     9cc:	30 e0       	ldi	r19, 0x00	; 0
     9ce:	24 17       	cp	r18, r20
     9d0:	35 07       	cpc	r19, r21
     9d2:	38 f4       	brcc	.+14     	; 0x9e2 <DelayUs+0x1a>
    milliseconds can be achieved.
 */
void
_delay_loop_2(uint16_t __count)
{
     9d4:	82 e0       	ldi	r24, 0x02	; 2
     9d6:	90 e0       	ldi	r25, 0x00	; 0
	__asm__ volatile (
     9d8:	01 97       	sbiw	r24, 0x01	; 1
     9da:	f1 f7       	brne	.-4      	; 0x9d8 <DelayUs+0x10>
     9dc:	2f 5f       	subi	r18, 0xFF	; 255
     9de:	3f 4f       	sbci	r19, 0xFF	; 255
     9e0:	f6 cf       	rjmp	.-20     	; 0x9ce <DelayUs+0x6>
     9e2:	08 95       	ret

000009e4 <alarm_n_short>:
_delay_loop_2(2);
}
/**************
void Beep_short(uchar num,uint frq) ////提示音输出函数,num提示音音响数,frq提示音频率
{

	uchar i;
	TCCR2=_BV(WGM21)|_BV(CS21)|_BV(CS20);	//CTC模式,8M,32分频
	OCR2=62500/frq;
	TIMSK|=_BV(OCIE2);	//比较匹配中断允许
		
		for(i=0;i<num;i++)
		{
		DelayMs(20);
		cli();
	PORTB&=~_BV(PB2);
		DelayMs(20);
		sei();
		}
	TCCR2=0;
	TIMSK&=~_BV(OCIE2);	//比较匹配中断禁止
	PORTB&=~_BV(PB2);
	sei();

}

void Beep_middle(uchar num,uint frq) ////提示音输出函数,num提示音音响数,frq提示音频率
{

	uchar i;
	TCCR2=_BV(WGM21)|_BV(CS21)|_BV(CS20);	//CTC模式,8M,32分频
	OCR2=62500/frq;
	TIMSK|=_BV(OCIE2);	//比较匹配中断允许
		
		for(i=0;i<num;i++)
		{
		DelayMs(100);
		cli();
		PORTB&=~_BV(PB2);
	PORTB&=~_BV(PB2);
		DelayMs(100);
		sei();
		}
	TCCR2=0;
	TIMSK&=~_BV(OCIE2);	//比较匹配中断禁止
	PORTB&=~_BV(PB2);
	sei();
}

void Beep_long(uchar num,uint frq) ////提示音输出函数,num提示音音响数,frq提示音频率
{

	uchar i;
	TCCR2=_BV(WGM21)|_BV(CS21)|_BV(CS20);	//CTC模式,8M,32分频
	OCR2=62500/frq;
	TIMSK=_BV(OCIE2);	//比较匹配中断允许
		
		for(i=0;i<num;i++)
		{
		DelayMs(3000);
		cli();
		PORTB&=~_BV(PB2);
	PORTB&=~_BV(PB2);
		DelayMs(3000);
		sei();
		}
	TCCR2=0;
	TIMSK=0;
	PORTB&=~_BV(PB2);
	sei();
}
***********/

void alarm_n_short(uchar n)
{
     9e4:	1f 93       	push	r17
     9e6:	cf 93       	push	r28
     9e8:	18 2f       	mov	r17, r24
uchar i;
	for(i=0;i<n;i++)
     9ea:	c0 e0       	ldi	r28, 0x00	; 0
     9ec:	c8 17       	cp	r28, r24
     9ee:	58 f4       	brc

⌨️ 快捷键说明

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