本文主要是介绍基于STC12C5A60S2系列1T 8051单片机EEPROM其他应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
基于STC12C5A60S2系列1T 8051单片机EEPROM其他应用
- STC12C5A60S2系列1T 8051单片机管脚图
- STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置
- STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
- STC12C5A60S2系列1T 8051单片机EEPROM介绍
- 基于STC12C5A60S2系列1T 8051单片机EEPROM的特殊功能寄存器列表
- 基于STC12C5A60S2系列1T 8051单片机EEPROM用到的特殊功能寄存器
- STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR
- STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1
- ISP/IAP数据寄存器IAP_DATA
- ISP/IAP地址寄存器IAP_ADDRH和IAP_ADDRL
- ISP/IAP命令寄存器IAP_CMD
- ISP/IAP命令触发寄存器IAP_TRIG
- ISP/IAP控制寄存器IAP_CONTR
- ISP/IAP功率控制寄存器PCON
- 基于STC12C5A60S2系列1T 8051单片机EEPROM掉电保存按键设定值
STC12C5A60S2系列1T 8051单片机管脚图
STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置
STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍
STC12C5A60S2系列1T 8051单片机EEPROM介绍
基于STC12C5A60S2系列1T 8051单片机EEPROM的特殊功能寄存器列表
基于STC12C5A60S2系列1T 8051单片机EEPROM用到的特殊功能寄存器
STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR
STC12C5A60S2系列1T 8051单片机辅助寄存器AUXR1
ISP/IAP数据寄存器IAP_DATA
作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM读写数据
ISP/IAP地址寄存器IAP_ADDRH和IAP_ADDRL
作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM高八位低八位地址寄存器
ISP/IAP命令寄存器IAP_CMD
作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM待机、读、写、擦除操作
ISP/IAP命令触发寄存器IAP_TRIG
作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM命令触发
ISP/IAP控制寄存器IAP_CONTR
作用:用来设置STC12C5A60S2系列1T 8051单片机EEPROM以下功能
(1)、读、写、擦除使能
(2)、选择从用户应用程序区或系统ISP监控程序区启动EEPROM
(3)、软件系统复位
(4)、读、写、擦除是否成功标志位
(5)、写入数据给EEPROM等待时间
ISP/IAP功率控制寄存器PCON
作用:用来检测STC12C5A60S2系列1T 8051单片机EEPROM工作电压
基于STC12C5A60S2系列1T 8051单片机EEPROM掉电保存按键设定值
main.c
#include "STC12C5A60S2.h"
#include "EEPROM.h"
#include "Timer0.h"
#include "Key.h"
#include "Digitron.h"
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整形void main(void) //程序的主函数
{ Timer0Init();//定时器0函数调用DigitronBootDisplay();//声明数码管开机显示函数KeyPressNumber = ReadEepromByte(IAP_ADDRESS);//读电子擦除只读储存器字节函数 while(1) //大括号里面的东西,被不停的循环执行{if(Timer0To1MsFlag == 1) //加了我之后,我的大括号里面的东西,被定期的1ms执行一次,反复执行 {Timer0To1MsFlag = 0;//定时器0的1毫秒标志位变量清0DigitronDisplay();//数码管显示函数DigitronDisplayData();//数码管显示数据函数KeyScanResult();//按键扫描结果函数}}}
Eeprom.c
#include <intrins.h>
#include "EEPROM.h"
#define uchar unsigned char//自定义无符号字符型为uchar
#define uint unsigned int//自定义无符号整数型为uint
//uchar Value = 0;//定义数据变量为0void EepromInit()//电子擦除只读储存器初始化函数
{IAP_CONTR = 0;//禁止ISP/IAP控制寄存器控制EEPROMIAP_CMD = 0;//禁止ISP/IAP命令寄存器控制EEPROMIAP_TRIG = 0;//禁止ISP/IAP命令触发寄存器控制EEPROMIAP_ADDRH = 0x80;//设置数据指针指向EEPROM无储存区IAP_ADDRL = 0;//EEPROM低八位地址寄存器清0}uchar ReadEepromByte(uint Address)//读电子擦除只读储存器字节函数
{uint Value;//声明数据变量IAP_CONTR = 0x82;//允许ISP/IAP控制寄存器控制EEPROMIAP_CMD = 0x01;//允许ISP/IAP命令寄存器从EEPROM里读字节IAP_ADDRH = Address >> 8;//保存EEPROM高八位数据IAP_ADDRL = Address;//保存EEPROM低八位数据IAP_TRIG = 0x5a;//禁止ISP/IAP命令触发寄存器控制EEPROMIAP_TRIG = 0xa5;//禁止ISP/IAP命令触发寄存器控制EEPROM_nop_();//晶振频率为12MHz时 延时1usValue = IAP_DATA;//从EEPROM的ISP/IAP数据寄存器IAP_DATA读出数据赋给数据变量EepromInit();//电子擦除只读储存器初始化函数return Value;//返回从EEPROM的ISP/IAP数据寄存器IAP_DATA读出的数据} void WriteByteToEeprom(uint Address,uint Value)//写字节给电子擦除只读储存器函数
{IAP_CONTR = 0x82;//允许ISP/IAP控制寄存器控制EEPROMIAP_CMD <
这篇关于基于STC12C5A60S2系列1T 8051单片机EEPROM其他应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!