您的位置 首页 IOT

AVR单片机与74HC595的SPI显现程序

使用SPI接口控制74HC595LED显示SPI接口的全称是SerialPeripheralInterface,意为串行外围接口。SPI接口主要应用在EEPROM,FLASH,

运用SPI接口操控74HC595 LED显现

SPI接口的全称是”Serial Peripheral Interface”,意为串行外围接口。SPI接口首要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。

SPI接口是在CPU和外围低速器材之间进行同步串行数据传输,在主器材的移位脉冲下,数据按位传输,为全双工通讯,数据传输速度整体来说比I2C总线要快,速度可到达几Mbps。

SPI接口是以主从方法作业的,这种形式一般有一个主器材和一个或多个从器材,其接口包含以下四种信号:

(1)MOSI – 主器材数据输出,从器材数据输入
(2)MISO – 主器材数据输入,从器材数据输出
(3)SCLK – 时钟信号,由主器材发生
(4)/SS – 从器材使能信号,由主器材操控

在BASCOM中,供给了软件完成的SPI接口的句子,相同BASCOM也有支撑硬件SPI的句子。
下面将运用三个比如来阐明如安在BASCOM中运用SPI接口。

在介绍比如之前,咱们先了解一下硬件衔接图,衔接如图1所示。

图中共运用三片74HC595芯片,别离操控三个数码管,三片74HC595经过Q7’引脚进行级联。榜首片74HC595的DS引脚衔接到了ATmega88的MOSI引脚,而SH_CP引脚衔接到了ATmega88的SCK引脚,ST_CP引脚衔接到了ATmega88的PB1引脚。

一、运用硬件SPI接口操控74HC595 ------------------------------------------------------------------------运用芯片:  ATmega88,晶振:      内部8MHz晶振email:     support@avrbascom.com软件版别:  Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------$regfile = "m88def.dat"                     芯片为ATmega88 $crystal = 8000000                          8M晶振频率 $hwstack = 32                               设置仓库巨细 $swstack = 10$framesize = 40Dim I As ByteDim A(3) As ByteLatch Alias Portb.1Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes ,Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 0界说运用单片机自带的硬件SPI,SPI中止未使能,数据发送时,高位先发送。设为SPI主设备,时钟4分频 Spiinit                 SPI初始化Restore Segtab          获取要显现数据的内容 For I = 1 To 3Read A(i)Next ISpiout A(1) , 3         输出要显现的内容给74HC595,别离输出A(1),A(2),A(3)Latch = 1?              使能显现 Waitus 10Latch = 0 DoLoopEnd*******************************************************************************--------------------------专用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9二、运用软件SPI接口操控74HC595------------------------------------------------------------------------运用芯片: ATmega88,晶振:     内部8MHz晶振 email:    support@avrbascom.com软件版别: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"                  芯片为ATmega88 $crystal = 8000000                       8M晶振频率 $hwstack = 32                            设置仓库巨细 $swstack = 10$framesize = 40Const On = 1Const Off = 0Dim I As ByteDim A(3) As ByteLatch Alias Portb.1Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.5界说运用软件SPI,pb3作为数据输出口,pb5作为时钟引脚 Spiinit                 SPI初始化Restore Segtab          获取要显现数据的内容 For I = 1 To 3Read A(i)Next ISpiout A(1) ,3输出要显现的内容给74HC595,别离输出A(1),A(2),A(3)Latch = Off            使能显现 Waitus 10Latch = OnDoLoopEnd********************************************************************--------------------------专用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9三、运用软件SPI接口操控74HC595------------------------------------------------------------------------运用芯片: ATmega88,晶振:     内部8MHz晶振 email:    support@avrbascom.com软件版别: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"         芯片为ATmega88 $crystal = 8000000              8M晶振频率 $hwstack = 32                   设置仓库巨细 $swstack = 10$framesize = 40Const On = 1Const Off = 0Ledata Alias Portb.3            数据输出口 Ledclk Alias Portb.5            时钟输出口 Latch Alias Portb.1Dim I As ByteDim A(3) As ByteRestore Segtab                   获取要显现数据的内容 For I = 1 To 3Read A(i)Next IFor I = 3 To 1 Step -1Shiftout Ledata , Ledclk , A(i) , 1输出要显现的内容给74HC595Next ILatch = Off                      使能显现 Waitus 10Latch = OnDoLoopEnd********************************************************************--------------------------专用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/255341.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部