您当前的位置:五五电子网电子知识单片机-工控设备义隆单片机EMC单片机的IIC程序软件包 正文
EMC单片机的IIC程序软件包

EMC单片机的IIC程序软件包

点击数:7204 次   录入时间:03-04 11:35:11   整理:http://www.55dianzi.com   义隆单片机
本程序已经稳定使用很长一段时间了,如果非要追根求源,应该追溹到1998年,由于本系统是基于IIC EEPROM的,故对2401的读写采用了阻塞的方式,读不到数据或写不入数据就不退出。

        本程序是基于447的,也在163上运行过,不过IO的初始化操作需要作些修改,其他可以完全不用修改。

        程序开头的几行ADD A,@0xFF是非常有用的,在以后的文章中会有描述。

        程序如下:

      ;SYSTEM CLOCK 4MHz
      ;IO port define
          SDA    == 4
          SCL    == 3

          MSDA    == 0
          MSCL    == 1
          MCS    == 2
          MRST    == 5
         
      ;Register define
          TREG    == 0X10
          TCNT    == 0X11
          GCNT    == 0X12

          IICADDR    == 0X1E
          IICBUF    == 0X28
          IICDAT0    == 0X28
          IICDAT1    == 0X29
          IICDAT2    == 0X2A
          IICDAT3    == 0X2B
          IICDAT4    == 0X2C
          IICDAT5    == 0X2D
          IICDAT6    == 0X2E
          IICDAT7    == 0X2F
         
          INCLUDE "EM78P447S.H"
         
          ORG    0X000
          ADD    A,@0XFF
          ADD    A,@0XFF
          ADD    A,@0XFF
          ADD    A,@0XFF
          ADD    A,@0XFF

      START:
          DISI
          SET P6 P7 PULL UP EN
          CONTR
          MOV    TREG,A
          BC    TREG,7
          MOV    A,TREG
          CONTW
          SET SCL SDA OUTPUT HIGH
          MOV    A,@0XFF
          MOV    TREG,A
          BC    TREG,SCL    SCL OUTPUT
          BC    TREG,SDA    SDA OUTPUT
          MOV    A,TREG
          IOW    IOC6
          BS    R6,SCL        SCL HIGH
          BS    R6,SDA        SDA HIGH

      ;********************************************************************
      ;读入的测试程序,读取2401的0x00~0x07地址内容
      READ_2401:
          MOV    A,@0X00
          MOV    IICADDR,A
          CALL    IIC_R8BYT
          RET

      ;********************************************************************
      ;写入的测试程序,向2401的0x00~0x07地址写入0x00
      WRITE_2401:
          MOV    A,@0X00
          MOV    IICADDR,A
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CLR    IICDAT
          CALL    IIC_W8BYT
          RET

      ;********************************************************************
      ;与MicroChip的2401接口程序
      ;********************************************************************
      ;IIC_W8BYT,向2401的指定地址写入8个字节数据
      ;地址由IICADDR指定,数据存在IICDAT0~IICDAT7
      IIC_W8BYT:
          CALL    IIC_START
          MOV    A,@0XA0
          CALL    IIC_WBYT
          CALL    IIC_CACK
          JBC    R3,GP        IF GP=1 OPTION AGAIN
          JMP    IIC_W8BYT
          MOV    A,IICADDR
          CALL    IIC_WBYT
          CALL    IIC_CACK
          JBC    R3,GP        IF GP=1 OPTION AGAIN

[1] [2] [3] [4]  下一页


本文关键字:单片机  程序  软件包  义隆单片机单片机-工控设备 - 义隆单片机