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

📄 clock.lst

📁 利用热释红外传感器、12C887和PIC单片机制作的智能电子时钟
💻 LST
📖 第 1 页 / 共 5 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888                            Tue Oct  2 19:10:16 2007

Licensed to: ONE TWO
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z88888RS_,global,delta=1
     4                           	psect	text1,local,class=CODE,delta=2
     5                           	psect	intcode,global,class=CODE,delta=2
     6                           	psect	intsave_0,global,ovrld,class=COMBANK,spa
      +                          ce=1,delta=1
     7                           	psect	intret,global,class=CODE,delta=2
     8                           	psect	intentry,global,class=CODE,delta=2
     9                           	psect	intsave,global,class=BANK0,space=1,delta
      +                          =1
    10                           	psect	text2,local,class=CODE,delta=2
    11                           	psect	text6,local,class=CODE,delta=2
    12                           	psect	strings,global,class=STRING,delta=2
    13                           	psect	rbit_0,global,bit,class=BANK0,space=1,de
      +                          lta=1
    14                           	psect	rbss_0,global,class=BANK0,space=1,delta=
      +                          1
    15                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23  0000                     
    24  0000                     
    25  0000                     
    26                           
    27                           	psect	__Z88888RS_
    28  0190                     
    29  0190                     
    30                           
    31                           	psect	intcode
    32  0015                     _TMR1_INT
    33  0015                     int_func
    34                           ;clock.c: 75: if (TMR1IF&&TMR1IE)
    35  0015  0183               	clrf	3	;select bank 0
    36  0016  1C0C               	btfss	12,0
    37  0017  2826               	goto	l2
    38  0018  1683               	bsf	3,5
    39  0019  1C0C               	btfss	12,0
    40  001A  2826               	goto	l2
    41                           ;clock.c: 76: {
    42                           ;clock.c: 78: TMR1IF=0;
    43  001B  1283               	bcf	3,5
    44  001C  100C               	bcf	12,0
    45                           ;clock.c: 79: TMR1H=216;
    46  001D  30D8               	movlw	-40
    47  001E  008F               	movwf	15	;volatile
    48                           ;clock.c: 80: TMR1ON=1;
    49  001F  1410               	bsf	16,0
    50                           ;clock.c: 81: ReadKey();
    51  0020  120A  118A  2387   	fcall	_ReadKey
      +       120A  118A         
    52                           ;clock.c: 82: DelayTimer++;
    53  0025  0AA2               	incf	_DelayTimer
    54                           ;clock.c: 83: }
    55                           ;clock.c: 84: }
    56  0026                     l2
    57  0026  1303               	bcf	3,6	;carry unused
    58  0027  1283               	bcf	3,5
    59                           
    60                           	psect	intsave_0
    61  0072                     saved_w
    62  0072                     	ds	1
    63                           
    64                           	psect	intret
    65  0030  0851               	movf	saved_fsr,w
    66  0031  0084               	movwf	4	;restore FSR
    67  0032  0852               	movf	saved_pclath,w
    68  0033  008A               	movwf	10
    69  0034                     int_restore
    70  0034  0850               	movf	saved_status,w
    71  0035  0083               	movwf	3
    72  0036  0EF2               	swapf	saved_w
    73  0037  0E72               	swapf	saved_w,w
    74  0038  0009               	retfie
    75                           
    76                           	psect	intentry
    77  0004                     int_entry
    78  0004  00F2               	movwf	saved_w
    79  0005  0803               	movf	3,w
    80  0006  0183               	clrf	3
    81  0007  00D0               	movwf	saved_status
    82  0008  0804               	movf	4,w
    83  0009  00D1               	movwf	saved_fsr
    84  000A  080A               	movf	10,w
    85  000B  00D2               	movwf	saved_pclath
    86  000C  018A               	clrf	10
    87                           
    88                           	psect	intsave
    89  0050                     saved_status
    90  0050                     	ds	1
    91  0051                     saved_fsr
    92  0051                     	ds	1
    93  0052                     saved_pclath
    94  0052                     	ds	1
    95                           
    96                           	psect	text2
    97                           ;clock.c: 87: void ReadKey(void)
    98                           ;clock.c: 89: {
    99  0387                     _ReadKey
   100                           ;clock.c: 90: Menu_Value<<=1;
   101  0387  1003               	bcf	3,0
   102  0388  1283               	bcf	3,5
   103  0389  1303               	bcf	3,6	;carry unused
   104  038A  0DA5               	rlf	_Menu_Value
   105                           ;clock.c: 91: if (RB3==0) Menu_Value=Menu_Value
      +                          |0x01;
   106  038B  1D86               	btfss	6,3
   107  038C  1425               	bsf	_Menu_Value,0
   108                           ;clock.c: 92: Menu_Value=Menu_Value&0x07;
   109  038D  3007               	movlw	7
   110  038E  05A5               	andwf	_Menu_Value
   111                           ;clock.c: 93: if (Menu_Value==0x07) Menu=1;
   112  038F  0825               	movf	_Menu_Value,w
   113  0390  3A07               	xorlw	7
   114  0391  1D03               	btfss	3,2
   115  0392  2B95               	goto	l6
   116  0393  1720               	bsf	_Menu/(0+8),_Menu& (0+7)
   117                           ;clock.c: 94: else if (Menu_Value==0x00) Menu=0
      +                          ,Menu_USED=0;
   118  0394  2B9A               	goto	l7
   119  0395                     l6
   120  0395  08A5               	movf	_Menu_Value
   121  0396  1D03               	btfss	3,2
   122  0397  2B9A               	goto	l7
   123  0398  1320               	bcf	_Menu/(0+8),_Menu& (0+7)
   124  0399  13A0               	bcf	_Menu_USED/(0+8),_Menu_USED& (0+7)
   125                           ;clock.c: 96: Up_Value<<=1;
   126  039A                     l7
   127  039A  1003               	bcf	3,0
   128  039B  1283               	bcf	3,5
   129  039C  1303               	bcf	3,6	;carry unused
   130  039D  0DA7               	rlf	_Up_Value
   131                           ;clock.c: 97: if (RB4==0) Up_Value=Up_Value|0x0
      +                          1;
   132  039E  1E06               	btfss	6,4
   133  039F  1427               	bsf	_Up_Value,0
   134                           ;clock.c: 98: Up_Value=Up_Value&0x07;
   135  03A0  3007               	movlw	7
   136  03A1  05A7               	andwf	_Up_Value
   137                           ;clock.c: 99: if (Up_Value==0x07) Up=1;
   138  03A2  0827               	movf	_Up_Value,w
   139  03A3  3A07               	xorlw	7
   140  03A4  1D03               	btfss	3,2
   141  03A5  2BA8               	goto	l10
   142  03A6  1421               	bsf	_Up/(0+8),_Up& (0+7)
   143                           ;clock.c: 100: else if (Up_Value==0x00) Up=0,Up
      +                          _USED=0;
   144  03A7  2BAD               	goto	l11
   145  03A8                     l10
   146  03A8  08A7               	movf	_Up_Value
   147  03A9  1D03               	btfss	3,2
   148  03AA  2BAD               	goto	l11
   149  03AB  1021               	bcf	_Up/(0+8),_Up& (0+7)
   150  03AC  10A1               	bcf	_Up_USED/(0+8),_Up_USED& (0+7)
   151                           ;clock.c: 102: Down_Value<<=1;
   152  03AD                     l11
   153  03AD  1003               	bcf	3,0
   154  03AE  1283               	bcf	3,5
   155  03AF  1303               	bcf	3,6	;carry unused
   156  03B0  0DA3               	rlf	_Down_Value
   157                           ;clock.c: 103: if (RB5==0) Down_Value=Down_Valu
      +                          e|0x01;
   158  03B1  1E86               	btfss	6,5
   159  03B2  1423               	bsf	_Down_Value,0
   160                           ;clock.c: 104: Down_Value=Down_Value&0x07;
   161  03B3  3007               	movlw	7
   162  03B4  05A3               	andwf	_Down_Value
   163                           ;clock.c: 105: if (Down_Value==0x07) Down=1;
   164  03B5  0823               	movf	_Down_Value,w
   165  03B6  3A07               	xorlw	7
   166  03B7  1D03               	btfss	3,2
   167  03B8  2BBB               	goto	l14
   168  03B9  14A0               	bsf	_Down/(0+8),_Down& (0+7)
   169                           ;clock.c: 106: else if (Down_Value==0x00) Down=
      +                          0,Down_USED=0;
   170  03BA  2BC0               	goto	l15
   171  03BB                     l14
   172  03BB  08A3               	movf	_Down_Value
   173  03BC  1D03               	btfss	3,2
   174  03BD  2BC0               	goto	l15
   175  03BE  10A0               	bcf	_Down/(0+8),_Down& (0+7)
   176  03BF  1120               	bcf	_Down_USED/(0+8),_Down_USED& (0+7)
   177                           ;clock.c: 108: Human_Value<<=1;
   178  03C0                     l15
   179  03C0  1003               	bcf	3,0
   180  03C1  1283               	bcf	3,5
   181  03C2  1303               	bcf	3,6	;carry unused
   182  03C3  0DA4               	rlf	_Human_Value
   183                           ;clock.c: 109: if (RB2==1) Human_Value=Human_Va
      +                          lue|0x01;
   184  03C4  1906               	btfsc	6,2
   185  03C5  1424               	bsf	_Human_Value,0
   186                           ;clock.c: 110: Human_Value=Human_Value&0x07;
   187  03C6  3007               	movlw	7
   188  03C7  05A4               	andwf	_Human_Value
   189                           ;clock.c: 111: if (Human_Value==0x07) Human=1;
   190  03C8  0824               	movf	_Human_Value,w
   191  03C9  3A07               	xorlw	7
   192  03CA  1D03               	btfss	3,2
   193  03CB  2BCE               	goto	l18
   194  03CC  15A0               	bsf	_Human/(0+8),_Human& (0+7)
   195                           ;clock.c: 112: else if (Human_Value==0x00) Huma
      +                          n=0,Human_USED=0;
   196  03CD  0008               	return
   197  03CE                     l18
   198  03CE  08A4               	movf	_Human_Value
   199  03CF  1D03               	btfss	3,2
   200  03D0  0008               	return
   201  03D1  11A0               	bcf	_Human/(0+8),_Human& (0+7)
   202  03D2  1220               	bcf	_Human_USED/(0+8),_Human_USED& (0+7)
   203                           ;clock.c: 113: }
   204  03D3  0008               	return
   205                           
   206                           	psect	text6
   207                           ;clock.c: 255: void task1(void)
   208                           ;clock.c: 257: {
   209  045C                     _task1
   210                           ;clock.c: 258: RB1=0;
   211  045C  0183               	clrf	3	;select bank 0
   212  045D  1086               	bcf	6,1
   213                           ;clock.c: 259: lcd_goto(0x80);
   214  045E  3080               	movlw	-128
   215  045F  120A  118A  2416   	fcall	_lcd_goto
   216                           ;clock.c: 260: lcd_puts("  rectify menu  ");
   217  0462  3056               	movlw	low (((packed_strings shl (0+1)+90))| (0
      +                          +16384))
   218  0463  00CC               	movwf	?_lcd_puts
   219  0464  3041               	movlw	high (((packed_strings shl (0+1)+90))| (
      +                          0+16384))
   220  0465  00CD               	movwf	?_lcd_puts+1
   221  0466  120A  118A  23F6   	fcall	_lcd_puts
   222                           ;clock.c: 261: lcd_goto(0xc0);

⌨️ 快捷键说明

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