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

📄 clock.lst

📁 采用c语言编写的简易电子时钟程序。利用iccavr系列开发工具编写并调试成功。利用8mhz晶振可以达到实际时钟效果。
💻 LST
📖 第 1 页 / 共 2 页
字号:
    0142 1FF9      ADC	R31,R25
    0143 8220      STD	R2,0+Z
(0106) 	   ledbuff[4-2*t1]&=0x7f;
    0144 2E24      MOV	R2,R20
    0145 2433      CLR	R3
    0146 0C22      LSL	R2
    0147 1C33      ROL	R3
    0148 E084      LDI	R24,4
    0149 E090      LDI	R25,0
    014A 1982      SUB	R24,R2
    014B 0993      SBC	R25,R3
    014C E6E0      LDI	R30,0x60
    014D E0F0      LDI	R31,0
    014E 0F8E      ADD	R24,R30
    014F 1F9F      ADC	R25,R31
    0150 2E28      MOV	R2,R24
    0151 2E39      MOV	R3,R25
    0152 2DE2      MOV	R30,R2
    0153 2DF3      MOV	R31,R3
    0154 8180      LDD	R24,0+Z
    0155 778F      ANDI	R24,0x7F
    0156 8380      STD	R24,0+Z
(0107) 	   hextobcd();	   		 	    
    0157 DEF6      RCALL	_hextobcd
(0108)     }
    0158 9543      INC	R20
    0159 3043      CPI	R20,3
    015A F408      BCC	0x015C
    015B CF66      RJMP	0x00C2
(0109)     }
    015C D13B      RCALL	pop_gset3
    015D 9508      RET
(0110) /*****************************************
(0111) 主程序功能:演示了电脑时钟程序的工作过程
(0112) *****************************************/
(0113) void main(void)
(0114) {
(0115)  unsigned char i,j;
(0116)  MCUCR=0;
_main:
  i                    --> R20
  j                    --> R22
    015E 2422      CLR	R2
    015F BE25      OUT	P35,R2
(0117)  flag=0;
    0160 92200069  STS	R2,0x69
(0118)  port_init(); //端口初始化
    0162 DED7      RCALL	_port_init
(0119)  i=scan_key();
    0163 D06F      RCALL	_scan_key
    0164 2E20      MOV	R2,R16
    0165 2E31      MOV	R3,R17
    0166 2D42      MOV	R20,R2
    0167 C03A      RJMP	0x01A2
(0120)  while(1)
(0121)   {
(0122)    i=scan_key(); 
    0168 D06A      RCALL	_scan_key
    0169 2E20      MOV	R2,R16
    016A 2E31      MOV	R3,R17
    016B 2D42      MOV	R20,R2
(0123)    if (i!=0x7f)
    016C 374F      CPI	R20,0x7F
    016D F061      BEQ	0x017A
(0124)      {
(0125) 	  do 
(0126) 	   {
(0127) 	    j=scan_key();
    016E D064      RCALL	_scan_key
    016F 2E20      MOV	R2,R16
    0170 2E31      MOV	R3,R17
    0171 2D62      MOV	R22,R2
(0128) 	    display();	    
    0172 DF2F      RCALL	_display
(0129) 	   }
(0130) 	  while (i==j); 
    0173 1746      CP	R20,R22
    0174 F3C9      BEQ	0x016E
(0131)       if ((i&0x80)==0x80) 
    0175 2F84      MOV	R24,R20
    0176 7880      ANDI	R24,0x80
    0177 3880      CPI	R24,0x80
    0178 F409      BNE	0x017A
(0132) 	      settime();//设定时间
    0179 DF45      RCALL	_settime
(0133) 	 }
(0134)    if(flag==1)
    017A 91800069  LDS	R24,0x69
    017C 3081      CPI	R24,1
    017D F519      BNE	0x01A1
(0135)     {
(0136) 	 flag=0;
    017E 2422      CLR	R2
    017F 92200069  STS	R2,0x69
(0137) 	 if (time[2]>=60) 
    0181 91800068  LDS	R24,0x68
    0183 338C      CPI	R24,0x3C
    0184 F040      BCS	0x018D
(0138) 	    {
(0139) 		 time[2]-=60;
    0185 538C      SUBI	R24,0x3C
    0186 93800068  STS	R24,0x68
(0140) 		 time[1]++;
    0188 91800067  LDS	R24,0x67
    018A 5F8F      SUBI	R24,0xFF
    018B 93800067  STS	R24,0x67
(0141) 		 }
(0142) 	if (time[1]>=60) 
    018D 91800067  LDS	R24,0x67
    018F 338C      CPI	R24,0x3C
    0190 F040      BCS	0x0199
(0143)     {
(0144) 	 time[1]-=60;
    0191 538C      SUBI	R24,0x3C
    0192 93800067  STS	R24,0x67
(0145) 	 time[0]++;
    0194 91800066  LDS	R24,0x66
    0196 5F8F      SUBI	R24,0xFF
    0197 93800066  STS	R24,0x66
(0146) 	 } 
(0147) 	if (time[0]>=24) 
    0199 91800066  LDS	R24,0x66
    019B 3188      CPI	R24,0x18
    019C F018      BCS	0x01A0
(0148) 	    {
(0149) 		 time[0]-=24;
    019D 5188      SUBI	R24,0x18
    019E 93800066  STS	R24,0x66
(0150) 		 }
(0151) 	 hextobcd();
    01A0 DEAD      RCALL	_hextobcd
(0152)     }
(0153)    display();
    01A1 DF00      RCALL	_display
(0154)   }
    01A2 CFC5      RJMP	0x0168
(0155) }
    01A3 9508      RET
_timer1:
    01A4 938A      ST	R24,-Y
    01A5 939A      ST	R25,-Y
    01A6 B78F      IN	R24,P3F
    01A7 938A      ST	R24,-Y
(0156) /*****************************************
(0157)           T1溢出中断
(0158) *****************************************/  
(0159) void timer1(void)
(0160)    {
(0161)     flag=1;
    01A8 E081      LDI	R24,1
    01A9 93800069  STS	R24,0x69
(0162) 	time[2]++;
    01AB 91800068  LDS	R24,0x68
    01AD 5F8F      SUBI	R24,0xFF
    01AE 93800068  STS	R24,0x68
(0163) 	TCNT1=0x85ee;
    01B0 EE8E      LDI	R24,0xEE
    01B1 E895      LDI	R25,0x85
    01B2 9390004D  STS	R25,0x4D
    01B4 9380004C  STS	R24,0x4C
(0164)     }FILE: <library>
    01B6 9189      LD	R24,Y+
    01B7 BF8F      OUT	P3F,R24
    01B8 9199      LD	R25,Y+
    01B9 9189      LD	R24,Y+
    01BA 9518      RETI
_delay_1ms:
    01BB E001      LDI	R16,1
    01BC E010      LDI	R17,0
    01BD C002      RJMP	0x01C0
    01BE 5F0F      SUBI	R16,0xFF
    01BF 4F1F      SBCI	R17,0xFF
    01C0 3706      CPI	R16,0x76
    01C1 E0E4      LDI	R30,4
    01C2 071E      CPC	R17,R30
    01C3 F3D0      BCS	0x01BE
    01C4 9508      RET
_delay_ms:
    01C5 D0C7      RCALL	push_gset2
    01C6 2F60      MOV	R22,R16
    01C7 2F71      MOV	R23,R17
    01C8 2744      CLR	R20
    01C9 2755      CLR	R21
    01CA C003      RJMP	0x01CE
    01CB DFEF      RCALL	_delay_1ms
    01CC 5F4F      SUBI	R20,0xFF
    01CD 4F5F      SBCI	R21,0xFF
    01CE 1746      CP	R20,R22
    01CF 0757      CPC	R21,R23
    01D0 F3D0      BCS	0x01CB
    01D1 D0C4      RCALL	pop_gset2
    01D2 9508      RET
_scan_key:
    01D3 D0BF      RCALL	push_gset4
    01D4 24AA      CLR	R10
    01D5 24BB      CLR	R11
    01D6 E08F      LDI	R24,0xF
    01D7 BB84      OUT	P14,R24
    01D8 EF8F      LDI	R24,0xFF
    01D9 BB85      OUT	P15,R24
    01DA B381      IN	R24,P11
    01DB 778F      ANDI	R24,0x7F
    01DC BB81      OUT	P11,R24
    01DD 2744      CLR	R20
    01DE C06F      RJMP	0x024E
    01DF E001      LDI	R16,1
    01E0 2F14      MOV	R17,R20
    01E1 D0BA      RCALL	lsl8
    01E2 2E20      MOV	R2,R16
    01E3 9420      COM	R2
    01E4 BA25      OUT	P15,R2
    01E5 DFD5      RCALL	_delay_1ms
    01E6 B383      IN	R24,P13
    01E7 7F80      ANDI	R24,0xF0
    01E8 2EC8      MOV	R12,R24
    01E9 9987      SBIC	P10,7
    01EA C002      RJMP	0x01ED
    01EB 6081      ORI	R24,1
    01EC 2EC8      MOV	R12,R24
    01ED 2D8C      MOV	R24,R12
    01EE 3F80      CPI	R24,0xF0
    01EF F409      BNE	0x01F1
    01F0 C05A      RJMP	0x024B
    01F1 E005      LDI	R16,5
    01F2 E010      LDI	R17,0
    01F3 DFD1      RCALL	_delay_ms
    01F4 B383      IN	R24,P13
    01F5 7F80      ANDI	R24,0xF0
    01F6 2EC8      MOV	R12,R24
    01F7 9987      SBIC	P10,7
    01F8 C006      RJMP	0x01FF
    01F9 6081      ORI	R24,1
    01FA 2EC8      MOV	R12,R24
    01FB E081      LDI	R24,1
    01FC E090      LDI	R25,0
    01FD 2EA8      MOV	R10,R24
    01FE 2EB9      MOV	R11,R25
    01FF 2D8C      MOV	R24,R12
    0200 3F80      CPI	R24,0xF0
    0201 F409      BNE	0x0203
    0202 C048      RJMP	0x024B
    0203 7F80      ANDI	R24,0xF0
    0204 2EC8      MOV	R12,R24
    0205 2D6C      MOV	R22,R12
    0206 2777      CLR	R23
    0207 3B60      CPI	R22,0xB0
    0208 E0E0      LDI	R30,0
    0209 077E      CPC	R23,R30
    020A F0F1      BEQ	0x0229
    020B EB80      LDI	R24,0xB0
    020C E090      LDI	R25,0
    020D 1786      CP	R24,R22
    020E 0797      CPC	R25,R23
    020F F02C      BLT	0x0215
    0210 3760      CPI	R22,0x70
    0211 E0E0      LDI	R30,0
    0212 077E      CPC	R23,R30
    0213 F071      BEQ	0x0222
    0214 C029      RJMP	0x023E
    0215 3D60      CPI	R22,0xD0
    0216 E0E0      LDI	R30,0
    0217 077E      CPC	R23,R30
    0218 F0B9      BEQ	0x0230
    0219 3D60      CPI	R22,0xD0
    021A E0E0      LDI	R30,0
    021B 077E      CPC	R23,R30
    021C F10C      BLT	0x023E
    021D 3E60      CPI	R22,0xE0
    021E E0E0      LDI	R30,0
    021F 077E      CPC	R23,R30
    0220 F0B1      BEQ	0x0237
    0221 C01C      RJMP	0x023E
    0222 2E24      MOV	R2,R20
    0223 0C22      LSL	R2
    0224 0C22      LSL	R2
    0225 E08F      LDI	R24,0xF
    0226 2EC8      MOV	R12,R24
    0227 18C2      SUB	R12,R2
    0228 C017      RJMP	0x0240
    0229 2E24      MOV	R2,R20
    022A 0C22      LSL	R2
    022B 0C22      LSL	R2
    022C E08E      LDI	R24,0xE
    022D 2EC8      MOV	R12,R24
    022E 18C2      SUB	R12,R2
    022F C010      RJMP	0x0240
    0230 2E24      MOV	R2,R20
    0231 0C22      LSL	R2
    0232 0C22      LSL	R2
    0233 E08D      LDI	R24,0xD
    0234 2EC8      MOV	R12,R24
    0235 18C2      SUB	R12,R2
    0236 C009      RJMP	0x0240
    0237 2E24      MOV	R2,R20
    0238 0C22      LSL	R2
    0239 0C22      LSL	R2
    023A E08C      LDI	R24,0xC
    023B 2EC8      MOV	R12,R24
    023C 18C2      SUB	R12,R2
    023D C002      RJMP	0x0240
    023E E78F      LDI	R24,0x7F
    023F 2EC8      MOV	R12,R24
    0240 E081      LDI	R24,1
    0241 E090      LDI	R25,0
    0242 16A8      CP	R10,R24
    0243 06B9      CPC	R11,R25
    0244 F419      BNE	0x0248
    0245 2D8C      MOV	R24,R12
    0246 6880      ORI	R24,0x80
    0247 2EC8      MOV	R12,R24
    0248 2D0C      MOV	R16,R12
    0249 2711      CLR	R17
    024A C008      RJMP	0x0253
    024B EF8F      LDI	R24,0xFF
    024C BB85      OUT	P15,R24
    024D 9543      INC	R20
    024E 3044      CPI	R20,4
    024F F408      BCC	0x0251
    0250 CF8E      RJMP	0x01DF
    0251 E70F      LDI	R16,0x7F
    0252 E010      LDI	R17,0
    0253 D046      RCALL	pop_gset4
    0254 9508      RET
mpy8s:
    0255 920A      ST	R0,-Y
    0256 2400      CLR	R0
    0257 2300      TST	R16
    0258 F029      BEQ	0x025E
    0259 9506      LSR	R16
    025A F408      BCC	0x025C
    025B 0E01      ADD	R0,R17
    025C 0F11      LSL	R17
    025D CFF9      RJMP	0x0257
    025E 2D00      MOV	R16,R0
    025F 9009      LD	R0,Y+
    0260 9508      RET
mod8u:
    0261 9468      BSET	6
    0262 C001      RJMP	0x0264
div8u:
    0263 94E8      BCLR	6
    0264 92FA      ST	R15,-Y
    0265 18FF      SUB	R15,R15
    0266 E029      LDI	R18,0x9
    0267 1F00      ROL	R16
    0268 952A      DEC	R18
    0269 F421      BNE	0x026E
    026A F40E      BRTC	0x026C
    026B 2D0F      MOV	R16,R15
    026C 90F9      LD	R15,Y+
    026D 9508      RET
    026E 1CFF      ROL	R15
    026F 1AF1      SUB	R15,R17
    0270 F418      BCC	0x0274
    0271 0EF1      ADD	R15,R17
    0272 9488      BCLR	0
    0273 CFF3      RJMP	0x0267
    0274 9408      BSET	0
    0275 CFF1      RJMP	0x0267
push_gset1:
    0276 935A      ST	R21,-Y
    0277 934A      ST	R20,-Y
    0278 9508      RET
pop_gset1:
    0279 E0E1      LDI	R30,1
pop:
    027A 9149      LD	R20,Y+
    027B 9159      LD	R21,Y+
    027C FDE0      SBRC	R30,0
    027D 9508      RET
    027E 9169      LD	R22,Y+
    027F 9179      LD	R23,Y+
    0280 FDE1      SBRC	R30,1
    0281 9508      RET
    0282 90A9      LD	R10,Y+
    0283 90B9      LD	R11,Y+
    0284 FDE2      SBRC	R30,2
    0285 9508      RET
    0286 90C9      LD	R12,Y+
    0287 90D9      LD	R13,Y+
    0288 FDE3      SBRC	R30,3
    0289 9508      RET
    028A 90E9      LD	R14,Y+
    028B 90F9      LD	R15,Y+
    028C 9508      RET
push_gset2:
    028D 937A      ST	R23,-Y
    028E 936A      ST	R22,-Y
    028F CFE6      RJMP	push_gset1
push_gset3:
    0290 92BA      ST	R11,-Y
    0291 92AA      ST	R10,-Y
    0292 CFFA      RJMP	push_gset2
push_gset4:
    0293 92DA      ST	R13,-Y
    0294 92CA      ST	R12,-Y
    0295 CFFA      RJMP	push_gset3
pop_gset2:
    0296 E0E2      LDI	R30,2
    0297 CFE2      RJMP	pop
pop_gset3:
    0298 E0E4      LDI	R30,4
    0299 CFE0      RJMP	pop
pop_gset4:
    029A E0E8      LDI	R30,0x8
    029B CFDE      RJMP	pop
lsl8:
    029C 2311      TST	R17
    029D F019      BEQ	0x02A1
    029E 0F00      LSL	R16
    029F 951A      DEC	R17
    02A0 CFFB      RJMP	lsl8
    02A1 9508      RET

⌨️ 快捷键说明

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