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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3940|回復: 1
打印 上一主題 下一主題
收起左側

用單片機自帶EEPROM保存字模數據 附源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:404797 發表于 2019-4-4 13:47 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    有些單片機,如STC89C52RC等,帶有EEPROM,一般的同學很少用到這些存儲器,有點浪費資源。在我們的程序設計中,有時要在沒有字庫的設備上顯示內容,這時不得不在內存中開辟空間存儲字模,而且一般的CPU數據段很小,只有128個字節,因此稍多的數據就要存放在CODE段,使本來就不大的內存更顯緊張,這時如果我們把字模存放在EEPROM中,一來可以程序變得易讀,設計方便不少,二來可以節省空間,能編更長的程序,有不少好處。
    本人就編一個程序,把簡單的6X8字符字模放在EEPROM的前二個扇區內,使用的時候讀出來用,使用程序精簡不少,供大家參考。
    1、字模存入EEPROM的程序:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit LED8x8_ser=P0^3;
  5. sbit LED8x8_sck=P0^4;
  6. sbit LED8x8_rck=P0^5;
  7. void delay(int ii){int i,j;for(i=0;i<ii;i++);}
  8. #include "EEPROM.h"
  9. ......
  10. //==============================================================
  11. void LED8X8_SendByte(uchar cc)
  12. {uchar c=cc;int i;
  13.   for(i=0;i<8;i++){if(c&0x01)LED8x8_ser=1;else LED8x8_ser=0;c>>=1;LED8x8_sck=0;LED8x8_sck=1;}
  14.     LED8x8_rck=0;LED8x8_rck=1;
  15. }
  16. //==============================================================
  17. void LED8X8_PutChar(char ci)
  18. {int i,j;
  19.   for(i=0;i<100;i++){for(j=0;j<6;j++){LED8X8_SendByte(F6x8[ci-0x20][j]);delay(50);LED8X8_SendByte(0);P0=j;}}
  20. }
  21. //=============================================================
  22. void LED8X8_PutStr(char *str)
  23. {int i=0;
  24. while(str[i]!=0){LED8X8_PutChar(str[i]);i++;}
  25. }
  26. //=============================================================
  27. void Char6X8_Dat_Init()
  28. {char i,j,k;
  29. for(k=0;k<2;k++)
  30.   {cc(0x2000+k*0x200);
  31.    for(i=0;i<85;i++)
  32.       {for(j=0;j<6;j++){xcx(0x2000+k*0x200+i*6+j,F6x8[k*85+i][j]);}
  33.     }
  34.    }
  35. }
  36. //==========================================================
  37. main()
  38. {Char6X8_Dat_Init(); while(1)LED8X8_PutStr("Char6X8_Dat_Init Finish!");
  39. }
復制代碼


    2、從EEPROM讀取字模顯示的程序
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit LED8x8_ser=P0^3;
  5. sbit LED8x8_sck=P0^4;
  6. sbit LED8x8_rck=P0^5;
  7. void delay(int ii){int i,j;for(i=0;i<ii;i++);}
  8. #include "EEPROM.h"
  9. void LED8X8_SendByte(uchar cc)
  10. {uchar c=cc;int i;
  11.   for(i=0;i<8;i++){if(c&0x01)LED8x8_ser=1;else LED8x8_ser=0;c>>=1;LED8x8_sck=0;LED8x8_sck=1;}
  12.     LED8x8_rck=0;LED8x8_rck=1;
  13. }
  14. //=============================================================
  15. void LED8X8_PutChar_EPROM(int char_in)
  16. {int i=0,j=0;unsigned char buffer[7];
  17.   char_in-=0x20;
  18.   if(char_in<=84)for(i=0;i<6;i++)buffer[i]=dcx(0x2000+char_in*6+i);
  19.   else{for(i=0;i<6;i++)buffer[i]=dcx(0x2200+(char_in-85)*6+i);}
  20.   for(i=0;i<100;i++)
  21.      {for(j=0;j<6;j++)
  22.         {LED8X8_SendByte(buffer[j]);delay(50);
  23.          LED8X8_SendByte(0);P0=j;
  24.          }
  25.      }
  26. }
  27. //=============================================================
  28. void LED8X8_PutStr_EPROM(char *str)
  29. {int i=0;
  30. while(str[i]!=0){LED8X8_PutChar_EPROM(str[i]);i++;}
  31. }
  32. //===================================================================================
  33. main()
  34. {LED8X8_PutStr_EPROM("XYZxyz");
  35. }
復制代碼

由于帶EEPROM的CPU不好仿真,本文沒法仿真給同學們觀看效果。

完全程序在附件中:
P9C.zip (38.56 KB, 下載次數: 44)

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:796531 發表于 2020-11-2 10:36 | 只看該作者
正好遇到這個問題,學習一下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本网站在线看 | 欧美jizzhd精品欧美巨大免费 | h视频在线观看免费 | 久久99视频 | 日本粉嫩一区二区三区视频 | 啪啪免费| 97精品视频在线观看 | 一区二区三区在线电影 | 午夜天堂 | 国产一区二区精品自拍 | 欧美激情精品久久久久久免费 | 国产美女在线观看 | av毛片在线| 99资源| 超碰一区二区 | 亚洲综合色站 | 国产精品久久久久无码av | 午夜精品久久久久久久久久久久久 | 欧美日韩在线观看视频 | 亚洲福利一区 | 国产亚洲精品精品国产亚洲综合 | 男人天堂网址 | 亚洲一区二区视频 | 国产午夜高清 | 亚洲精品v日韩精品 | 国产偷录视频叫床高潮对白 | 国产成人一区二区三区精 | www亚洲精品 | 欧美一二三 | 免费一级欧美在线观看视频 | 成人不卡视频 | 国产精品国产三级国产aⅴ无密码 | 天天干天天爽 | 国产精品久久久久一区二区三区 | 亚洲小视频在线观看 | 欧美激情一区二区三级高清视频 | 国产精品久久久久一区二区三区 | 日本中文在线视频 | 精品9999| 国产www成人 | 国产高清精品一区二区三区 |