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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3834|回復: 1
收起左側

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

[復制鏈接]
ID:246796 發表于 2017-11-18 04:57 | 顯示全部樓層 |閱讀模式
代碼工程與芯片pdf資料:
0.png


實現本功能的中穎單片機源碼如下:
  1. /*************************************************************************************************
  2. 說明;SPI使用EEPROM存儲芯片93C56A,256X8bit=2K的存儲空間.在使用SPI通訊時通常使用端口進行仿真,為了符合
  3. 使用需要,本程序同樣使用了端口進行仿真,當然也可以直接使用88F516自帶的SPI總線進行通訊.
  4. 串口1用于觀測93C56A的讀寫數據正確與否?寫入成功接收到數據R,寫入失敗接收到數據E,讀取成功接收到數據r,
  5. 讀取失敗接收到數據e.
  6. 要求:打開撥碼開關J6的5,6,7,8,打開撥碼開關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,激活發送
  18.         while(TI1==0);                          //等待轉換結束
  19.         TI1=0;                                                //清除發送標志位
  20.         IEN1 = 0x04;                //ES1=1;               
  21. }


  22. /*-----------------------------------------------------
  23. SPI93cXX系列函數調用
  24. void high56(void)--------發送1
  25. void low56(void) --------發送0
  26. void wd56(unsigned char dd)        --------寫8位數據,輸入參數address or data
  27. unsigned char rd56(void) --------讀8位數據,返回值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系列函數調用
  66. void ewen56(void)-----------寫使能
  67. unsigned char read93c56_word(unsigned char address) ------------SPI讀函數,輸入參數為address,返回dat
  68. bit write93c56_word(unsigned char address,unsigned char dat)----SPI寫函數,輸入參數為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;                   //波特率設置.工作在方式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黑下載附件…………
復制代碼



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



回復

使用道具 舉報

ID:149075 發表于 2018-7-26 09:30 | 顯示全部樓層
已學習,再接再厲!加油
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美影院 | 久热精品在线播放 | 在线三级网址 | 美女爽到呻吟久久久久 | 国产福利91精品一区二区三区 | 色偷偷噜噜噜亚洲男人 | 免费网站国产 | 69堂永久69tangcom | 精品久久久久久亚洲综合网 | 欧美一级黄色片免费观看 | 久久精品黄色 | 精品国产一区二区三区久久久蜜月 | 黄色中文字幕 | 成人高潮片免费视频欧美 | 欧美国产精品 | 一级欧美 | 911精品美国片911久久久 | 欧美中文一区 | 久久中文字幕一区 | 成人1区| 伊人久久综合 | 亚洲a在线观看 | 中文字幕亚洲欧美日韩在线不卡 | 久久久久久久一区二区 | 国产在线中文字幕 | 久久一区二区三区免费 | 青青草视频网站 | 日韩免费成人av | 一级黄a视频 | 6996成人影院网在线播放 | 日韩午夜电影在线观看 | 四虎国产| 欧美日韩在线一区二区三区 | 黄色免费在线观看网址 | 97国产成人 | 91精品国产综合久久香蕉麻豆 | 欧美一级黄色片 | 青青久久av北条麻妃海外网 | 国产一区二区三区精品久久久 | 国产99久久精品一区二区300 | 国产www在线 |