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

📄 lcd_595.lst

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


HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-76266                            Wed Jul 30 16:02:02 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  05EF                     _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  05EF  0183               	clrf	3	;select bank 0
    39  05F0  00B2               	movwf	?a_SEND_TO_HC595
    40                           ;lcd_595.c: 38: unsigned char tmp;
    41  05F1  1683               	bsf	3,5
    42  05F2  1108               	bcf	8,2
    43                           ;lcd_595.c: 42: TRISD1 = 0;
    44  05F3  1088               	bcf	8,1
    45                           ;lcd_595.c: 43: TRISD0 = 0;
    46  05F4  1008               	bcf	8,0
    47                           ;lcd_595.c: 44: RD2 = 1;
    48  05F5  1283               	bcf	3,5
    49  05F6  1508               	bsf	8,2
    50                           ;lcd_595.c: 45: RD1 = 1;
    51  05F7  1488               	bsf	8,1
    52                           ;lcd_595.c: 46: RD0 = 1;
    53  05F8  1408               	bsf	8,0
    54                           ;lcd_595.c: 48: tmp = console;
    55  05F9  0831               	movf	?_SEND_TO_HC595,w
    56  05FA  00B4               	movwf	?a_SEND_TO_HC595+2
    57                           ;lcd_595.c: 49: for(i=0;i<8;++i)
    58  05FB  01B3               	clrf	?a_SEND_TO_HC595+1
    59  05FC                     l2
    60                           ;lcd_595.c: 50: {
    61                           ;lcd_595.c: 51: if((tmp&0x80)==0x80)
    62  05FC  1FB4               	btfss	?a_SEND_TO_HC595+2,7
    63  05FD  2E00               	goto	l5
    64                           ;lcd_595.c: 52: {
    65  05FE  1408               	bsf	8,0
    66                           ;lcd_595.c: 54: }
    67  05FF  2E01               	goto	l6
    68  0600                     l5
    69                           ;lcd_595.c: 56: {
    70  0600  1008               	bcf	8,0
    71  0601                     l6
    72                           ;lcd_595.c: 58: }
    73                           ;lcd_595.c: 59: RD2 = 0;
    74  0601  1108               	bcf	8,2
    75                           ;lcd_595.c: 60: RD2 = 1;
    76  0602  1508               	bsf	8,2
    77                           ;lcd_595.c: 61: tmp = tmp << 1;
    78  0603  1003               	bcf	3,0
    79  0604  0DB4               	rlf	?a_SEND_TO_HC595+2
    80                           ;lcd_595.c: 62: }
    81  0605  0AB3               	incf	?a_SEND_TO_HC595+1
    82  0606  3008               	movlw	8
    83  0607  0233               	subwf	?a_SEND_TO_HC595+1,w
    84  0608  1C03               	btfss	3,0
    85  0609  2DFC               	goto	l2
    86                           ;lcd_595.c: 64: tmp = data;
    87  060A  0832               	movf	?a_SEND_TO_HC595,w
    88  060B  00B4               	movwf	?a_SEND_TO_HC595+2
    89                           ;lcd_595.c: 65: for(i=0;i<8;++i)
    90  060C  01B3               	clrf	?a_SEND_TO_HC595+1
    91  060D                     l7
    92                           ;lcd_595.c: 66: {
    93                           ;lcd_595.c: 67: if((tmp&0x80)==0x80)
    94  060D  1FB4               	btfss	?a_SEND_TO_HC595+2,7
    95  060E  2E11               	goto	l10
    96                           ;lcd_595.c: 68: {
    97  060F  1408               	bsf	8,0
    98                           ;lcd_595.c: 70: }
    99  0610  2E12               	goto	l11
   100  0611                     l10
   101                           ;lcd_595.c: 72: {
   102  0611  1008               	bcf	8,0
   103  0612                     l11
   104                           ;lcd_595.c: 74: }
   105                           ;lcd_595.c: 75: RD2 = 0;
   106  0612  1108               	bcf	8,2
   107                           ;lcd_595.c: 76: RD2 = 1;
   108  0613  1508               	bsf	8,2
   109                           ;lcd_595.c: 77: tmp = tmp << 1;
   110  0614  1003               	bcf	3,0
   111  0615  0DB4               	rlf	?a_SEND_TO_HC595+2
   112                           ;lcd_595.c: 78: }
   113  0616  0AB3               	incf	?a_SEND_TO_HC595+1
   114  0617  3008               	movlw	8
   115  0618  0233               	subwf	?a_SEND_TO_HC595+1,w
   116  0619  1C03               	btfss	3,0
   117  061A  2E0D               	goto	l7
   118                           ;lcd_595.c: 80: RD1 = 0;
   119  061B  1088               	bcf	8,1
   120                           ;lcd_595.c: 81: RD1 = 1;
   121  061C  1488               	bsf	8,1
   122                           ;lcd_595.c: 82: RD2 = 1;
   123  061D  1508               	bsf	8,2
   124                           ;lcd_595.c: 83: RD0 = 1;
   125  061E  1408               	bsf	8,0
   126                           ;lcd_595.c: 84: }
   127  061F  0008               	return
   128                           ;lcd_595.c: 88: void lcd_checkbusy(void)
   129                           ;lcd_595.c: 89: {
   130  0620                     _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  0620  3011               	movlw	17
   135  0621  0183               	clrf	3	;select bank 0
   136  0622  00B1               	movwf	?a_lcd_checkbusy
   137  0623                     l13
   138  0623  0BB1               	decfsz	?a_lcd_checkbusy
   139  0624  2E23               	goto	l13
   140  0625  0008               	return
   141                           ;lcd_595.c: 96: void lcd_writecom(unsigned char
      +                           combyte)
   142                           ;lcd_595.c: 97: {
   143  0626                     _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  0626  0183               	clrf	3	;select bank 0
   152  0627  00AE               	movwf	?a_lcd_writecom
   153                           ;lcd_595.c: 98: unsigned char lcd_com;
   154  0628  2620               	fcall	_lcd_checkbusy
   155                           ;lcd_595.c: 101: lcd_com = combyte;
   156  0629  082E               	movf	?a_lcd_writecom,w
   157  062A  00B0               	movwf	?a_lcd_writecom+2
   158                           ;lcd_595.c: 102: lcd_console = 0x00;
   159  062B  01AF               	clrf	?a_lcd_writecom+1
   160                           ;lcd_595.c: 105: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   161  062C  01B1               	clrf	?_SEND_TO_HC595
   162  062D  25EF               	fcall	_SEND_TO_HC595
   163                           ;lcd_595.c: 106: lcd_console = 0x02;
   164  062E  3002               	movlw	2
   165  062F  00AF               	movwf	?a_lcd_writecom+1
   166                           ;lcd_595.c: 109: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   167  0630  00B1               	movwf	?_SEND_TO_HC595
   168  0631  0830               	movf	?a_lcd_writecom+2,w
   169  0632  25EF               	fcall	_SEND_TO_HC595
   170                           ;lcd_595.c: 110: lcd_console = 0x00;
   171  0633  01AF               	clrf	?a_lcd_writecom+1
   172                           ;lcd_595.c: 113: SEND_TO_HC595(lcd_com,lcd_cons
      +                          ole);
   173  0634  01B1               	clrf	?_SEND_TO_HC595
   174  0635  0830               	movf	?a_lcd_writecom+2,w
   175  0636  2DEF               	ljmp	_SEND_TO_HC595
   176                           ;lcd_595.c: 118: void lcd_writedata(unsigned ch
      +                          ar data)
   177                           ;lcd_595.c: 119: {
   178  0637                     _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  0637  0183               	clrf	3	;select bank 0
   187  0638  00AE               	movwf	?a_lcd_writedata
   188                           ;lcd_595.c: 120: unsigned char lcd_data;
   189  0639  2620               	fcall	_lcd_checkbusy
   190                           ;lcd_595.c: 123: lcd_data = data;
   191  063A  082E               	movf	?a_lcd_writedata,w
   192  063B  00B0               	movwf	?a_lcd_writedata+2
   193                           ;lcd_595.c: 124: lcd_console = 0x08;
   194  063C  3008               	movlw	8
   195  063D  00AF               	movwf	?a_lcd_writedata+1
   196                           ;lcd_595.c: 127: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   197  063E  00B1               	movwf	?_SEND_TO_HC595
   198  063F  0830               	movf	?a_lcd_writedata+2,w
   199  0640  25EF               	fcall	_SEND_TO_HC595
   200                           ;lcd_595.c: 128: lcd_console = 0x0A;
   201  0641  300A               	movlw	10
   202  0642  00AF               	movwf	?a_lcd_writedata+1
   203                           ;lcd_595.c: 131: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   204  0643  00B1               	movwf	?_SEND_TO_HC595
   205  0644  0830               	movf	?a_lcd_writedata+2,w
   206  0645  25EF               	fcall	_SEND_TO_HC595
   207                           ;lcd_595.c: 132: lcd_console = 0x08;
   208  0646  3008               	movlw	8
   209  0647  00AF               	movwf	?a_lcd_writedata+1
   210                           ;lcd_595.c: 135: SEND_TO_HC595(lcd_data,lcd_con
      +                          sole);
   211  0648  00B1               	movwf	?_SEND_TO_HC595
   212  0649  0830               	movf	?a_lcd_writedata+2,w
   213  064A  2DEF               	ljmp	_SEND_TO_HC595
   214  064B                     _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  064B  0183               	clrf	3	;select bank 0
   221  064C  00AB               	movwf	?a_lcd_gotoxy
   222                           ;lcd_595.c: 163: unsigned char base_y[2]={0x80,
      +                           0xc0};
   223  064D  3080               	movlw	-128
   224  064E  00AC               	movwf	?a_lcd_gotoxy+1
   225  064F  30C0               	movlw	-64
   226  0650  00AD               	movwf	?a_lcd_gotoxy+2
   227                           ;lcd_595.c: 164: lcd_checkbusy();
   228  0651  2620               	fcall	_lcd_checkbusy
   229                           ;lcd_595.c: 165: lcd_writecom(base_y[y] + x);
   230  0652  082A               	movf	?_lcd_gotoxy,w
   231  0653  3E2C               	addlw	?a_lcd_gotoxy+1
   232  0654  0084               	movwf	4
   233  0655  1383               	bcf	3,7
   234  0656  0800               	movf	0,w
   235  0657  072B               	addwf	?a_lcd_gotoxy,w
   236  0658  2E26               	ljmp	_lcd_writecom
   237                           
   238                           	psect	text4
   239                           ;lcd_595.c: 140: void lcd_initial(void)
   240                           ;lcd_595.c: 141: {
   241  057F                     _lcd_initial
   242                           ;lcd_595.c: 142: DelayMs(20);
   243  057F  3014               	movlw	20
   244  0580  120A  118A  2560   	fcall	_DelayMs
   245                           ;lcd_595.c: 143: lcd_writecom(0x38);
   246  0583  3038               	movlw	56
   247  0584  120A  118A  2626   	fcall	_lcd_writecom
   248                           ;lcd_595.c: 144: lcd_writecom(0x0c);
   249  0587  300C               	movlw	12
   250  0588  120A  118A  2626   	fcall	_lcd_writecom
   251                           ;lcd_595.c: 145: lcd_writecom(0x06);
   252  058B  3006               	movlw	6
   253  058C  120A  118A  2626   	fcall	_lcd_writecom
      +       120A  118A         
   254                           ;lcd_595.c: 146: TRISD3 = 0;
   255  0591  1683               	bsf	3,5
   256  0592  1188               	bcf	8,3
   257                           ;lcd_595.c: 147: RD3 = 1;
   258  0593  1283               	bcf	3,5
   259  0594  1588               	bsf	8,3
   260                           ;lcd_595.c: 148: }
   261  0595  0008               	return
   262                           
   263                           	psect	text5
   264                           ;lcd_595.c: 152: void lcd_clear(void)
   265                           ;lcd_595.c: 153: {
   266  056D                     _lcd_clear
   267                           ;lcd_595.c: 154: lcd_writecom(0x01);
   268  056D  3001               	movlw	1
   269  056E  120A  118A  2626   	fcall	_lcd_writecom
   270                           ;lcd_595.c: 155: DelayMs(2);

⌨️ 快捷键说明

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