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

📄 key.lst

📁 学习AVR单片机的基础实验程序 适合初学者学习提高
💻 LST
字号:
__start:
__text_start:
    002A E5CF      LDI	R28,0x5F
    002B E0D4      LDI	R29,4
    002C BFCD      OUT	0x3D,R28
    002D BFDE      OUT	0x3E,R29
    002E 51C0      SUBI	R28,0x10
    002F 40D0      SBCI	R29,0
    0030 EA0A      LDI	R16,0xAA
    0031 8308      STD	Y+0,R16
    0032 2400      CLR	R0
    0033 E6E0      LDI	R30,0x60
    0034 E0F0      LDI	R31,0
    0035 E010      LDI	R17,0
    0036 36E0      CPI	R30,0x60
    0037 07F1      CPC	R31,R17
    0038 F011      BEQ	0x003B
    0039 9201      ST	R0,Z+
    003A CFFB      RJMP	0x0036
    003B 8300      STD	Z+0,R16
    003C E5E4      LDI	R30,0x54
    003D E0F0      LDI	R31,0
    003E E6A0      LDI	R26,0x60
    003F E0B0      LDI	R27,0
    0040 E010      LDI	R17,0
    0041 35E4      CPI	R30,0x54
    0042 07F1      CPC	R31,R17
    0043 F021      BEQ	0x0048
    0044 95C8      LPM
    0045 9631      ADIW	R30,1
    0046 920D      ST	R0,X+
    0047 CFF9      RJMP	0x0041
    0048 940E0074  CALL	_main
_exit:
    004A CFFF      RJMP	_exit
FILE: D:\AVR\我的程序\按键实验\cfg.h
(0001) /****************************
(0002) *程序名称:各功能函数
(0003) *设    计:萧联珠
(0004) *日    期:2007-11-18
(0005) ********************************/
(0006) #include <iom16v.h>
(0007) 
(0008) /*端口初始化*/
(0009) void port_init()
(0010) {
(0011)   DDRA=0x00;    //配置为输入口
_port_init:
    004B 2422      CLR	R2
    004C BA2A      OUT	0x1A,R2
(0012)   PORTA=0xFF;   //上拉电阻使能
    004D EF8F      LDI	R24,0xFF
    004E BB8B      OUT	0x1B,R24
(0013)   
(0014)   DDRB=0xFF;    //配置为输出口
    004F BB87      OUT	0x17,R24
(0015)   PORTB=0xFF;   //初始值为1
    0050 BB88      OUT	0x18,R24
    0051 9508      RET
(0016) }
(0017) 
(0018) /*按键判断程序*/
(0019) void key()
(0020) {
(0021)  if ((PINA & (1 << PA0)) == 0)  /*判断按键状态*/
_key:
    0052 99C8      SBIC	0x19,0
    0053 C002      RJMP	0x0056
(0022)  {	
(0023) 	PORTB = ~(1 << PB0);		  /*点亮指示灯*/
    0054 EF8E      LDI	R24,0xFE
    0055 BB88      OUT	0x18,R24
(0024)  }
(0025)  
(0026)  if ((PINA & (1 << PA1)) == 0) 
    0056 99C9      SBIC	0x19,1
    0057 C002      RJMP	0x005A
(0027)  {
(0028) 	PORTB = ~(1 << PB1);
    0058 EF8D      LDI	R24,0xFD
    0059 BB88      OUT	0x18,R24
(0029)  }
(0030) 		
(0031)  if ((PINA & (1 << PA2)) == 0) 
    005A 99CA      SBIC	0x19,2
    005B C002      RJMP	0x005E
(0032)  {
(0033) 	PORTB = ~(1 << PB2);
    005C EF8B      LDI	R24,0xFB
    005D BB88      OUT	0x18,R24
(0034)  }
(0035)  if ((PINA & (1 << PA3)) == 0) 
    005E 99CB      SBIC	0x19,3
    005F C002      RJMP	0x0062
(0036)  {
(0037) 	PORTB = ~(1 << PB3);
    0060 EF87      LDI	R24,0xF7
    0061 BB88      OUT	0x18,R24
(0038)  }
(0039) 		
(0040)  if ((PINA & (1 << PA4)) == 0) 
    0062 99CC      SBIC	0x19,4
    0063 C002      RJMP	0x0066
(0041)  {
(0042) 	PORTB = ~(1 << PB4);
    0064 EE8F      LDI	R24,0xEF
    0065 BB88      OUT	0x18,R24
(0043)  }
(0044) 		
(0045)  if ((PINA & (1 << PA5)) == 0) 
    0066 99CD      SBIC	0x19,5
    0067 C002      RJMP	0x006A
(0046)  {
(0047) 	PORTB = ~(1 << PB5);
    0068 ED8F      LDI	R24,0xDF
    0069 BB88      OUT	0x18,R24
(0048)  }
(0049) 
(0050)  if ((PINA & (1 << PA6)) == 0)
    006A 99CE      SBIC	0x19,6
    006B C002      RJMP	0x006E
(0051)  {
(0052) 	PORTB = ~(1 << PB6);
    006C EB8F      LDI	R24,0xBF
    006D BB88      OUT	0x18,R24
(0053)  }
(0054) 		
(0055)  if ((PINA & (1 << PA7)) == 0) 
    006E 99CF      SBIC	0x19,7
    006F C003      RJMP	0x0073
(0056)  {
(0057) 	PORTB = ~(1 << PB7);
    0070 E78F      LDI	R24,0x7F
    0071 EF9F      LDI	R25,0xFF
    0072 BB88      OUT	0x18,R24
(0058)  }
    0073 9508      RET
FILE: D:\AVR\我的程序\按键实验\main.c
(0001) /***********************************
(0002) *实验目的:熟悉按键操作编程
(0003) *设    计:萧联珠
(0004) *日    期:2007-11-18
(0005) ************************************/
(0006) #include <iom16v.h>
(0007) #include "cfg.h"
(0008) 
(0009) void main()
(0010) {
(0011)  port_init();
_main:
    0074 DFD6      RCALL	_port_init
    0075 C001      RJMP	0x0077
(0012)  while(1)
(0013)  {
(0014)    key();
FILE: <library>
    0076 DFDB      RCALL	_key
    0077 CFFE      RJMP	0x0076
    0078 9508      RET

⌨️ 快捷键说明

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