?? time.lis
字號:
.module TIME.c
.area text
; i -> 0,X
0000 _delay::
0000 A7FF ais #-1
0002 95 tsx
0003 7F clr ,X
0004 2001 bra L5
0006 L2:
0006 L3:
0006 7C inc ,X
0007 L5:
0007 ; #include "TIME.h"
0007 ; #include "LCD.h"
0007 ; #include "KB.h"
0007 ;
0007 ; void delay(void)
0007 ; {
0007 ; unsigned char i;
0007 ; for(i=0;i<=110;i++);
0007 F6 lda ,X
0008 A16E cmp #110
000A 23FA bls L2
000C L1:
000C A701 ais #1
000E .dbline 0 ; func end
000E 81 rts
000F _conver::
000F ; }
000F ;
000F ; void conver(void)
000F ; {
000F ; time1[0]=time[0]/10+0x30;
000F B600 lda *_time
0011 AE0A ldx #10
0013 8C clrh
0014 52 div
0015 AB30 add #48
0017 B700 sta *_time1
0019 ; time1[1]=time[0]%10+0x30;
0019 B600 lda *_time
001B AE0A ldx #10
001D 8C clrh
001E 52 div
001F 8B pshh
0020 86 pula
0021 AB30 add #48
0023 B701 sta *_time1+1
0025 ; time1[2]=time[1]/10+0x30;
0025 B601 lda *_time+1
0027 AE0A ldx #10
0029 8C clrh
002A 52 div
002B AB30 add #48
002D B702 sta *_time1+2
002F ; time1[3]=time[1]%10+0x30;
002F B601 lda *_time+1
0031 AE0A ldx #10
0033 8C clrh
0034 52 div
0035 8B pshh
0036 86 pula
0037 AB30 add #48
0039 B703 sta *_time1+3
003B ; time1[4]='.';
003B A62E lda #46
003D B704 sta *_time1+4
003F ;
003F ; time1[5]=time[2]/10+0x30;
003F B602 lda *_time+2
0041 AE0A ldx #10
0043 8C clrh
0044 52 div
0045 AB30 add #48
0047 B705 sta *_time1+5
0049 ; time1[6]=time[2]%10+0x30;
0049 B602 lda *_time+2
004B AE0A ldx #10
004D 8C clrh
004E 52 div
004F 8B pshh
0050 86 pula
0051 AB30 add #48
0053 B706 sta *_time1+6
0055 ; time1[7]='.';
0055 A62E lda #46
0057 B707 sta *_time1+7
0059 ;
0059 ; time1[8]=time[3]/10+0x30;
0059 B603 lda *_time+3
005B AE0A ldx #10
005D 8C clrh
005E 52 div
005F AB30 add #48
0061 B708 sta *_time1+8
0063 ; time1[9]=time[3]%10+0x30;
0063 B603 lda *_time+3
0065 AE0A ldx #10
0067 8C clrh
0068 52 div
0069 8B pshh
006A 86 pula
006B AB30 add #48
006D B709 sta *_time1+9
006F ;
006F ; time1[10]=time[4]/10+0x30;
006F B604 lda *_time+4
0071 AE0A ldx #10
0073 8C clrh
0074 52 div
0075 AB30 add #48
0077 B70A sta *_time1+10
0079 ; time1[11]=time[4]%10+0x30;
0079 B604 lda *_time+4
007B AE0A ldx #10
007D 8C clrh
007E 52 div
007F 8B pshh
0080 86 pula
0081 AB30 add #48
0083 B70B sta *_time1+11
0085 ; time1[12]=':';
0085 A63A lda #58
0087 B70C sta *_time1+12
0089 ;
0089 ; time1[13]=time[5]/10+0x30;
0089 B605 lda *_time+5
008B AE0A ldx #10
008D 8C clrh
008E 52 div
008F AB30 add #48
0091 B70D sta *_time1+13
0093 ; time1[14]=time[5]%10+0x30;
0093 B605 lda *_time+5
0095 AE0A ldx #10
0097 8C clrh
0098 52 div
0099 8B pshh
009A 86 pula
009B AB30 add #48
009D B70E sta *_time1+14
009F ; time1[15]=':';
009F A63A lda #58
00A1 B70F sta *_time1+15
00A3 ;
00A3 ; time1[16]=time[6]/10+0x30;
00A3 B606 lda *_time+6
00A5 AE0A ldx #10
00A7 8C clrh
00A8 52 div
00A9 AB30 add #48
00AB B710 sta *_time1+16
00AD ; time1[17]=time[6]%10+0x30;
00AD B606 lda *_time+6
00AF AE0A ldx #10
00B1 8C clrh
00B2 52 div
00B3 8B pshh
00B4 86 pula
00B5 95 tsx
00B6 AB30 add #48
00B8 B711 sta *_time1+17
00BA L6:
00BA .dbline 0 ; func end
00BA 81 rts
00BB ; i -> 0,X
00BB ; k -> 1,X
00BB ; n -> 4,X
00BB _alarmtime::
00BB A7FE ais #-2
00BD 95 tsx
00BE ; }
00BE ; void alarmtime(unsigned char n)//蜂鳴器響
00BE ; {
00BE ; unsigned char i,k;
00BE ; for(i=0;i<n;i++)
00BE 7F clr ,X
00BF 2027 bra L40
00C1 L37:
00C1 ; {
00C1 ; PTD=1;
00C1 A601 lda #1
00C3 B703 sta 0x3
00C5 ; for(k=0;k<150;k++)
00C5 6F01 clr 1,X
00C7 2006 bra L44
00C9 L41:
00C9 CD0000 jsr _delay
00CC 95 tsx
00CD L42:
00CD 6C01 inc 1,X
00CF L44:
00CF E601 lda 1,X
00D1 A196 cmp #-106
00D3 25F4 blo L41
00D5 ; delay();
00D5 ; PTD=0;
00D5 3F03 clr 0x3
00D7 ; for(k=0;k<150;k++)
00D7 6F01 clr 1,X
00D9 2006 bra L48
00DB L45:
00DB CD0000 jsr _delay
00DE 95 tsx
00DF L46:
00DF 6C01 inc 1,X
00E1 L48:
00E1 E601 lda 1,X
00E3 A196 cmp #-106
00E5 25F4 blo L45
00E7 L38:
00E7 7C inc ,X
00E8 L40:
00E8 F6 lda ,X
00E9 E104 cmp 4,X
00EB 25D4 blo L37
00ED L36:
00ED A702 ais #2
00EF .dbline 0 ; func end
00EF 81 rts
00F0 _Timer1init::
00F0 ; delay();
00F0 ; }
00F0 ; }
00F0 ;
00F0 ;
00F0 ; void Timer1init(void)
00F0 ; {
00F0 ; //允許溢出中斷、不啟動計數(shù)、分頻因子=64
00F0 ; T1SC=0b01100110;
00F0 A666 lda #102
00F2 B720 sta 0x20
00F4 ; //計數(shù)寄存器初值=0x0000
00F4 ; T1CNTH=0x00; T1CNTL=0x00;
00F4 3F21 clr 0x21
00F6 3F22 clr 0x22
00F8 ; //1秒產(chǎn)生1次溢出中斷,計數(shù)寄存器=1×(2457600/64)=9600
00F8 ; T1MODH=0x96; T1MODL=0x00;
00F8 A696 lda #-106
00FA B723 sta 0x23
00FC 3F24 clr 0x24
00FE ; //允許定時器1計數(shù)寄存器計數(shù)
00FE ; T1SC&=~(1<<TSTOPBit);
00FE 1B20 bclr #5,0x20
0100 L49:
0100 .dbline 0 ; func end
0100 81 rts
0101 _InitTime::
0101 ; }
0101 ; void InitTime(void)
0101 ; {
0101 ; time[0]=20;
0101 A614 lda #20
0103 B700 sta *_time
0105 ; time[1]=8;
0105 A608 lda #8
0107 B701 sta *_time+1
0109 ; time[2]=6;
0109 A606 lda #6
010B B702 sta *_time+2
010D ; time[3]=18;
010D A612 lda #18
010F B703 sta *_time+3
0111 ; time[4]=23;
0111 A617 lda #23
0113 B704 sta *_time+4
0115 ; time[5]=59;
0115 A63B lda #59
0117 B705 sta *_time+5
0119 ; time[6]=54;
0119 A636 lda #54
011B B706 sta *_time+6
011D L50:
011D .dbline 0 ; func end
011D 81 rts
.area lit
0000 L58:
0000 696E70757420646174653A .byte 'i,'n,'p,'u,'t,32,'d,'a,'t,'e,58
000B L59:
000B 696E7075742074696D653A .byte 'i,'n,'p,'u,'t,32,'t,'i,'m,'e,58
.area text
; b -> 0,X
; a -> 11,X
; y -> 22,X
011E _SetTime::
011E A7E8 ais #-24
0120 95 tsx
0121 ; }
0121 ; void SetTime(void)
0121 ; {
0121 ; //unsigned char i;
0121 ; //unsigned char value=0;
0121 ; unsigned char a[11]="input date:";
0121 AF0B aix #11
0123 3500 sthx *__r0
0125 95 tsx
0126 A60B lda #11
0128 87 psha
0129 4F clra
012A 87 psha
012B A600 lda #<L58
012D 87 psha
012E A600 lda #>L58
0130 87 psha
0131 B600 lda *__r1
0133 87 psha
0134 B600 lda *__r0
0136 87 psha
0137 CD0000 jsr __asgnblk
013A A706 ais #6
013C ; unsigned char b[11]="input time:";
013C 3500 sthx *__r0
013E A60B lda #11
0140 87 psha
0141 4F clra
0142 87 psha
0143 A60B lda #<L59
0145 87 psha
0146 A60B lda #>L59
0148 87 psha
0149 B600 lda *__r1
014B 87 psha
014C B600 lda *__r0
014E 87 psha
014F CD0000 jsr __asgnblk
0152 A706 ais #6
0154 L60:
0154 ; //unsigned char c[15]="error!put again";
0154 ; unsigned char y[2];
0154 ; //unsigned char b[]="input month:";
0154 ; //unsigned char b[]="input month:";
0154 ; //unsigned char a[]="input year:";
0154 ; //unsigned char b[]="input month:";
0154 ; //unsigned char c[]="input day:";
0154 ; //unsigned char d[]="input hour:";
0154 ; //unsigned char e[]="input minute:";
0154 ; //unsigned char f[]="input second:";
0154 ; begin:
0154 ; lcdshow1((unsigned char *)a,11);
0154 A60B lda #11
0156 87 psha
0157 AF0B aix #11
0159 89 pshx
015A 8B pshh
015B CD0000 jsr _lcdshow1
015E A703 ais #3
0160 ;
0160 ; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,寫指令
0160 1102 bclr #0,0x2
0162 ; LcdCtrl&=~(1<<LcdRW);
0162 1302 bclr #1,0x2
0164 ; Lcd_Command(0b11000000); //后7位為DDRAM地址0x40
0164 A6C0 lda #-64
0166 87 psha
0167 CD0000 jsr _Lcd_Command
016A A701 ais #1
016C 95 tsx
016D 2008 bra L62
016F L61:
016F CD0000 jsr _KB_Scan
0172 95 tsx
0173 B700 sta *__r1
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -