当前位置:首页 > 单片机 > 单片机
[导读]数码管显示1-F。主程序:/******************************************************************************* *File: Main.c *功能: LED数码管显示0-F字符,同时控制4个LED显示对应的十六进制 *****************

数码管显示1-F。

主程序:

/*******************************************************************************
*File: Main.c
*功能: LED数码管显示0-F字符,同时控制4个LED显示对应的十六进制
*******************************************************************************/
#include "config.h"
#define HC595_CS 0x00000100 /*P0.8口为74HC595的片选*/
uint8 rcv_data;
/*******************************************************************************
*名称: DelayNS()
*功能: 长软件延时
*******************************************************************************/
void DelayNS(uint32 dly)
{ uint32 i;
for (;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*******************************************************************************
*名称: MSpiIni()
*功能: 初始化SPI接口,设置为主机
*******************************************************************************/
void MSpiIni(void)
{ S0PCCR=0x52; //设置SPI时钟分频
S0PCR=0x30; //设置SPI接口模式,MSTR=1,CPOL=1,CPHA=0,LSBF=0
}
/*******************************************************************************
*名称: MSendData()
*功能: 向SPI总线发送数据
*******************************************************************************/
uint8 MSendData(uint8 data)
{ IO0CLR=HC595_CS; //片选
S0PDR=data;
while(0==(S0PSR&0x80)); //等待SPIF置位,即等待数据发送完毕
IO0SET=HC595_CS;
return(S0PDR);
}
/*此表为0~F的字模*/
uint8 const DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
0x88,0x83,0xC6,0xA1,0x86,0x8E};
/*******************************************************************************
*名称: main()
*功能: 使用硬件SPI接口输出0~F的数据,控制LED显示
*******************************************************************************/

int main(void)
{
uint8 i;

PINSEL0=0x00005500; //设置SPI引脚连接
PINSEL1=0x00000000;

IO0DIR=HC595_CS;
MSpiIni(); //初始化SPI接口
while(1)
{ for (i=0;i<16;i++)
{rcv_data=MSendData(DISP_TAB[i]); //发送显示数据
DelayNS(50); //延时
}
}

}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。

关键字: 单片机 spi通信 DSP

用ADS1.2编辑的,注意添加target.c,IRQ.s,Startuo.s和mem.scf文件。主程序:/*******************************************************...

关键字: arm7入门 LCD 显示字符

用ADS1.2编辑的,注意添加target.c,IRQ.s,Startuo.s和mem.scf文件。主程序: /*****************************************************...

关键字: arm7入门 LED 单键控制

用ADS1.2编辑的,注意添加target.c,IRQ.s,Startuo.s和mem.scf文件。主程序:/*******************************************************...

关键字: arm7入门 数码管显示

MCU:STM32F303VC在SPI通信中,可以同时开启发送和接收DMA请求,自动数据的发送和接收,完成数据的交换基本步骤是:1. 配置好SPI相应引脚功能2. 配置和初始化SPI3. 初始化DMA4. 片选信号选择要...

关键字: dma模式 spi通信 STM32

MSSP模块工作于SPI主控方式,这个可以直接在实验板上执行。程序://适合3EPIC实验板,配置PIC单片机的MSSP模块工作于SPI主控方式下, //通过一个并/串行转换移位寄存器(74HC165)将接收的并行数据...

关键字: pic入门 spi通信 串口调试

主程序:/******************************************************************************* *File: main.C *功能: 串口发送...

关键字: arm7入门 串口通信

主程序: /******************************************************************************* *File: Main.c *功能: 使能...

关键字: arm7入门 向量irq中断

主程序:/******************************************************************************/ /* This file is part of...

关键字: a arm7入门 d转换

SPI是一种高速的,全双工,同步的通信总线,原理和使用简单,占用引脚资源少,是一种常用的通信方式。STM32通常有2~3个SPI接口根据STM32手册的使用方法:1. Enable peripheral clock2....

关键字: spi通信 STM32 配置使用
关闭
关闭