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

📄 ir.lst

📁 无线遥控器的源代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
     1F3 334E      CPI	R20,0x3E
     1F4 E0E0      LDI	R30,0
     1F5 075E      CPC	R21,R30
     1F6 F40C      BGE	0x01F8
     1F7 C0FF      RJMP	0x02F7
     1F8 3444      CPI	R20,0x44
     1F9 E0E0      LDI	R30,0
     1FA 075E      CPC	R21,R30
     1FB F409      BNE	0x01FD
     1FC C093      RJMP	0x0290
     1FD C0F9      RJMP	0x02F7
     1FE 3644      CPI	R20,0x64
     1FF E0E0      LDI	R30,0
     200 075E      CPC	R21,R30
     201 F409      BNE	0x0203
     202 C09D      RJMP	0x02A0
     203 E684      LDI	R24,0x64
     204 E090      LDI	R25,0
     205 1784      CP	R24,R20
     206 0795      CPC	R25,R21
     207 F034      BLT	0x020E
     208 354A      CPI	R20,0x5A
     209 E0E0      LDI	R30,0
     20A 075E      CPC	R21,R30
     20B F409      BNE	0x020D
     20C C0D7      RJMP	0x02E4
     20D C0E9      RJMP	0x02F7
     20E 3748      CPI	R20,0x78
     20F E0E0      LDI	R30,0
     210 075E      CPC	R21,R30
     211 F409      BNE	0x0213
     212 C0A5      RJMP	0x02B8
     213 C0E3      RJMP	0x02F7
     214 3C40      CPI	R20,0xC0
     215 E0E0      LDI	R30,0
     216 075E      CPC	R21,R30
     217 F409      BNE	0x0219
     218 C0BB      RJMP	0x02D4
     219 EC80      LDI	R24,0xC0
     21A E090      LDI	R25,0
     21B 1784      CP	R24,R20
     21C 0795      CPC	R25,R21
     21D F40C      BGE	0x021F
     21E C030      RJMP	0x024F
     21F 3948      CPI	R20,0x98
     220 E0E0      LDI	R30,0
     221 075E      CPC	R21,R30
     222 F409      BNE	0x0224
     223 C098      RJMP	0x02BC
     224 E988      LDI	R24,0x98
     225 E090      LDI	R25,0
     226 1784      CP	R24,R20
     227 0795      CPC	R25,R21
     228 F084      BLT	0x0239
     229 3849      CPI	R20,0x89
     22A E0E0      LDI	R30,0
     22B 075E      CPC	R21,R30
     22C F409      BNE	0x022E
     22D C0AE      RJMP	0x02DC
     22E 3849      CPI	R20,0x89
     22F E0E0      LDI	R30,0
     230 075E      CPC	R21,R30
     231 F40C      BGE	0x0233
     232 C0C4      RJMP	0x02F7
     233 3944      CPI	R20,0x94
     234 E0E0      LDI	R30,0
     235 075E      CPC	R21,R30
     236 F409      BNE	0x0238
     237 C074      RJMP	0x02AC
     238 C0BE      RJMP	0x02F7
     239 3A44      CPI	R20,0xA4
     23A E0E0      LDI	R30,0
     23B 075E      CPC	R21,R30
     23C F409      BNE	0x023E
     23D C05E      RJMP	0x029C
     23E EA84      LDI	R24,0xA4
     23F E090      LDI	R25,0
     240 1784      CP	R24,R20
     241 0795      CPC	R25,R21
     242 F034      BLT	0x0249
     243 394E      CPI	R20,0x9E
     244 E0E0      LDI	R30,0
     245 075E      CPC	R21,R30
     246 F409      BNE	0x0248
     247 C0A4      RJMP	0x02EC
     248 C0AE      RJMP	0x02F7
     249 3B49      CPI	R20,0xB9
     24A E0E0      LDI	R30,0
     24B 075E      CPC	R21,R30
     24C F409      BNE	0x024E
     24D C0A2      RJMP	0x02F0
     24E C0A8      RJMP	0x02F7
     24F 3D4E      CPI	R20,0xDE
     250 E0E0      LDI	R30,0
     251 075E      CPC	R21,R30
     252 F409      BNE	0x0254
     253 C094      RJMP	0x02E8
     254 ED8E      LDI	R24,0xDE
     255 E090      LDI	R25,0
     256 1784      CP	R24,R20
     257 0795      CPC	R25,R21
     258 F0B4      BLT	0x026F
     259 3C48      CPI	R20,0xC8
     25A E0E0      LDI	R30,0
     25B 075E      CPC	R21,R30
     25C F409      BNE	0x025E
     25D C06E      RJMP	0x02CC
     25E EC88      LDI	R24,0xC8
     25F E090      LDI	R25,0
     260 1784      CP	R24,R20
     261 0795      CPC	R25,R21
     262 F034      BLT	0x0269
     263 3C44      CPI	R20,0xC4
     264 E0E0      LDI	R30,0
     265 075E      CPC	R21,R30
     266 F409      BNE	0x0268
     267 C02C      RJMP	0x0294
     268 C08E      RJMP	0x02F7
     269 3D4A      CPI	R20,0xDA
     26A E0E0      LDI	R30,0
     26B 075E      CPC	R21,R30
     26C F409      BNE	0x026E
     26D C072      RJMP	0x02E0
     26E C088      RJMP	0x02F7
     26F 3E48      CPI	R20,0xE8
     270 E0E0      LDI	R30,0
     271 075E      CPC	R21,R30
     272 F409      BNE	0x0274
     273 C03C      RJMP	0x02B0
     274 EE88      LDI	R24,0xE8
     275 E090      LDI	R25,0
     276 1784      CP	R24,R20
     277 0795      CPC	R25,R21
     278 F034      BLT	0x027F
     279 3E44      CPI	R20,0xE4
     27A E0E0      LDI	R30,0
     27B 075E      CPC	R21,R30
     27C F409      BNE	0x027E
     27D C026      RJMP	0x02A4
     27E C078      RJMP	0x02F7
     27F 3F48      CPI	R20,0xF8
     280 E0E0      LDI	R30,0
     281 075E      CPC	R21,R30
     282 F409      BNE	0x0284
     283 C03C      RJMP	0x02C0
     284 C072      RJMP	0x02F7
(0080)    {
(0081) 	case 0x04:  ir_num=0;break;//0
     285 2422      CLR	R2
     286 2433      CLR	R3
     287 9230 015B STS	ir_num+1,R3
     289 9220 015A STS	ir_num,R2
     28B C06B      RJMP	0x02F7
(0082) 	case 0x84:  ir_num=1;break;//1
     28C E081      LDI	R24,1
     28D 940E 05BC CALL	<created procedures>
     28F C067      RJMP	0x02F7
(0083) 	case 0x44:  ir_num=2;break;//2
     290 E082      LDI	R24,2
     291 940E 05BC CALL	<created procedures>
     293 C063      RJMP	0x02F7
(0084) 	case 0xc4:  ir_num=3;break;//3
     294 E083      LDI	R24,3
     295 940E 05BC CALL	<created procedures>
     297 C05F      RJMP	0x02F7
(0085) 	case 0x24:  ir_num=4;break;//4
     298 E084      LDI	R24,4
     299 940E 05BC CALL	<created procedures>
     29B C05B      RJMP	0x02F7
(0086) 	case 0xa4:  ir_num=5;break;//5
     29C E085      LDI	R24,5
     29D 940E 05BC CALL	<created procedures>
     29F C057      RJMP	0x02F7
(0087) 	case 0x64:  ir_num=6;break;//6
     2A0 E086      LDI	R24,6
     2A1 940E 05BC CALL	<created procedures>
     2A3 C053      RJMP	0x02F7
(0088) 	case 0xe4:  ir_num=7;break;//7
     2A4 E087      LDI	R24,7
     2A5 940E 05BC CALL	<created procedures>
     2A7 C04F      RJMP	0x02F7
(0089) 	case 0x14:  ir_num=8;break;//8
     2A8 E088      LDI	R24,0x8
     2A9 940E 05BC CALL	<created procedures>
     2AB C04B      RJMP	0x02F7
(0090) 	case 0x94:  ir_num=9;break;//9
     2AC E089      LDI	R24,0x9
     2AD 940E 05BC CALL	<created procedures>
     2AF C047      RJMP	0x02F7
(0091) 	case 0xe8:  ir_num=10;break;//取消
     2B0 E08A      LDI	R24,0xA
     2B1 940E 05BC CALL	<created procedures>
     2B3 C043      RJMP	0x02F7
(0092) 	case 0x49:  ir_num=11;break;//确认
     2B4 E08B      LDI	R24,0xB
     2B5 940E 05BC CALL	<created procedures>
     2B7 C03F      RJMP	0x02F7
(0093) 	case 0x78:  ir_num=12;break;//左
     2B8 E08C      LDI	R24,0xC
     2B9 940E 05BC CALL	<created procedures>
     2BB C03B      RJMP	0x02F7
(0094) 	case 0x98:  ir_num=13;break;//右
     2BC E08D      LDI	R24,0xD
     2BD 940E 05BC CALL	<created procedures>
     2BF C037      RJMP	0x02F7
(0095) 	case 0xf8:  ir_num=14;break;//前
     2C0 E08E      LDI	R24,0xE
     2C1 940E 05BC CALL	<created procedures>
     2C3 C033      RJMP	0x02F7
(0096) 	case 0x18:  ir_num=15;break;//后
     2C4 E08F      LDI	R24,0xF
     2C5 940E 05BC CALL	<created procedures>
     2C7 C02F      RJMP	0x02F7
(0097) 	case 0x2d:  ir_num=16;break;
     2C8 E180      LDI	R24,0x10
     2C9 940E 05BC CALL	<created procedures>
     2CB C02B      RJMP	0x02F7
(0098) 	case 0xc8:  ir_num=17;break;
     2CC E181      LDI	R24,0x11
     2CD 940E 05BC CALL	<created procedures>
     2CF C027      RJMP	0x02F7
(0099) 	case 0x20:  ir_num=18;break;
     2D0 E182      LDI	R24,0x12
     2D1 940E 05BC CALL	<created procedures>
     2D3 C023      RJMP	0x02F7
(0100) 	case 0xc0:  ir_num=19;break;
     2D4 E183      LDI	R24,0x13
     2D5 940E 05BC CALL	<created procedures>
     2D7 C01F      RJMP	0x02F7
(0101) 	case 0x3e:  ir_num=20;break;
     2D8 E184      LDI	R24,0x14
     2D9 940E 05BC CALL	<created procedures>
     2DB C01B      RJMP	0x02F7
(0102) 	case 0x89:  ir_num=21;break;
     2DC E185      LDI	R24,0x15
     2DD 940E 05BC CALL	<created procedures>
     2DF C017      RJMP	0x02F7
(0103) 	case 0xda:  ir_num=22;break;
     2E0 E186      LDI	R24,0x16
     2E1 940E 05BC CALL	<created procedures>
     2E3 C013      RJMP	0x02F7
(0104) 	case 0x5a:  ir_num=23;break;
     2E4 E187      LDI	R24,0x17
     2E5 940E 05BC CALL	<created procedures>
     2E7 C00F      RJMP	0x02F7
(0105) 	case 0xde:  ir_num=24;break;
     2E8 E188      LDI	R24,0x18
     2E9 940E 05BC CALL	<created procedures>
     2EB C00B      RJMP	0x02F7
(0106) 	case 0x9e:  ir_num=25;break;
     2EC E189      LDI	R24,0x19
     2ED 940E 05BC CALL	<created procedures>
     2EF C007      RJMP	0x02F7
(0107) 	case 0xb9:  ir_num=26;break;
     2F0 E18A      LDI	R24,0x1A
     2F1 940E 05BC CALL	<created procedures>
     2F3 C003      RJMP	0x02F7
(0108) 	case 0x38:  ir_num=27;break;
     2F4 E18B      LDI	R24,0x1B
     2F5 940E 05BC CALL	<created procedures>
(0109) 	default:  break;
(0110)    }
(0111)    LCD_write_data(10,0,operate_code);
     2F7 9020 0063 LDS	R2,operate_code
     2F9 2433      CLR	R3
     2FA 8239      STD	Y+1,R3
     2FB 8228      STD	Y+0,R2
     2FC 2722      CLR	R18
     2FD 2733      CLR	R19
     2FE E00A      LDI	R16,0xA
     2FF E010      LDI	R17,0
     300 D0B0      RCALL	_LCD_write_data
     301 940E 05C2 CALL	0x05C2
(0112)    if(ir_num<28)
     303 318C      CPI	R24,0x1C
     304 E0E0      LDI	R30,0
     305 079E      CPC	R25,R30
     306 F420      BCC	0x030B
(0113)    {
(0114)     codebegin=0;
     307 2422      CLR	R2
     308 9220 015C STS	codebegin,R2
(0115) 	spk();
     30A DDE7      RCALL	_spk
(0116)    }
(0117)    ir_rx_complete_flag=0;
     30B 2422      CLR	R2
     30C 9220 0060 STS	ir_rx_complete_flag,R2
(0118)    bitcnt=0;
     30E 9220 0061 STS	bitcnt,R2
(0119)    operate_code=0;
     310 9220 0063 STS	operate_code,R2
(0120)    user_code=0;	   
     312 9220 0062 STS	user_code,R2
(0121)   }
(0122)  }
     314 9622      ADIW	R28,2
     315 9159      LD	R21,Y+
     316 9149      LD	R20,Y+
     317 9508      RET
FILE: D:\mega16_32实验板资料\ICCAVR源程序\遥控器\lcd1602.h
(0001) /*-------------------------------------------
(0002)    RS----------PC2
(0003)    RW----------GND
(0004)    EN----------PC3
(0005)    D4-D7-------PC4-PC7
(0006) ---------------------------------------------*/
(0007) //定义MCU与LCD的接口 
(0008) #define LCD_EN_PORT   PORTC
(0009) #define LCD_EN_DDR    DDRC
(0010) #define LCD_RS_PORT   PORTC
(0011) #define LCD_RS_DDR    DDRC
(0012) #define LCD_DATA_PORT PORTC
(0013) #define LCD_DATA_DDR  DDRC
(0014) #define LCD_DATA_PIN  PINC
(0015) #define LCD_EN        0x08   //portc3 out
(0016) #define LCD_RS        0x04   //portc2 out
(0017) #define LCD_DATA      0xf0 //portc4/5/6/7 out
(0018) 
(0019) /*----------------------------------------------------------
(0020) Public function prototypes
(0021) ----------------------------------------------------------*/
(0022) void LCD_init(void);
(0023) void LCD_en_write(void);
(0024) void clear(void);
(0025) void LCD_write_char(unsigned command,unsigned data);
(0026) void LCD_set_xy(unsigned char x, unsigned char y);
(0027) void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s);
(0028) void LCD_write_data(unsigned char X,unsigned char Y,int dat);
(0029) 
(0030) /*------------------------------------------------------------
(0031) 函数: lcd1602口线初始化和液晶初始化
(0032) -------------------------------------------------------------*/
(0033) void LCD_init(void) //液晶初始化
(0034) {
(0035)  LCD_DATA_DDR|=LCD_DATA;
_LCD_init:
     318 B384      IN	R24,0x14
     319 6F80      ORI	R24,0xF0
     31A BB84      OUT	0x14,R24
(0036)  LCD_EN_DDR|=LCD_EN;
     31B 9AA3      SBI	0x14,3
(0037)  LCD_RS_DDR|=LCD_RS;
     31C 9AA2      SBI	0x14,2
(0038)  delay_ms(15);
     31D E00F      LDI	R16,0xF
     31E E010      LDI	R17,0
     31F DDC3      RCALL	_delay_ms
(0039)  LCD_write_char(0x28,0); //4位显示
     320 2722      CLR	R18
     321 2733      CLR	R19
     322 E208      LDI	R16,0x28
     323 E010      LDI	R17,0
     324 D028      RCALL	_LCD_write_char
(0040)  delay_ms(15);
     325 E00F      LDI	R16,0xF
     326 E010      LDI	R17,0
     327 DDBB      RCALL	_delay_ms
(0041)  LCD_write_char(0x0c,0); //显示开
     328 2722      CLR	R18
     329 2733      CLR	R19
     32A E00C      LDI	R16,0xC
     32B E010      LDI	R17,0
     32C D020      RCALL	_LCD_write_char
(0042)  delay_ms(15);
     32D E00F      LDI	R16,0xF
     32E E010      LDI	R17,0
     32F DDB3      RCALL	_delay_ms
(0043)  LCD_write_char(0x01,0); //清屏
     330 2722      CLR	R18
     331 2733      CLR	R19
     332 E001      LDI	R16,1
     333 E010      LDI	R17,0
     334 D018      RCALL	_LCD_write_char
(0044)  clear();
     335 D04E      RCALL	_clear
     336 9508      RET
_LCD_set_xy:
  address              --> R20
  y                    --> R10
  x                    --> R22
     337 D262      RCALL	push_xgsetF00C
     338 2EA2      MOV	R10,R18
     339 2F60      MOV	R22,R16
(0045) }
(0046) 
(0047) /*------------------------------------------------------------
(0048) 函数: 设置显示地址
(0049) para: x---the display address of a line limit: 0---15
(0050)       y---the display line limit 0 or 1 
(0051) --------------------------------------------------------------*/
(0052) void LCD_set_xy(unsigned char x, unsigned char y) //写地址函数
(0053) {
(0054)   unsigned char address;
(0055)   if(y ==0) 
     33A 20AA      TST	R10
     33B F419      BNE	0x033F
(0056)    address=0x80+x; //the first line
     33C 2F46      MOV	R20,R22
     33D 5840      SUBI	R20,0x80
     33E C002      RJMP	0x0341
(0057)   else 
(0058)    address=0xc0+x; //the second line
     33F 2F46      MOV	R20,R22
     340 5440      SUBI	R20,0x40
(0059)   LCD_write_char(address,0);
     341 2722      CLR	R18
     342 2733      CLR	R19
     343 2F04      MOV	R16,R20
     344 2711      CLR	R17
     345 D007      RCALL	_LCD_write_char
     346 C258      RJMP	pop_xgsetF00C
(0060) }
(0061) /*-------------------------------------------------------------
(0062) 函数: lcd1602使能
(0063) *--------------------------------------------------------------*/
(0064) void LCD_en_write(void) //液晶使能
(0065) { 
(0066)  LCD_EN_PORT|=LCD_EN;
_LCD_en_write:
     347 9AAB      SBI	0x15,3
(0067)  delay_us(5);
     348 E005      LDI	R16,5
     349 E010      LDI	R17,0
     34A DD7F      RCALL	_delay_us
(0068)  LCD_EN_PORT&=~LCD_EN;
     34B 98AB      CBI	0x15,3
     34C 9508      RET
_LCD_write_char:
  data_temp            --> R22
  command_temp         --> R20

⌨️ 快捷键说明

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