/* ================ 打开 ISP,IAP 功能 ================= */

void ISP_IAP_enable(void)

{

EA = 0;       /* 关中断   */

ISP_CONTR = ISP_CONTR & 0x18;       /* 0001,1000 */

ISP_CONTR = ISP_CONTR | WaitTime; /* 写入硬件延时 */

ISP_CONTR = ISP_CONTR | 0x80;       /* ISPEN=1  */

}

/* =============== 关闭 ISP,IAP 功能 ================== */

void ISP_IAP_disable(void)

{

ISP_CONTR = ISP_CONTR & 0x7f; /* ISPEN = 0 */

ISP_TRIG = 0x00;

EA   =   1;   /* 开中断 */

}

/* ================ 公用的触发代码 ==================== */

void ISPgoon(void)

{

ISP_IAP_enable();   /* 打开 ISP,IAP 功能 */

ISP_TRIG = 0x46;  /* 触发ISP_IAP命令字节1 */

ISP_TRIG = 0xb9;  /* 触发ISP_IAP命令字节2 */

_nop_();

}

/* ==================== 字节读 ======================== */

uchar byte_read(uint byte_addr)

{

ISP_ADDRH = (uchar)(byte_addr >> 8);/* 地址赋值 */

ISP_ADDRL = (uchar)(byte_addr & 0x00ff);

ISP_CMD   = ISP_CMD & 0xf8;   /* 清除低3位  */

ISP_CMD   = ISP_CMD | RdCommand; /* 写入读命令 */

ISPgoon();       /* 触发执行  */

ISP_IAP_disable();    /* 关闭ISP,IAP功能 */

return (ISP_DATA);    /* 返回读到的数据 */

}

/* ================== 扇区擦除 ======================== */

void SectorErase(uint sector_addr)

{

uint iSectorAddr;

iSectorAddr = (sector_addr & 0xfe00); /* 取扇区地址 */

ISP_ADDRH = (uchar)(iSectorAddr >> 8);

ISP_ADDRL = 0x00;

ISP_CMD = ISP_CMD & 0xf8;   /* 清空低3位  */

ISP_CMD = ISP_CMD | EraseCommand; /* 擦除命令3  */

ISPgoon();       /* 触发执行  */

ISP_IAP_disable();    /* 关闭ISP,IAP功能 */

}

/* ==================== 字节写 ======================== */

void byte_write(uint byte_addr, uchar original_data)

{

ISP_ADDRH = (uchar)(byte_addr >> 8);  /* 取地址  */

ISP_ADDRL = (uchar)(byte_addr & 0x00ff);

ISP_CMD  = ISP_CMD & 0xf8;    /* 清低3位 */

ISP_CMD  = ISP_CMD | PrgCommand;  /* 写命令2 */

ISP_DATA = original_data;   /* 写入数据准备 */

ISPgoon();       /* 触发执行  */

ISP_IAP_disable();     /* 关闭IAP功能 */

}

c语言程序中return的作用,单片机C语言程序中return dat 什么意思相关推荐

  1. 8051单片机c语言编程模板,完美的8051单片机C语言编程模板.doc

    完美的8051单片机C语言编程模板.doc <8051单片机C语言编程模板> [程序开始处的程序说明] /***************************************** ...

  2. 【重温经典C语言】~c语言中%x、%c、%d、%x等等等、c语言取地址符的作用、C语言中的 联合体

    本章目录: 1. c语言中%x.%c.%d.%x等等等 2. c语言取地址符&的作用 3. 了解 C语言中的 联合体 3.1 什么是联合体? 3.2 定义 3.2.1 举例 3.3 初始化联合 ...

  3. 单片机c语言中的循环语句,单片机c语言教程:C51循环语句

    循环语句是几乎每个程序都会用到的,它的作用就是用来实现需要反复进行多次的操 作.如一个 12M 的 51 芯片应用电路中要求实现 1 毫秒的延时,那么就要执行 1000 次空语句 才能达到延时的目的( ...

  4. 单片机C语言中的位运算符,单片机c语言教程第八课 运算符和表达式(位运算符)...

    学过汇编的朋友都知道汇编对位的处理能力是很强的,但是单片机C语言也能对运算对象进行按位操作,从而使单片机C语言也能具有一定的对硬件直接进行操作的能力.位运算符的作用是按位对变量进行运算,但是并不改变参 ...

  5. c语言延时系统,基于VB的单片机C语言延时程序各参数计算系统

    仪器仪表用户 doi:10.3969/j.issn.1671-1041.2011.04.013 □科研设计成果□ 基于VB的单片机C语言延时程序各参数计算系统 刘 1 锋,林 奕 2 (1.武汉理工大 ...

  6. c语言 空指令的作用,单片机C语言编程空指令产生短延时怎么办

    标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51中,直接调用库函数: #include // ...

  7. STC单片机C语言中的数据类型,stc单片机c语言程序设计 第9章 stc单片机c语言数据类型.pdf...

    STC单片 机C语言变量和数据类型 主讲:何宾 Email :hebin@mail.buct.edu.cn 2016.03 C语言中的常量和变量 对于基本数据类型,按其值是否可变又分为常量和变量两种. ...

  8. 三菱梯形图转换c语言软件,三菱梯形图转51单片机软件使用程序超过100步又要使用软件的朋友.pdf...

    三菱梯形图转51单片机软件使用程序超过100步又要使用软件的朋友 三菱梯形图转51单片机软件使用 希望这个软件 能降低你的电气控制成本. 1:运行三菱软件,选择PLC型号为FX1N,画好梯形图并保存. ...

  9. 单片机在微型计算机系统中的作用,单片机在智能仪器仪表中的应用

    [摘要] 智能仪器仪表是一种具备微处理器,具备对数据信息存储处理功能的仪器仪表.单片机是计算机系统中重要构成部分,具有集成度高.体积小等特点,在智能仪器仪表中应用广泛,促进仪器仪表向着柔性化方向发展, ...

最新文章

  1. [HNOI2008 GT考试]
  2. 【原创翻译】如何阅读一个GO程序
  3. android 日期时间类,Android 时间与日期操作类
  4. 科大讯飞营收破百亿,员工涨薪27%,羡慕这个AI“老大哥”​了!
  5. NI Vision for LabVIEW 基础(二):准备测量图像
  6. Jsonschema2pojo从JSON生成Java类(Maven)
  7. Notes:DOM的事件模拟
  8. iQOO Neo5活力版或本月发布:搭载骁龙870+高刷LCD屏
  9. android面试 源码,Android面试题-onCreate源码都没看过,怎好意思说自己做android-Go语言中文社区...
  10. Python判断文件和文件夹是否存在的方法
  11. ROG幻14 AMD R7-4800H VM16安装macOS Catalina 10.15教程
  12. iOS 关于布局问题的一些认识
  13. java初始堆建议值_Java堆初始大小的建议值
  14. jamon java_JAMon监控web工程方法的调用性能
  15. 拼途网: 从线上到线下的拼途旅行社区
  16. 【内网渗透】搭建隧道
  17. 微信pc无法卡开word文件,点击文件提示“目录名无效“
  18. mysql统计姓名为小明_MySQL练习2
  19. 【产品】OEM、ODM、OBM是什么?
  20. sqrt函数的几种实现方法

热门文章

  1. 安装oracle需要多少内存,针对大型内存配置的 Oracle VM 安装需要更多步骤 (7195262)...
  2. redio中插入php脚本,Jquery操作radio的简单实例
  3. 使用javax.mail发送邮件
  4. oracle 11g 数据库cmd修改用户名密码及创建用户
  5. 用C++实现十进制转二进制【个人思想】
  6. python读取图像并相加_python使用PIL和matplotlib获取图片像素点并合并解析
  7. ip访问次数统计 nginx_PHP实现IP访问限制及提交次数的方法详解
  8. 教你做前端表单文本框必填
  9. 如何c51和mdk共存兼容_2020年网站如何做seo优化
  10. php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性