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

📄 last.lst

📁 其是一个用PIC单片机驱动的LCD程序。开机时显示工作画面
💻 LST
字号:
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;**********************************************************
2007   3F39           00002   __CONFIG 3F39H;设置配置位中振荡方式为XT,其它全部禁止或关闭
                      00003 ;***********************************************************
  00000003            00004 STATUS  EQU 3H   ;定义状态寄存器地址
  00000002            00005 pcl     EQU 02H  ;定义程序寄存器低8位
  00000005            00006 PORTA   EQU 5H   ;定义RA口数据寄存器地址
  00000006            00007 PORTB   EQU 6H   ;定义RB口数据寄存器地址 
  00000007            00008 PORTC   EQU 7H   ;定义RC口数据寄存器地址
  00000085            00009 TRISA   EQU 85H  ;定义RA口方向控制寄存器地址
  00000086            00010 TRISB   EQU 86H  ;定义RB口方向控制寄存器地址
  00000087            00011 TRISC   EQU 87H  ;定义RC口方向控制寄存器地址
  0000009F            00012 ADCON1  EQU 9FH  ;定义ADC模块控制寄存器1的地址
  00000081            00013 OPTION_REG  EQU  81H  ;
                      00014 ;********************
  00000002            00015 Z       EQU 2    ;定义0状态位的位地址
  00000005            00016 RP0     EQU 5    ;定义页选位RP0的位地址
                      00017 ;*********************
  00000001            00018 RS EQU 1         ;LCD寄存器选择信号脚定义在RA.1脚
  00000002            00019 RW EQU 2         ;LCD读/写信号脚定义在RA.2脚
  00000003            00020 E  EQU 3         ;LCD片选信号脚定义在RA.3脚
  00000007            00021 BU EQU 7         ;LCD忙
                      00022 ;**************************
  00000025            00023 KEYNU   EQU   25H ;显示字符数
  00000023            00024 ABC     EQU   23H ;字符变量
  00000024            00025 KEYP    EQU   24H ;
                      00026 ;*******************************
  00000000            00027 ZERO  EQU     0
  00000001            00028 ONE   EQU     1
  00000002            00029 TWO   EQU     2
  00000003            00030 THR   EQU     3
  00000004            00031 FOR   EQU     4
                      00032 ;*******************************
0000                  00033   ORG 000H 
0000   0000           00034   NOP            ;放置一条ICD必需的空操作指令
0001   2808           00035   GOTO MAIN
0008                  00036   ORG 0008H
0008                  00037 MAIN
0008   1683           00038   BSF STATUS,RP0     
0009   3007           00039   MOVLW 07H
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
000A   009F           00040   MOVWF ADCON1       ;设置RA口全部为普通数字IO口
000B   3000           00041   MOVLW 00H          ;定义RA口,RC口全部为输出
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
000C   0085           00042   MOVWF TRISA
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
000D   0087           00043   MOVWF TRISC
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
000E   1381           00044   BCF   OPTION_REG,7
000F   30FF           00045   MOVLW 0FFH
Message[302]: Register in operand not in bank 0.  Ensure that bank bits are correct.
0010   0086           00046   MOVWF TRISB        ;定义RB口为输入口
0011   1283           00047   BCF STATUS,RP0     ;进入页0进行设置
                      00048 
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  2


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0012   204A           00049   call LCDSET        ;初始化lcd
                      00050                      ;显示工作画面HELLO
0013   3000           00051   MOVLW  00H      
0014   00A3           00052   MOVWF  ABC         ;显示字符位数
0015                  00053 LP1  
0015   0823           00054   MOVF   ABC,W
0016   206C           00055   CALL   HELLO
0017   0087           00056   MOVWF  PORTC       ;显示一个字符
0018   2066           00057   CALL   DATAEN      ;WRITE DATA ENABLE
Message[305]: Using default destination of 1 (file).
0019   0AA3           00058   INCF   ABC
001A   3005           00059   MOVLW  05H         ;共显示5个字符
001B   0223           00060   SUBWF  ABC,W
001C   1D03           00061   BTFSS  STATUS,Z
001D   2815           00062   GOTO   LP1         ;工作画面显示完毕
                      00063 
001E                  00064 MYKEY 
001E   30FF           00065   MOVLW 0FFH
001F   00A4           00066   MOVWF KEYP
0020   2037           00067   CALL KEY           ;键盘子程序
0021   08A4           00068   MOVF KEYP,F
0022   1D03           00069   BTFSS STATUS,Z
0023   281E           00070   GOTO  MYKEY
                      00071                      ;有按键按下
0024   3001           00072   MOVLW 01H
0025   0087           00073   MOVWF PORTC        ;清屏
0026   2060           00074   CALL ENABLE
                      00075 
0027   3000           00076   MOVLW  00H      
0028   00A3           00077   MOVWF  ABC         ;显示字符位数
0029                  00078 LP2  
0029   0823           00079   MOVF   ABC,W
002A   2072           00080   CALL   PRESSED
002B   0087           00081   MOVWF  PORTC       ;显示一个字符
002C   2066           00082   CALL   DATAEN
Message[305]: Using default destination of 1 (file).
002D   0AA3           00083   INCF   ABC
002E   3009           00084   MOVLW  09H         ;共显示9个字符
002F   0223           00085   SUBWF  ABC,W
0030   1D03           00086   BTFSS  STATUS,Z
0031   2829           00087   GOTO   LP2
                      00088 
0032   0825           00089   MOVF   KEYNU,W     ;把键码显示出来
0033   207C           00090   CALL   TABLE2
0034   0087           00091   MOVWF  PORTC       ;显示一个字符
0035   2066           00092   CALL   DATAEN
                      00093 
0036   281E           00094   goto   MYKEY
                      00095 ;------------------------------------------------------
                      00096 ;--------------------------KEY------------------------- 
                      00097 ;------------------------------------------------------
0037                  00098 KEY
0037   1886           00099   BTFSC   PORTB,1               ;判断B1是否按下
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  3


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0038   2840           00100   GOTO    KEY2                  ;没有看B2
0039   2080           00101   CALL    DELAY5MS
003A   2080           00102   CALL    DELAY5MS
003B   1886           00103   BTFSC   PORTB,1
003C   2840           00104   GOTO    KEY2
003D   01A4           00105   CLRF    KEYP
003E   3001           00106   MOVLW   01H
003F   00A5           00107   MOVWF   KEYNU                 ;把按键代码放入KEYNU中
                      00108   
0040                  00109 KEY2
0040   1906           00110   BTFSC   PORTB,2
0041   2849           00111   GOTO    TAIL
0042   2080           00112   CALL    DELAY5MS
0043   2080           00113   CALL    DELAY5MS
0044   1906           00114   BTFSC   PORTB,2
0045   2849           00115   GOTO    TAIL
0046   01A4           00116   CLRF    KEYP
0047   3002           00117   MOVLW   02H
0048   00A5           00118   MOVWF   KEYNU  
0049                  00119 TAIL  
0049   3400           00120   RETLW   0H
                      00121 
                      00122 ;-------------------------------------------------------
                      00123 ;-------------------下面为LCD初始化过程-----------------
                      00124 ;-------------------------------------------------------
004A                  00125 LCDSET  
004A   2080           00126   call  DELAY5MS     ;延时15ms,LCD上电复位可能比PIC慢
004B   2080           00127   call  DELAY5MS
004C   2080           00128   call  DELAY5MS
004D   3001           00129   MOVLW 01H
004E   0087           00130   MOVWF PORTC        ;清屏
004F   2060           00131   CALL ENABLE
0050   3038           00132   MOVLW 38H          ;显示模式:8位2行5x7点阵
0051   0087           00133   MOVWF PORTC
0052   2060           00134   CALL ENABLE
0053   3038           00135   MOVLW 38H
0054   0087           00136   MOVWF PORTC        ;显示模式:8位2行5x7点阵
0055   2060           00137   CALL ENABLE
0056   300F           00138   MOVLW 0FH          ;显示器开、光标开、闪烁开
0057   0087           00139   MOVWF PORTC        
0058   2060           00140   CALL ENABLE
0059   3006           00141   MOVLW 06H          ;读或写下个字符后光标自动右移
005A   0087           00142   MOVWF PORTC
005B   2060           00143   CALL ENABLE
005C   30C0           00144   MOVLW 0C0H         ;写入显示起始地址(第一行第一个位置)
005D   0087           00145   MOVWF PORTC         
005E   2060           00146   CALL ENABLE  
005F   3400           00147   retlw  0h
                      00148 ;------------------------------------------------  
                      00149 ;---------------写入commend使能------------------
                      00150 ;------------------------------------------------  
0060                  00151 ENABLE
0060   1085           00152   BCF PORTA,RS         ;写入控制命令的子程序.RS=L
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  4


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0061   1105           00153   BCF PORTA,RW         ;RW=L
0062   1185           00154   BCF PORTA,E          ;E为一高脉冲
0063   2080           00155   CALL DELAY5MS
0064   1585           00156   BSF PORTA,E
0065   3400           00157   RETLW 0  
                      00158 ;------------------------------------------------  
                      00159 ;---------------写入 data  使能------------------
                      00160 ;------------------------------------------------
0066                  00161 DATAEN 
0066   1485           00162   BSF    PORTA,RS    ;液晶模块写数字
0067   1105           00163   BCF    PORTA,RW
0068   1185           00164   BCF    PORTA,E
0069   2080           00165   CALL   DELAY5MS
006A   1585           00166   BSF    PORTA,E
006B   3400           00167   RETLW  0
                      00168 ;----------------------------------------------
                      00169 ;------------------字码表----------------------
                      00170 ;----------------------------------------------
006C   0782           00171 HELLO   addwf  pcl,f
006D   3448 3445 344C 00172         dt   48h,45h,4ch,4ch,4fh                        ;HELLO
       344C 344F 
                      00173 
                      00174 
0072   0782           00175 PRESSED  addwf   pcl,f                                   ;pc相对寻相查表
0073   3450 3452 3445 00176          dt   50h,52h,45h,53h,53h,45h,44h,20H,20H        ;pressed
       3453 3453 3445 
       3444 3420 3420 
                      00177 
                      00178 
007C   0782           00179 TABLE2  addwf   pcl,f 
007D   3430 3433 3434 00180         dt   30h,33h,34H                                     ;0,1,2,3,4
                      00181 
                      00182 ;---------------------------------------------  
                      00183 ;延时5MS子程序
                      00184 ;---------------------------------------------  
0080   3008           00185 DELAY5MS   movlw   08h      ;外循环常数
0081   00A0           00186            movwf   20h      ;外循环寄存器
0082   30FF           00187 loop1      movlw   0ffh     ;内循环常数
0083   00A1           00188            movwf   21h      ;内循环寄存器
Message[305]: Using default destination of 1 (file).
0084   0BA1           00189 loop2      decfsz  21h      ;内循环寄存器递减
0085   2884           00190            goto    loop2    ;继续内循环
Message[305]: Using default destination of 1 (file).
0086   0BA0           00191            decfsz  20h      ;外循环寄存器递减
0087   2882           00192            goto    loop1    ;继续外循环
0088   0008           00193            return
                      00194            end
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  5


SYMBOL TABLE
  LABEL                             VALUE 

ABC                               00000023
ADCON1                            0000009F
BU                                00000007
DATAEN                            00000066
DELAY5MS                          00000080
E                                 00000003
ENABLE                            00000060
FOR                               00000004
HELLO                             0000006C
KEY                               00000037
KEY2                              00000040
KEYNU                             00000025
KEYP                              00000024
LCDSET                            0000004A
LP1                               00000015
LP2                               00000029
MAIN                              00000008
MYKEY                             0000001E
ONE                               00000001
OPTION_REG                        00000081
PORTA                             00000005
PORTB                             00000006
PORTC                             00000007
PRESSED                           00000072
RP0                               00000005
RS                                00000001
RW                                00000002
STATUS                            00000003
TABLE2                            0000007C
TAIL                              00000049
THR                               00000003
TRISA                             00000085
TRISB                             00000086
TRISC                             00000087
TWO                               00000002
Z                                 00000002
ZERO                              00000000
__16F877A                         00000001
loop1                             00000082
loop2                             00000084
pcl                               00000002
MPASM  5.14                          LAST.ASM   3-31-2008  13:20:52         PAGE  6


MEMORY USAGE MAP ('X' = Used,  '-' = Unused)


0000 : XX------XXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0040 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX
0080 : XXXXXXXXX------- ---------------- ---------------- ----------------
2000 : -------X-------- ---------------- ---------------- ----------------

All other memory blocks unused.

Program Memory Words Used:   131
Program Memory Words Free:  8061


Errors   :     0
Warnings :     0 reported,     0 suppressed
Messages :     9 reported,     0 suppressed



⌨️ 快捷键说明

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