查看: 329|回复: 1
打印 上一主题 下一主题

【BananaPI】老邓的模块-74HC5950

[复制链接] qrcode

27

主题

34

帖子

102

积分

注册会员

Rank: 2

积分
102
楼主
跳转到指定楼层
发表于 2015-8-4 07:11 AM | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    老邓店里有不少树莓派、香蕉派的扩展模块,大大加强了它们的可玩性。

    今天拿到了一个这样的模块,74HC5950,使用SPI方式驱动的可无限级联的模块。

    这个模块可适用于香蕉派M1、M1+、M2,也就是说各种香蕉派的版本都可以使用。

插上后是这个样子

近照


  

    使用三个口就能驱动了。当然还要包括VCC和GND。

    ST24    SPI0_CS0    PI10

    SH23    SPI0_CLK    PI11

    DS19   SPI0_MOSI    PI12


unit SR595;

{$mode objfpc}{$H+}

interface

  uses Classes, SysUtils, GPIO;

type

  TSR595 = class

  private

    FDS: TGPIO; //MOSI

    FSH: TGPIO; //CLK

    FST: TGPIO; //CS

  public

    constructor Create;

    destructor Destroy; override;

    procedure Write(B: Byte); overload;

    procedure Write(B: array of Byte; Len: Byte); overload;

    procedure Send;

end;

implementation

constructor TSR595.Create;

begin

  inherited Create;

  FDS:= TGPIO.Create(PI, 12);

  with FDS do

  begin

    Fun:= Fun1;

    Data:= True;

  end;

  FSH:= TGPIO.Create(PI, 11);

  with FSH do

  begin

    Fun:= Fun1;

    Pull:= PULL_UP;

    Data:= True;

  end;

  FST:= TGPIO.Create(PI, 10);

  with FST do

  begin

    Fun:= Fun1;

    Pull:= PULL_UP;

    Data:= True;

  end;

end;

destructor TSR595.Destroy;

begin

  FDS.Free;

  FSH.Free;

  FST.Free;

  inherited Destroy;

end;

procedure TSR595.Write(B: Byte); overload;

var I: Byte;

begin

  //FST.Data:= False;

  for I:= 0 to 7 do

  begin

    FSH.Data:= False;

    FDS.Data:= ((B and $80) > 0);

    B:= B shl 1;

    FSH.Data:= True;

  end;

  //FST.Data:= True;

end;

procedure TSR595.Write(B: array of Byte; Len: Byte); overload;

var I: Byte;

begin

  for I:= 0 to Len - 1 do Write(B[I]);

end;

procedure TSR595.Send;

begin

  FST.Data:= False;

  FST.Data:= True;

end;

end.

    程序基本就是这样的,用WiringPI调用也可以的。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

79

帖子

6

积分

新手上路

Rank: 1

积分
6
沙发
发表于 2015-8-4 09:05 AM | 只看该作者
感谢楼主分享,好人一生平安~
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表