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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6665|回復: 10
收起左側

STC89C52單片機內部EEPROM存儲大于256 6位數存儲實例 24C02也可以參考

  [復制鏈接]
ID:468209 發表于 2020-4-9 20:28 | 顯示全部樓層 |閱讀模式
IMG_20200409_195436.jpg


部分程序

  1. #include <reg52.h>           //此文件中定義了單片機的一些特殊功能寄存器
  2. #include "STC89C52_EEPROM.h" //STC89C52內部存儲驅動
  3. #include "delay.h"           //調用延時函數
  4. #define uchar unsigned char  //宏定義無符號字符形數據類型進行聲明定義 定義名稱uchar 所占位數8位 范圍0~255
  5. #define uint unsigned int    //宏定義無符號整形數據類型進行聲明定義 定義名稱uint 所占位數16位 范圍0~65535
  6. #define ulong unsigned long int //宏定義無符號長整形數據類型進行聲明定義 定義名稱ulong 所占位數32位 范圍0~4294967295
  7. /*按鍵IO引腳定義*/
  8. sbit LSA=P2^2;
  9. sbit LSB=P2^3;
  10. sbit LSC=P2^4;
  11. sbit k1=P3^0;  //加按鍵
  12. sbit k2=P3^1;  //減按鍵
  13. sbit k3=P3^2;  //保存數據按鍵
  14. sbit k4=P3^3;  //讀取數據按鍵
  15. uchar code duan_ma[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //顯示0~9的值
  16. uchar duan_ma_wei[6]; //存儲記錄數碼管6個段碼位的值
  17. ulong K_num;          //記錄存儲按鍵按下的數值
  18. ulong num[6];         //把按鍵的數值分散給與num6個組數
  19. /*數據結合處理*/
  20. void shujujiehe()
  21. {
  22.   K_num=num[0]+num[1]*10+num[2]*100+num[3]*1000+num[4]*10000+num[5]*100000;
  23. }
  24. /*數據分散處理*/
  25. void shujufensan()
  26. {
  27. num[0]=K_num%10;             //分散K_num數值給與num[0]      
  28. num[1]=K_num%100/10;         //分散K_num數值給與num[1]   
  29. num[2]=K_num%1000/100;       //分散K_num數值給與num[2]   
  30. num[3]=K_num%10000/1000;     //分散K_num數值給與num[3]
  31. num[4]=K_num%100000/10000;   //分散K_num數值給與num[4]
  32. num[5]=K_num%1000000/100000; //分散K_num數值給與num[5]
  33. }
  34. /*讀出EEPROM扇區*/
  35. void EEPROM_Read()
  36. {
  37. num[0]=IapReadByte(0x2000); //讀出EEPROM  2000扇區      
  38. num[1]=IapReadByte(0x2001); //讀出EEPROM  2001扇區
  39. num[2]=IapReadByte(0x2002); //讀出EEPROM  2002扇區
  40. num[3]=IapReadByte(0x2003); //讀出EEPROM  2003扇區
  41. num[4]=IapReadByte(0x2004); //讀出EEPROM  2004扇區
  42. num[5]=IapReadByte(0x2005); //讀出EEPROM  2005扇區
  43. }
  44. /*按鍵設置*/
  45. void anjian()
  46. {
  47. if(k1==0)                         //判斷按鍵是否按下
  48. {
  49.   delay_ms(10);                  //按鍵消抖延時
  50.   if(k1==0)                      //如果按鍵真的按下
  51.   {
  52.     if(K_num<999900)K_num=K_num+100;
  53.    else(K_num=0);
  54.    shujufensan();               //數據分散處理
  55.   }
  56. }
  57. if(k2==0)                        //判斷按鍵是否按下
  58. {
  59.   delay_ms(10);                  //按鍵消抖延時
  60.    if(k2==0)                      //如果按鍵真的按下
  61.   {
  62.     if(K_num>0)K_num=K_num-100;
  63.    else(K_num=999900);
  64.    shujufensan();               //數據分散處理
  65.   }
  66. }
  67. if(k3==0)                    //判斷按鍵是否按下  
  68. {              
  69.    delay_ms(10);             //按鍵消抖延時
  70.   if(k3==0)                 //如果按鍵真的按下
  71.   {
  72.    IapEraseSector(0x2000);        //2000扇區擦除
  73.    IapEraseSector(0x2001);        //2001扇區擦除
  74.    IapEraseSector(0x2002);        //2002扇區擦除
  75.    IapEraseSector(0x2003);        //2003扇區擦除
  76.    IapEraseSector(0x2004);        //2004扇區擦除
  77.    IapEraseSector(0x2005);        //2005扇區擦除
  78.    
  79.    IapProgramByte(0x2000,num[0]); //將分散好后的num[0]存儲到EEPROM 2000扇區
  80.    IapProgramByte(0x2001,num[1]); //將分散好后的num[1]存儲到EEPROM 2001扇區
  81.    IapProgramByte(0x2002,num[2]); //將分散好后的num[2]存儲到EEPROM 2002扇區
  82.    IapProgramByte(0x2003,num[3]); //將分散好后的num[3]存儲到EEPROM 2003扇區
  83.    IapProgramByte(0x2004,num[4]); //將分散好后的num[4]存儲到EEPROM 2004扇區
  84.    IapProgramByte(0x2005,num[5]); //將分散好后的num[5]存儲到EEPROM 2005扇區
  85.   }
  86.   while(!k1);               //判斷按鍵是否松開
  87. }

  88. if(k4==0)           //判斷按鍵是否按下
  89. {
  90.    delay_ms(10);     //按鍵消抖延時
  91.   if(k4==0)         //如果按鍵真的按下
  92.   {
  93.     EEPROM_Read(); //讀出EEPROM扇區
  94.   }
  95.    while(!k4);      //判斷按鍵是否松開
  96. }
  97. }
  98. /*主函數*/
  99. void main()
  100. {
  101. uchar i;
  102.   EEPROM_Read(); //開機讀出EEPROM扇區
  103. shujujiehe();  //開機讀數據結合處理
  104. while(1) //循環
  105. {
  106.   anjian(); //讀按鍵設置
  107.   duan_ma_wei[0]=duan_ma[num[5]]; //數碼管顯示
  108.   duan_ma_wei[1]=duan_ma[num[4]]; //數碼管顯示
  109.     duan_ma_wei[2]=duan_ma[num[3]]; //數碼管顯示
  110.     duan_ma_wei[3]=duan_ma[num[2]]; //數碼管顯示
  111.   duan_ma_wei[4]=duan_ma[num[1]]; //數碼管顯示
  112.   duan_ma_wei[5]=duan_ma[num[0]]; //數碼管顯示
  113.   
  114.   for(i=0;i<6;i++)   //對數碼管進行動態掃描
  115.     {
  116.    switch(i)  //位選,選擇點亮的數碼管,
  117.     {
  118.     case(0):LSA=1;LSB=0;LSC=1;break;//顯示第1位
  119.     case(1):LSA=0;LSB=0;LSC=1;break;//顯示第2位
  120.     case(2):LSA=1;LSB=1;LSC=0;break;//顯示第3位
  121.     case(3):LSA=0;LSB=1;LSC=0;break;//顯示第4位
  122.     case(4):LSA=1;LSB=0;LSC=0;break;//顯示第5位
  123.      case(5):LSA=0;LSB=0;LSC=0;break;//顯示第6位  
  124.     }
  125.       P0=duan_ma_wei[i]; //發送段碼
  126.       delay_ms(1);
  127.     P0=0x00; //消隱
  128.   }
  129. }   
  130. }
復制代碼

數碼管 4位 STC 89C52內部EEPROM 6位存儲顯示 共陽共陰 74LS138(開發板).zip

43.9 KB, 下載次數: 93, 下載積分: 黑幣 -5

STC89C52單片機內部EEPROM存儲大于256 6位數存儲實例

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:66287 發表于 2020-4-10 08:28 | 顯示全部樓層
"STC89C52_EEPROM.h"函數?
回復

使用道具 舉報

ID:468209 發表于 2020-4-10 18:35 來自觸屏版 | 顯示全部樓層
bhjyqjs 發表于 2020-4-10 08:28
"STC89C52_EEPROM.h"函數?

上不了附件 不知何解  那只有一個頭文件 STC燒錄器有程序 復制過來就好
回復

使用道具 舉報

ID:34298 發表于 2020-4-10 22:56 | 顯示全部樓層
建立一個壓縮包就傳上去了
回復

使用道具 舉報

ID:468209 發表于 2020-4-11 22:05 來自觸屏版 | 顯示全部樓層
fancunwu 發表于 2020-4-10 22:56
建立一個壓縮包就傳上去了

建立了 有空再搞下吧
回復

使用道具 舉報

ID:468209 發表于 2020-4-12 19:00 | 顯示全部樓層
附件 已補全
回復

使用道具 舉報

ID:856401 發表于 2021-3-26 08:02 | 顯示全部樓層
新的一天,從學習51單片機開始
回復

使用道具 舉報

ID:168911 發表于 2021-3-26 23:08 | 顯示全部樓層
這個讀寫有次數壽命嗎?
回復

使用道具 舉報

ID:468209 發表于 2021-3-27 20:19 來自觸屏版 | 顯示全部樓層
老當益壯 發表于 2021-3-26 23:08
這個讀寫有次數壽命嗎?

不知啊 能等到寫壞 都天荒地老了吧 怕寫壞可以用外置存儲
回復

使用道具 舉報

ID:168911 發表于 2021-5-27 00:33 | 顯示全部樓層
24c02的我做了一個計數器,除非是斷電并且數字改變的情況下儲存一次,其余正常計數時不讀寫,
回復

使用道具 舉報

ID:67838 發表于 2024-12-23 21:57 | 顯示全部樓層
樓主辛苦了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品乱码久久久久久动漫 | 午夜精品福利视频 | 亚洲福利网站 | 91久久国产综合久久91精品网站 | 伊人成人在线视频 | 97在线观看免费视频 | 午夜黄色大片 | 亚洲精品乱码久久久久久动漫 | 午夜精品在线观看 | 久久久久亚洲精品 | 欧美一级片网站 | 欧美bbb| 超碰在线中文字幕 | 黄色片视频免费 | 国产一区二区免费看 | 天天干夜夜爱 | 精品国产99久久久久久宅男i | 神马午夜嘿嘿 | 精产国产伦理一二三区 | 国产精品久久久久久久午夜 | 手机av在线免费观看 | 国产91清纯白嫩初高中在线观看 | 色偷偷噜噜噜亚洲男人 | 超碰成人福利 | 深夜福利免费 | 亚洲福利一区 | xxxx色| 免费黄色小视频 | 成人在线网| 色综合小说 | 九色在线播放 | 欧美精品成人 | 中文字幕亚洲欧美 | 免费国产一区二区 | 日韩高清精品免费观看 | 亚洲精品久久久久久久久 | 极品新婚夜少妇真紧 | 性做久久久 | 国产一区二区三区在线视频 | www.久草| 日韩网站在线观看 |