我是靠谱客的博主 沉默哈密瓜,最近开发中收集的这篇文章主要介绍74HC595级联[转载],觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    <div id="article_content" class="article_content clearfix">
    <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-6e43165c0a.css">
            <div id="content_views" class="htmledit_views">
                <p>1.硬件电路:</p> 

 

2.软件实现:下面的图是来自台湾一位老师佑來認真教Arduino教學讲解

 

注意:高位先进入。

解释:每次先把大平台放下(ST输出低电平),把活塞拉回,等待数据放上(SH输出低电平)

数据1或者0通过DS输出。放数据后,再把活塞推出去(SH输出高电平)。连续8次就可以把数据完整的放

到大平台(ST)上。最后把大平台上抬,8位数据就同时输出去了。(ST输出高电平)。

 

级联时数据有些不一样,需要注意先入的数据在后一级。需要循环16次,最后ST大平台输出。

 

3.驱动代码


 
 
  1. #DEFINE P_SCK 06H,5
  2. #DEFINE P_RCK 06H,4
  3. #DEFINE P_SI 06H,1
  4. R_ACC1 EQU 0X15
  5. R _ACC2 EQU 0X16
  6. R_ACC3 EQU 0X17
  7. R _ACC_1 EQU 0X18
  8. R _595_DATA1 EQU 0X19 ;数据1
  9. R _595_DATA2 EQU 0X1A ;数据2
  10. ; **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ***
  11. ;74HC595输出SEG--级联
  12. ;通过ACC传递数据
  13. ;*** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
  14. SEND _595:
  15. ;
  16. MOVIA 2
  17. MOVAR R_ACC3 ;2个字节
  18. ;
  19. MOVIA R_595_DATA1 ;BUF1的缓存器地址
  20. MOVAR FSR ;R4
  21. SEND_595_S:
  22. MOVR INDF,0
  23. MOVAR R_ACC1 ;将要发送的一个字节数据
  24. ;
  25. MOVIA D'8'
  26. MOVAR R_ACC2 ;将要发送的一个字节的位计数器
  27. ;
  28. BCR P_SCK ;拉低
  29. ;
  30. LCALL DELAY_US ;延迟一下
  31. ;
  32. SEND_595_LOOP:
  33. BTRSS R_ACC1,7 ;//先传输高位,通过与运算判断第八是否为1
  34. BCR P_SI
  35. BTRSC R_ACC1,7
  36. BSR P_SI
  37. ;
  38. BCR P_SCK ;/*** 步骤2:SHCP每产生一个上升沿,当前的bit就被送入移位寄存器 ***/
  39. ;
  40. LGOTO $+1
  41. LGOTO $+1
  42. LGOTO $+1
  43. LGOTO $+1
  44. BSR P_SCK
  45. ;
  46. RLR R_ACC1,1 ;左移一位
  47. ;
  48. DECRSZ R_ACC2,1 ;
  49. LGOTO SEND_595_LOOP ;一个字节未完,继续发送
  50. ;
  51. LCALL DELAY_US
  52. ;
  53. INCR FSR,1
  54. DECRSZ R_ACC3,1 ;下一个数据
  55. LGOTO SEND_595_S ;一帧数据未完,继续发送
  56. ;
  57. BCR P_RCK ;74HC595输出锁存 使能
  58. LCALL DELAY_US ;步骤3:STCP产生一个上升沿,移位寄存器的数据移入存储寄存器
  59. BSR P_RCK ;再将STCP拉高,STCP即可产生一个上升沿
  60. LCALL DELAY_US
  61. SEND_595_RET:
  62. RET
  63. ;=========================================================================
  64. DELAY_US:
  65. MOVIA 100
  66. MOVAR R_ACC_1
  67. DELAY_US_1:
  68. DECRSZ R_ACC_1,1
  69. LGOTO DELAY_US_1
  70. RET

 

原文链接:https://blog.csdn.net/u013830926/article/details/109483858

最后

以上就是沉默哈密瓜为你收集整理的74HC595级联[转载]的全部内容,希望文章能够帮你解决74HC595级联[转载]所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部