?? time.s
字號:
.module TIME.c
.area text
; i -> 0,X
_delay::
ais #-1
tsx
clr ,X
bra L5
L2:
L3:
inc ,X
L5:
; #include "TIME.h"
; #include "LCD.h"
; #include "KB.h"
;
; void delay(void)
; {
; unsigned char i;
; for(i=0;i<=110;i++);
lda ,X
cmp #110
bls L2
L1:
ais #1
.dbline 0 ; func end
rts
_conver::
; }
;
; void conver(void)
; {
; time1[0]=time[0]/10+0x30;
lda *_time
ldx #10
clrh
div
add #48
sta *_time1
; time1[1]=time[0]%10+0x30;
lda *_time
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+1
; time1[2]=time[1]/10+0x30;
lda *_time+1
ldx #10
clrh
div
add #48
sta *_time1+2
; time1[3]=time[1]%10+0x30;
lda *_time+1
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+3
; time1[4]='.';
lda #46
sta *_time1+4
;
; time1[5]=time[2]/10+0x30;
lda *_time+2
ldx #10
clrh
div
add #48
sta *_time1+5
; time1[6]=time[2]%10+0x30;
lda *_time+2
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+6
; time1[7]='.';
lda #46
sta *_time1+7
;
; time1[8]=time[3]/10+0x30;
lda *_time+3
ldx #10
clrh
div
add #48
sta *_time1+8
; time1[9]=time[3]%10+0x30;
lda *_time+3
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+9
;
; time1[10]=time[4]/10+0x30;
lda *_time+4
ldx #10
clrh
div
add #48
sta *_time1+10
; time1[11]=time[4]%10+0x30;
lda *_time+4
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+11
; time1[12]=':';
lda #58
sta *_time1+12
;
; time1[13]=time[5]/10+0x30;
lda *_time+5
ldx #10
clrh
div
add #48
sta *_time1+13
; time1[14]=time[5]%10+0x30;
lda *_time+5
ldx #10
clrh
div
pshh
pula
add #48
sta *_time1+14
; time1[15]=':';
lda #58
sta *_time1+15
;
; time1[16]=time[6]/10+0x30;
lda *_time+6
ldx #10
clrh
div
add #48
sta *_time1+16
; time1[17]=time[6]%10+0x30;
lda *_time+6
ldx #10
clrh
div
pshh
pula
tsx
add #48
sta *_time1+17
L6:
.dbline 0 ; func end
rts
; i -> 0,X
; k -> 1,X
; n -> 4,X
_alarmtime::
ais #-2
tsx
; }
; void alarmtime(unsigned char n)//蜂鳴器響
; {
; unsigned char i,k;
; for(i=0;i<n;i++)
clr ,X
bra L40
L37:
; {
; PTD=1;
lda #1
sta 0x3
; for(k=0;k<150;k++)
clr 1,X
bra L44
L41:
jsr _delay
tsx
L42:
inc 1,X
L44:
lda 1,X
cmp #-106
blo L41
; delay();
; PTD=0;
clr 0x3
; for(k=0;k<150;k++)
clr 1,X
bra L48
L45:
jsr _delay
tsx
L46:
inc 1,X
L48:
lda 1,X
cmp #-106
blo L45
L38:
inc ,X
L40:
lda ,X
cmp 4,X
blo L37
L36:
ais #2
.dbline 0 ; func end
rts
_Timer1init::
; delay();
; }
; }
;
;
; void Timer1init(void)
; {
; //允許溢出中斷、不啟動計數、分頻因子=64
; T1SC=0b01100110;
lda #102
sta 0x20
; //計數寄存器初值=0x0000
; T1CNTH=0x00; T1CNTL=0x00;
clr 0x21
clr 0x22
; //1秒產生1次溢出中斷,計數寄存器=1×(2457600/64)=9600
; T1MODH=0x96; T1MODL=0x00;
lda #-106
sta 0x23
clr 0x24
; //允許定時器1計數寄存器計數
; T1SC&=~(1<<TSTOPBit);
bclr #5,0x20
L49:
.dbline 0 ; func end
rts
_InitTime::
; }
; void InitTime(void)
; {
; time[0]=20;
lda #20
sta *_time
; time[1]=8;
lda #8
sta *_time+1
; time[2]=6;
lda #6
sta *_time+2
; time[3]=18;
lda #18
sta *_time+3
; time[4]=23;
lda #23
sta *_time+4
; time[5]=59;
lda #59
sta *_time+5
; time[6]=54;
lda #54
sta *_time+6
L50:
.dbline 0 ; func end
rts
.area lit
L58:
.byte 'i,'n,'p,'u,'t,32,'d,'a,'t,'e,58
L59:
.byte 'i,'n,'p,'u,'t,32,'t,'i,'m,'e,58
.area text
; b -> 0,X
; a -> 11,X
; y -> 22,X
_SetTime::
ais #-24
tsx
; }
; void SetTime(void)
; {
; //unsigned char i;
; //unsigned char value=0;
; unsigned char a[11]="input date:";
aix #11
sthx *__r0
tsx
lda #11
psha
clra
psha
lda #<L58
psha
lda #>L58
psha
lda *__r1
psha
lda *__r0
psha
jsr __asgnblk
ais #6
; unsigned char b[11]="input time:";
sthx *__r0
lda #11
psha
clra
psha
lda #<L59
psha
lda #>L59
psha
lda *__r1
psha
lda *__r0
psha
jsr __asgnblk
ais #6
L60:
; //unsigned char c[15]="error!put again";
; unsigned char y[2];
; //unsigned char b[]="input month:";
; //unsigned char b[]="input month:";
; //unsigned char a[]="input year:";
; //unsigned char b[]="input month:";
; //unsigned char c[]="input day:";
; //unsigned char d[]="input hour:";
; //unsigned char e[]="input minute:";
; //unsigned char f[]="input second:";
; begin:
; lcdshow1((unsigned char *)a,11);
lda #11
psha
aix #11
pshx
pshh
jsr _lcdshow1
ais #3
;
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,寫指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b11000000); //后7位為DDRAM地址0x40
lda #-64
psha
jsr _Lcd_Command
ais #1
tsx
bra L62
L61:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L62:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L61
bra L65
L64:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L65:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L64
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L68
L67:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L68:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L67
bra L71
L70:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L71:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L70
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[1]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 23,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
;
; time[0]=y[0]*10+y[1];
lda 22,X
ldx #10
mul
tsx
add 23,X
sta *_time
bra L76
L75:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L76:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L75
bra L79
L78:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L79:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L78
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L82
L81:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L82:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L81
bra L85
L84:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L85:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L84
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[1]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 23,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
;
; time[1]=y[0]*10+y[1];
lda 22,X
ldx #10
mul
tsx
add 23,X
sta *_time+1
;
; lcdshow2('.');
lda #46
psha
jsr _lcdshow2
ais #1
tsx
bra L91
L90:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L91:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L90
bra L94
L93:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L94:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L93
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; if(y[0]>1)
cmp #1
bls L96
; {
; //lcdshow1((unsigned char *)c,15);
; goto begin;
jmp L60
L96:
; }
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L99
L98:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L99:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L98
bra L102
L101:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L102:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L101
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[1]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 23,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
;
; time[2]=y[0]*10+y[1];
lda 22,X
ldx #10
mul
tsx
add 23,X
sta *_time+2
;
; lcdshow2('.');
lda #46
psha
jsr _lcdshow2
ais #1
tsx
bra L108
L107:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L108:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L107
bra L111
L110:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L111:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L110
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; if(y[0]>3)
cmp #3
bls L113
; {
; //lcdshow1((unsigned char *)c,15);
; goto begin;
jmp L60
L113:
; }
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L116
L115:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L116:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L115
bra L119
L118:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L119:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L118
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[1]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 23,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
;
; time[3]=y[0]*10+y[1];
lda 22,X
ldx #10
mul
tsx
add 23,X
sta *_time+3
;
; lcdshow1((unsigned char *)b,11);
lda #11
psha
pshx
pshh
jsr _lcdshow1
ais #3
; LcdCtrl&=~(1<<LcdRS); //RS、R/W=00,寫指令
bclr #0,0x2
; LcdCtrl&=~(1<<LcdRW);
bclr #1,0x2
; Lcd_Command(0b11000000); //后7位為DDRAM地址0x40
lda #-64
psha
jsr _Lcd_Command
ais #1
tsx
bra L125
L124:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L125:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L124
bra L128
L127:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L128:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L127
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; if(y[0]>2)
cmp #2
bls L130
; {
; //lcdshow1((unsigned char *)c,15);
; goto begin;
jmp L60
L130:
; }
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L133
L132:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L133:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L132
bra L136
L135:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L136:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L135
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[1]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 23,X
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
;
; time[4]=y[0]*10+y[1];
lda 22,X
ldx #10
mul
tsx
add 23,X
sta *_time+4
;
; lcdshow2(':');
lda #58
psha
jsr _lcdshow2
ais #1
tsx
bra L142
L141:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L142:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L141
bra L145
L144:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L145:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L144
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
ais #1
tsx
sta *__r1
sta *_KB_valve
; y[0]= KB_valve-0x30;
lda *_KB_valve
sub #48
sta 22,X
; if(y[0]>6)
cmp #6
bls L147
; {
; //lcdshow1((unsigned char *)c,15);
; goto begin;
jmp L60
L147:
; }
; lcdshow2(KB_valve);
lda *_KB_valve
psha
jsr _lcdshow2
ais #1
tsx
bra L150
L149:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L150:
;
; while(KB_valve!=0xff){KB_valve=KB_Scan(); } //松開跳出
lda *_KB_valve
cmp #-1
bne L149
bra L153
L152:
jsr _KB_Scan
tsx
sta *__r1
sta *_KB_valve
L153:
; while(KB_valve==0xff){KB_valve=KB_Scan(); } //有按鍵跳出
lda *_KB_valve
cmp #-1
beq L152
; KB_valve=KB_Def(KB_valve); //鍵值轉化為定義值
lda *_KB_valve
psha
jsr _KB_Def
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -