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

📄 time.lis

📁 freescale单片机电子时钟
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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           ;      //允许溢出中断、不启动计数、分频因子=64
 00F0           ;      T1SC=0b01100110;
 00F0 A666              lda #102
 00F2 B720              sta 0x20
 00F4           ;      //计数寄存器初值=0x0000
 00F4           ;      T1CNTH=0x00; T1CNTL=0x00;           
 00F4 3F21              clr 0x21
 00F6 3F22              clr 0x22
 00F8           ;      //1秒产生1次溢出中断,计数寄存器=1×(2457600/64)=9600
 00F8           ;      T1MODH=0x96; T1MODL=0x00;
 00F8 A696              lda #-106
 00FA B723              sta 0x23
 00FC 3F24              clr 0x24
 00FE           ;      //允许定时器1计数寄存器计数
 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

⌨️ 快捷键说明

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