iap.c

来自「这是一个成熟的用于驱动步进马达的程序,我们用于调试螺钉的.」· C语言 代码 · 共 82 行

C
82
字号
#include <reg52.h>
#include "TypeDefines.h"
#include "IAP.h"
#include <intrins.h>
extern void ErasEEEprom(uchar t_addr)
{
    isp_addrh = t_addr;
    isp_addrl = 0;
    EA    =    0;    /* 关中断 */
    isp_contr = 0x81;       /* 1000,0000 */
    isp_cmd = 3;
    isp_trig = 0x46;
    isp_trig = 0xb9;
    _nop_();
    _nop_();
    isp_contr = 0;    /* 0111,1111 */
    isp_cmd = 0;
    isp_trig = 0;
    isp_addrh = 0xff;
    isp_addrl = 0xff;
    EA = 1;                    /* 开中断 */
}
////一次最多256个,建议试用几个,要存入的数据松在指针指向的缓冲区
extern void WritEEEprom(uchar t_addr_h, uchar t_addr_l, uchar num, uchar *ptr)
{
	uchar iic_num;
    ErasEEEprom(t_addr_h);
    for (iic_num=0; iic_num<num; iic_num++)
    {
        isp_data = *(ptr+iic_num);
        isp_addrh = t_addr_h;

        isp_addrl = iic_num+t_addr_l;
        EA    =    0;                 /* 关中断 */
        isp_contr = 0x81;       /* 1000,0000 */
        isp_cmd = 2;
        isp_trig = 0x46;
        isp_trig = 0xb9;
        _nop_();
        _nop_();
        isp_contr = 0;    /* 0111,1111 */
        isp_cmd = 0;
        isp_trig = 0;
        isp_addrh = 0xff;
        isp_addrl = 0xff;        
        EA = 1;                    /* 开中断 */
    }
}


////从EEprom的t_addr地址开始读出num个数据
////存入以tEmp[0]开始的存储单元
////一次最多256个,读数的数据存入指针指向的缓冲区
extern void REadEEprom(uchar s_addr_h, uchar s_addr_l, uchar num, uchar *ptr)
{
	uchar iic_num;
    for (iic_num=0; iic_num<num; iic_num++)
    {
        isp_addrh = s_addr_h;
        isp_addrl = iic_num+s_addr_l;
        EA    =    0;    /* 关中断 */
        isp_contr = 0x81;       /* 1000,0000 */
        isp_cmd = 1;
        isp_trig = 0x46;
        isp_trig = 0xb9;
        _nop_();
        _nop_();
        isp_contr = 0;    /* 0111,1111 */
        isp_cmd = 0;
        isp_trig = 0;
        isp_addrh = 0xff;
        isp_addrl = 0xff;        
        EA = 1;                            /* 开中断 */
        *(ptr+iic_num) = isp_data;
    }
} 





⌨️ 快捷键说明

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