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

📄 displayandkey.lst

📁 建立在AVR基础上的测试LED数码管电压表
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"DisplayAndKey.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:
  73               	.global	Display_Code
  74               		.section	.progmem.data,"a",@progbits
  77               	Display_Code:
  78 0000 3F        		.byte	63
  79 0001 06        		.byte	6
  80 0002 5B        		.byte	91
  81 0003 4F        		.byte	79
  82 0004 66        		.byte	102
  83 0005 6D        		.byte	109
  84 0006 7D        		.byte	125
  85 0007 07        		.byte	7
  86 0008 7F        		.byte	127
  87 0009 6F        		.byte	111
  88 000a 00        		.byte	0
  89 000b 00        		.byte	0
  90 000c 00        		.byte	0
  91 000d 00        		.byte	0
  92 000e 00        		.byte	0
  93 000f 00        		.byte	0
  94 0010 00        		.byte	0
  95 0011 77        		.byte	119
  96 0012 7C        		.byte	124
  97 0013 39        		.byte	57
  98 0014 5E        		.byte	94
  99 0015 79        		.byte	121
 100 0016 71        		.byte	113
 101 0017 7D        		.byte	125
 102 0018 76        		.byte	118
 103 0019 30        		.byte	48
 104 001a 0F        		.byte	15
 105 001b 00        		.byte	0
 106 001c 38        		.byte	56
 107 001d 00        		.byte	0
 108 001e 37        		.byte	55
 109 001f 3F        		.byte	63
 110 0020 73        		.byte	115
 111 0021 67        		.byte	103
 112 0022 50        		.byte	80
 113 0023 6D        		.byte	109
 114 0024 4E        		.byte	78
 115 0025 3E        		.byte	62
 116 0026 00        		.byte	0
 117 0027 00        		.byte	0
 118 0028 00        		.byte	0
 119 0029 6E        		.byte	110
 120 002a 00        		.byte	0
 121               		.text
 124               	.global	V_SPI_SEND
 126               	V_SPI_SEND:
   1:DisplayAndKey.c **** /******************************************************************************
   2:DisplayAndKey.c **** *	Compiler:		WinAVR(GCC)
   3:DisplayAndKey.c **** *	Device:			ATtiny13
   4:DisplayAndKey.c **** *	File Name:		DisplayAndKey.c
   5:DisplayAndKey.c **** *	Description:		Display and key C Program
   6:DisplayAndKey.c **** 
   7:DisplayAndKey.c **** *	Programmer:		Liansen.Wang
   8:DisplayAndKey.c **** *	Revision:			1.0
   9:DisplayAndKey.c **** *	Modification time:	2005-08-22	10:18
  10:DisplayAndKey.c **** 
  11:DisplayAndKey.c **** ******************************************************************************/
  12:DisplayAndKey.c **** #include "DisplayAndKey.h"
  13:DisplayAndKey.c **** 
  14:DisplayAndKey.c **** /*****************************************************************************/
  15:DisplayAndKey.c **** 
  16:DisplayAndKey.c **** extern unsigned char 	Display_data[Display_bit];
  17:DisplayAndKey.c **** const unsigned char Display_Code[] PROGMEM = {
  18:DisplayAndKey.c **** 	0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,	//0,1,2,3,4,5,6,7
  19:DisplayAndKey.c **** 	0x7F,0x6F,0x00,0x00,0x00,0x00,0x00,0x00,	//8,9, : , ; ,<,=,>,?
  20:DisplayAndKey.c **** 	0x00,0x77,0x7C,0x39,0x5E,0x79,0x71,0x7D,	//@,A,B,C,D,E,F,G
  21:DisplayAndKey.c **** 	0x76,0x30,0x0F,0x00,0x38,0x00,0x37,0x3F,	//H,I,J,K,L,M,N,O
  22:DisplayAndKey.c **** 	0x73,0x67,0x50,0x6D,0x4E,0x3E,0x00,0x00,	//P,O,R,S,T,U,V,W
  23:DisplayAndKey.c **** 	0x00,0x6E,0x00				};	//X,Y,Z
  24:DisplayAndKey.c **** 	
  25:DisplayAndKey.c **** /*============================================================
  26:DisplayAndKey.c **** 
  27:DisplayAndKey.c **** ============================================================*/
  28:DisplayAndKey.c **** /*void Display_All_Bit(uint8_t data)
  29:DisplayAndKey.c **** {
  30:DisplayAndKey.c **** unsigned char i;
  31:DisplayAndKey.c **** for(i=0; i<Display_bit; i++)
  32:DisplayAndKey.c **** 	Display_data[i] =data;
  33:DisplayAndKey.c **** }*/
  34:DisplayAndKey.c **** 	
  35:DisplayAndKey.c **** /*============================================================
  36:DisplayAndKey.c **** FUNCTION:
  37:DisplayAndKey.c **** 
  38:DisplayAndKey.c **** ============================================================*/
  39:DisplayAndKey.c **** void V_SPI_SEND(unsigned char data)
  40:DisplayAndKey.c **** 	{
 128               	.LM1:
 129               	/* prologue: frame size=0 */
 130               	/* prologue end (size=0) */
 131 0000 97E0      		ldi r25,lo8(7)
 132               	.L7:
  41:DisplayAndKey.c **** 	unsigned char i,outdata;
  42:DisplayAndKey.c **** 	outdata = data;
  43:DisplayAndKey.c **** 	for(i=0;	i<8;	i++)
  44:DisplayAndKey.c **** 		{
  45:DisplayAndKey.c **** 		if (outdata & 0x01)
 134               	.LM2:
 135 0002 80FF      		sbrs r24,0
 136 0004 02C0      		rjmp .L5
  46:DisplayAndKey.c **** 			PORTB |= (1<<DATA);
 138               	.LM3:
 139 0006 C19A      		sbi 56-0x20,1
 140 0008 01C0      		rjmp .L6
 141               	.L5:
  47:DisplayAndKey.c **** 		else
  48:DisplayAndKey.c **** 			PORTB &= ~(1<<DATA);
 143               	.LM4:
 144 000a C198      		cbi 56-0x20,1
 145               	.L6:
  49:DisplayAndKey.c **** 		PORTB &= ~(1<<SCK);
 147               	.LM5:
 148 000c C298      		cbi 56-0x20,2
  50:DisplayAndKey.c **** 		PORTB |= (1<<SCK);
 150               	.LM6:
 151 000e C29A      		sbi 56-0x20,2
  51:DisplayAndKey.c **** 		outdata >>= 1;
 153               	.LM7:
 154 0010 8695      		lsr r24
 156               	.LM8:
 157 0012 9150      		subi r25,lo8(-(-1))
 158 0014 97FF      		sbrs r25,7
 159 0016 F5CF      		rjmp .L7
 160               	/* epilogue: frame size=0 */
 161 0018 0895      		ret
 162               	/* epilogue end (size=1) */
 163               	/* function V_SPI_SEND size 13 (12) */
 169               	.Lscope0:
 171               	.global	V_DISPLAYDATA_SEND
 173               	V_DISPLAYDATA_SEND:
  52:DisplayAndKey.c **** 		}
  53:DisplayAndKey.c **** 	}
  54:DisplayAndKey.c **** 
  55:DisplayAndKey.c **** /*============================================================
  56:DisplayAndKey.c **** FUNCTION:	Display data send out
  57:DisplayAndKey.c **** 
  58:DisplayAndKey.c **** ============================================================*/
  59:DisplayAndKey.c **** void V_DISPLAYDATA_SEND(void)
  60:DisplayAndKey.c **** 	{
 175               	.LM9:
 176               	/* prologue: frame size=0 */
 177               	/* prologue end (size=0) */
  61:DisplayAndKey.c **** 	unsigned	char i,j;
  62:DisplayAndKey.c **** 	//send LED Display Modle command	
  63:DisplayAndKey.c **** 	PORTB &= ~(1<<STB);
 179               	.LM10:
 180 001a C098      		cbi 56-0x20,0
  64:DisplayAndKey.c **** 	V_SPI_SEND(Vfd_Display_Modle);
 182               	.LM11:
 183 001c 83E0      		ldi r24,lo8(3)
 184 001e F0DF      		rcall V_SPI_SEND
  65:DisplayAndKey.c **** 	PORTB|= (1<<STB);
 186               	.LM12:
 187 0020 C09A      		sbi 56-0x20,0
  66:DisplayAndKey.c **** 	
  67:DisplayAndKey.c **** 	//Send Led Display Data modle command
  68:DisplayAndKey.c **** 	PORTB &= ~(1<<STB);
 189               	.LM13:
 190 0022 C098      		cbi 56-0x20,0
  69:DisplayAndKey.c **** 	V_SPI_SEND(Vfd_Display_DataOut);
 192               	.LM14:
 193 0024 80E4      		ldi r24,lo8(64)
 194 0026 ECDF      		rcall V_SPI_SEND
  70:DisplayAndKey.c **** 	PORTB|= (1<<STB);
 196               	.LM15:
 197 0028 C09A      		sbi 56-0x20,0
  71:DisplayAndKey.c **** 	
  72:DisplayAndKey.c **** 	//Send LED Display Data address
  73:DisplayAndKey.c **** 	PORTB &= ~(1<<STB);
 199               	.LM16:
 200 002a C098      		cbi 56-0x20,0
  74:DisplayAndKey.c **** 	V_SPI_SEND(Vfd_Display_Addr);
 202               	.LM17:
 203 002c 80EC      		ldi r24,lo8(-64)
 204 002e E8DF      		rcall V_SPI_SEND
  75:DisplayAndKey.c **** 	
  76:DisplayAndKey.c **** 	//send LED Display Data
  77:DisplayAndKey.c **** 	for (i=0; i<7; i++)
 206               	.LM18:
 207 0030 30E0      		ldi r19,lo8(0)
 208               	.L20:
 209 0032 432F      		mov r20,r19
 210 0034 5527      		clr r21
 211 0036 E0E0      		ldi r30,lo8(Display_data)
 212 0038 F0E0      		ldi r31,hi8(Display_data)
 213 003a 2FE0      		ldi r18,lo8(15)
 214               	.L19:
  78:DisplayAndKey.c **** 		{
  79:DisplayAndKey.c **** 		for(j=0;	j<16;j++)
  80:DisplayAndKey.c **** 			{
  81:DisplayAndKey.c **** 	
  82:DisplayAndKey.c **** 			if(Display_data[j] & (1<< i))
 216               	.LM19:
 217 003c 8191      		ld r24,Z+
 218 003e 9927      		clr r25
 219 0040 042E      		mov r0,r20
 220 0042 02C0      		rjmp 2f
 221 0044 9595      	1:	asr r25
 222 0046 8795      		ror r24
 223 0048 0A94      	2:	dec r0
 224 004a E2F7      		brpl 1b
 225 004c 80FF      		sbrs r24,0
 226 004e 02C0      		rjmp .L17
  83:DisplayAndKey.c **** 				{
  84:DisplayAndKey.c **** 				PORTB |= (1<<DATA);
 228               	.LM20:
 229 0050 C19A      		sbi 56-0x20,1
 230 0052 01C0      		rjmp .L18
 231               	.L17:
  85:DisplayAndKey.c **** 				}
  86:DisplayAndKey.c **** 			else
  87:DisplayAndKey.c **** 				{
  88:DisplayAndKey.c **** 				PORTB &= ~(1<<DATA);
 233               	.LM21:
 234 0054 C198      		cbi 56-0x20,1
 235               	.L18:
  89:DisplayAndKey.c **** 				}
  90:DisplayAndKey.c **** 			PORTB &= ~(1<<SCK);
 237               	.LM22:
 238 0056 C298      		cbi 56-0x20,2
  91:DisplayAndKey.c **** 			PORTB |= (1<<SCK);	
 240               	.LM23:
 241 0058 C29A      		sbi 56-0x20,2
 243               	.LM24:
 244 005a 2150      		subi r18,lo8(-(-1))
 245 005c 27FF      		sbrs r18,7
 246 005e EECF      		rjmp .L19
 248               	.LM25:
 249 0060 3F5F      		subi r19,lo8(-(1))
 250 0062 3730      		cpi r19,lo8(7)
 251 0064 30F3      		brlo .L20
  92:DisplayAndKey.c **** 			}
  93:DisplayAndKey.c **** 		}
  94:DisplayAndKey.c **** 	PORTB |= (1<<STB);
 253               	.LM26:
 254 0066 C09A      		sbi 56-0x20,0
  95:DisplayAndKey.c **** 	
  96:DisplayAndKey.c **** 	//Send Led Display ON command
  97:DisplayAndKey.c **** 	PORTB &= ~(1<<STB);
 256               	.LM27:
 257 0068 C098      		cbi 56-0x20,0
  98:DisplayAndKey.c **** 	V_SPI_SEND(Vfd_Display_Corl);
 259               	.LM28:
 260 006a 8BE8      		ldi r24,lo8(-117)
 261 006c C9DF      		rcall V_SPI_SEND
  99:DisplayAndKey.c **** 	PORTB|= (1<<STB);	
 263               	.LM29:
 264 006e C09A      		sbi 56-0x20,0
 265               	/* epilogue: frame size=0 */
 266 0070 0895      		ret
 267               	/* epilogue end (size=1) */
 268               	/* function V_DISPLAYDATA_SEND size 44 (43) */
 274               	.Lscope1:
 276               	.global	V_Kay_Scan
 278               	V_Kay_Scan:
 100:DisplayAndKey.c **** 
 101:DisplayAndKey.c **** 	
 102:DisplayAndKey.c **** 	}

⌨️ 快捷键说明

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