使用SPI接口的74HC595控制 8位数码管显示.doc_第1页
使用SPI接口的74HC595控制 8位数码管显示.doc_第2页
使用SPI接口的74HC595控制 8位数码管显示.doc_第3页
使用SPI接口的74HC595控制 8位数码管显示.doc_第4页
使用SPI接口的74HC595控制 8位数码管显示.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用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: 软件版本:Bascom-AVRFullversion -$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分频 SpiinitSPI初始化 Restore Segtab获取要显示数据的内容 For I = 1 To 3Read A(i)Next ISpiout A(1) , 3 输出要显示的内容给74HC595,分别输出A(1),A(2),A(3)Latch = 1?使能显示 Waitus 10 Latch = 0 Do Loop End* -专用字形表- Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB7 0 1 2 3 4 5 6 7 8 9 二、使用软件SPI接口控制74HC595-使用芯片: ATmega88,晶振: 内部8MHz晶振 email:软件版本:Bascom-AVR Full version- $regfile = m88def.dat芯片为ATmega88 $crystal = 80000008M晶振频率 $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作为时钟引脚 SpiinitSPI初始化 Restore Segtab获取要显示数据的内容 For I = 1 To 3Read A(i)Next I Spiout A(1) ,3输出要显示的内容给74HC595,分别输出A(1),A(2),A(3) Latch = Off使能显示 Waitus 10Latch = On Do LoopEnd*-专用字形表- 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:软件版本:Bascom-AVR Full version- $regfile = m88def.dat芯片为ATmega88 $crystal = 80000008M晶振频率 $hwstack = 32设置堆栈大小 $swstack = 10$framesize = 40Const On = 1Const Off = 0Ledata Alias Portb.3数据输出口 Ledclk Alias Portb.5时钟输出口 Latch Alias Portb.1Dim I As Byte Dim A(3) As Byte Restore Segtab获取要显示数据的内容 For I = 1 To 3Read A(i)Next I For I = 3 To 1 Step -1Shiftout Ledata , Ledclk , A(i) , 1输出要显示的内容给74HC595Next I Latch = Off使能显示 Waitus 10Latch = On Do LoopEnd*-专用字形表- Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB7 0 1 2 3 4 5 6 7 8 9总结:以上是AVR单片机使用SPI接口控制74HC595的例子,这些例子经过简单的修改就可以应用到其它具有SPI即可的芯片上,如SPI接口的Flash存储芯片AT45DB系列、SPI接口的时钟芯片DS1302、SPI接口的AD或DA芯片等等。 对于AVR mega系列单片机一般都具有硬件SPI接口,建议客户使用硬件SPI接口,这样可以占用更少的硬件和软件资源。但软件实现SPI接口,也有一定的优势,如它使用的IO口不是固定的,可以根据需要来指定,它一次发送的数据可以不是8位,而是可以根据需要来指定。 Shiftout VS Spiout这两个语句都是SPI输出语句,与它们对应的分别是shiftin和spiinshiftout语句可以使用在硬件spi或软件spi接口,通过config语句来确定: Config Spi = Hard/softShiftout语句使用在软件spi接口。/*/ 74HC595/165驱动程序/ (165,595均为两片)/*unsigned int LED;unsigned int KEY_DATA;void Driver_595(unsigned char Bit,unsigned char State) if(State) LED|=(0x00001Bit); else LED&=(0x000018); set_bit(1,0); clr_bit(1,0); SPI_W_R(int)LED); set_bit(1,0); clr_bit(1,0);void Port_Init(void) DDRB=0xff;PORTB=0x00;/*void Driver_165(void) /Bite所取位015,State为改位的状态0,1 unsigned char a1; unsigned char a2; clr_bit(1,3); set_bit(1,3); a1=SPI_W_R(0x00); /74HC165输入使能 a2=SPI_W_R(0x00); /读出键值KEY_DATA=a1;KEY_DATA=8;KEY_DATA+=a2;return;/*void set_bit(unsigned char port,unsigned char n)/port为端口号分别用03表示AD,n该端口的引脚号07switch(port) case 0x00: PORTA|=(0x01n); break; case 0x01: PORTB|=(0x01n); break; case 0x02: PORTC|=(0x01n); break; case 0x03: PORTD|=(0x01n); break;/*OK*/*void clr_bit(unsigned char port,unsigned char n)/port为端口号分别用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论