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

📄 main.lst

📁 用AVR单片机mega16控制TEA5756收音机芯片的程序。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 874 00a4 CBDF      		rcall LCD_write_byte
 876               	.LM39:
 877 00a6 D6DF      		rcall LCD_clear
 879               	.LM40:
 880 00a8 60E0      		ldi r22,lo8(0)
 881 00aa 8CE0      		ldi r24,lo8(12)
 882 00ac C7DF      		rcall LCD_write_byte
 884               	.LM41:
 885 00ae C298      		cbi 56-0x20,2
 886               	/* epilogue: frame size=0 */
 887 00b0 0895      		ret
 888               	/* epilogue end (size=1) */
 889               	/* function LCD_init size 28 (27) */
 894               	.global	LCD_set_XY
 896               	LCD_set_XY:
 898               	.LM42:
 899               	/* prologue: frame size=0 */
 900 00b2 1F93      		push r17
 901               	/* prologue end (size=1) */
 902 00b4 182F      		mov r17,r24
 903 00b6 862F      		mov r24,r22
 905               	.LM43:
 906 00b8 60E0      		ldi r22,lo8(0)
 907 00ba 8064      		ori r24,lo8(64)
 908 00bc BFDF      		rcall LCD_write_byte
 910               	.LM44:
 911 00be 60E0      		ldi r22,lo8(0)
 912 00c0 812F      		mov r24,r17
 913 00c2 8068      		ori r24,lo8(-128)
 914 00c4 BBDF      		rcall LCD_write_byte
 915               	/* epilogue: frame size=0 */
 916 00c6 1F91      		pop r17
 917 00c8 0895      		ret
 918               	/* epilogue end (size=2) */
 919               	/* function LCD_set_XY size 12 (9) */
 923               	.global	LCD_write_char
 925               	LCD_write_char:
 927               	.LM45:
 928               	/* prologue: frame size=0 */
 929 00ca 1F93      		push r17
 930 00cc CF93      		push r28
 931 00ce DF93      		push r29
 932               	/* prologue end (size=3) */
 934               	.LM46:
 935 00d0 182F      		mov r17,r24
 936 00d2 1052      		subi r17,lo8(-(-32))
 938               	.LM47:
 939 00d4 C0E0      		ldi r28,lo8(0)
 940 00d6 D0E0      		ldi r29,hi8(0)
 941               	.L162:
 943               	.LM48:
 944 00d8 812F      		mov r24,r17
 945 00da 9927      		clr r25
 946 00dc FC01      		movw r30,r24
 947 00de EE0F      		lsl r30
 948 00e0 FF1F      		rol r31
 949 00e2 EE0F      		lsl r30
 950 00e4 FF1F      		rol r31
 951 00e6 E80F      		add r30,r24
 952 00e8 F91F      		adc r31,r25
 953 00ea E80F      		add r30,r24
 954 00ec F91F      		adc r31,r25
 955 00ee EC0F      		add r30,r28
 956 00f0 FD1F      		adc r31,r29
 957 00f2 E050      		subi r30,lo8(-(font6x8))
 958 00f4 F040      		sbci r31,hi8(-(font6x8))
 959 00f6 61E0      		ldi r22,lo8(1)
 960 00f8 8081      		ld r24,Z
 961 00fa A0DF      		rcall LCD_write_byte
 963               	.LM49:
 964 00fc 2196      		adiw r28,1
 965 00fe C630      		cpi r28,6
 966 0100 D105      		cpc r29,__zero_reg__
 967 0102 50F3      		brlo .L162
 968               	/* epilogue: frame size=0 */
 969 0104 DF91      		pop r29
 970 0106 CF91      		pop r28
 971 0108 1F91      		pop r17
 972 010a 0895      		ret
 973               	/* epilogue end (size=4) */
 974               	/* function LCD_write_char size 33 (26) */
 979               	.global	LCD_write_inverse_char
 981               	LCD_write_inverse_char:
 983               	.LM50:
 984               	/* prologue: frame size=0 */
 985 010c 1F93      		push r17
 986 010e CF93      		push r28
 987 0110 DF93      		push r29
 988               	/* prologue end (size=3) */
 990               	.LM51:
 991 0112 182F      		mov r17,r24
 992 0114 1052      		subi r17,lo8(-(-32))
 994               	.LM52:
 995 0116 C0E0      		ldi r28,lo8(0)
 996 0118 D0E0      		ldi r29,hi8(0)
 997               	.L169:
 999               	.LM53:
 1000 011a 812F      		mov r24,r17
 1001 011c 9927      		clr r25
 1002 011e FC01      		movw r30,r24
 1003 0120 EE0F      		lsl r30
 1004 0122 FF1F      		rol r31
 1005 0124 EE0F      		lsl r30
 1006 0126 FF1F      		rol r31
 1007 0128 E80F      		add r30,r24
 1008 012a F91F      		adc r31,r25
 1009 012c E80F      		add r30,r24
 1010 012e F91F      		adc r31,r25
 1011 0130 EC0F      		add r30,r28
 1012 0132 FD1F      		adc r31,r29
 1013 0134 E050      		subi r30,lo8(-(font6x8))
 1014 0136 F040      		sbci r31,hi8(-(font6x8))
 1015 0138 8081      		ld r24,Z
 1016 013a 61E0      		ldi r22,lo8(1)
 1017 013c 8095      		com r24
 1018 013e 7EDF      		rcall LCD_write_byte
 1020               	.LM54:
 1021 0140 2196      		adiw r28,1
 1022 0142 C630      		cpi r28,6
 1023 0144 D105      		cpc r29,__zero_reg__
 1024 0146 48F3      		brlo .L169
 1025               	/* epilogue: frame size=0 */
 1026 0148 DF91      		pop r29
 1027 014a CF91      		pop r28
 1028 014c 1F91      		pop r17
 1029 014e 0895      		ret
 1030               	/* epilogue end (size=4) */
 1031               	/* function LCD_write_inverse_char size 34 (27) */
 1038               	.global	LCD_write_english_string
 1040               	LCD_write_english_string:
 1042               	.LM55:
 1043               	/* prologue: frame size=0 */
 1044 0150 CF93      		push r28
 1045 0152 DF93      		push r29
 1046               	/* prologue end (size=2) */
 1047 0154 EA01      		movw r28,r20
 1049               	.LM56:
 1050 0156 ADDF      		rcall LCD_set_XY
 1052               	.LM57:
 1053 0158 8881      		ld r24,Y
 1054 015a 8823      		tst r24
 1055 015c 29F0      		breq .L177
 1056               	.L175:
 1058               	.LM58:
 1059 015e 8991      		ld r24,Y+
 1060 0160 B4DF      		rcall LCD_write_char
 1062               	.LM59:
 1063 0162 8881      		ld r24,Y
 1064 0164 8823      		tst r24
 1065 0166 D9F7      		brne .L175
 1066               	.L177:
 1067               	/* epilogue: frame size=0 */
 1068 0168 DF91      		pop r29
 1069 016a CF91      		pop r28
 1070 016c 0895      		ret
 1071               	/* epilogue end (size=3) */
 1072               	/* function LCD_write_english_string size 15 (10) */
 1078               	.global	LCD_write_inverse_string
 1080               	LCD_write_inverse_string:
 1082               	.LM60:
 1083               	/* prologue: frame size=0 */
 1084 016e CF93      		push r28
 1085 0170 DF93      		push r29
 1086               	/* prologue end (size=2) */
 1087 0172 EA01      		movw r28,r20
 1089               	.LM61:
 1090 0174 9EDF      		rcall LCD_set_XY
 1092               	.LM62:
 1093 0176 8881      		ld r24,Y
 1094 0178 8823      		tst r24
 1095 017a 29F0      		breq .L183
 1096               	.L181:
 1098               	.LM63:
 1099 017c 8991      		ld r24,Y+
 1100 017e C6DF      		rcall LCD_write_inverse_char
 1102               	.LM64:
 1103 0180 8881      		ld r24,Y
 1104 0182 8823      		tst r24
 1105 0184 D9F7      		brne .L181
 1106               	.L183:
 1107               	/* epilogue: frame size=0 */
 1108 0186 DF91      		pop r29
 1109 0188 CF91      		pop r28
 1110 018a 0895      		ret
 1111               	/* epilogue end (size=3) */
 1112               	/* function LCD_write_inverse_string size 15 (10) */
 1115               	.global	lcd_inverse
 1117               	lcd_inverse:
 176:3310LCD_function.c **** }
 177:3310LCD_function.c **** 
 178:3310LCD_function.c **** void lcd_inverse(void)
 179:3310LCD_function.c **** {
 1119               	.LM65:
 1120               	/* prologue: frame size=0 */
 1121               	/* prologue end (size=0) */
 180:3310LCD_function.c **** 	LCD_write_byte(0b00001101,0);
 1123               	.LM66:
 1124 018c 60E0      		ldi r22,lo8(0)
 1125 018e 8DE0      		ldi r24,lo8(13)
 1126 0190 55DF      		rcall LCD_write_byte
 1127               	/* epilogue: frame size=0 */
 1128 0192 0895      		ret
 1129               	/* epilogue end (size=1) */
 1130               	/* function lcd_inverse size 4 (3) */
 1133               	.global	lcd_no_inverse
 1135               	lcd_no_inverse:
 181:3310LCD_function.c **** }
 182:3310LCD_function.c **** void lcd_no_inverse(void)
 183:3310LCD_function.c **** {
 1137               	.LM67:
 1138               	/* prologue: frame size=0 */
 1139               	/* prologue end (size=0) */
 184:3310LCD_function.c **** 	LCD_write_byte(0b00001100,0);
 1141               	.LM68:
 1142 0194 60E0      		ldi r22,lo8(0)
 1143 0196 8CE0      		ldi r24,lo8(12)
 1144 0198 51DF      		rcall LCD_write_byte
 1145               	/* epilogue: frame size=0 */
 1146 019a 0895      		ret
 1147               	/* epilogue end (size=1) */
 1148               	/* function lcd_no_inverse size 4 (3) */
 1152               	.global	delay_ms
 1154               	delay_ms:
 1156               	.Ltext3:
   1:main.c        **** // WINAVR    GCC
   2:main.c        **** // ATmega8     
   3:main.c        **** // clock: internal 1Mhz
   4:main.c        **** 
   5:main.c        **** #include <avr/io.h>
   6:main.c        **** #include <avr/interrupt.h>
   7:main.c        **** #include <avr/signal.h>
   8:main.c        **** #include <avr/delay.h>
   9:main.c        **** #include <avr/eeprom.h>
  10:main.c        **** #include "3310LCD_function.c"
  11:main.c        **** 
  12:main.c        **** #define uchar uint8_t
  13:main.c        **** #define uint  uint16_t
  14:main.c        **** 
  15:main.c        **** #define SLA_W 0b11000000
  16:main.c        **** #define SLA_R 0b11000001
  17:main.c        **** 
  18:main.c        **** uchar senddata[5] ;
  19:main.c        **** uchar readdata[5] ;
  20:main.c        **** uchar search = 0;
  21:main.c        **** uchar search_up = 0;
  22:main.c        **** 
  23:main.c        **** //-------------------------------
  24:main.c        **** // 延时
  25:main.c        **** void delay_ms(uint ms)
  26:main.c        **** {
 1158               	.LM69:
 1159               	/* prologue: frame size=0 */
 1160               	/* prologue end (size=0) */
  27:main.c        **** 	uint i;
  28:main.c        **** 	for(i=0;i<ms;i++)
 1162               	.LM70:
 1163 019c 0097      		sbiw r24,0
 1164 019e 41F0      		breq .L193
 1165 01a0 9C01      		movw r18,r24
 1166               	.L191:
 1167               	.LBB2:
 1169               	.Ltext4:
   1:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* Copyright (c) 2002, Marek Michalkiewicz
   2:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    All rights reserved.
   3:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
   4:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    Redistribution and use in source and binary forms, with or without
   5:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    modification, are permitted provided that the following conditions are met:
   6:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
   7:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    * Redistributions of source code must retain the above copyright
   8:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer.
   9:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    * Redistributions in binary form must reproduce the above copyright
  10:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      notice, this list of conditions and the following disclaimer in
  11:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      the documentation and/or other materials provided with the
  12:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****      distribution.
  13:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  14:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  15:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  16:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  17:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  18:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  19:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  20:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  21:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  22:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  23:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  24:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****   POSSIBILITY OF SUCH DAMAGE. */
  25:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  26:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* $Id: delay.h,v 1.2.2.2 2004/02/13 21:43:37 joerg_wunsch Exp $ */
  27:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  28:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /*
  29:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****    avr/delay.h - loops for small accurate delays
  30:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h ****  */
  31:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  32:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #ifndef _AVR_DELAY_H_
  33:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #define _AVR_DELAY_H_ 1
  34:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  35:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** #include <inttypes.h>
  36:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  37:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 8-bit count, 3 cycles/loop */
  38:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
  39:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_1(uint8_t __count)
  40:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
  41:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	asm volatile (
  42:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"1: dec %0" "\n\t"
  43:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		"brne 1b"
  44:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "=r" (__count)
  45:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 		: "0" (__count)
  46:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	);
  47:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** }
  48:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 
  49:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** /* 16-bit count, 4 cycles/loop */
  50:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** static __inline__ void
  51:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** _delay_loop_2(uint16_t __count)
  52:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** {
 1171               	.LM71:
 1172 01a2 8AEF      		ldi r24,lo8(250)
 1173 01a4 90E0      		ldi r25,hi8(250)
 1174               	.LBB3:
  53:C:/WinAVR/bin/../lib/gcc/avr/3.4.1/../../../../avr/include/avr/delay.h **** 	asm volatile (

⌨️ 快捷键说明

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