欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STC12CXX單片機(jī)片內(nèi)EEPROM開(kāi)機(jī)次數(shù)顯示
[打印本頁(yè)]
作者:
騰飛的龍
時(shí)間:
2016-7-28 09:59
標(biāo)題:
STC12CXX單片機(jī)片內(nèi)EEPROM開(kāi)機(jī)次數(shù)顯示
STC12C5A60S2單片機(jī)片內(nèi)EEPROM應(yīng)用
/*************************************************
功能:用STC12C5A60S2內(nèi)部EEPROM記開(kāi)機(jī)次數(shù)
數(shù)碼管顯示
根據(jù)慧靜電子改寫(xiě)
單片機(jī):STC12C5A60S2
晶 振:11.0592M
作者 :蘇義江
時(shí)間:2015-7-22
*****************************************************/
#include<reg52.h>
#include"stc12ceeprom.h"
//STC5Axx 系列 EEPROM 測(cè)試起始地址
#define DATA_flash_START_address 0x0000
sbit wei=P2^7;
sbit duan=P2^6;
uchar t,a=0,gewei,shiwei,bai;
//uchar code table[]="0123456789";
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,
0xa1,0x86,0x8e,0x89};//0到H共陽(yáng)段碼
void delay(uint x)
{
uint z,j;
for(z=x;z>0;z--)
for(j=800;j>0;j--);
}
void main()
{
delay(10);
// sector_Erase(0x0000);//擦除扇區(qū)
a=Byte_read(0x0000);//讀一個(gè)字節(jié) 從起始地址開(kāi)始讀
a++;//計(jì)數(shù)變量自加1
if(a>=999)//加到999
a=0;
sector_Erase(0x0000);//擦除扇區(qū)
Byte_write(0x0000,a);//字節(jié)編程
gewei=a%10;
shiwei=a%100/10;
bai=a/100;
while(1)
{
wei=1;
P0=0xfe;
wei=0;
P0=0xFF;
duan=1;
P0=table[bai];
duan=0;
P0=0xFF;
delay(10);
wei=1;
P0=0xfd;
wei=0;
P0=0xFF;
duan=1;
P0=table[shiwei];
duan=0;
P0=0xFF;
delay(10);
wei=1;
P0=0xfb;
wei=0;
P0=0xFF;
duan=1;
P0=table[gewei];
duan=0;
P0=0xFF;
delay(10);
}
}
復(fù)制代碼
STC12CXX EEPROM.H文件
#ifndef __STC12CEEPROM_H__
#define __STC12CEEPROM_H__
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
//用于STC12C2052
//sfr IAP_DATA =0XE2;
//sfr IAP_ADDRH =0XE3;
//sfr IAP_ADDRL =0XE4;
//sfr IAP_CMD =0XE5;
//sfr IAP_TRIG =0XE6;
//sfr IAP_CONTR =0XE7;
//#define WD1 0X46
//#define WD2 0XB9
//用于STC12C5A60S2
sfr IAP_DATA =0XC2;
sfr IAP_ADDRH =0Xc3;
sfr IAP_ADDRL =0Xc4;
sfr IAP_CMD =0Xc5;
sfr IAP_TRIG =0Xc6;
sfr IAP_CONTR =0Xc7;
#define WD1 0X5A
#define WD2 0XA5
//定義Flash 操作等待時(shí)間及允許IAP/ISP/EEPROM 操作的常數(shù)
//#define ENABLE_ISP 0X80//晶振小于30M
//#define ENABLE_ISP 0X81//晶振小于24M
#define ENABLE_ISP 0X82//晶振小于20M
//#define ENABLE_ISP 0X83//晶振小于12M
//#define ENABLE_ISP 0X84//晶振小于6M
//#define ENABLE_ISP 0X85//晶振小于3M
uchar Byte_read(uint add);//讀一字節(jié) 調(diào)用前打開(kāi)IAP
void Byte_write(uint add,uchar ch);//字節(jié)編程調(diào)用前打開(kāi)IAP
void sector_Erase(uint add);//擦除扇區(qū)
void IAP_Disable();//關(guān)閉IAP
uchar Byte_read(uint add)//讀一字節(jié) 調(diào)用前打開(kāi)IAP
{
IAP_DATA=0X00;
////打開(kāi) IAP 功能, 設(shè)置Flash 操作等待時(shí)間
IAP_CONTR=ENABLE_ISP;
IAP_CMD =0X01;
IAP_ADDRH=add/256;
IAP_ADDRL =add%256;
IAP_TRIG =WD1;//先送 5Ah,再送A5h 到ISP/IAP 觸發(fā)寄存器
IAP_TRIG =WD2;//送完A5h 后,ISP/IAP 命令立即被觸發(fā)起動(dòng)
_nop_();_nop_();
IAP_Disable();//關(guān)閉IAP
return (IAP_DATA);
}
//字節(jié)編程調(diào)用前打開(kāi)IAP 寫(xiě)
void Byte_write(uint add,uchar ch)
{
IAP_CONTR =ENABLE_ISP;
IAP_CMD =0X02;//IAP/ISP/EEPROM 字節(jié)編程命令
IAP_ADDRH=add/256;//設(shè)置目標(biāo)單元地址的高8 位地址
IAP_ADDRL =add%256;//設(shè)置目標(biāo)單元地址的低8 位地址
IAP_DATA=ch;//要編程的數(shù)據(jù)先送進(jìn)IAP_DATA 寄存器
IAP_TRIG =WD1;
IAP_TRIG =WD2;
_nop_();_nop_();
IAP_Disable();
}
//擦除扇區(qū)
void sector_Erase(uint add)
{
IAP_CONTR =ENABLE_ISP;
IAP_CMD =0X03;//IAP/ISP/EEPROM 扇區(qū)擦除命令
IAP_ADDRH=add/256;
IAP_ADDRL =add%256;
IAP_TRIG =WD1;
IAP_TRIG =WD2;
_nop_();_nop_();
IAP_Disable();
}
void IAP_Disable()
{
IAP_CONTR =0;
IAP_CMD =0;
IAP_TRIG =0;
IAP_ADDRH=0;
IAP_ADDRL =0;
}
#endif
復(fù)制代碼
作者:
mobicity
時(shí)間:
2019-12-30 20:53
學(xué)習(xí),學(xué)習(xí),感謝
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1