历史上的今天

今天是:2024年09月16日(星期一)

2020年09月16日 | AT90S8515单片机SPI驱动74LS595源程序

发布者:muhaoying2017 来源: 51hei关键字:AT90S8515  单片机  SPI驱动  74LS595 手机看文章 扫描二维码
随时随地手机看文章

AT90S8515使用SPI驱动74LS595。
我这里使用了SS口线PB.4,作为74LS595的锁存信号,关键是把PB.4设置为输出。
74LS595驱动发光管显示加1计数,我用SPI最高速度,所以显示16位计数高八位,低八位太快,看不清楚。

5d6034a85edf8db1b0806a680923dd54564e740b.jpg

单片机源程序如下:

//ICC-AVR application builder : 2020/3/30 22:23:31

// Target : 8515

// Crystal: 8.0000Mhz


#include

#include


#define SS_ON PORTB |= BIT(4);     //E置1

#define SS_OFF PORTB &= ~BIT(4);   //E置0


void port_init(void)

{

PORTA = 0x00;

DDRA  = 0x00;

DDRB  = 0xff;

PORTB = 0xFF; //复用SS脚的关键是PB.4设为输出

PORTC = 0x00;

DDRC  = 0x00;

PORTD = 0x00;

DDRD  = 0xFF;

}


//SPI initialize

// clock rate: 62500hz

void spi_init(void)

{

SPCR = 0xFC; //setup SPI

}


int spi_d =0X00;          //太快,用高8位


#pragma interrupt_handler spi_stc_isr:iv_SPI_STC

void spi_stc_isr(void)

{

              //byte in SPDR has been sent/received

     SS_OFF;   //PB.4=0

         SS_ON;    //PB.4=1

     spi_d = spi_d+1;

         SPDR = spi_d>>8;

}


//call this routine to initialize all peripherals

void init_devices(void)

{

//stop errant interrupts until set up

CLI(); //disable all interrupts

port_init();

spi_init();


MCUCR = 0x00;

GIMSK = 0x00;

TIMSK = 0x00;

SEI(); //re-enable interrupts

//all peripherals are now initialized

}


void main(void)

{

    init_devices();         //初始化系统

   

SPDR=0X00;

while(1)

    {}

}


关键字:AT90S8515  单片机  SPI驱动  74LS595 引用地址:AT90S8515单片机SPI驱动74LS595源程序

上一篇:avr单片机秒表Proteus仿真程序 tm1637数码管显示
下一篇:avr mega8 PWM 超声发射试验程序

推荐阅读

一、初始化过程/***********************************************************************利用TIM4定时器作为计时,每个0.1秒处理一次数据计算周期的公式为: psc/72*period/1000000 (单位为秒)************************************************************************/void TIM2_Config(void){ TIM_TimeBaseInitTypeDef TIM_timeBaseStuc...
近日消息,据外媒报道,在一份声明中,荷兰定位技术巨头TomTom透露了与Hella Aglaia的合作伙伴关系,Hella Aglaia是一家德国汽车行业计算机视觉软件供应商,该公司将使用Autostream访问TomTom的高清地图(HD Map)以实现“精确定位”,并将其相机数据分享回TomTom的云实时更新其高清地图。实际上,TomTom正在众包相机数据,以提供其实时地图更新。具体...
据外媒报道,梅赛德斯奔驰表示:“总体来看,标配固态电池的车辆要到2025年左右才会出现。但是梅赛德斯奔驰速度更快:新的eCitaro G是全世界范围内同类车型中首款配备固态电池的量产城市巴士。”奔驰 eCitaro G(图片来源:梅赛德斯奔驰)外界普遍没有想到固态电池技术能够在短期内实现量产水平。此前丰田曾表示,要等到2025年时,该公司才会开始生产固...
0 问题由来以前也用过C51写过简单的裸机程序,但是并没有认真的考虑过其与Linux环境下一般C语言程序的不同,只是想当然地认为C是跨平台的语言,并没有考虑过C语言的标准问题。今天在编译GCC交叉编译器时,遇到了种种问题,不得不重新考虑C语言的实现标准,否则很难清晰的了解交叉编译器的编译过程。1 C编译器的两种实现要求C语言标准的正式文档中明确提...

史海拾趣

问答坊 | AI 解惑

【教你一招】做好采购的N种技巧和途径

最近网站上有很多朋友问\"如何去采购,怎样才能做好采购\",希望我的这篇文章会对大家有所帮助! 采购分为很多类,最直接的两大类就是在终端运营商作采购(直接采购加工或生产某种产品的零件)和在贸易公司作采购.而我们这行主要是在贸易公司作采购!我 ...…

查看全部问答∨

异步电动机直接转矩控制分析与展望(zz)

一、引言 电动机调速是各行各业中电动机应用系统的必需环节。直流电动机因其磁链与转矩电流各自独立,不存在耦合关系,能够获得很好的调速范围和调速精度,静、动态特性均比较好而获得广泛应用。 交流(异步)电动机结构简单却因其磁链与电 ...…

查看全部问答∨

请大家推荐一款内置彩信模块的GPRS模块啊,TR800如何啊?

大家好,最近做一个GPRS彩信猫相关的课题,开始老板让用simcom的模块,说便宜,可是我要自己实现彩信协议,好晕啊。公司现在让我选择一款内置彩信模块的GPRS模块,这样我就可以不用自己实现彩信协议了,哪位大虾用过这方面应用给我推荐一款好吗?现 ...…

查看全部问答∨

使用max3232 双工时,收发出现干扰现象!望达人指点!!

具体现象是这样,当我从max3232向PC机发数据时,此时如果从上位机PC 发数据到max3232,那么刚才从max3232发送到PC的数据就会被干扰。     用示波器观察过了,确实有一个字节的数据失真了,后面的字节没错。而且捕捉到的这个失真的数据 ...…

查看全部问答∨

4X4键盘矩阵代码分享

module key(   input         clk,   input         rst,   input   [3:0] row,            &nbs ...…

查看全部问答∨

STM指令不是一般的笨,

读个IO的值,要好几个指令才能完成. 而且,连位变量都没有.真的是超级难受啊.…

查看全部问答∨

LPC1114/LPC11U14和LPC1343对比学习(五)UART

终于把支持3种芯片的板子焊接完成了,累死我了,可以继续学习下面的内容了。。。 开发板贴:https://bbs.eeworld.com.cn/viewthread.php?tid=299669&page=1&extra=page%3D1   LPC1114/LPC1343串口特点:    16字节收发 ...…

查看全部问答∨

这个电路为啥振荡不起来

这个电路为啥在CPLD上振荡不起来哈,请高手指点!~…

查看全部问答∨

谁能说说这个像吉他拨片一样的东西具体有些什么作用?

看图片,拆解工具,具体怎么用?都有些什么作用?能弯曲撬么? …

查看全部问答∨

dsp28335adc的外接电阻问题

adc必须外接一个22k的电阻,这有什么用呢?…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved