AT90S8515使用SPI驱动74LS595。
我这里使用了SS口线PB.4,作为74LS595的锁存信号,关键是把PB.4设置为输出。
74LS595驱动发光管显示加1计数,我用SPI最高速度,所以显示16位计数高八位,低八位太快,看不清楚。
单片机源程序如下:
//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源程序
推荐阅读最新更新时间:2024-11-09 16:36
7课:单片机的特殊功能寄存器
通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什么,这些个零碎的东西怎么连在一起的,让我们来对单片机内部的寄存器作一个完整的功能分析吧! 下图中我们能看出,在51单片机内部有一个CPU用来运算、控制,有四个并行I/O口,分别是P0、P1、P2、P3,有ROM,用来存放程序,有RAM,用来存放中间结果,此外还有定时/计数器,串行I/O口,中断系统,以及一个内部的时钟电路。在一个51单片机的内部包含了这么多的东西。 对上面的图进行进一步的分析,我们已知,对并行I/O口的读写只要将数据送入到对应I/O口的锁存器就能了,那么对于定时/计数器,串行I/O口等怎么用
[单片机]
采用二维模糊控制器和C8051单片机实现室内自然采光系统的设计
1、 引言 从远古的篝火、油灯到蜡烛、白炽灯,再到今天千家万户的荧光灯,人类已经基本适应了人工光源的室内照明环境。但是由于千万年来的环境影响,自然光仍然是人类最习惯、感觉最舒适的光源,自然采光一直受到建筑师和照明设计师的高度重视。当今社会建筑的节能环保需求更对自然采光照明提出了进一步的要求。《建筑采光设计标准》 中的国家技术经济政策指出: 建筑设计要充分利用天然光,创造良好的光环境。 对室内照明自然采光的研究具有重要的意义: (1) 资料表明,照明用电占整个商业建筑能耗的25 - 40% ,而自然采光在特定的情况下可以节省52% 的照明用电,大大节约了能源。 (2) 相关研究表明,人在自然光条件下工作,可以增加满意度和提高工作
[单片机]
STM32U575/585微控制器的超低功耗特点
引言 STM32U575/585 微控制器(MCU)基于具有 Arm TrustZone和 FPU 的高性能 Arm 32 位 Cortex‑M33CPU。这些 MCU 采用新型结构制造,得益于其高度灵活性和高级外设集,实现了一流的超低功耗性能STM32U575/585 器件可为应用实现极高的能效。 带有“Q”后缀的 STM32U575/585 器件(例如 STM32U5xxxxQ)支持在运行和低功耗模式下使用内部 SMPS,从而能够设计出非常高效的低功耗应用 通过集成 ART 加速器 8 KB 指令缓存,STM32U575/585 MCU 可在高达 160MHz 的频率下运行,实现 240 DMIPS 性能,同时保持极低
[单片机]
单片机中断子程序注意事项
跟我之前一样,对中断,定时器了解的不够透彻,被老师训了之后查资料搞实验后终于搞清楚了,下面说说我的看法:千万不要在中断函数中做多余的事!!!只能做最基本的操作,比如置标志位,让一个数加一等,与延时有关的操作千万不要做!你10ms进一次中断,在里面又扫描按键,又显示液晶,这里面花的时间远远地超过10ms,它肯定死在中断里出不来啊,因为你不关闭中断的话它一直10ms进去,最好在中断里设置几个标志位,进中断就让标志位置1,然后出中断,在主循环里判断标志位,如果标志位置1了,就清零标志位,然后做其他的动作。好好想一想,思路一定要清晰! 如果中断子程序进去就关闭中断使能位,就可以有延时等操作了,不用再担心频繁中断,导致死循环在中断子程序
[单片机]
基于51单片机的呼出异味气体检测仪设计方案
本设计由STC89C52单片机电路+LCD1602液晶显示电路+MQ-2甲烷传感器模块电路+MQ-3酒精传感器模块电路+MQ-9 CO传感器电路+A/D采样PCF8591电路+蜂鸣器报警电路+LED指示灯电路+按键电路+蓝牙模块电路+电源电路组成。 1、LCD1602液晶实时显示当前的甲烷浓度、酒精浓度和CO浓度。 2、如果甲烷浓度或酒精浓度或CO浓度超过设定的阈值,则蜂鸣器报警,否则蜂鸣器不报警。 3、如果甲烷浓度超过设定的阈值,则红灯亮,否则红灯灭。 4、如果酒精浓度超过设定的阈值,则绿灯亮,否则绿灯灭。 5、如果甲CO浓度超过设定的阈值,则黄灯亮,否则黄灯灭。 6、可以通过按键设置煤气浓度、酒精浓度和CO浓度的阈值。
[单片机]
51单片机(二十六)—— 独立按键数码管显示
在这片文章中,我们对独立按键的使用进行进一步研究,用数码管来显示按键的状态。这个实验的主要代码如下所示。 main() { for(n=0;n 8;n++) //给showdata数组赋初值 showdata =0; KEY1=1; KEY2=1; KEY3=1; KEY4=1; KEY5=1; KEY6=1; KEY7=1; KEY8=1; init_T0(); for(;;) { if(KEY1==0) //按键KEY1按下 { delay1ms(10); //延时10ms去抖 if(KEY1==0) //再次判断按键KEY1按下 {
[单片机]
英飞凌32位微控制器AURIX™ TC4x丨英飞凌科技确认申报2024金辑奖
申请技术丨英飞凌32位微控制器AURIX™ TC4x 申报领域丨智能驾驶 独特优势: 1.性能提升:内核全锁步高达500MHz,支持高速硬件路由 2.集成并行处理单元:矢量DSP并行处理,多场景AI加速 3.支持硬件虚拟化:虚机机多应用集成,隔离互不干拢 4.功能安全: ISO26262-2018 ASIL-D 认证 5.信息安全: ISO21434认证,支持国密算法 6.丰富的软件生态:可信赖的全球和本地合作伙伴提供丰富可靠的工具链和软件解决方案 应用场景: 电动汽车,域控制器、区域控制器,智能驾驶系统,雷达系统,底盘,运动控制系统等 未来前景: AURIX™ TC4x随着今年下
[汽车电子]
L297A+L298N步进电机驱动板电路原理图PCB与单片机控制源程序
Altium Designer画的基于L297A+L298N芯片步进电机驱动模块的电路原理图和PCB图如下:(51hei附件中可下载工程文件) 驱动模块的实物图: 接上步进电机后的图片: L297是步进电机专用控制器,它能产生4相控制信号, 可用于计算机控制的两相双极和四相单相步进电机,能够用单四拍、双四拍、四相八拍方式 控制步进电机。芯片内的PWM 斩波器电路可开关模式下调节步进电机绕组中的电流。 L298N 是一种双H桥电机驱动芯片,其中每个H桥可以提供2A的电流,功率部分的供电电压范围是2.5-48v,逻辑部分5v供电,接受5vTTL电平。一般情况下,功率部分的电压应大于6V否则芯片可能不能正常工作。 步进电机的
[单片机]