專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

對(duì)stc片內(nèi)eeprom的測(cè)試

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2011年03月03日   【字體:
#include<stc89.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsgined int
uchar code shuzi[]="0123456789-:"; 
uchar d0,d1,d2,d3,t0;
sbit lcd_rs=P2^5;//數(shù)據(jù)/命令選擇端 H高 L低
sbit lcd_rw=P2^6;//讀/寫(xiě)選擇端    H高 L低
sbit lcd_e=P2^7; //使能信號(hào)   上升沿所存數(shù)據(jù)
void init();               //液晶初始化操作
void write_com(uchar com); //液晶寫(xiě)命令函數(shù)
void write_data(uchar dat);//液晶寫(xiě)數(shù)據(jù)函數(shù)
void delay(uchar a0);    //延時(shí)函數(shù)
void main()
{init();                  //調(diào)用液晶初始化函數(shù)對(duì)液晶初始化操作
ISP_CONTR=0x82;
ISP_ADDRH=0x20;//高八位地址定義
ISP_ADDRL=0x00;//低八位地址定義
ISP_TRIG=0x00;
ISP_CMD=0x01;//讀取內(nèi)容
ISP_TRIG=0x46;//手冊(cè)中說(shuō)要先寫(xiě)入
ISP_TRIG=0xb9;
d0=ISP_DATA;


while(1)
{

 write_com(0x83);
 d1=d0/100%10;
 d2=d0/10%10;
 d3=d0%10;
 write_data(shuzi[d1]); 
 write_data(shuzi[d2]); 
 write_data(shuzi[d3]);
 if(d0>=255)
 {d0=0;}
 ISP_DATA=d0;

  ISP_CMD=0x03;//扇區(qū)擦除
  ISP_TRIG=0x46;
ISP_TRIG=0xb9;

 ISP_CMD=0x02;;//編程
 ISP_TRIG=0x46;
ISP_TRIG=0xb9;

 for(t0=10;t0>0;t0--)
 {
  delay(255);
 }
d0++;

}}

 void init()//液晶初始化操作
{lcd_rw=0; //讀寫(xiě)選擇端 始終為寫(xiě)
  lcd_e=0; //使能端拉低 以便形成上升沿
  delay(15);
  write_com(0x38);//設(shè)置顯示模式為1602
  write_com(0x0c);//光標(biāo)設(shè)置和 顯示開(kāi)不開(kāi)設(shè)置
  write_com(0x06);//光標(biāo)和屏幕移動(dòng)不移動(dòng) 設(shè)置
  write_com(0x01);//清屏操作
  write_com(0x80);//設(shè)置數(shù)據(jù)指針
}

void write_com(uchar com)//液晶寫(xiě)命令函數(shù)
{
   lcd_rs=0; //設(shè)置數(shù)據(jù)命令為 命令
   P0=com;  //將命令送到P0口
   delay(2); //延時(shí)一下
   lcd_e=1;  //e使能端上升沿吧數(shù)據(jù)讀走
   delay(2); //延時(shí)一下好讓液晶準(zhǔn)備好
   lcd_e=0;  //使能端拉低 以便下次形成上升沿
}

void write_data(uchar dat)//液晶寫(xiě)數(shù)據(jù)函數(shù)
{
   lcd_rs=1; //設(shè)置數(shù)據(jù)命令為 數(shù)據(jù)
   P0=dat;  //將命令送到P0口
   delay(2); //延時(shí)一下
   lcd_e=1;  //e使能端上升沿吧數(shù)據(jù)讀走
   delay(2); //延時(shí)一下好讓液晶準(zhǔn)備好
   lcd_e=0;  //使能端拉低 以便下次形成上升沿
}

 void delay(uchar a0)
{ uchar a1,a2;
  for(a2=a0;a2>0;a2--)
  for(a1=110;a1>0;a1--);
}
關(guān)閉窗口

相關(guān)文章