2778|3

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求使用51单片机模拟SPI与JN5121通信的例子 [复制链接]

单片机最好是AT89S52,现在此谢过。

最新回复

学习了  详情 回复 发表于 2010-4-15 10:45
点赞 关注

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
IO口模拟SPI 跟595通信

  1. /*******************************************************************/
  2. /*                                                                                                                                  */
  3. /* 74HC595 走马灯演示程序 */
  4. /*                                                                                                                                  */
  5. /* 邮箱: gguoqing@willar.com */
  6. /* 网站: http://www.willar.com                                      */
  7. /* 作者: gguoqing                                                                      */
  8. /* 时间: 2006/02/26                                                   */
  9. /*                                                                                                                                 */
  10. /*【版权】COPYRIGHT(C)伟纳电子 www.willar.com ALL RIGHTS RESERVED                    */
  11. /*【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!         */
  12. /*                                                                                 */
  13. /******************************************************************/
  14.    
  15. #include         //51芯片管脚定义头文件
  16. #include        //内部包含延时函数 _nop_();
  17. #define uchar unsigned char
  18. #define uint  unsigned int
  19. uchar code DAT[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  20. sbit  SDATA_595=P1^0;         //串行数据输入
  21. sbit  SCLK_595 =P1^1;          //移位时钟脉冲
  22. sbit  RCK_595  =P1^2;           //输出锁存器控制脉冲
  23. uchar temp;            
  24. /********************************************************/
  25. /*                                                                                                            */
  26. /* 延时子程序                                                                                            */
  27. /*                                                                                                            */
  28. /********************************************************/
  29. void delay(int ms)
  30. {                           
  31.    int k;
  32.    while(ms--)
  33.    {
  34.      for(k=0; k<250; k++)
  35.      {
  36.       _nop_();
  37.       _nop_();
  38.       _nop_();
  39.       _nop_();
  40.      }
  41.    }
  42. }
  43. /********************************************************/
  44. /*                                                                                                            */
  45. /*将显示数据送入74HC595内部移位寄存器                                                   */
  46. /*                                                                                                            */
  47. /********************************************************/
  48. void WR_595(void)
  49. {
  50.      uchar j;
  51.       for (j=0;j<8;j++)
  52.      {
  53.       temp=temp<<1;
  54.       SDATA_595=CY;
  55.       SCLK_595=1;                     //上升沿发生移位
  56.        _nop_();
  57.        _nop_();
  58.       SCLK_595=0;
  59.      }        
  60. }
  61. /********************************************************/
  62. /*                                                                                                            */
  63. /*将移位寄存器内的数据锁存到输出寄存器并显示                                             */
  64. /*                                                                                                            */
  65. /********************************************************/
  66. void OUT_595(void)
  67. {
  68.     RCK_595=0;
  69.     _nop_();
  70.     _nop_();
  71.     RCK_595=1;                       //上升沿将数据送到输出锁存器
  72.     _nop_();
  73.     _nop_();
  74.     _nop_();
  75.     RCK_595=0;
  76. }
  77. /********************************************************/
  78. *                                                                                                              */
  79. *  主程序                                                                                                   */
  80. *                                                                                                              */
  81. *********************************************************/
  82. main()
  83. {  
  84.    SCLK_595=0;
  85.    RCK_595=1;
  86.    
  87.    while(1)            
  88.     {
  89.       uchar i;
  90.       for (i=0; i<8; i++)
  91.        {
  92.         temp=DAT[i];         //取显示数据
  93.         WR_595();
  94.         OUT_595();
  95.         delay(100);
  96.        }
  97.     }
  98. }              
复制代码
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼主先找下  AT89S52的IO模拟SPI的程序吧,
网上有很多,

然后参考JN5121 的SPI通讯的程序,对照下,进行修改,


另外也可以找你买的开发板的厂家 索要相关参考代码。
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
学习了
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表