欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
STC12C5A片內(nèi)EEPROM測(cè)試程序
[打印本頁(yè)]
作者:
騰飛的龍
時(shí)間:
2015-10-1 08:43
標(biāo)題:
STC12C5A片內(nèi)EEPROM測(cè)試程序
#include<reg52.h>
#include"stc12ceeprom.h"
#define DEBUG_DATA 0x5A //本測(cè)試程序最終存儲(chǔ)在 EEPROM 單元的數(shù)值
#define DATA_flash_START_address 0x00 //STC5Axx 系列 EEPROM 測(cè)試起始地址
sbit wei=P0^6;
sbit duan=P0^7;
//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段碼 */
void delay(uint x)
{
uint z,j;
for(z=x;z>0;z--)
for(j=800;j>0;j--);
}
void main()
{
uint eeprom_add;
uchar read_eeprom;
P1=0XFF;
delay(2000);
P1=0XF0;
delay(2000);
//將EEPROM 測(cè)試起始地址單元的內(nèi)容讀出
eeprom_add=DATA_flash_START_address;
//將測(cè)試起始地址送給eeprom_address
//讀EEPROM的值,存到read_eeprom
read_eeprom=Byte_read(eeprom_add);
if(DEBUG_DATA ==read_eeprom)
{
//數(shù)據(jù)是對(duì)的然后在 P0 口上將 EEPROM 的數(shù)據(jù)顯示出來(lái)
// P1=~0xaa;
P1=0xaa;
delay(2000);
// P1=~read_eeprom;
P1=read_eeprom;
}
else//數(shù)據(jù)是錯(cuò)的然后在 P0 口上將 EEPROM 的數(shù)據(jù)顯示出來(lái)
{
P1=~0x55;
delay(1000);
P1=~read_eeprom;
delay(10);
sector_Erase(eeprom_add);//擦除扇區(qū)
//將 DEBUG_DATA 寫入 EEPROM
Byte_write(eeprom_add,DEBUG_DATA);//字節(jié)編?
P1=~0Xaa;//熄滅 P1.3 控制的燈
}
while(1);
}
#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
//用于STC12C5A60S3
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
#define ENABLE_ISP 0X81
uchar Byte_read(uint add);//讀一字節(jié) 調(diào)用前打開(kāi)IAP
void Byte_write(uint add,uchar ch);//字節(jié)編程
void sector_Erase(uint add);//擦除扇區(qū)
void IAP_Disable();//關(guān)閉IAP
uchar Byte_read(uint add)
{
IAP_DATA=0X00;
IAP_CONTR=ENABLE_ISP;
IAP_CMD =0X01;
IAP_ADDRH=add/256;
IAP_ADDRL =add%256;
IAP_TRIG =WD1;
IAP_TRIG =WD2;
_nop_();_nop_();
IAP_Disable();
return (IAP_DATA);
}
void Byte_write(uint add,uchar ch)
{
IAP_CONTR =ENABLE_ISP;
IAP_CMD =0X02;
IAP_ADDRH=add/256;
IAP_ADDRL =add%256;
IAP_DATA=ch;
IAP_TRIG =WD1;
IAP_TRIG =WD2;
_nop_();_nop_();
IAP_Disable();
}
void sector_Erase(uint add)
{
IAP_CONTR =ENABLE_ISP;
IAP_CMD =0X03;
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ù)制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1