久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

IIC記憶單片機開機次數

作者:李俊軒   來源:本站原創   點擊數:  更新時間:2013年07月18日   【字體:

   IIC具有記憶功能,其實之前沒有體會好為什么會記憶,因為編的程序是讓燈閃爍的,所以理解不出它可以所謂記憶的原理,今天通過數碼管讓其記憶單片機開機次數,終于明天了它的真正原理,其實是單片機控制它的時候,程序不斷運行,把程序運行得到的數據不斷地寫入IIC寄存器中,而寄存器是掉電后不數據不會丟失的,所以當我們把程序關了,也就是掉電了以后數據被保存了下來,下次再開機運行的時候,程序是從頭開始的,但是地址是從我們上次我們寄存器儲存地址開始的,所以就達到了記憶的功能。這個的應用在數據的存儲和保護是很大的,比如交通燈記憶違章車輛,賬戶儲存,數據累積等可以靠它進行儲存。

下面是IIC記憶單片機開機次數的效果和程序:

 

程序如下:
//版權所有:單片機網http://m.zg4o1577.cn
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char//宏定義
#define uint unsigned int
sbit scl=P2^0;  //這兩個位定義是控制IIC的引腳      
sbit sda=P2^1;
uchar number[10]={           //數碼管數組定義
0x3f,
0x06,
0x5b,
0x4f,
0x66,
0x6d,
0x7d,
0x07,
0x7f,
0x6f
};
void delayt(void)//數碼管的延時
{
 uint x,y;
 for(x=0;x<5;x++)
 for(y=0;y<120;y++);
}
void delay(void)//IIC的適應延時
{
 _nop_();_nop_();_nop_();_nop_();
 _nop_();_nop_();_nop_();_nop_();
}
void start()//開始
{
 sda=1;
 delay();
 scl=1;
 delay();
 sda=0;
 delay(); 
}
void stop()//停止
{
 sda=0;
 delay();
 scl=1;
 delay();
 sda=1;
 delay();
}
void init()//初始化設置
{
 sda=1;
 scl=1;
}
void answer()//應答
{
 uchar i;
 scl=1;
 while((sda==1)&&(i<250))i++;
 scl=0;
 delay();
}
void noanser()//非應答
{
 scl=1;
 delay();
 sda=1;
 delay();
 scl=0; 
 delay();
}
void writebyte(uchar dat)//寫字節
{
 uchar i;
 scl=0;
 delay();
 for(i=0;i<8;i++)
 {
  if(dat&0x80)
  {
  sda=1;
  }
  else
  {
  sda=0;
  }
  dat=dat<<1;
  delay();
  scl=1;
  delay();
  scl=0;
  delay();
 }
 sda=1;
 
}

uchar readbyte()//讀字節
{
 uchar i,dat;
 scl=0;
 delay();
 sda=1;
 delay();
 for(i=0;i<8;i++)
 {
 scl=1;
 delay();
 dat=dat<<1;
 if(sda)
 {
 dat++;
 }
 scl=0;
 delay();
 }
 return dat;
}


void write_byte(uchar add,uchar dat)//寫字節的封裝
{
 init();
 start();
 writebyte(0xae);
 answer();
 writebyte(add);
 answer();
 writebyte(dat);
 answer();
 stop();
}
uchar read_byte(uchar add)//讀字節的封裝
{
 uchar value;
 init();
 start();
 writebyte(0xae);
 answer();
 writebyte(add);
 answer();
 start();
 writebyte(0xaf);
 answer();
 value=readbyte();
 noanser();
 stop();
 return value;
}
void main()
{
 
 
 uchar temp,k,j;

 temp=read_byte(0x10);//數碼管個位和十們的操作
 k=temp/10;
 j=temp%10;
 temp++;
  write_byte(0x10,temp);
 delay();
 while(1) //數碼管顯示
 {
 P1=number[k];
 P0=0;
 delayt();
 P1=number[j];
 P0=1;
 delayt();
 }
}

關閉窗口

相關文章

主站蜘蛛池模板: 久久精品日产第一区二区三区 | 久久国产综合 | 色偷偷噜噜噜亚洲男人 | 婷婷色国产偷v国产偷v小说 | 国产男人的天堂 | 国内精品久久久久久久影视简单 | 精品一区二区在线看 | 日韩精品一区在线 | 日韩av中文 | 阿v视频在线观看 | 老司机午夜性大片 | 自拍视频一区二区三区 | 99在线播放| a国产一区二区免费入口 | 亚洲色图网址 | 伊人久久伊人 | 色综合色综合 | 色综合天天综合网国产成人网 | av影音资源 | 伊人一区| 麻豆changesxxx国产 | 综合久 | 日本精品久久久一区二区三区 | 亚洲精品电影在线观看 | 一区在线播放 | 国产超碰人人爽人人做人人爱 | 黄色片在线观看网址 | 久久久久久久综合 | av日韩高清 | 激情六月丁香婷婷 | 成人精品国产一区二区4080 | 欧美日韩三级 | 欧美亚洲视频在线观看 | 日韩成人精品在线 | 成人精品视频在线观看 | 91精品国产综合久久小仙女图片 | 毛片免费观看 | 91av小视频 | 国产视频二区 | 精品一区二区三区在线视频 | 91精品国产综合久久久久蜜臀 |