×

51单片机智能温控风扇程序

消耗积分:3 | 格式:rar | 大小:44KB | 2017-05-21

hu007

分享资料个

毕业设计专用程序,每一行代码原理写的清清楚楚,亲测有效。

  #ifndef _EEPROM52_H_

  #define _EEPROM52_H_

  #include 《intrins.h》

  uchar a_a;

  #define RdCommand 0x01 //定义ISP的操作命令

  #define PrgCommand 0x02

  #define EraseCommand 0x03

  #define Error 1

  #define Ok 0

  #define WaitTime 0x01 //定义CPU的等待时间

  sfr ISP_DATA=0xe6; //寄存器申明

  sfr ISP_ADDRH=0xe5;

  sfr ISP_ADDRL=0xe4;

  sfr ISP_CMD=0xe3;

  sfr ISP_TRIG=0xe2;

  sfr ISP_CONTR=0xe1;

  /* ================ 打开 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_();

  }

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

  unsigned char byte_read(unsigned int byte_addr)

  {

  EA = 0;

  ISP_ADDRH = (unsigned char)(byte_addr 》》 8);/* 地址赋值 */

  ISP_ADDRL = (unsigned char)(byte_addr & 0x00ff);

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

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

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

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

  EA = 1;

  return (ISP_DATA); /* 返回读到的数据 */
51单片机智能温控风扇程序

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(1)
发评论
我不是一个菜鸟 2019-05-13
0 回复 举报
性别 收起回复

下载排行榜

全部1条评论

快来发表一下你的评论吧 !