📄 interrupt.lis
字号:
.module interrupt.c
.area text(rom, con, rel)
0000 .dbfile E:\Steaven2000\AVR\AVR_Book\PROGRA~1\SOURCE~1\Code\LCD菜单系统设计\interrupt.c
0000 .dbfunc e sInit_Calendar _sInit_Calendar fV
.even
0000 _sInit_Calendar::
0000 .dbline -1
0000 .dbline 26
0000 ; //***************************************************************
0000 ; // File Name : Interrupt.c
0000 ; // Author : Steaven
0000 ; // Created : 2008-06-09
0000 ; // Modified :
0000 ; // Revision : V0.0
0000 ; //***************************************************************
0000 ;
0000 ; #include "app.h"
0000 ;
0000 ; //global variables definition
0000 ; INT8U bYear; //time - year
0000 ; INT8U bMonth; //time - month
0000 ; INT8U bDate; //time - date
0000 ; INT8U bHour; //time - hour
0000 ; INT8U bMinute; //time - minute
0000 ; INT8U bSecond; //time - second
0000 ;
0000 ; //***************************************************************
0000 ; // Function : sInit_Calendar
0000 ; // Input : none
0000 ; // Output : none
0000 ; // Description : Time Initialization,2008-10-29,23:40:45
0000 ; //***************************************************************
0000 ; void sInit_Calendar(void)
0000 ; {
0000 .dbline 27
0000 ; bYear = 0x08;
0000 88E0 ldi R24,8
0002 80930500 sts _bYear,R24
0006 .dbline 28
0006 ; bMonth = 10;
0006 8AE0 ldi R24,10
0008 80930400 sts _bMonth,R24
000C .dbline 29
000C ; bDate = 29;
000C 8DE1 ldi R24,29
000E 80930300 sts _bDate,R24
0012 .dbline 30
0012 ; bHour = 23;
0012 87E1 ldi R24,23
0014 80930200 sts _bHour,R24
0018 .dbline 31
0018 ; bMinute = 40;
0018 88E2 ldi R24,40
001A 80930100 sts _bMinute,R24
001E .dbline 32
001E ; bSecond = 45;
001E 8DE2 ldi R24,45
0020 80930000 sts _bSecond,R24
0024 .dbline -2
0024 .dbline 33
0024 ; }
0024 L1:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbend
0026 .dbfunc e Calendar_Update _Calendar_Update fV
.even
0026 _Calendar_Update::
0026 .dbline -1
0026 .dbline 42
0026 ;
0026 ; //***************************************************************
0026 ; // Function : Calendar_Update
0026 ; // Input : none
0026 ; // Output : none
0026 ; // Description : Update time every one second
0026 ; //***************************************************************
0026 ; void Calendar_Update(void)
0026 ; {
0026 .dbline 43
0026 ; bSecond++;
0026 80910000 lds R24,_bSecond
002A 8F5F subi R24,255 ; addi 1
002C 80930000 sts _bSecond,R24
0030 .dbline 44
0030 ; if(bSecond >= 60)
0030 8C33 cpi R24,60
0032 08F4 brsh X0
0034 86C0 xjmp L3
0036 X0:
0036 .dbline 45
0036 ; {
0036 .dbline 46
0036 ; bSecond = 0;
0036 2224 clr R2
0038 20920000 sts _bSecond,R2
003C .dbline 47
003C ; bMinute++;
003C 80910100 lds R24,_bMinute
0040 8F5F subi R24,255 ; addi 1
0042 80930100 sts _bMinute,R24
0046 .dbline 48
0046 ; if(bMinute >= 60)
0046 8C33 cpi R24,60
0048 08F4 brsh X1
004A 7BC0 xjmp L5
004C X1:
004C .dbline 49
004C ; {
004C .dbline 50
004C ; bMinute = 0;
004C 20920100 sts _bMinute,R2
0050 .dbline 51
0050 ; bHour++;
0050 80910200 lds R24,_bHour
0054 8F5F subi R24,255 ; addi 1
0056 80930200 sts _bHour,R24
005A .dbline 52
005A ; if(bHour >= 24)
005A 8831 cpi R24,24
005C 08F4 brsh X2
005E 71C0 xjmp L7
0060 X2:
0060 .dbline 53
0060 ; {
0060 .dbline 54
0060 ; bHour = 0;
0060 20920200 sts _bHour,R2
0064 .dbline 55
0064 ; bDate++;
0064 80910300 lds R24,_bDate
0068 8F5F subi R24,255 ; addi 1
006A 80930300 sts _bDate,R24
006E .dbline 56
006E ; if((bMonth == 4) || (bMonth == 6) || \
006E 80910400 lds R24,_bMonth
0072 8430 cpi R24,4
0074 31F0 breq L13
0076 8630 cpi R24,6
0078 21F0 breq L13
007A 8930 cpi R24,9
007C 11F0 breq L13
007E 8B30 cpi R24,11
0080 79F4 brne L9
0082 L13:
0082 .dbline 58
0082 ; (bMonth == 9) || (bMonth == 11))
0082 ; {
0082 .dbline 59
0082 ; if(bDate > 30)
0082 8EE1 ldi R24,30
0084 20900300 lds R2,_bDate
0088 8215 cp R24,R2
008A 08F0 brlo X3
008C 4DC0 xjmp L10
008E X3:
008E .dbline 60
008E ; {
008E .dbline 61
008E ; bDate = 1;
008E 81E0 ldi R24,1
0090 80930300 sts _bDate,R24
0094 .dbline 62
0094 ; bMonth++;
0094 80910400 lds R24,_bMonth
0098 8F5F subi R24,255 ; addi 1
009A 80930400 sts _bMonth,R24
009E .dbline 63
009E ; }
009E .dbline 64
009E ; }
009E 44C0 xjmp L10
00A0 L9:
00A0 .dbline 65
00A0 ; else if((bMonth == 1) || (bMonth == 3) || \
00A0 80910400 lds R24,_bMonth
00A4 8130 cpi R24,1
00A6 61F0 breq L23
00A8 8330 cpi R24,3
00AA 51F0 breq L23
00AC 8530 cpi R24,5
00AE 41F0 breq L23
00B0 8730 cpi R24,7
00B2 31F0 breq L23
00B4 8830 cpi R24,8
00B6 21F0 breq L23
00B8 8A30 cpi R24,10
00BA 11F0 breq L23
00BC 8C30 cpi R24,12
00BE 71F4 brne L16
00C0 L23:
00C0 .dbline 69
00C0 ; (bMonth == 5) || (bMonth == 7) || \
00C0 ; (bMonth == 8) || (bMonth == 10) || \
00C0 ; (bMonth == 12))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -