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

📄 lcd_595.lst

📁 模拟串口通讯
💻 LST
📖 第 1 页 / 共 3 页
字号:


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-76266                            Fri Nov  7 16:59:38 2008

Licensed to: ONE TWO
     1                           	processor	16F877A
     2                           	opt	pw 79
     3                           	psect	__Z76266RS_,global,delta=1
     4                           	psect	text0,local,class=CODE,delta=2
     5                           	psect	text4,local,class=CODE,delta=2
     6                           	psect	text5,local,class=CODE,delta=2
     7                           	psect	text7,local,class=CODE,delta=2
     8                           	psect	text8,local,class=CODE,delta=2
     9                           	psect	text9,local,class=CODE,delta=2
    10                           	psect	text11,local,class=CODE,delta=2
    11                           	psect	text12,local,class=CODE,delta=2
    12                           	psect	temp,global,ovrld,class=BANK0,space=1,de
      +                          lta=1
    13  0000                     
    14  0000                     
    15  0000                     
    16  0000                     
    17  0000                     
    18  0000                     
    19  0000                     
    20  0000                     
    21  0000                     
    22  0000                     
    23                           
    24                           	psect	__Z76266RS_
    25  0190                     
    26  0190                     
    27  0000                     _SEND_TO_HC595$console	set	?_SEND_TO_HC595
    28                           
    29                           	psect	text0
    30  05E2                     _SEND_TO_HC595
    31                           ;	_data assigned to ?a_SEND_TO_HC595+0
    32  0000                     _SEND_TO_HC595$data	set	?a_SEND_TO_HC595
    33                           ;	_i assigned to ?a_SEND_TO_HC595+1
    34  0000                     _SEND_TO_HC595$i	set	?a_SEND_TO_HC595+1
    35                           ;	_tmp assigned to ?a_SEND_TO_HC595+2
    36  0000                     _SEND_TO_HC595$tmp	set	?a_SEND_TO_HC595+2
    37                           ;_data stored from w
    38  05E2  0183               	clrf	3	;select bank 0
    39  05E3  00B8               	movwf	?a_SEND_TO_HC595
    40                           ;lcd_595.c: 38: unsigned char tmp;
    41  05E4  1683               	bsf	3,5
    42  05E5  1108               	bcf	8,2
    43                           ;lcd_595.c: 42: TRISD1 = 0;
    44  05E6  1088               	bcf	8,1
    45                           ;lcd_595.c: 43: TRISD0 = 0;
    46  05E7  1008               	bcf	8,0
    47                           ;lcd_595.c: 44: RD2 = 1;
    48  05E8  1283               	bcf	3,5
    49  05E9  1508               	bsf	8,2
    50                           ;lcd_595.c: 45: RD1 = 1;
    51  05EA  1488               	bsf	8,1
    52                           ;lcd_595.c: 46: RD0 = 1;
    53  05EB  1408               	bsf	8,0
    54                           ;lcd_595.c: 48: tmp = console;
    55  05EC  0837               	movf	?_SEND_TO_HC595,w
    56  05ED  00BA               	movwf	?a_SEND_TO_HC595+2
    57                           ;lcd_595.c: 49: for(i=0;i<8;++i)
    58  05EE  01B9               	clrf	?a_SEND_TO_HC595+1
    59  05EF                     l2
    60                           ;lcd_595.c: 50: {
    61                           ;lcd_595.c: 51: if((tmp&0x80)==0x80)
    62  05EF  1FBA               	btfss	?a_SEND_TO_HC595+2,7
    63  05F0  2DF3               	goto	l5
    64                           ;lcd_595.c: 52: {
    65  05F1  1408               	bsf	8,0
    66                           ;lcd_595.c: 54: }
    67  05F2  2DF4               	goto	l6
    68  05F3                     l5
    69                           ;lcd_595.c: 56: {
    70  05F3  1008               	bcf	8,0
    71  05F4                     l6
    72                           ;lcd_595.c: 58: }
    73                           ;lcd_595.c: 59: RD2 = 0;
    74  05F4  1108               	bcf	8,2
    75                           ;lcd_595.c: 60: RD2 = 1;
    76  05F5  1508               	bsf	8,2
    77                           ;lcd_595.c: 61: tmp = tmp << 1;
    78  05F6  1003               	bcf	3,0
    79  05F7  0DBA               	rlf	?a_SEND_TO_HC595+2
    80                           ;lcd_595.c: 62: }
    81  05F8  0AB9               	incf	?a_SEND_TO_HC595+1
    82  05F9  3008               	movlw	8
    83  05FA  0239               	subwf	?a_SEND_TO_HC595+1,w
    84  05FB  1C03               	btfss	3,0
    85  05FC  2DEF               	goto	l2
    86                           ;lcd_595.c: 64: tmp = data;
    87  05FD  0838               	movf	?a_SEND_TO_HC595,w
    88  05FE  00BA               	movwf	?a_SEND_TO_HC595+2
    89                           ;lcd_595.c: 65: for(i=0;i<8;++i)
    90  05FF  01B9               	clrf	?a_SEND_TO_HC595+1
    91  0600                     l7
    92                           ;lcd_595.c: 66: {
    93                           ;lcd_595.c: 67: if((tmp&0x80)==0x80)
    94  0600  1FBA               	btfss	?a_SEND_TO_HC595+2,7
    95  0601  2E04               	goto	l10
    96                           ;lcd_595.c: 68: {
    97  0602  1408               	bsf	8,0
    98                           ;lcd_595.c: 70: }
    99  0603  2E05               	goto	l11
   100  0604                     l10
   101                           ;lcd_595.c: 72: {
   102  0604  1008               	bcf	8,0
   103  0605                     l11
   104                           ;lcd_595.c: 74: }
   105                           ;lcd_595.c: 75: RD2 = 0;
   106  0605  1108               	bcf	8,2
   107                           ;lcd_595.c: 76: RD2 = 1;
   108  0606  1508               	bsf	8,2
   109                           ;lcd_595.c: 77: tmp = tmp << 1;
   110  0607  1003               	bcf	3,0
   111  0608  0DBA               	rlf	?a_SEND_TO_HC595+2
   112                           ;lcd_595.c: 78: }
   113  0609  0AB9               	incf	?a_SEND_TO_HC595+1
   114  060A  3008               	movlw	8
   115  060B  0239               	subwf	?a_SEND_TO_HC595+1,w
   116  060C  1C03               	btfss	3,0
   117  060D  2E00               	goto	l7
   118                           ;lcd_595.c: 80: RD1 = 0;
   119  060E  1088               	bcf	8,1
   120                           ;lcd_595.c: 81: RD1 = 1;
   121  060F  1488               	bsf	8,1
   122                           ;lcd_595.c: 82: RD2 = 1;
   123  0610  1508               	bsf	8,2
   124                           ;lcd_595.c: 83: RD0 = 1;
   125  0611  1408               	bsf	8,0
   126                           ;lcd_595.c: 84: }
   127  0612  0008               	return
   128                           ;lcd_595.c: 88: void lcd_checkbusy(void)
   129                           ;lcd_595.c: 89: {
   130  0613                     _lcd_checkbusy
   131                           ;	__dcnt assigned to ?a_lcd_checkbusy+0
   132  0000                     _lcd_checkbusy$_dcnt	set	?a_lcd_checkbusy
   133                           ;lcd_595.c: 91: { unsigned char _dcnt; _dcnt = 
      +                          (50)/((12*1000L)/(4*1000L))|1; while(--_dcnt !=
      +                           0) continue; };
   134  0613  3011               	movlw	17
   135  0614  0183               	clrf	3	;select bank 0
   136  0615  00B7               	movwf	?a_lcd_checkbusy
   137  0616                     l13
   138  0616  0BB7               	decfsz	?a_lcd_checkbusy
   139  0617  2E16               	goto	l13
   140  0618  0008               	return
   141                           ;lcd_595.c: 96: void lcd_writecom(unsigned char
      +                           combyte)
   142                           ;lcd_595.c: 97: {
   143  0619                     _lcd_writecom
   144                           ;	_combyte assigned to ?a_lcd_writecom+0
   145  0000                     _lcd_writecom$combyte	set	?a_lcd_writecom
   146                           ;	_lcd_console assigned to ?a_lcd_writecom+1
   147  0000                     _lcd_writecom$lcd_console	set	?a_lcd_writecom+1
   148                           ;	_lcd_com assigned to ?a_lcd_writecom+2
   149  0000                     _lcd_writecom$lcd_com	set	?a_lcd_writecom+2
   150                           ;_combyte stored from w
   151  0619  0183               	clrf	3	;select bank 0
   152  061A  00B4               	movwf	?a_lcd_writecom
   153                           ;lcd_595.c: 98: unsigned char lcd_com;
   154  061B  2613               	fcall	_lcd_checkbusy
   155                           ;lcd_595.c: 101: lcd_com = combyte;
   156  061C  0834               	movf	?a_lcd_writecom,w
   157  061D  00B6               	movwf	?a_lcd_writecom+2
   158                           ;lcd_595.c: 102: lcd_console = 0x00;
   159  061E  01B5               	clrf	?a_lcd_writecom+1
   160                           ;lcd_595.c: 105: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   161  061F  01B7               	clrf	?_SEND_TO_HC595
   162  0620  25E2               	fcall	_SEND_TO_HC595
   163                           ;lcd_595.c: 106: lcd_console = 0x02;
   164  0621  3002               	movlw	2
   165  0622  00B5               	movwf	?a_lcd_writecom+1
   166                           ;lcd_595.c: 109: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   167  0623  00B7               	movwf	?_SEND_TO_HC595
   168  0624  0836               	movf	?a_lcd_writecom+2,w
   169  0625  25E2               	fcall	_SEND_TO_HC595
   170                           ;lcd_595.c: 110: lcd_console = 0x00;
   171  0626  01B5               	clrf	?a_lcd_writecom+1
   172                           ;lcd_595.c: 113: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   173  0627  01B7               	clrf	?_SEND_TO_HC595
   174  0628  0836               	movf	?a_lcd_writecom+2,w
   175  0629  2DE2               	ljmp	_SEND_TO_HC595
   176                           ;lcd_595.c: 118: void lcd_writedata(unsigned ch
      +                          ar data)
   177                           ;lcd_595.c: 119: {
   178  062A                     _lcd_writedata
   179                           ;	_data assigned to ?a_lcd_writedata+0
   180  0000                     _lcd_writedata$data	set	?a_lcd_writedata
   181                           ;	_lcd_console assigned to ?a_lcd_writedata+1
   182  0000                     _lcd_writedata$lcd_console	set	?a_lcd_writedata
      +                          +1
   183                           ;	_lcd_data assigned to ?a_lcd_writedata+2
   184  0000                     _lcd_writedata$lcd_data	set	?a_lcd_writedata+2
   185                           ;_data stored from w
   186  062A  0183               	clrf	3	;select bank 0
   187  062B  00B4               	movwf	?a_lcd_writedata
   188                           ;lcd_595.c: 120: unsigned char lcd_data;
   189  062C  2613               	fcall	_lcd_checkbusy
   190                           ;lcd_595.c: 123: lcd_data = data;
   191  062D  0834               	movf	?a_lcd_writedata,w
   192  062E  00B6               	movwf	?a_lcd_writedata+2
   193                           ;lcd_595.c: 124: lcd_console = 0x08;
   194  062F  3008               	movlw	8
   195  0630  00B5               	movwf	?a_lcd_writedata+1
   196                           ;lcd_595.c: 127: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   197  0631  00B7               	movwf	?_SEND_TO_HC595
   198  0632  0836               	movf	?a_lcd_writedata+2,w
   199  0633  25E2               	fcall	_SEND_TO_HC595
   200                           ;lcd_595.c: 128: lcd_console = 0x0A;
   201  0634  300A               	movlw	10
   202  0635  00B5               	movwf	?a_lcd_writedata+1
   203                           ;lcd_595.c: 131: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   204  0636  00B7               	movwf	?_SEND_TO_HC595
   205  0637  0836               	movf	?a_lcd_writedata+2,w
   206  0638  25E2               	fcall	_SEND_TO_HC595
   207                           ;lcd_595.c: 132: lcd_console = 0x08;
   208  0639  3008               	movlw	8
   209  063A  00B5               	movwf	?a_lcd_writedata+1
   210                           ;lcd_595.c: 135: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   211  063B  00B7               	movwf	?_SEND_TO_HC595
   212  063C  0836               	movf	?a_lcd_writedata+2,w
   213  063D  2DE2               	ljmp	_SEND_TO_HC595
   214  063E                     _lcd_gotoxy
   215                           ;	_x assigned to ?a_lcd_gotoxy+0
   216  0000                     _lcd_gotoxy$x	set	?a_lcd_gotoxy
   217                           ;	_base_y assigned to ?a_lcd_gotoxy+1
   218  0000                     _lcd_gotoxy$base_y	set	?a_lcd_gotoxy+1
   219                           ;_x stored from w
   220  063E  0183               	clrf	3	;select bank 0
   221  063F  00B1               	movwf	?a_lcd_gotoxy
   222                           ;lcd_595.c: 163: unsigned char base_y[2]={0x80,
      +                           0xc0};
   223  0640  3080               	movlw	-128
   224  0641  00B2               	movwf	?a_lcd_gotoxy+1
   225  0642  30C0               	movlw	-64
   226  0643  00B3               	movwf	?a_lcd_gotoxy+2
   227                           ;lcd_595.c: 164: lcd_checkbusy();
   228  0644  2613               	fcall	_lcd_checkbusy
   229                           ;lcd_595.c: 165: lcd_writecom(base_y[y] + x);
   230  0645  0830               	movf	?_lcd_gotoxy,w
   231  0646  3E32               	addlw	?a_lcd_gotoxy+1
   232  0647  0084               	movwf	4
   233  0648  1383               	bcf	3,7
   234  0649  0800               	movf	0,w
   235  064A  0731               	addwf	?a_lcd_gotoxy,w
   236  064B  2E19               	ljmp	_lcd_writecom
   237                           
   238                           	psect	text4
   239                           ;lcd_595.c: 140: void lcd_initial(void)
   240                           ;lcd_595.c: 141: {
   241  0572                     _lcd_initial
   242                           ;lcd_595.c: 142: DelayMs(20);
   243  0572  3014               	movlw	20
   244  0573  120A  118A  2553   	fcall	_DelayMs
   245                           ;lcd_595.c: 143: lcd_writecom(0x38);
   246  0576  3038               	movlw	56
   247  0577  120A  118A  2619   	fcall	_lcd_writecom
   248                           ;lcd_595.c: 144: lcd_writecom(0x0c);
   249  057A  300C               	movlw	12
   250  057B  120A  118A  2619   	fcall	_lcd_writecom
   251                           ;lcd_595.c: 145: lcd_writecom(0x06);
   252  057E  3006               	movlw	6
   253  057F  120A  118A  2619   	fcall	_lcd_writecom
      +       120A  118A         
   254                           ;lcd_595.c: 146: TRISD3 = 0;
   255  0584  1683               	bsf	3,5
   256  0585  1188               	bcf	8,3
   257                           ;lcd_595.c: 147: RD3 = 1;
   258  0586  1283               	bcf	3,5
   259  0587  1588               	bsf	8,3
   260                           ;lcd_595.c: 148: }
   261  0588  0008               	return
   262                           
   263                           	psect	text5
   264                           ;lcd_595.c: 152: void lcd_clear(void)
   265                           ;lcd_595.c: 153: {
   266  0560                     _lcd_clear
   267                           ;lcd_595.c: 154: lcd_writecom(0x01);
   268  0560  3001               	movlw	1
   269  0561  120A  118A  2619   	fcall	_lcd_writecom
   270                           ;lcd_595.c: 155: DelayMs(2);

⌨️ 快捷键说明

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