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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3863|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

中穎單片機(jī)SH88F516讀寫SPI總線EEPROM 93C56的源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:246796 發(fā)表于 2017-11-18 04:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
代碼工程與芯片pdf資料:



實(shí)現(xiàn)本功能的中穎單片機(jī)源碼如下:
  1. /*************************************************************************************************
  2. 說明;SPI使用EEPROM存儲芯片93C56A,256X8bit=2K的存儲空間.在使用SPI通訊時通常使用端口進(jìn)行仿真,為了符合
  3. 使用需要,本程序同樣使用了端口進(jìn)行仿真,當(dāng)然也可以直接使用88F516自帶的SPI總線進(jìn)行通訊.
  4. 串口1用于觀測93C56A的讀寫數(shù)據(jù)正確與否?寫入成功接收到數(shù)據(jù)R,寫入失敗接收到數(shù)據(jù)E,讀取成功接收到數(shù)據(jù)r,
  5. 讀取失敗接收到數(shù)據(jù)e.
  6. 要求:打開撥碼開關(guān)J6的5,6,7,8,打開撥碼開關(guān)J4
  7. *************************************************************************************************/

  8. #include <sh88f516.h>
  9. #include <INTRINS.H>        //for use 51 instruction

  10. sbit cs_93=P1^4;
  11. sbit di_93=P1^5;
  12. sbit do_93=P1^6;
  13. sbit sk_93=P1^7;

  14. void UART1SendChar(unsigned char value)
  15. {
  16.         IEN1 &= 0xFB;               //ES1=0;               
  17.         SBUF1=value;                            //寫SBUF1,激活發(fā)送
  18.         while(TI1==0);                          //等待轉(zhuǎn)換結(jié)束
  19.         TI1=0;                                                //清除發(fā)送標(biāo)志位
  20.         IEN1 = 0x04;                //ES1=1;               
  21. }


  22. /*-----------------------------------------------------
  23. SPI93cXX系列函數(shù)調(diào)用
  24. void high56(void)--------發(fā)送1
  25. void low56(void) --------發(fā)送0
  26. void wd56(unsigned char dd)        --------寫8位數(shù)據(jù),輸入?yún)?shù)address or data
  27. unsigned char rd56(void) --------讀8位數(shù)據(jù),返回值data
  28. -----------------------------------------------------*/
  29. void high56(void)
  30. {
  31.         di_93=1;
  32.         sk_93=1; _nop_();
  33.         sk_93=0; _nop_();
  34. }
  35. void low56(void)
  36. {
  37.         di_93=0;
  38.         sk_93=1;_nop_();
  39.         sk_93=0;_nop_();
  40. }
  41. void wd56(unsigned char dd)
  42. {
  43.         unsigned char i;
  44.         for (i=0;i<8;i++)
  45.         {
  46.                 if (dd>=0x80) high56();
  47.                 else low56();
  48.                 dd=dd<<1;
  49.         }
  50. }
  51. unsigned char rd56(void)
  52. {
  53.         unsigned char i,dd=0;
  54.         do_93=1;
  55.         for (i=0;i<8;i++)
  56.         {
  57.                 dd<<=1;
  58.                 sk_93=1;_nop_();
  59.                 sk_93=0;_nop_();
  60.                 if (do_93) dd|=1;
  61.         }
  62.         return(dd);
  63. }

  64. /*-----------------------------------------------------
  65. SPI93c56系列函數(shù)調(diào)用
  66. void ewen56(void)-----------寫使能
  67. unsigned char read93c56_word(unsigned char address) ------------SPI讀函數(shù),輸入?yún)?shù)為address,返回dat
  68. bit write93c56_word(unsigned char address,unsigned char dat)----SPI寫函數(shù),輸入?yún)?shù)為address,dat,寫入成功返回0,失敗返回1
  69. -----------------------------------------------------*/
  70. void ewen56(void)
  71. {
  72.         _nop_();
  73.         cs_93=1;
  74.         high56();
  75.         low56();
  76.         low56();
  77.         //low56();
  78.         high56();//add
  79.         wd56(0xc0);
  80.         //wd56(0x00);
  81.         cs_93=0;
  82. }

  83. unsigned char read93c56_word(unsigned char address)
  84. {
  85.         unsigned char dat;
  86.         cs_93=sk_93=0;
  87.         cs_93=1;

  88.         high56();                        //1 --start
  89.         high56();                        //1       
  90.         low56();                        //0        --10 read
  91.         low56();                        //X        --A8,
  92.         wd56(address);                //A7--A0
  93.         dat=rd56();                        //data

  94.         cs_93=0;
  95.         return(dat);
  96. }

  97. bit write93c56_word(unsigned char address,unsigned char dat)
  98. {
  99.         unsigned char e;
  100.         unsigned char temp=address;
  101.         e=0;
  102.         while (e<3)
  103.         {
  104.                 cs_93=sk_93=0;
  105.                 cs_93=1;
  106.                 ewen56();
  107.                 _nop_();
  108.                 cs_93=1;
  109.                 _nop_();

  110.                 high56();                  //1 --start
  111.                 low56();                  //0       
  112.                 high56();                  //1        --01 write
  113.                 low56();                  //X        --A8,
  114.                 wd56(address);          //A7--A0
  115.                 wd56(dat);                  //data

  116.                 cs_93=0;
  117.                 _nop_();
  118.                 cs_93=1;

  119.                 do_93=1;
  120.                 while (1)
  121.                 {
  122.                         if (do_93==1) break;
  123.                 }
  124.                 cs_93=0;
  125.                 if (read93c56_word(temp)==dat)
  126.                 {
  127.                         return(0);
  128.                 }
  129.                 e++;
  130.         }
  131.         return(1);
  132. }



  133. main()
  134. {
  135.     unsigned char i;

  136.         CLKCON = 0x60;                   //f=osc/12

  137.         SCON1 = 0x50;                    //工作方式選擇,此處為工作方式1
  138.         SBRT1 = 0xFF;                   //波特率設(shè)置.工作在方式1時,BAUDRATE=(1/16)*Fsys/(32768-SBRT[1:0])   Fsys=16M
  139.         SBRT0 = 0xF7;                   //Fsys=16M/12

  140.         IEN1 = 0x04;                       
  141.         EA = 1;  

  142.         for(i=0;i<200;i++)
  143.         {
  144. ……………………

  145. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼



壓縮包里面包含有中穎單片機(jī)sh88f516常用功能的源碼,中文注釋都很詳細(xì)
下載地址:http://www.zg4o1577.cn/bbs/dpj-98300-1.html



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

使用道具 舉報

沙發(fā)
ID:149075 發(fā)表于 2018-7-26 09:30 | 只看該作者
已學(xué)習(xí),再接再厲!加油
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日一区二区 | 欧美视频在线播放 | 午夜精品一区二区三区在线视 | 欧美国产91| 人人九九 | 亚洲欧美一区二区三区在线 | www.97zyz.com| 精品一区在线免费观看 | 91最新在线视频 | 久久里面有精品 | 欧美三区在线观看 | 亚洲 成人 在线 | 99精品国产一区二区三区 | 日韩乱码一二三 | 久久久久一区 | 日韩在线观看一区 | www.一区二区三区 | 丁香色婷婷| 亚洲精品电影网在线观看 | 视频1区2区 | 欧美成人一区二免费视频软件 | 欧美性视频在线播放 | 亚洲精品视频在线观看免费 | 精品国产三级 | 99re6热在线精品视频播放 | 亚洲欧美视频在线观看 | 一区二区三区在线免费看 | 亚洲69p | 久久精品视频91 | 日韩欧美一区二区三区免费观看 | 亚洲国产成人久久综合一区,久久久国产99 | 国产精品视频久久久久 | 久久人爽爽人爽爽 | 亚洲精品丝袜日韩 | 国产精品日韩一区 | 日本不卡一区二区三区在线观看 | av网站在线播放 | 精品免费国产视频 | 鲁大师一区影视 | 免费黄色在线 | 日韩免费一区二区 |