?? main.s
字號:
.module main.c
.area text
; h -> 0,X
; l -> 1,X
_main::
ais #-2
tsx
; #include "GP32C.H"
; #include "TIME.h"
; #include "KB.h" //鍵盤
; #include "LCD.h"
; //函數聲明
; //extern void SCIInit(void);
; //extern void InitTime(void);
; //extern void SCISendN(unsigned char n,unsigned char ch[]);
; //extern void Timer1init(void);
; //extern void lcdshow(unsigned char *str);
; unsigned char time1[18]; //顯示當前時間
; unsigned char time2[7]; //保存鬧鐘時間
; unsigned char time[7]; //存放時、分、秒
; unsigned char val;
; //unsigned char val1;
; unsigned char sign1;
; unsigned char sign2;
; //*====================================================*
; //*[主程序]
; void main()
; {
; unsigned char h,l;
; val=0;
clr *_val
; //val1=0;
; DDRD=1;
lda #1
sta 0x7
; sign1=0;
clr *_sign1
; sign2=0;
clr *_sign2
; asm("SEI"); //關總中斷
SEI
; //SCIInit();
; Timer1init(); //調定時器1初始化子程序
jsr _Timer1init
; KB_Init();
jsr _KB_Init
; InitTime(); //初始化時間
jsr _InitTime
; conver();
jsr _conver
; lcdshow((unsigned char *)time1);
lda #<_time1
psha
lda #>_time1
psha
jsr _lcdshow
ais #2
tsx
; //SCC2|=(1<<5); //令SCC2.5=1,允許接收中斷
; asm("CLI");
CLI
jmp L3
L2:
; while(1)
; {
; h=0;
clr ,X
; for(l=0;l<7;l++) //鬧鐘
clr 1,X
bra L8
L5:
; {
; if(time[l]!=time2[l]) break;
clr *__r0
lda 1,X
add #<_time2
sta *__r1
lda *__r0
adc #>_time2
sta *__r0
ldhx *__r0
lda ,x
tsx
sta *__r1
clr *__r2
lda 1,X
add #<_time
sta *__r3
lda *__r2
adc #>_time
sta *__r2
ldhx *__r2
lda ,x
tsx
cmp *__r1
beq L9
bra L7
L9:
; h++;
inc ,X
; if(h==7)
lda ,X
cmp #7
bne L11
; {
; alarmtime(30);
lda #30
psha
jsr _alarmtime
ais #1
tsx
; }
L11:
L6:
inc 1,X
L8:
lda 1,X
cmp #7
blo L5
L7:
; }
; if((time[6]==0)&&(time[5]==0)&&(time[4]==0))//整點報時
lda *_time+6
bne L13
lda *_time+5
bne L13
lda *_time+4
bne L13
; {
; PTD=1;
lda #1
sta 0x3
; delay();
jsr _delay
; PTD=0;
clr 0x3
; delay();
jsr _delay
tsx
; }
L13:
; if(sign1==1)
lda *_sign1
cmp #1
bne L18
; {
; INTKBSCR|= (1<<IntBit); //屏蔽鍵盤中斷(IMASKK=1)
bset #1,0x1a
; SetTime(); //設置時間
jsr _SetTime
tsx
; sign1=0;
clr *_sign1
; INTKBSCR&= ~(1<<IntBit); //打開鍵盤中斷(IMASKK=0)
bclr #1,0x1a
; }
L18:
; if(sign2==1)
lda *_sign2
cmp #1
bne L20
; {
; INTKBSCR|= (1<<IntBit); //屏蔽鍵盤中斷(IMASKK=1)
bset #1,0x1a
; sign2=0;
clr *_sign2
; SetAlarmClock(); //設置鬧鐘時間
jsr _SetAlarmClock
tsx
; INTKBSCR&= ~(1<<IntBit); //打開鍵盤中斷(IMASKK=0)
bclr #1,0x1a
; }
L20:
; if (val==1) //時間溢出中斷發生
lda *_val
cmp #1
bne L22
; {
; conver();
jsr _conver
; lcdshow((unsigned char *)time1);//每一秒更新
lda #<_time1
psha
lda #>_time1
psha
jsr _lcdshow
ais #2
tsx
; val=0;
clr *_val
; }
L22:
L3:
jmp L2
X0:
L1:
ais #2
.dbline 0 ; func end
rts
.area bss
_sign2::
.blkb 1
_sign1::
.blkb 1
_val::
.blkb 1
_time2::
.blkb 7
_time1::
.blkb 18
_time::
.blkb 7
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -