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

📄 saa1064t.asm

📁 飞利浦高性能单片机IIC总线通用通信协议
💻 ASM
字号:
;使用器件实例  SAA1064T


;定义LPC932的I2C相关寄存器的定义
I2ADR	DATA	0DBH
I2DAT	DATA	0DAH		
I2CON	DATA	0D8H
I2STAT	DATA	0D9H

I2SCLH	DATA	0DDH
I2SCLL	DATA	0DCH

STA	BIT	I2CON.5
SI	BIT	I2CON.3


;定义LPC932的部分特殊寄存器
TRIM	DATA	96H	
DIVM	DATA	95H	  ;CPU分频设置寄存器
P1M1	DATA	91H
P1M2	DATA	92H



;为软件包定义变量
       ACK       BIT 10H  ;应答标志位

       SLA       DATA 50H ;器件从地址
       SUBA      DATA 51H ;器件子地址 
       NUMBYTE   DATA 52H ;读/写的字节数
 
      ;使用前定义常量:
       SDA EQU  P1.3
       SCL EQU  P1.2
       
       MTD EQU  30H  ;发送数据缓冲区首址 (缓冲区30H-3FH)   
       MRD EQU  40H  ;接收数据缓冲区首址 (缓冲区40-4FH)

       LEDCON	BIT	P1.6

;定义器件地址
SAA1064T  EQU  70H
PCF8574   EQU  40H

;######################################################################
              ORG   0000H
          AJMP     MAIN
              
              ORG   0080H 
;程序功能:
;    对SAA1064进行设置--动态显示,电流等级3,接着显示good字样    
MAIN:     ;注:由于使用内部7.373MHz振荡器时,软件包使用的I2C速度为123K,但SAA1064只能
	  ;支持100K的速度,所以要进行时钟的分频,以降低总线速度。
 	  MOV	 DIVM,#2
          MOV	 R7,#0
	  DJNZ	 R7,$	
	  
	  ;由于上电复位时所用IO口设置为高阻态,所以要进行IO设置
	  MOV	 P1M1,#2CH
	  MOV	 P1M2,#0CH
	  CPL 	 LEDCON
          
MAIN_L1:              
          MOV    R1,#MTD
          MOV    @R1,#47H       ;设置SAA1064工作模式  
          INC    R1         
          MOV    @R1,#6FH       ;数字位1显示'g'
          INC    R1
          MOV    @R1,#5CH       ;数字位2显示'o'
          INC    R1
          MOV    @R1,#5CH       ;数字位3显示'o'
          INC    R1
          MOV    @R1,#5EH       ;数字位4显示'd'
	  MOV	 R5,#40		;长延时,使显示"Good"

DISP_LED:          
          MOV    SUBA,#00H
          MOV    SLA,#SAA1064T
          MOV    NUMBYTE,#05H
          LCALL  IWRNBYTE       ;调用I2C软件包子程序
MAIN_L2:	  
 	  MOV	 R7,#0
MAIN_L3:
	  MOV	 R6,#0
	  DJNZ	 R6,$
	  DJNZ	 R7,MAIN_L3
	  DJNZ	 R5,MAIN_L2

	  MOV	 SLA,#PCF8574
	  ACALL  IRDBYTE
	  JB	 ACK,MAIN_L4
	  CPL    LEDCON
MAIN_L4:
	  MOV    R1,#MTD
          MOV    @R1,#47H       ;设置SAA1064工作模式  
          INC    R1         
          MOV    @R1,#40H       ;数字位1显示'-'
          INC    R1
          MOV    @R1,#40H       ;数字位2显示'-'
          INC    R1

	  MOV    R7,A
	  MOV	 DPTR,#TAB_IO
	  SWAP	 A
	  ANL	 A,#0FH
	  MOVC	 A,@A+DPTR
          MOV    @R1,A   
          INC    R1

          MOV	 A,R7
	  ANL	 A,#0FH
	  MOVC	 A,@A+DPTR
          MOV    @R1,A   

	  MOV	 R5,#2
          SJMP   DISP_LED
 
;共阴字模表           
TAB_IO:  DB 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h,73h         

;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
$INCLUDE (HI2C_ASM.INC)    	;引入LPC932硬件I2C软件包
        
	  END
;#####################################################################

⌨️ 快捷键说明

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