1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 51单片机温控风扇仿真原理图 C语言程序 51单片机智能温控风扇程序

51单片机温控风扇仿真原理图 C语言程序 51单片机智能温控风扇程序

时间:2024-05-11 04:22:28

相关推荐

51单片机温控风扇仿真原理图 C语言程序 51单片机智能温控风扇程序

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

#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); /* 返回读到的数据 */

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。