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

📄 ds1302.lst

📁 ds1302事实时钟+12864液晶显示 4094
💻 LST
📖 第 1 页 / 共 5 页
字号:
__start:
__text_start:
      34 E5CF      LDI	R28,0x5F
      35 E0D2      LDI	R29,2
      36 BFCD      OUT	0x3D,R28
      37 BFDE      OUT	0x3E,R29
      38 51C0      SUBI	R28,0x10
      39 40D0      SBCI	R29,0
      3A EA0A      LDI	R16,0xAA
      3B 8308      STD	Y+0,R16
      3C 2400      CLR	R0
      3D EAE6      LDI	R30,0xA6
      3E E0F0      LDI	R31,0
      3F E010      LDI	R17,0
      40 3BE8      CPI	R30,0xB8
      41 07F1      CPC	R31,R17
      42 F011      BEQ	0x0045
      43 9201      ST	R0,Z+
      44 CFFB      RJMP	0x0040
      45 8300      STD	Z+0,R16
      46 E2E2      LDI	R30,0x22
      47 E0F0      LDI	R31,0
      48 E6A0      LDI	R26,0x60
      49 E0B0      LDI	R27,0
      4A E010      LDI	R17,0
      4B E000      LDI	R16,0
      4C BF0B      OUT	0x3B,R16
      4D 36E8      CPI	R30,0x68
      4E 07F1      CPC	R31,R17
      4F F021      BEQ	0x0054
      50 95C8      LPM
      51 9631      ADIW	R30,1
      52 920D      ST	R0,X+
      53 CFF9      RJMP	0x004D
      54 D0BB      RCALL	_main
_exit:
      55 CFFF      RJMP	_exit
_update_display_dp:
  byte_counter         --> R20
  bit_count            --> R22
  temp_i               --> R10
  k                    --> R12
      56 D681      RCALL	push_xgsetF03C
      57 0168      MOVW	R12,R16
FILE: E:\AVR实验\ds1302+12864时钟\m4094.c
(0001) /*4094显示模式
(0002) 基于实验板接线方式
(0003) */
(0004) #include "d4094.h"
(0005) 
(0006) 
(0007) uchar table2[10]={0x81,0xB7,0xC2,0x92,0xB4,0x98,0x88,0xB3,0x80,0x90};
(0008) uchar led_buffer[4]={0,3};
(0009) 
(0010) void update_display_dp(uint k)
(0011) {
(0012) 	 uchar bit_count=0;
      58 2766      CLR	R22
(0013) 	 uchar byte_counter=0;
      59 2744      CLR	R20
(0014)      uchar temp_i=0;
      5A 24AA      CLR	R10
(0015) 	 
(0016)      led_buffer[3]=k/1000;
      5B EE28      LDI	R18,0xE8
      5C E033      LDI	R19,3
      5D 0186      MOVW	R16,R12
      5E D623      RCALL	div16u
      5F 9300 006D STS	led_buffer+3,R16
(0017)      led_buffer[2]=(k%1000)/100;
      61 EE28      LDI	R18,0xE8
      62 E033      LDI	R19,3
      63 0186      MOVW	R16,R12
      64 D61B      RCALL	mod16u
      65 E624      LDI	R18,0x64
      66 E030      LDI	R19,0
      67 D61A      RCALL	div16u
      68 9300 006C STS	led_buffer+2,R16
(0018)      led_buffer[1]=(k%100)/10;
      6A E624      LDI	R18,0x64
      6B E030      LDI	R19,0
      6C 0186      MOVW	R16,R12
      6D D612      RCALL	mod16u
      6E E02A      LDI	R18,0xA
      6F E030      LDI	R19,0
      70 D611      RCALL	div16u
      71 9300 006B STS	led_buffer+1,R16
(0019)      led_buffer[0]=k%10;
      73 E02A      LDI	R18,0xA
      74 E030      LDI	R19,0
      75 0186      MOVW	R16,R12
      76 D609      RCALL	mod16u
      77 9300 006A STS	led_buffer,R16
(0020) 	 
(0021)      CLR_STR_4094;//led_str_off;
      79 98AE      CBI	0x15,6
(0022)      CLR_CLK_4094;//led_clk_off;
      7A 98AD      CBI	0x15,5
(0023) 	
(0024)      for(byte_counter=0;byte_counter<4;byte_counter++)
      7B C01C      RJMP	0x0098
(0025) 	   {
(0026) 	      bit_count=8;
      7C E068      LDI	R22,0x8
(0027) 	       temp_i=table2[led_buffer[byte_counter]];
      7D E68A      LDI	R24,0x6A
      7E E090      LDI	R25,0
      7F 2FE4      MOV	R30,R20
      80 27FF      CLR	R31
      81 0FE8      ADD	R30,R24
      82 1FF9      ADC	R31,R25
      83 81E0      LDD	R30,Z+0
      84 27FF      CLR	R31
      85 E680      LDI	R24,0x60
      86 E090      LDI	R25,0
      87 0FE8      ADD	R30,R24
      88 1FF9      ADC	R31,R25
      89 80A0      LDD	R10,Z+0
      8A C009      RJMP	0x0094
(0028) 
(0029) 	       while(bit_count>0)
(0030) 		      {
(0031) 		      if((temp_i&0x01)==0)
      8B FCA0      SBRC	R10,0
      8C C002      RJMP	0x008F
(0032) 			     {
(0033) 			         CLR_DATA_4094;//led_d_off;
      8D 98AC      CBI	0x15,4
(0034) 			      }
      8E C001      RJMP	0x0090
(0035) 	        	else
(0036) 		        	{
(0037) 			      SET_DATA_4094;//led_d_on;
      8F 9AAC      SBI	0x15,4
(0038) 			           }
(0039) 		temp_i=(temp_i>>1);
      90 94A6      LSR	R10
(0040) 		
(0041) 	
(0042) 		SET_CLK_4094;//led_clk_on;
      91 9AAD      SBI	0x15,5
(0043) 
(0044) 		CLR_CLK_4094;//led_clk_off;
      92 98AD      CBI	0x15,5
(0045) 
(0046) 		bit_count--;			
      93 956A      DEC	R22
      94 E080      LDI	R24,0
      95 1786      CP	R24,R22
      96 F3A0      BCS	0x008B
      97 9543      INC	R20
      98 3044      CPI	R20,4
      99 F310      BCS	0x007C
(0047) 		
(0048) 		}
(0049) 	
(0050) 	}
(0051)     SET_STR_4094;
      9A 9AAE      SBI	0x15,6
      9B C645      RJMP	pop_xgsetF03C
_jisuan:
  d                    --> R20
  e                    --> R22
  b_data               --> R16
      9C 934A      ST	R20,-Y
      9D 936A      ST	R22,-Y
FILE: E:\AVR实验\ds1302+12864时钟\main.c
(0001) #include <iom8515v.h>
(0002) #include "ds1302.h"
(0003) #include "jhd12864.h"
(0004) #include "d4094.h"
(0005) #include "charindex.h"
(0006) 
(0007) 
(0008) 
(0009) uint gewei,shiwei;
(0010) uint sec,min,hour,year,month,day,date;
(0011) uchar mid[10]={0};
(0012) 
(0013) 
(0014) void jisuan(uchar b_data)
(0015) {
(0016)    uchar e,d;
(0017)    e=b_data;
      9E 2F60      MOV	R22,R16
(0018)    d=e;
      9F 2F46      MOV	R20,R22
(0019)    e=e&0x0f;
      A0 706F      ANDI	R22,0xF
(0020)    d=d>>4;
      A1 2F84      MOV	R24,R20
      A2 9582      SWAP	R24
      A3 708F      ANDI	R24,0xF
      A4 2F48      MOV	R20,R24
(0021)    gewei=(e&0x01)+((e>>1)&0x01)*2+((e>>2)&0x01)*4+((e>>3)&0x01)*8;
      A5 2F86      MOV	R24,R22
      A6 2799      CLR	R25
      A7 9595      ASR	R25
      A8 9587      ROR	R24
      A9 7081      ANDI	R24,1
      AA 7090      ANDI	R25,0
      AB 011C      MOVW	R2,R24
      AC 0C22      LSL	R2
      AD 1C33      ROL	R3
      AE 2F86      MOV	R24,R22
      AF 2799      CLR	R25
      B0 7081      ANDI	R24,1
      B1 7090      ANDI	R25,0
      B2 012C      MOVW	R4,R24
      B3 0C42      ADD	R4,R2
      B4 1C53      ADC	R5,R3
      B5 2F86      MOV	R24,R22
      B6 2799      CLR	R25
      B7 9595      ASR	R25
      B8 9587      ROR	R24
      B9 9595      ASR	R25
      BA 9587      ROR	R24
      BB 7081      ANDI	R24,1
      BC 7090      ANDI	R25,0
      BD 0F88      LSL	R24
      BE 1F99      ROL	R25
      BF 0F88      LSL	R24
      C0 1F99      ROL	R25
      C1 0E48      ADD	R4,R24
      C2 1E59      ADC	R5,R25
      C3 2F86      MOV	R24,R22
      C4 2799      CLR	R25
      C5 9595      ASR	R25
      C6 9587      ROR	R24
      C7 9595      ASR	R25
      C8 9587      ROR	R24
      C9 9595      ASR	R25
      CA 9587      ROR	R24
      CB 7081      ANDI	R24,1
      CC 7090      ANDI	R25,0
      CD 0F88      LSL	R24
      CE 1F99      ROL	R25
      CF 0F88      LSL	R24
      D0 1F99      ROL	R25
      D1 0F88      LSL	R24
      D2 1F99      ROL	R25
      D3 0E48      ADD	R4,R24
      D4 1E59      ADC	R5,R25
      D5 9250 00B7 STS	gewei+1,R5
      D7 9240 00B6 STS	gewei,R4
(0022)    shiwei=(d&0x01)+((d>>1)&0x01)*2+((d>>2)&0x01)*4+((d>>3)&0x01)*8; 
      D9 2F84      MOV	R24,R20
      DA 2799      CLR	R25
      DB 9595      ASR	R25
      DC 9587      ROR	R24
      DD 7081      ANDI	R24,1
      DE 7090      ANDI	R25,0
      DF 011C      MOVW	R2,R24
      E0 0C22      LSL	R2
      E1 1C33      ROL	R3
      E2 2F84      MOV	R24,R20
      E3 2799      CLR	R25
      E4 7081      ANDI	R24,1
      E5 7090      ANDI	R25,0
      E6 012C      MOVW	R4,R24
      E7 0C42      ADD	R4,R2
      E8 1C53      ADC	R5,R3
      E9 2F84      MOV	R24,R20
      EA 2799      CLR	R25
      EB 9595      ASR	R25
      EC 9587      ROR	R24
      ED 9595      ASR	R25
      EE 9587      ROR	R24
      EF 7081      ANDI	R24,1
      F0 7090      ANDI	R25,0
      F1 0F88      LSL	R24
      F2 1F99      ROL	R25
      F3 0F88      LSL	R24
      F4 1F99      ROL	R25
      F5 0E48      ADD	R4,R24
      F6 1E59      ADC	R5,R25
      F7 2F84      MOV	R24,R20
      F8 2799      CLR	R25
      F9 9595      ASR	R25
      FA 9587      ROR	R24
      FB 9595      ASR	R25
      FC 9587      ROR	R24
      FD 9595      ASR	R25
      FE 9587      ROR	R24
      FF 7081      ANDI	R24,1
     100 7090      ANDI	R25,0
     101 0F88      LSL	R24
     102 1F99      ROL	R25
     103 0F88      LSL	R24
     104 1F99      ROL	R25
     105 0F88      LSL	R24
     106 1F99      ROL	R25
     107 0E48      ADD	R4,R24
     108 1E59      ADC	R5,R25
     109 9250 00B5 STS	shiwei+1,R5
     10B 9240 00B4 STS	shiwei,R4
     10D 9169      LD	R22,Y+
     10E 9149      LD	R20,Y+
     10F 9508      RET
_main:
  num                  --> R20
     110 9724      SBIW	R28,4
(0023) 
(0024)    }
(0025) 
(0026)     
(0027)    
(0028) void main()
(0029) {
(0030) 
(0031)    uchar num=0x01; 
     111 E041      LDI	R20,1
(0032)  
(0033)    DDRC=0xFF;
     112 EF8F      LDI	R24,0xFF
     113 BB84      OUT	0x14,R24
(0034)    PORTC=0xFF;
     114 BB85      OUT	0x15,R24
(0035) 
(0036)    LCD_Init();
     115 D4B1      RCALL	_LCD_Init
(0037)    delay_1ms(50);
     116 E302      LDI	R16,0x32
     117 E010      LDI	R17,0
     118 D300      RCALL	_delay_1ms
(0038)    LCD_Init();	 			//初始化两边是关键,否则液晶上电重起将不能显示
     119 D4AD      RCALL	_LCD_Init
(0039) 	
(0040)   WriteSec(0x50);
     11A E500      LDI	R16,0x50
     11B E010      LDI	R17,0
     11C D267      RCALL	_WriteSec
(0041)   WriteMin(0x59);
     11D E509      LDI	R16,0x59
     11E E010      LDI	R17,0
     11F D26D      RCALL	_WriteMin
(0042)   WriteHour(0x23);
     120 E203      LDI	R16,0x23
     121 E010      LDI	R17,0
     122 D273      RCALL	_WriteHour
(0043)   WriteYear(0x99);
     123 E909      LDI	R16,0x99
     124 E010      LDI	R17,0
     125 D279      RCALL	_WriteYear
(0044)   WriteMonth(0x12);
     126 E102      LDI	R16,0x12
     127 E010      LDI	R17,0
     128 D27F      RCALL	_WriteMonth
(0045)   WriteDate(0x31);
     129 E301      LDI	R16,0x31
     12A E010      LDI	R17,0
     12B D28E      RCALL	_WriteDate
(0046)   
(0047)   WriteDay(0x07);
     12C E007      LDI	R16,7
     12D E010      LDI	R17,0
     12E D282      RCALL	_WriteDay
(0048)   
(0049)   Char_Set_XY(1,0,"time");
     12F E88D      LDI	R24,0x8D
     130 E090      LDI	R25,0
     131 8399      STD	Y+1,R25
     132 8388      STD	Y+0,R24
     133 2722      CLR	R18
     134 2733      CLR	R19
     135 E001      LDI	R16,1
     136 E010      LDI	R17,0
     137 D33B      RCALL	_Char_Set_XY
(0050)   Char_Set_XY(1,1,"date");
     138 E888      LDI	R24,0x88
     139 E090      LDI	R25,0
     13A 8399      STD	Y+1,R25
     13B 8388      STD	Y+0,R24
     13C E021      LDI	R18,1
     13D E030      LDI	R19,0
     13E E001      LDI	R16,1
     13F E010      LDI	R17,0
     140 D332      RCALL	_Char_Set_XY
(0051)   Char_Set_XY(1,2,"week");
     141 E883      LDI	R24,0x83
     142 E090      LDI	R25,0
     143 8399      STD	Y+1,R25
     144 8388      STD	Y+0,R24
     145 E022      LDI	R18,2
     146 E030      LDI	R19,0
     147 E001      LDI	R16,1
     148 E010      LDI	R17,0
     149 D329      RCALL	_Char_Set_XY
(0052)   
(0053)  
(0054)   Char_Set_XY_BYTE(6,0,charindex[10],2);
     14A E082      LDI	R24,2
     14B E090      LDI	R25,0
     14C 839B      STD	Y+3,R25
     14D 838A      STD	Y+2,R24
     14E 9020 0078 LDS	R2,0x0078
     150 2433      CLR	R3
     151 8239      STD	Y+1,R3
     152 8228      STD	Y+0,R2
     153 2722      CLR	R18
     154 2733      CLR	R19
     155 E006      LDI	R16,6
     156 E010      LDI	R17,0
     157 D34F      RCALL	_Char_Set_XY_BYTE
(0055)   Char_Set_XY_BYTE(5,0,charindex[10],1);
     158 E081      LDI	R24,1
     159 E090      LDI	R25,0
     15A 839B      STD	Y+3,R25
     15B 838A      STD	Y+2,R24
     15C 9020 0078 LDS	R2,0x0078
     15E 2433      CLR	R3
     15F 8239      STD	Y+1,R3
     160 8228      STD	Y+0,R2
     161 2722      CLR	R18
     162 2733      CLR	R19
     163 E005      LDI	R16,5
     164 E010      LDI	R17,0
     165 D341      RCALL	_Char_Set_XY_BYTE
(0056)   Char_Set_XY_BYTE(6,1,charindex[10],2);
     166 E082      LDI	R24,2
     167 E090      LDI	R25,0
     168 839B      STD	Y+3,R25
     169 838A      STD	Y+2,R24
     16A 9020 0078 LDS	R2,0x0078
     16C 2433      CLR	R3
     16D 8239      STD	Y+1,R3
     16E 8228      STD	Y+0,R2
     16F E021      LDI	R18,1
     170 E030      LDI	R19,0
     171 E006      LDI	R16,6
     172 E010      LDI	R17,0
     173 D333      RCALL	_Char_Set_XY_BYTE
(0057)   Char_Set_XY_BYTE(5,1,charindex[10],1);  
     174 E081      LDI	R24,1
     175 E090      LDI	R25,0
     176 839B      STD	Y+3,R25
     177 838A      STD	Y+2,R24
     178 9020 0078 LDS	R2,0x0078
     17A 2433      CLR	R3

⌨️ 快捷键说明

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