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

📄 16c54.lst

📁 单片机开发资料光盘-双龙-686M.zip
💻 LST
📖 第 1 页 / 共 2 页
字号:
MPASM 02.50.02 Intermediate     16C54.ASM   7-1-2001  11:47:32         PAGE  1


LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                      00001 ;************************************************
                      00002 ;*              http://www.sl.com.cn            *                
                      00003 ;*              SL279测试/演示程序              *
                      00004 ;* 此程序为PIC16C54单片机与SL279的接口演示程序  *
                      00005 ;*               程序作者:詹卫前               *
                      00006 ;*  SL279 晶振频率12MHZ   PIC16C54晶振频率4MHZ  *
                      00007 ;************************************************
                      00008                 TITLE           "SL279 测试"
                      00009                 LIST            P=16C54
                      00010                 INCLUDE         P16C5X.INC
                      00001         LIST
                      00002 ; P16C5X.INC  Standard Header File, Version 4.00    Microchip Technology, Inc.
                      00313         LIST
                      00011 
  00000007            00012 BIT_COUNT       SET     0x07
  00000008            00013 DATA_OUT        SET     0x08
  00000009            00014 DATA_IN         SET     0x09
  0000000A            00015 TEN             SET     0x0A
  0000000B            00016 TIMER           SET     0X0B
  0000000C            00017 TIMER1          SET     0X0C
                      00018 
  00000000            00019 CS              EQU     0               ;CS连接于16C54的RA0
  00000001            00020 CLK             EQU     1               ;CLK连接于16C54的RA1
  00000002            00021 DAT             EQU     2               ;DAT连接于16C54的RA2
  00000003            00022 KEY             EQU     3               ;KEY连接于16C54的RA3
                      00023 
01FF                  00024                 ORG     0X1FF
01FF   0A2E           00025                 GOTO    START
                      00026                 
0000                  00027                 ORG     0
                      00028                 
                      00029 ;***************************************
                      00030 ; 延时子程序
                      00031 ;***************************************
0000   0C1D           00032 LONG_DELAY      MOVLW   D'29'           ;设定延时时间为约90uS
0001   002B           00033                 MOVWF   TIMER
0002   02EB           00034 DELAY_LOOP      DECFSZ  TIMER,1
0003   0A02           00035                 GOTO    DELAY_LOOP
0004   0800           00036                 RETLW   0
                      00037 
0005   0C02           00038 SHORT_DELAY     MOVLW   D'2'            ;设定延时时间约为10uS
0006   002B           00039                 MOVWF   TIMER
0007   02EB           00040 SHORT_LP        DECFSZ  TIMER,1
0008   0A07           00041                 GOTO    SHORT_LP
0009   0800           00042                 RETLW   0
                      00043 
                      00044 ;***************************************
                      00045 ; 发送1个字节到SL279,高位在前
                      00046 ;***************************************
000A   0028           00047 SEND            MOVWF   DATA_OUT        ;待发送数据送入DATA_OUT
000B   0C08           00048                 MOVLW   D'8'
000C   0027           00049                 MOVWF   BIT_COUNT       ;设定位计数器=8
000D   0405           00050                 BCF     PORTA,CS        ;设CS为低电平
MPASM 02.50.02 Intermediate     16C54.ASM   7-1-2001  11:47:32         PAGE  2
SL279 测试

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

000E   0900           00051                 CALL    LONG_DELAY      ;长延时
000F   0403           00052 SEND_LOOP       BCF     STATUS,C
0010   0368           00053                 RLF     DATA_OUT,1        ;输出1位
0011   0445           00054                 BCF     PORTA,DAT
0012   0603           00055                 BTFSC   STATUS,C
0013   0545           00056                 BSF     PORTA,DAT
0014   0525           00057                 BSF     PORTA,CLK       ;设CLK为高电平
0015   0905           00058                 CALL    SHORT_DELAY     ;短延时
0016   0425           00059                 BCF     PORTA,CLK       ;设CLK为低电平
0017   0905           00060                 CALL    SHORT_DELAY
0018   02E7           00061                 DECFSZ  BIT_COUNT,1       ;检查是否8位均发送完毕
0019   0A0F           00062                 GOTO    SEND_LOOP       ;未发送完,发送下一位
001A   0445           00063                 BCF     PORTA,DAT
001B   0800           00064                 RETLW   0
                      00065 
                      00066 ;**************************************
                      00067 ; 从SL279接收1个字节,高位在前
                      00068 ;**************************************
001C   0C08           00069 RECEIVE         MOVLW   D'8'
001D   0027           00070                 MOVWF   BIT_COUNT       ;设定位计数器=8
001E   0CFC           00071                 MOVLW   B'11111100'     ;设RA2(DATA)口为输入状态
001F   0005           00072                 TRIS    PORTA
0020   0900           00073                 CALL    LONG_DELAY      ;长延时
0021   0525           00074 RECEIVE_LOOP    BSF     PORTA,CLK       ;置CLK为高电平
0022   0905           00075                 CALL    SHORT_DELAY     ;短延时
0023   0503           00076                 BSF     STATUS,C
0024   0745           00077                 BTFSS   PORTA,DAT
0025   0403           00078                 BCF     STATUS,C
0026   0369           00079                 RLF     DATA_IN,1         ;读取1位数据
0027   0425           00080                 BCF     PORTA,CLK       ;设CLK为低电平
0028   0905           00081                 CALL    SHORT_DELAY
0029   02E7           00082                 DECFSZ  BIT_COUNT,1       ;检查是否已接收8位数据
002A   0A21           00083                 GOTO    RECEIVE_LOOP
002B   0CF8           00084                 MOVLW   B'11111000'
002C   0005           00085                 TRIS    PORTA           ;重设RA2(DATA)为输出态
002D   0800           00086                 RETLW   0
                      00087                 
                      00088                 
                      00089 ;*******************************************                
                      00090 ; 初始化
                      00091 ;*******************************************
002E   0CF8           00092 START           MOVLW   B'11111000'     ;I/O口初始化
002F   0005           00093                 TRIS    PORTA
0030   0CF9           00094                 MOVLW   B'11111001'
0031   0025           00095                 MOVWF   PORTA
0032   0C30           00096                 MOVLW   0X30            ;延时约30MS
0033   002B           00097                 MOVWF   TIMER
0034   0CFF           00098 START_DELAY     MOVLW   0XFF
0035   002C           00099                 MOVWF   TIMER1
0036   02EC           00100 START_DELAY1    DECFSZ  TIMER1,1
0037   0A36           00101                 GOTO    START_DELAY1
0038   02EB           00102                 DECFSZ  TIMER,1
0039   0A34           00103                 GOTO    START_DELAY
MPASM 02.50.02 Intermediate     16C54.ASM   7-1-2001  11:47:32         PAGE  3
SL279 测试

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

003A   0CBF           00104                 MOVLW   B'10111111'     ;TEST
003B   0405           00105                 BCF     PORTA,CS
003C   090A           00106                 CALL    SEND
003D   0505           00107                 BSF     PORTA,CS
003E   0C20           00108                 MOVLW   0X20
003F   002A           00109                 MOVWF   TEN
0040   0CFF           00110 LP              MOVLW   0XFF            ;延时约3S
0041   002B           00111                 MOVWF   TIMER
0042   0CFF           00112 STARTDELAY      MOVLW   0XFF
0043   002C           00113                 MOVWF   TIMER1
0044   02EC           00114 STARTDELAY1     DECFSZ  TIMER1,1
0045   0A44           00115                 GOTO    STARTDELAY1
0046   02EB           00116                 DECFSZ  TIMER,1
0047   0A42           00117                 GOTO    STARTDELAY
0048   02EA           00118                 DECFSZ  TEN,1
0049   0A40           00119                 GOTO    LP      
004A   0CA4           00120                 MOVLW   B'10100100'     ;发复位(清除)指令
004B   0405           00121                 BCF     PORTA,CS
004C   090A           00122                 CALL    SEND
004D   0505           00123                 BSF     PORTA,CS        ;恢复CS为高电平

⌨️ 快捷键说明

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