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

📄 9300.asm

📁 带遥控 带128*64LCD 带电子开关
💻 ASM
📖 第 1 页 / 共 5 页
字号:
SDA        BIT   P3.4
SDAAT      BIT   P3.4
SCLAT      BIT   P3.3
SCL        BIT   P3.3
DATA_RD_TUNER    BIT   P1.0
CL_TUNER         BIT   P1.1
DATA_WR_TUNER    BIT   P1.2
CE_TUNER   BIT   P1.3
T_SCL      BIT   P1.7
T_SDA      BIT   P1.5
CD94_DAT1  BIT   P1.4
CD94_CLK1  BIT   P1.6
CD94_DAT2  BIT   P3.0
http://www.youku.com/playlist_show/id_899823_ascending_1_page_2.html
CD94_CLK2  BIT   P3.1
CD94_DAT3  BIT   P3.7
CD94_CLK3  BIT   P3.6
MIC_OUT    BIT   P3.5
USB_HOLD   BIT   P2.0
USB_DA     BIT   P2.1
USB_BCK    BIT   P2.2
CSA        BIT   P2.3
CSB        BIT   P2.4
RS         BIT   P2.5
RW         BIT   P2.6
E1         BIT   P2.7
DATBUS     EQU   P0
;///////////////////////////////////////
ACK           BIT     22H.0 
AM_FM_FLAG    BIT     22H.1
IF_CTR        BIT     22H.2
SLA 	DATA     23H 
FLAG        EQU      28H
YEAR        DATA     36H             ;年
MONTH       DATA     35H             ;月
DAY         DATA     34H             ;日
WEEK        DATA     33H             ;星期
HOUR        DATA     32H             ;小时
MINUTE      DATA     31H             ;分钟
SECOND      DATA     30H             ;秒
TIMETEMP    DATA     29H     ;时间数据缓存器
TIMETX      DATA     38H     ;时间数据发送寄存器
TIMERX      DATA     39H     ;时间数据接收寄存器
IICTEMP     DATA     3AH     ;IIC标志寄存器
SLAVE_ADD   DATA     3BH     ;SD7218地址寄存器
DATAI1      DATA     3CH
DATAI2      DATA     3DH
TXBUF       DATA     3EH     ;IIC数据发送寄存器
RXBUF       DATA     3FH     ;IIC数据接收寄存器
KEYBUF      DATA     40H     ;键盘数据缓冲器
READDATA    DATA     41H
SRAMADD_LO	DATA     42H     ;SRAM地址低8位
SRAMADD_HI	DATA     43H     ;SRAM地址高8位
SRAMDATA    DATA     44H     ;写入SRAM内的数据
VERIFY_LO   DATA     45H     ;校验次数低八位
VERIFY_HI   DATA     46H     ;校验次数高八位
TYPE 	DATA     47H     ;sd2400型号寄存器
EE_PAGE	DATA     48H
TEMP            DATA     49H     ;
CON_REG2        DATA     4AH     ;sd2400的控制寄存器
VAL_CON_REG2_12 DATA     4BH     ;12H
VAL_CON_REG2_24 DATA     4CH     ;24H
COM             DATA     4DH
XPAGE           DATA     4EH
DAT             DATA     4FH
;///////////////////////////
DAT1    DATA     50H             ; 数据寄存器
O_XL    DATA     51H             ; 列地址(0-127)
O_YL    DATA     52H             ; 行地址 D2,D1,D0:                                 ; D7为点标志 "1"为置点,"0"为清点
CODE1   DATA     53H             ; 字符代码寄存器
COUNT1  DATA     54H 
CONT0   DATA     55H
TAB_KEY DATA     60H
;--------------------------------------------------------------------------
;define time device address
 sd2400_R        EQU     65H     ;sd2400的器件地址(读)
 sd2400_W        EQU     64H     ;sd2400的器件地址(写)
;//////////////////////////////////////  FM AND AM SET
 IN1_DATA1      DATA   56H
 IN1_DATA2      DATA   57H
 IN1_DATA3      DATA   58H
 IN2_DATA1      DATA   59H
 IN2_DATA2      DATA   5AH
 IN2_DATA3      DATA   5BH
 out_data1      DATA   5CH
 out_data2      DATA   5DH
 out_data3      DATA   5EH
 USB_DATA       DATA   5FH
 ;/////////////////////////////////////////////
 ORG     00H
 AJMP    MAIN
 ;/////////////////
 ORG     03H
 LJMP    REM
;///////////////////
 ORG     0BH
 LJMP    TIME
 ORG     0030H
MAIN:   
  MOV     SP,#60H
  MOV     P3,#21H
  MOV     PSW,#00H
  MOV     P0,#0F0H
  MOV     P1,#0FFH
  MOV     P2,#0FFH
  MOV     P3,#0FFH
  CLR     A                       ;开始初始化各寄存器
  MOV     IE,A                    ;关中断
  MOV     SP,#60H
  SETB    IP.0
  MOV     TMOD,#11H
  CLR     FLAG     
  MOV     TAB_KEY,#0FFH               ;清除标志位
  MOV     VERIFY_LO,#00H
  LCALL   LONGDELAY1
  MOV     SLA,#88H
  MOV     A,#0C0H		
  LCALL   IWRBYTE        
  MOV     A,#0E0H		
  LCALL   IWRBYTE
  MOV     A,#5BH
  LCALL   IWRBYTE
  LCALL   INT
  LCALL   CLEAR 
  CLR     MIC_OUT
 ; LCALL   INIT_FM
  LCALL   DISCHA
  SETB    USB_HOLD
  SETB    USB_DA
  SETB    USB_BCK
  SETB    EA 
  SETB    TR0
  SETB    IT0 		
  SETB    EX0 		
  setb    TF0                
  SETB    ET0 
  SETB    EA 
MAIN_1: 
  LCALL   KEYSCN   
  MOV     A,TAB_KEY    
  CJNE    A,#0FFH,MAIN_2
  JMP     MAIN_1
MAIN_2:
 MOV	A,TAB_KEY
 MOV   	B,#2                      
 MUL   	AB
 NOP
 MOV	TAB_KEY,#0FFH                         
 MOV   	DPTR,#TAB_JMP 
 NOP
 NOP
 JMP   	@A+DPTR
TAB_JMP: 
  AJMP      MAIN_1
  AJMP      AUTO
  AJMP      SHOUDONG
  AJMP      MIC
  AJMP      OUT1
  AJMP      OUT2  
  AJMP      OUT3
  AJMP      OUT4
  AJMP      USB
  AJMP      FM
  AJMP      AUX1
  AJMP      AUX2
  AJMP      AUTO_FM
  AJMP      PREV
  AJMP      MP3_STOP
  AJMP      NEXT
  AJMP      UP
  AJMP      DN
  AJMP      MEU
  AJMP      TOP
  AJMP      BOT
  AJMP      LEFT
  AJMP      RFFT
  AJMP      RETUN
  AJMP      DEL
  ;///////////////////////
AUTO:
   LJMP      MAIN_1  
SHOUDONG:
   LJMP      MAIN_1      
MIC:  
   CPL       MIC_OUT
   LJMP      MAIN_1
OUT1:
   LJMP     MAIN_1
OUT2:
   LJMP     MAIN_1
OUT3:
   LJMP     MAIN_1
OUT4:
   LJMP     MAIN_1
USB:
   MOV      A,#5BH
   LCALL    IWRBYTE
   LJMP     MAIN_1
FM:
   MOV     A,#5AH
   LCALL   IWRBYTE
   LJMP     MAIN_1
AUX1:
   MOV     A,#58H
   LCALL   IWRBYTE
   LJMP     MAIN_1
AUX2:
   MOV     A,#59H
   LCALL   IWRBYTE
   LJMP     MAIN_1
AUTO_FM:
   LJMP     MAIN_1
PREV:
   LJMP     MAIN_1
MP3_STOP:
   MOV      USB_DATA,#0E6H
   LCALL    USB_STOP 
   MOV      USB_DATA,#19H
   LCALL    USB_STOP 
   MOV      USB_DATA,#0FFH   	
   LCALL    USB_STOP 
   MOV      USB_DATA,#00H
   LCALL    USB_STOP 
   LJMP     MAIN_1
NEXT:
   LJMP     MAIN_1
UP:
   LJMP     MAIN_1
DN:
   LJMP     MAIN_1
MEU:
   LJMP     MAIN_1
TOP:
   LJMP     MAIN_1
BOT:
   LJMP     MAIN_1
LEFT:
   LJMP     MAIN_1
RFFT:
   LJMP     MAIN_1
RETUN:
   LJMP     MAIN_1
DEL:
   LJMP     MAIN_1
   ;/////////////////////  
USB_STOP:          ;发送方式
   MOV     R2,#8
   MOV     A,USB_DATA
USB_WLP:
   RLC     A
   JC      USB_WR0    ;判断数据位
   JMP     USB_WR1   
USB_LP1:
   DJNZ    R2,USB_WLP   
   NOP
   NOP
   JB      USB_BCK,$
   NOP
   SETB    USB_DA
   SETB    USB_HOLD
   RET
USB_WR1:                      ;发送0 
   CLR     USB_HOLD
   NOP
   NOP
   NOP
   JNB      USB_BCK,USB_STOP
   NOP
   NOP
   NOP
   NOP
   CPL     USB_DA
   NOP
   NOP
   NOP
   NOP
   SETB    USB_HOLD
   NOP
   NOP
   NOP
   JMP     USB_LP1 
USB_WR0:                   ;发送1
   CLR      USB_HOLD 
   NOP
   NOP
   NOP
   NOP
   JB       USB_BCK,USB_WR0
   NOP 
   NOP
   NOP
   CLR      USB_DA
   NOP 
   NOP
   NOP
   SETB     USB_HOLD
   NOP
   NOP
   NOP
   JMP     USB_LP1 
INT:
  MOV     COM,#0C0H      ; 设置显示起始行为第一行
  LCALL   PR1
  LCALL   PR4
  MOV     COM,#3FH       ; 开显示设置
  LCALL   PR1
  LCALL   PR4
  RET
        CLEAR:
                MOV     R4,#00H		; 页面地址暂存器设置
        CLEAR1: MOV     A,R4
                ORL     A,#0B8H		; "或"页面地址设置代码
                MOV     COM,A		; 页面地址设置
                LCALL   PR1
                LCALL   PR4
                MOV     COM,#40H        ; 列地址设置为"0"
                NOP
                NOP
                NOP
                NOP
                LCALL   PR1
                LCALL   PR4
                MOV     R3,#40H         ; 一页清64个字节
        CLEAR2: MOV     DAT1,#00H       ; 显示数据为"0"
                LCALL   PR2
                LCALL   PR5
                NOP
                NOP
                DJNZ    R3,CLEAR2       ; 页内字节清零循环
                INC     R4		; 页地址暂存器加1
                NOP
                NOP
                NOP
                NOP
                CJNE    R4,#08H,CLEAR1  ; RAM 区清零循环
                RET
        PR1:    CLR     CSB            ; 片选设置为"01"
                SETB    CSA            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
                NOP
                NOP
                NOP
                NOP
                NOP
        PR11:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                SETB    E1             ; E=1
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                MOV     A,DATBUS       ; 读状态字
                CLR     E1             ; E=0
                JB      ACC.7,PR11     ; 判"忙"标志为"0"否, 否再读
                CLR     RW             ; R/W=0
                MOV     DATBUS,COM     ; 写指令代码
                NOP
                NOP
                NOP
                NOP
                NOP
                NOP
                SETB    E1             ; E=1
                NOP
                NOP
                NOP
                NOP
                NOP
                CLR     E1             ; E=0
                NOP
                NOP
                NOP
                RET
                ;/////////////////////////
        PR2:    CLR     CSB            ; 片选设置为"01"
                SETB    CSA            ;
                CLR     RS             ; RS=0
                SETB    RW             ; R/W=1
        PR21:   MOV     DATBUS,#0FFH   ; DATBUS口置"1"
                NOP
                NOP
                NOP
                NOP
                SETB    E1             ; E=1
                NOP
                NOP
                NOP
                NOP
                NOP
                MOV     A,DATBUS       ; 读状态字
                NOP
                NOP
                NOP
                CLR     E1             ; E=0
                JB      ACC.7,PR21     ; 判"忙"标志为"0"否, 否再读
                SETB    RS             ; RS=1
                CLR     RW             ; R/W=0
                MOV     DATBUS,DAT1    ; 写数据
                NOP
                NOP
                NOP
                NOP

⌨️ 快捷键说明

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