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

📄 gvgledtest.lst

📁 建立在AVR基础上的测试LED数码管电压表
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"GvgLedTest.c"
   2               		.arch attiny13
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  11               		.text
  12               	.Ltext0:
  72               	.global	INIT
  74               	INIT:
   1:GvgLedTest.c  **** /******************************************************************************
   2:GvgLedTest.c  **** *	Compiler:		WinAVR(GCC)
   3:GvgLedTest.c  **** *	Device:			ATtiny13
   4:GvgLedTest.c  **** *	File name:		GvgLedTest.c
   5:GvgLedTest.c  **** *	Description:		Main Program
   6:GvgLedTest.c  **** 
   7:GvgLedTest.c  **** *	Programmer:		Liansen Wang
   8:GvgLedTest.c  **** *	Revision:			1.0
   9:GvgLedTest.c  **** *	Modification time:	2005-08-21	10:11
  10:GvgLedTest.c  **** 		
  11:GvgLedTest.c  **** ******************************************************************************/
  12:GvgLedTest.c  **** 
  13:GvgLedTest.c  **** #include "general.h"
  14:GvgLedTest.c  **** 
  15:GvgLedTest.c  **** //#define ADCEN
  16:GvgLedTest.c  **** 
  17:GvgLedTest.c  **** 
  18:GvgLedTest.c  **** unsigned char 	Display_data[Display_bit];
  19:GvgLedTest.c  **** unsigned char		Key_data,Key_data_back;
  20:GvgLedTest.c  **** unsigned char		ADC_value;
  21:GvgLedTest.c  **** unsigned char		IR_Value;
  22:GvgLedTest.c  **** 
  23:GvgLedTest.c  **** unsigned char		Bit_make;
  24:GvgLedTest.c  **** 	#define 		Bit_make_ADC 0x00
  25:GvgLedTest.c  **** 	#define 		Bit_make_Display 0x01
  26:GvgLedTest.c  **** 	#define		Bit_make_Key	0x02
  27:GvgLedTest.c  **** 
  28:GvgLedTest.c  **** /*****************************************************************************/
  29:GvgLedTest.c  **** /*============================================================
  30:GvgLedTest.c  **** FUNCTION: 
  31:GvgLedTest.c  **** 
  32:GvgLedTest.c  **** ============================================================*/
  33:GvgLedTest.c  **** void INIT(void)
  34:GvgLedTest.c  **** {
  76               	.LM1:
  77               	/* prologue: frame size=0 */
  78               	/* prologue end (size=0) */
  35:GvgLedTest.c  **** 	//Settings DATA\ SCK\ STB\ LED is OUTPUT and IR\ RESET is INPUT
  36:GvgLedTest.c  **** 	DDRB = (1<<DATA)|(1<<SCK)|(1<<STB)|(1<<LED);
  80               	.LM2:
  81 0000 87E1      		ldi r24,lo8(23)
  82 0002 87BB      		out 55-0x20,r24
  37:GvgLedTest.c  **** 	
  38:GvgLedTest.c  **** 	PORTB = 0xFF;
  84               	.LM3:
  85 0004 8FEF      		ldi r24,lo8(-1)
  86 0006 88BB      		out 56-0x20,r24
  39:GvgLedTest.c  **** 	
  40:GvgLedTest.c  **** 	TIMSK0 = (1<<TOIE0);				//T/C0 
  88               	.LM4:
  89 0008 82E0      		ldi r24,lo8(2)
  90 000a 89BF      		out 89-0x20,r24
  41:GvgLedTest.c  **** 	TCCR0B = (1<< CS02)|(1<<CS00);
  92               	.LM5:
  93 000c 85E0      		ldi r24,lo8(5)
  94 000e 83BF      		out 83-0x20,r24
  42:GvgLedTest.c  **** 	TCNT0 =  0x41;
  96               	.LM6:
  97 0010 81E4      		ldi r24,lo8(65)
  98 0012 82BF      		out 82-0x20,r24
  43:GvgLedTest.c  **** 	sei();							// all interrupt is enabled
 100               	.LM7:
 101               	/* #APP */
 102 0014 7894      		sei
  44:GvgLedTest.c  **** #ifdef ADCEN
  45:GvgLedTest.c  **** 	ADMUX = (1<<ADLAR)|(1<<MUX1)|(1<<MUX0);
  46:GvgLedTest.c  **** #else
  47:GvgLedTest.c  **** 	GIMSK = (1<<PCIE);				// pin change interrupt is enabled 
 104               	.LM8:
 105               	/* #NOAPP */
 106 0016 80E2      		ldi r24,lo8(32)
 107 0018 8BBF      		out 91-0x20,r24
  48:GvgLedTest.c  **** 	PCMSK = (1<<PCINT3);			// select I/O pin of pin chang interrupt	
 109               	.LM9:
 110 001a 88E0      		ldi r24,lo8(8)
 111 001c 85BB      		out 53-0x20,r24
 112               	/* epilogue: frame size=0 */
 113 001e 0895      		ret
 114               	/* epilogue end (size=1) */
 115               	/* function INIT size 17 (16) */
 117               	.Lscope0:
 118               		.data
 119               	.LC0:
 120 0000 3A4F 4646 		.string	":OFF::::8"
 120      3A3A 3A3A 
 120      3800 
 121               	.LC1:
 122 000a 4F50 454E 		.string	"OPEN:::8:"
 122      3A3A 3A38 
 122      3A00 
 123               	.LC2:
 124 0014 4E4F 4449 		.string	"NODISC8::"
 124      5343 383A 
 124      3A00 
 125               		.text
 127               	.global	Key_Prog
 129               	Key_Prog:
  49:GvgLedTest.c  **** #endif
  50:GvgLedTest.c  **** 
  51:GvgLedTest.c  **** }
  52:GvgLedTest.c  **** //*****************************************************************************
  53:GvgLedTest.c  **** 
  54:GvgLedTest.c  **** /*============================================================
  55:GvgLedTest.c  **** 
  56:GvgLedTest.c  **** ============================================================*/
  57:GvgLedTest.c  **** #ifdef ADCEN
  58:GvgLedTest.c  **** void Voltage_detect(void)
  59:GvgLedTest.c  **** 	{
  60:GvgLedTest.c  **** 	 unsigned char i;
  61:GvgLedTest.c  **** 	 
  62:GvgLedTest.c  **** 	ADCSRA = (1<<ADEN)|(1<<ADSC);
  63:GvgLedTest.c  **** 	while(ADCSRA & (1<<ADSC))
  64:GvgLedTest.c  **** 		{
  65:GvgLedTest.c  **** 		;
  66:GvgLedTest.c  **** 		}
  67:GvgLedTest.c  **** 	
  68:GvgLedTest.c  **** //	for(i=0;i<30;i++);
  69:GvgLedTest.c  **** 	Display_All_Bit(0x00);
  70:GvgLedTest.c  **** 	Display_data[2]=ADCH;
  71:GvgLedTest.c  **** 	if(ADCH & 0x80)	
  72:GvgLedTest.c  **** 		{
  73:GvgLedTest.c  **** 		Display_data[1] = 0x01;
  74:GvgLedTest.c  **** 		}
  75:GvgLedTest.c  **** 	else 	
  76:GvgLedTest.c  **** 		{
  77:GvgLedTest.c  **** 		Display_data[1] =0x00;
  78:GvgLedTest.c  **** 		}
  79:GvgLedTest.c  **** 	if(ADCH >= 0xA5)
  80:GvgLedTest.c  **** 		{
  81:GvgLedTest.c  **** 		if(ADCH <= 0xC6)
  82:GvgLedTest.c  **** 			{
  83:GvgLedTest.c  **** 			if(ADC_value<= 255)	
  84:GvgLedTest.c  **** 				{
  85:GvgLedTest.c  **** 				ADC_value++;
  86:GvgLedTest.c  **** 				}
  87:GvgLedTest.c  **** 			}
  88:GvgLedTest.c  **** 		else ADC_value= 0;
  89:GvgLedTest.c  **** 	
  90:GvgLedTest.c  **** 		}
  91:GvgLedTest.c  **** 	if(ADC_value>= 1)	
  92:GvgLedTest.c  **** 		{
  93:GvgLedTest.c  **** 		PORTB &= ~(1<<LED);
  94:GvgLedTest.c  **** 		}
  95:GvgLedTest.c  **** 	else 
  96:GvgLedTest.c  **** 		{
  97:GvgLedTest.c  **** 		PORTB |= (1<<LED);
  98:GvgLedTest.c  **** 		}
  99:GvgLedTest.c  **** 	}
 100:GvgLedTest.c  **** 
 101:GvgLedTest.c  **** #endif
 102:GvgLedTest.c  **** 
 103:GvgLedTest.c  **** /*============================================================
 104:GvgLedTest.c  **** 
 105:GvgLedTest.c  **** ============================================================*/
 106:GvgLedTest.c  **** void Key_Prog(void)
 107:GvgLedTest.c  **** {
 131               	.LM10:
 132               	/* prologue: frame size=0 */
 133               	/* prologue end (size=0) */
 108:GvgLedTest.c  **** //if(Key_data == 0x00)
 109:GvgLedTest.c  **** //	PORTB |= LED;
 110:GvgLedTest.c  **** //else
 111:GvgLedTest.c  **** //	PORTB &= ~LED;	
 112:GvgLedTest.c  **** 
 113:GvgLedTest.c  **** /////////////////////////////////////////////////////////////////
 114:GvgLedTest.c  **** if(Key_data != 0xFF)
 135               	.LM11:
 136 0020 9091 0000 		lds r25,Key_data
 137 0024 8091 0000 		lds r24,Bit_make
 138 0028 9F3F      		cpi r25,lo8(-1)
 139 002a E9F0      		breq .L3
 115:GvgLedTest.c  **** 	{
 116:GvgLedTest.c  **** 	if(Bit_make&(1<<Bit_make_Key) )
 141               	.LM12:
 142 002c 82FF      		sbrs r24,2
 143 002e 17C0      		rjmp .L4
 117:GvgLedTest.c  **** 		{
 118:GvgLedTest.c  **** //		Display(Key_data);
 119:GvgLedTest.c  **** 		switch(Key_data)
 145               	.LM13:
 146 0030 892F      		mov r24,r25
 147 0032 9927      		clr r25
 148 0034 8330      		cpi r24,3
 149 0036 9105      		cpc r25,__zero_reg__
 150 0038 61F0      		breq .L7
 151 003a 8430      		cpi r24,4
 152 003c 9105      		cpc r25,__zero_reg__
 153 003e 1CF4      		brge .L10
 154 0040 892B      		or r24,r25
 155 0042 21F0      		breq .L6
 156 0044 0CC0      		rjmp .L4
 157               	.L10:
 158 0046 0897      		sbiw r24,8
 159 0048 39F0      		breq .L8
 160 004a 09C0      		rjmp .L4
 161               	.L6:
 120:GvgLedTest.c  **** 			{
 121:GvgLedTest.c  **** 			case 00:
 122:GvgLedTest.c  **** 				Display(":OFF::::8");
 163               	.LM14:
 164 004c 80E0      		ldi r24,lo8(.LC0)
 165 004e 90E0      		ldi r25,hi8(.LC0)
 166 0050 05C0      		rjmp .L12
 167               	.L7:
 123:GvgLedTest.c  **** 				break;
 124:GvgLedTest.c  **** //			case 02:
 125:GvgLedTest.c  **** //				Display("2");
 126:GvgLedTest.c  **** //				break;
 127:GvgLedTest.c  **** 			case 03:
 128:GvgLedTest.c  **** 				Display("OPEN:::8:");
 169               	.LM15:
 170 0052 80E0      		ldi r24,lo8(.LC1)
 171 0054 90E0      		ldi r25,hi8(.LC1)
 172 0056 02C0      		rjmp .L12
 173               	.L8:
 129:GvgLedTest.c  **** 				break;
 130:GvgLedTest.c  **** //			case 05:
 131:GvgLedTest.c  **** //				Display("5");
 132:GvgLedTest.c  **** //				break;
 133:GvgLedTest.c  **** 			case 010:
 134:GvgLedTest.c  **** 				Display("NODISC8::");
 175               	.LM16:
 176 0058 80E0      		ldi r24,lo8(.LC2)
 177 005a 90E0      		ldi r25,hi8(.LC2)
 178               	.L12:
 179 005c 00D0      		rcall Display

⌨️ 快捷键说明

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