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

📄 m.lst

📁 AVR单片机控制下的实时按键显示 实验条件 ⑴ SL-AVRAD编程开发实验板 (2) AVR系列单片机ATMega16(L) (3) AVR单片机的C语言编译器WinAVR (4) AVR单片
💻 LST
📖 第 1 页 / 共 2 页
字号:
   1               		.file	"m.c"
   2               		.arch atmega16
   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:
  51               	.global	ledcode
  52               		.data
  55               	ledcode:
  56 0000 3F        		.byte	63
  57 0001 06        		.byte	6
  58 0002 5B        		.byte	91
  59 0003 4F        		.byte	79
  60 0004 66        		.byte	102
  61 0005 6D        		.byte	109
  62 0006 7D        		.byte	125
  63 0007 07        		.byte	7
  64 0008 7F        		.byte	127
  65 0009 67        		.byte	103
  66 000a 77        		.byte	119
  67 000b 7C        		.byte	124
  68 000c 58        		.byte	88
  69 000d 5E        		.byte	94
  70 000e 79        		.byte	121
  71 000f 71        		.byte	113
  74               	scancode.1:
  75 0010 F7        		.byte	-9
  78               	tempnum.2:
  79 0011 10        		.byte	16
  82               	lastnum.3:
  83 0012 10        		.byte	16
  86               	currentnum.4:
  87 0013 10        		.byte	16
  88               		.lcomm times.5,1
  89               		.text
  91               	.global	keyboard
  93               	keyboard:
   1:D:/liwei/two/m.c **** #define KEYPORT PORTC
   2:D:/liwei/two/m.c **** #define KEYPIN PINC
   3:D:/liwei/two/m.c **** //PB port as led data port
   4:D:/liwei/two/m.c **** #define LED_DATA_DDR DDRB
   5:D:/liwei/two/m.c **** #define LED_DATA_PORT PORTB
   6:D:/liwei/two/m.c **** #define LED_DATA_PIN PINB
   7:D:/liwei/two/m.c **** 
   8:D:/liwei/two/m.c **** //PD port as led select port
   9:D:/liwei/two/m.c **** #define LED_ADD_DDR DDRD
  10:D:/liwei/two/m.c **** #define LED_ADD_PORT PORTD
  11:D:/liwei/two/m.c **** #define LED_ADD_PIN PIND
  12:D:/liwei/two/m.c **** 
  13:D:/liwei/two/m.c **** #include <avr/io.h>
  14:D:/liwei/two/m.c **** #include <inttypes.h>
  15:D:/liwei/two/m.c **** #include <avr/signal.h>
  16:D:/liwei/two/m.c **** #include <avr/interrupt.h>
  17:D:/liwei/two/m.c **** 
  18:D:/liwei/two/m.c **** 
  19:D:/liwei/two/m.c **** 
  20:D:/liwei/two/m.c **** uint8_t keyboard(void)
  21:D:/liwei/two/m.c **** {
  95               	.LM1:
  96               	/* prologue: frame size=0 */
  97               	/* prologue end (size=0) */
  22:D:/liwei/two/m.c **** static uint8_t scancode=0xF7,tempnum=16,lastnum=16,currentnum=16,times=0;
  23:D:/liwei/two/m.c ****  switch(scancode)
  99               	.LM2:
 100 0000 8091 0000 		lds r24,scancode.1
 101 0004 9927      		clr r25
 102 0006 8B3F      		cpi r24,251
 103 0008 9105      		cpc r25,__zero_reg__
 104 000a 69F0      		breq .L4
 106               	.LM3:
 107 000c 8C3F      		cpi r24,252
 108 000e 9105      		cpc r25,__zero_reg__
 109 0010 24F4      		brge .L8
 110 0012 873F      		cpi r24,247
 111 0014 9105      		cpc r25,__zero_reg__
 112 0016 29F0      		breq .L3
 113 0018 0AC0      		rjmp .L7
 114               	.L8:
 115 001a 8D3F      		cpi r24,253
 116 001c 9105      		cpc r25,__zero_reg__
 117 001e 29F0      		breq .L5
 118 0020 06C0      		rjmp .L7
 119               	.L3:
  24:D:/liwei/two/m.c ****    {
  25:D:/liwei/two/m.c ****     case 0xF7:scancode=0xFB;break;
 121               	.LM4:
 122 0022 8BEF      		ldi r24,lo8(-5)
 123 0024 05C0      		rjmp .L37
 124               	.L4:
  26:D:/liwei/two/m.c ****     case 0xFB:scancode=0xFD;break;
 126               	.LM5:
 127 0026 8DEF      		ldi r24,lo8(-3)
 128 0028 03C0      		rjmp .L37
 129               	.L5:
  27:D:/liwei/two/m.c ****     case 0xFD:scancode=0xFE;break;
 131               	.LM6:
 132 002a 8EEF      		ldi r24,lo8(-2)
 133 002c 01C0      		rjmp .L37
 134               	.L7:
  28:D:/liwei/two/m.c ****     case 0xFE:scancode=0xF7;break;
  29:D:/liwei/two/m.c ****     default:scancode=0xF7;break; 
 136               	.LM7:
 137 002e 87EF      		ldi r24,lo8(-9)
 138               	.L37:
 139 0030 8093 0000 		sts scancode.1,r24
  30:D:/liwei/two/m.c ****    }
  31:D:/liwei/two/m.c ****  KEYPORT=scancode;
 141               	.LM8:
 142 0034 8091 0000 		lds r24,scancode.1
 143 0038 85BB      		out 53-0x20,r24
  32:D:/liwei/two/m.c ****   switch(KEYPIN)
 145               	.LM9:
 146 003a 83B3      		in r24,51-0x20
 147 003c 9927      		clr r25
 148 003e 8E3B      		cpi r24,190
 149 0040 9105      		cpc r25,__zero_reg__
 150 0042 09F4      		brne .+2
 151 0044 6BC0      		rjmp .L24
 152 0046 8F3B      		cpi r24,191
 153 0048 9105      		cpc r25,__zero_reg__
 154 004a 34F5      		brge .L28
 155 004c 8E37      		cpi r24,126
 156 004e 9105      		cpc r25,__zero_reg__
 157 0050 09F4      		brne .+2
 158 0052 66C0      		rjmp .L25
 159 0054 8F37      		cpi r24,127
 160 0056 9105      		cpc r25,__zero_reg__
 161 0058 8CF4      		brge .L29
 162 005a 8B37      		cpi r24,123
 163 005c 9105      		cpc r25,__zero_reg__
 164 005e 09F4      		brne .+2
 165 0060 4FC0      		rjmp .L17
 166 0062 8C37      		cpi r24,124
 167 0064 9105      		cpc r25,__zero_reg__
 168 0066 2CF4      		brge .L30
 169 0068 8737      		cpi r24,119
 170 006a 9105      		cpc r25,__zero_reg__
 171 006c 09F4      		brne .+2
 172 006e 40C0      		rjmp .L13
 173 0070 59C0      		rjmp .L26
 174               	.L30:
 175 0072 8D37      		cpi r24,125
 176 0074 9105      		cpc r25,__zero_reg__
 177 0076 09F4      		brne .+2
 178 0078 4BC0      		rjmp .L21
 179 007a 54C0      		rjmp .L26
 180               	.L29:
 181 007c 8B3B      		cpi r24,187
 182 007e 9105      		cpc r25,__zero_reg__
 183 0080 E9F1      		breq .L16
 184 0082 8C3B      		cpi r24,188
 185 0084 9105      		cpc r25,__zero_reg__
 186 0086 24F4      		brge .L31
 187 0088 873B      		cpi r24,183
 188 008a 9105      		cpc r25,__zero_reg__
 189 008c 79F1      		breq .L12
 190 008e 4AC0      		rjmp .L26
 191               	.L31:
 192 0090 8D3B      		cpi r24,189
 193 0092 9105      		cpc r25,__zero_reg__
 194 0094 D9F1      		breq .L20
 195 0096 46C0      		rjmp .L26
 196               	.L28:
 197 0098 8E3D      		cpi r24,222
 198 009a 9105      		cpc r25,__zero_reg__
 199 009c E9F1      		breq .L23
 200 009e 8F3D      		cpi r24,223
 201 00a0 9105      		cpc r25,__zero_reg__
 202 00a2 74F4      		brge .L32
 203 00a4 8B3D      		cpi r24,219
 204 00a6 9105      		cpc r25,__zero_reg__
 205 00a8 39F1      		breq .L15
 206 00aa 8C3D      		cpi r24,220
 207 00ac 9105      		cpc r25,__zero_reg__
 208 00ae 24F4      		brge .L33
 209 00b0 873D      		cpi r24,215
 210 00b2 9105      		cpc r25,__zero_reg__
 211 00b4 C9F0      		breq .L11
 212 00b6 36C0      		rjmp .L26
 213               	.L33:
 214 00b8 8D3D      		cpi r24,221
 215 00ba 9105      		cpc r25,__zero_reg__
 216 00bc 29F1      		breq .L19
 217 00be 32C0      		rjmp .L26
 218               	.L32:
 219 00c0 8B3E      		cpi r24,235
 220 00c2 9105      		cpc r25,__zero_reg__
 221 00c4 B9F0      		breq .L14
 222 00c6 8C3E      		cpi r24,236
 223 00c8 9105      		cpc r25,__zero_reg__
 224 00ca 24F4      		brge .L34
 225 00cc 873E      		cpi r24,231
 226 00ce 9105      		cpc r25,__zero_reg__
 227 00d0 41F0      		breq .L10
 228 00d2 28C0      		rjmp .L26
 229               	.L34:
 230 00d4 8D3E      		cpi r24,237
 231 00d6 9105      		cpc r25,__zero_reg__
 232 00d8 A9F0      		breq .L18
 233 00da 8E3E      		cpi r24,238
 234 00dc 9105      		cpc r25,__zero_reg__
 235 00de D1F0      		breq .L22
 236 00e0 21C0      		rjmp .L26
 237               	.L10:
  33:D:/liwei/two/m.c ****    {
  34:D:/liwei/two/m.c ****     case 0xE7:tempnum=0;times=0;break;
 239               	.LM10:
 240 00e2 1092 0000 		sts tempnum.2,__zero_reg__
 241 00e6 28C0      		rjmp .L39
 242               	.L11:
  35:D:/liwei/two/m.c **** 	case 0xD7:tempnum=1;times=0;break;
 244               	.LM11:
 245 00e8 81E0      		ldi r24,lo8(1)
 246 00ea 24C0      		rjmp .L38
 247               	.L12:
  36:D:/liwei/two/m.c **** 	case 0xB7:tempnum=2;times=0;break;
 249               	.LM12:
 250 00ec 82E0      		ldi r24,lo8(2)
 251 00ee 22C0      		rjmp .L38
 252               	.L13:
  37:D:/liwei/two/m.c **** 	case 0x77:tempnum=3;times=0;break;
 254               	.LM13:
 255 00f0 83E0      		ldi r24,lo8(3)
 256 00f2 20C0      		rjmp .L38
 257               	.L14:
  38:D:/liwei/two/m.c **** 	case 0xEB:tempnum=4;times=0;break;
 259               	.LM14:
 260 00f4 84E0      		ldi r24,lo8(4)
 261 00f6 1EC0      		rjmp .L38
 262               	.L15:
  39:D:/liwei/two/m.c **** 	case 0xDB:tempnum=5;times=0;break;
 264               	.LM15:
 265 00f8 85E0      		ldi r24,lo8(5)
 266 00fa 1CC0      		rjmp .L38
 267               	.L16:
  40:D:/liwei/two/m.c **** 	case 0xBB:tempnum=6;times=0;break;
 269               	.LM16:
 270 00fc 86E0      		ldi r24,lo8(6)
 271 00fe 1AC0      		rjmp .L38
 272               	.L17:
  41:D:/liwei/two/m.c **** 	case 0x7B:tempnum=7;times=0;break;
 274               	.LM17:
 275 0100 87E0      		ldi r24,lo8(7)
 276 0102 18C0      		rjmp .L38
 277               	.L18:
  42:D:/liwei/two/m.c **** 	case 0xED:tempnum=8;times=0;break;
 279               	.LM18:
 280 0104 88E0      		ldi r24,lo8(8)
 281 0106 16C0      		rjmp .L38
 282               	.L19:
  43:D:/liwei/two/m.c **** 	case 0xDD:tempnum=9;times=0;break;
 284               	.LM19:
 285 0108 89E0      		ldi r24,lo8(9)
 286 010a 14C0      		rjmp .L38
 287               	.L20:
  44:D:/liwei/two/m.c **** 	case 0xBD:tempnum=10;times=0;break;
 289               	.LM20:
 290 010c 8AE0      		ldi r24,lo8(10)
 291 010e 12C0      		rjmp .L38
 292               	.L21:
  45:D:/liwei/two/m.c **** 	case 0x7D:tempnum=11;times=0;break;
 294               	.LM21:
 295 0110 8BE0      		ldi r24,lo8(11)
 296 0112 10C0      		rjmp .L38
 297               	.L22:
  46:D:/liwei/two/m.c **** 	case 0xEE:tempnum=12;times=0;break;

⌨️ 快捷键说明

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