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

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

IIC記憶單片機開機次數

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

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

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

 

程序如下:
//版權所有:單片機網http://www.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();
 }
}

關閉窗口

相關文章

主站蜘蛛池模板: 亚州精品天堂中文字幕 | 黑人中文字幕一区二区三区 | 国产精品91久久久久久 | 国产成在线观看免费视频 | 欧美综合在线观看 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | 日本不卡免费新一二三区 | 天天看天天摸天天操 | 亚洲免费网址 | 亚洲啊v| 中文字幕国产精品视频 | 亚洲午夜精品一区二区三区 | 免费在线观看一区二区 | 欧美日韩精品 | 成人1区2区 | 成人美女免费网站视频 | av毛片 | 成人精品一区二区三区中文字幕 | 亚洲精品一区av在线播放 | 精品视频在线免费观看 | 天堂资源| 欧美一区二区三区久久精品 | 久久久国产精品 | 看羞羞视频 | 丁香久久 | 久久久精品 | 精品视频久久久 | 欧美一区免费在线观看 | 一级特黄a大片 | 欧美一二三四成人免费视频 | 精品久久99 | 国产精品二区三区 | 成人超碰 | 日韩成年人视频在线 | 欧美专区在线 | 欧美成人精品一区二区三区 | 91免费观看 | 免费观看国产视频在线 | 国产在线观看一区二区三区 | 丁香一区二区 | 日韩精品av一区二区三区 |