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

📄 xianshi.lst

📁 1602液晶显示模块
💻 LST
字号:
__text_start:
__start:
    0036 E5CF      LDI	R28,0x5F
    0037 E0D8      LDI	R29,0x8
    0038 BFCD      OUT	0x3D,R28
    0039 BFDE      OUT	0x3E,R29
    003A 51C0      SUBI	R28,0x10
    003B 40D0      SBCI	R29,0
    003C EA0A      LDI	R16,0xAA
    003D 8308      STD	Y+0,R16
    003E 2400      CLR	R0
    003F E6EE      LDI	R30,0x6E
    0040 E0F0      LDI	R31,0
    0041 E010      LDI	R17,0
    0042 36EE      CPI	R30,0x6E
    0043 07F1      CPC	R31,R17
    0044 F011      BEQ	0x0047
    0045 9201      ST	R0,Z+
    0046 CFFB      RJMP	0x0042
    0047 8300      STD	Z+0,R16
    0048 E5EE      LDI	R30,0x5E
    0049 E0F0      LDI	R31,0
    004A E6A0      LDI	R26,0x60
    004B E0B0      LDI	R27,0
    004C E010      LDI	R17,0
    004D 36EC      CPI	R30,0x6C
    004E 07F1      CPC	R31,R17
    004F F021      BEQ	0x0054
    0050 95C8      LPM
    0051 9631      ADIW	R30,1
    0052 920D      ST	R0,X+
    0053 CFF9      RJMP	0x004D
    0054 940E00CF  CALL	_main
_exit:
    0056 CFFF      RJMP	_exit
FILE: E:\实验\DS1302\显示\delay.c
(0001) #define DELAY_C
(0002) #define XTAL 1    //晶振频率,单位MHz  定义为全局变量
(0003) void delay_1us(void)                 //1us延时函数
(0004)   {
(0005)    asm("nop");
_delay_1us:
    0057 0000      NOP
    0058 9508      RET
_delay_nus:
  i                    --> R20
  n                    --> R22
    0059 940E00E0  CALL	push_gset2
    005B 01B8      MOVW	R22,R16
(0006)   }
(0007) 
(0008) void delay_nus(unsigned int n)       //N us延时函数
(0009)   {
(0010)    unsigned int i=0;
    005C 2744      CLR	R20
    005D 2755      CLR	R21
(0011)    for (i=0;i<n;i++)
    005E C003      RJMP	0x0062
(0012)    delay_1us();
    005F DFF7      RCALL	_delay_1us
    0060 5F4F      SUBI	R20,0xFF
    0061 4F5F      SBCI	R21,0xFF
    0062 1746      CP	R20,R22
    0063 0757      CPC	R21,R23
    0064 F3D0      BCS	0x005F
    0065 940E00D7  CALL	pop_gset2
    0067 9508      RET
(0013)   }
(0014)   
(0015) void delay_1ms(void)                 //1ms延时函数
(0016)   {
(0017)    unsigned int i;
(0018)    for (i=0;i<(unsigned int)(XTAL*143-2);i++);
_delay_1ms:
  i                    --> R16
    0068 2700      CLR	R16
    0069 2711      CLR	R17
    006A C002      RJMP	0x006D
    006B 5F0F      SUBI	R16,0xFF
    006C 4F1F      SBCI	R17,0xFF
    006D 380D      CPI	R16,0x8D
    006E E0E0      LDI	R30,0
    006F 071E      CPC	R17,R30
    0070 F3D0      BCS	0x006B
    0071 9508      RET
_delay_nms:
  i                    --> R20
  n                    --> R22
    0072 940E00E0  CALL	push_gset2
    0074 01B8      MOVW	R22,R16
(0019)   }
(0020)   
(0021) void delay_nms(unsigned int n)       //N ms延时函数
(0022)   {
(0023)    unsigned int i=0;
    0075 2744      CLR	R20
    0076 2755      CLR	R21
(0024)    for (i=0;i<n;i++)
    0077 C003      RJMP	0x007B
(0025)    {
(0026)       delay_1ms();
    0078 DFEF      RCALL	_delay_1ms
    0079 5F4F      SUBI	R20,0xFF
    007A 4F5F      SBCI	R21,0xFF
    007B 1746      CP	R20,R22
    007C 0757      CPC	R21,R23
    007D F3D0      BCS	0x0078
    007E 940E00D7  CALL	pop_gset2
    0080 9508      RET
FILE: E:\实验\DS1302\显示\disp.h
(0001) #define led1  PORTB=0X01
(0002) #define led2  PORTB=0X02
(0003) #define led3  PORTB=0X04
(0004) #define led4  PORTB=0X08
(0005) #define led5  PORTB=0X10
(0006) #define led6  PORTB=0X20
(0007) #define led7  PORTB=0X40
(0008) #define led8  PORTB=0X80
(0009) 
(0010) #define led9  PORTD=0X80
(0011) #define led10  PORTD=0X40
(0012) #define led11  PORTD=0X20
(0013) #define led12  PORTD=0X10
(0014) #define led13  PORTD=0X08
(0015) #define led14  PORTD=0X04
(0016) const char SEG_table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
(0017) char  led_bit8Buff[]={0,0,0,0,0,0,0,0};
(0018) char  led_bit6Buff[]={0,0,0,0,0,0};
(0019) void disp_bit8()
(0020) {
(0021)  led1;
_disp_bit8:
    0081 E081      LDI	R24,1
    0082 BB88      OUT	0x18,R24
(0022)  PORTB=SEG_table[led_bit8Buff[0]];
    0083 E584      LDI	R24,0x54
    0084 E090      LDI	R25,0
    0085 91E00060  LDS	R30,led_bit8Buff
    0087 27FF      CLR	R31
    0088 0FE8      ADD	R30,R24
    0089 1FF9      ADC	R31,R25
    008A 91E4      LPM	R30,0(Z)
    008B BBE8      OUT	0x18,R30
(0023)  led2;
    008C E082      LDI	R24,2
    008D BB88      OUT	0x18,R24
(0024)  PORTB=SEG_table[led_bit8Buff[1]];
    008E E584      LDI	R24,0x54
    008F E090      LDI	R25,0
    0090 91E00061  LDS	R30,led_bit8Buff+1
    0092 27FF      CLR	R31
    0093 0FE8      ADD	R30,R24
    0094 1FF9      ADC	R31,R25
    0095 91E4      LPM	R30,0(Z)
    0096 BBE8      OUT	0x18,R30
(0025)  led3;
    0097 E084      LDI	R24,4
    0098 BB88      OUT	0x18,R24
(0026)  PORTB=SEG_table[led_bit8Buff[2]];
    0099 E584      LDI	R24,0x54
    009A E090      LDI	R25,0
    009B 91E00062  LDS	R30,led_bit8Buff+2
    009D 27FF      CLR	R31
    009E 0FE8      ADD	R30,R24
    009F 1FF9      ADC	R31,R25
    00A0 91E4      LPM	R30,0(Z)
    00A1 BBE8      OUT	0x18,R30
(0027)  led4;
    00A2 E088      LDI	R24,0x8
    00A3 BB88      OUT	0x18,R24
(0028)  PORTB=SEG_table[led_bit8Buff[3]];
    00A4 E584      LDI	R24,0x54
    00A5 E090      LDI	R25,0
    00A6 91E00063  LDS	R30,led_bit8Buff+3
    00A8 27FF      CLR	R31
    00A9 0FE8      ADD	R30,R24
    00AA 1FF9      ADC	R31,R25
    00AB 91E4      LPM	R30,0(Z)
    00AC BBE8      OUT	0x18,R30
    00AD 9508      RET
FILE: E:\实验\DS1302\显示\xianshi.c
(0001) //ICC-AVR application builder : 2006-12-8 21:26:52
(0002) // Target : M32
(0003) // Crystal: 4.0000Mhz
(0004) 
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007) #include "delay.c"
(0008) #include "disp.h"
(0009) void port_init(void)
(0010) {
(0011)  PORTA = 0x00;
_port_init:
    00AE 2422      CLR	R2
    00AF BA2B      OUT	0x1B,R2
(0012)  DDRA  = 0xFF;
    00B0 EF8F      LDI	R24,0xFF
    00B1 BB8A      OUT	0x1A,R24
(0013)  PORTB = 0x00;
    00B2 BA28      OUT	0x18,R2
(0014)  DDRB  = 0xFF;
    00B3 BB87      OUT	0x17,R24
(0015)  PORTC = 0x00; 
    00B4 BA25      OUT	0x15,R2
(0016)  DDRC  = 0x00;
    00B5 BA24      OUT	0x14,R2
(0017)  PORTD = 0x00;
    00B6 BA22      OUT	0x12,R2
(0018)  DDRD  = 0xFE;
    00B7 EF8E      LDI	R24,0xFE
    00B8 BB81      OUT	0x11,R24
    00B9 9508      RET
(0019) }
(0020) //UART0 initialize
(0021) // desired baud rate: 9600
(0022) // actual: baud rate:9615 (0.2%)
(0023) // char size: 8 bit
(0024) // parity: Disabled
(0025) void uart0_init(void)
(0026) {
(0027)  UCSRB = 0x00; //disable while setting baud rate
_uart0_init:
    00BA 2422      CLR	R2
    00BB B82A      OUT	0x0A,R2
(0028)  UCSRA = 0x00;
    00BC B82B      OUT	0x0B,R2
(0029)  UCSRC = BIT(URSEL) | 0x06;
    00BD E886      LDI	R24,0x86
    00BE BD80      OUT	0x20,R24
(0030)  UBRRL = 0x19; //set baud rate lo
    00BF E189      LDI	R24,0x19
    00C0 B989      OUT	0x09,R24
(0031)  UBRRH = 0x00; //set baud rate hi
    00C1 BC20      OUT	0x20,R2
(0032)  UCSRB = 0x98;
    00C2 E988      LDI	R24,0x98
    00C3 B98A      OUT	0x0A,R24
    00C4 9508      RET
(0033) }
(0034) 
(0035) #pragma interrupt_handler uart0_rx_isr:14
(0036) void uart0_rx_isr(void)
(0037) {
_uart0_rx_isr:
    00C5 9518      RETI
(0038)  //uart has received a character in UDR
(0039) }
(0040) 
(0041) //call this routine to initialize all peripherals
(0042) void init_devices(void)
(0043) {
(0044)  //stop errant interrupts until set up
(0045)  CLI(); //disable all interrupts
_init_devices:
    00C6 94F8      BCLR	7
(0046)  port_init();
    00C7 DFE6      RCALL	_port_init
(0047)  uart0_init();
    00C8 DFF1      RCALL	_uart0_init
(0048) 
(0049)  MCUCR = 0x00;
    00C9 2422      CLR	R2
    00CA BE25      OUT	0x35,R2
(0050)  GICR  = 0x00;
    00CB BE2B      OUT	0x3B,R2
(0051)  TIMSK = 0x00; //timer interrupt sources
    00CC BE29      OUT	0x39,R2
(0052)  SEI(); //re-enable interrupts
    00CD 9478      BSET	7
    00CE 9508      RET
(0053)  //all peripherals are now initialized
(0054) }
(0055) 
(0056) void main()
(0057) {init_devices();
_main:
    00CF DFF6      RCALL	_init_devices
    00D0 C004      RJMP	0x00D5
(0058)  while(1)
(0059)  {
(0060)  disp_bit8();
    00D1 DFAF      RCALL	_disp_bit8
(0061)  delay_nms(10);
FILE: <library>
    00D2 E00A      LDI	R16,0xA
    00D3 E010      LDI	R17,0
    00D4 DF9D      RCALL	_delay_nms
    00D5 CFFB      RJMP	0x00D1
    00D6 9508      RET
pop_gset2:
    00D7 E0E2      LDI	R30,2
    00D8 940C00E6  JMP	pop
push_gset5:
    00DA 92FA      ST	R15,-Y
    00DB 92EA      ST	R14,-Y
push_gset4:
    00DC 92DA      ST	R13,-Y
    00DD 92CA      ST	R12,-Y
push_gset3:
    00DE 92BA      ST	R11,-Y
    00DF 92AA      ST	R10,-Y
push_gset2:
    00E0 937A      ST	R23,-Y
    00E1 936A      ST	R22,-Y
push_gset1:
    00E2 935A      ST	R21,-Y
    00E3 934A      ST	R20,-Y
    00E4 9508      RET
pop_gset1:
    00E5 E0E1      LDI	R30,1
pop:
    00E6 9149      LD	R20,Y+
    00E7 9159      LD	R21,Y+
    00E8 FDE0      SBRC	R30,0
    00E9 9508      RET
    00EA 9169      LD	R22,Y+
    00EB 9179      LD	R23,Y+
    00EC FDE1      SBRC	R30,1
    00ED 9508      RET
    00EE 90A9      LD	R10,Y+
    00EF 90B9      LD	R11,Y+
    00F0 FDE2      SBRC	R30,2
    00F1 9508      RET
    00F2 90C9      LD	R12,Y+
    00F3 90D9      LD	R13,Y+
    00F4 FDE3      SBRC	R30,3
    00F5 9508      RET
    00F6 90E9      LD	R14,Y+
    00F7 90F9      LD	R15,Y+
    00F8 9508      RET

⌨️ 快捷键说明

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