0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

LPC2103 spi口驱动74595 8位数码管显示实验

2oON_changxuemc 来源:未知 作者:胡薇 2018-04-25 08:49 次阅读

LPC2103 spi口驱动74595 8位数码管显示实验

//

//系统设置: Fosc、Fcclk、Fcco、Fpclk

//#define Fosc 12000000

//#define Fcclk (Fosc * 5)

//#define Fcco (Fcclk *4)

//#define Fpclk (Fcclk / 4) * 4

//Fpclk=60000000

接线说明: 使用 3根 1P杜邦线连接核心板 P04/P06/P07口接底板 JP26

具体接线为:P04-SHCP,P06-DS , P07-STCP。

跳线说明:短接 J70

实验现象:数码管先逐段扫描,然后显示0-9

*************************************************************

#define IN_MAIN

#include "config.h"

#include "LPC2103_lian.H"

#include "ADC.h"

#include "ExtInterrupt.h"

#include "I2C.h"

#include "IAP.h"

#include "Legacy_GPIO.h"

#include "RTC.h"

#include "SPI.h"

#include "SSP.h"

#include "Time.h"

#include "UART.h"

#include "WatchDog.h"

#include "ISR.h"

#pragma import(__use_no_semihosting_swi)

#define rclk_0() IO0CLR=IO0CLR|p07 //74959锁存时钟

#define rclk_1() IO0SET=IO0SET|p07

const uint8 tb[]={

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00,

};

const uint8 smg_text[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,};

const uint8 smg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x00,};

// 0 1 2 3 4 5 6 7 8 9 all

const uint8 smg_bit[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff,};

uint8 c;

uint8 d;

void IRQ_Exception(void)

{

}

//**********************函数定义************************

void delay(uint32 dly);

void spiinit(void);

uint8 senddata_mspi(uint8 uiData);

//**********************主函数**************************

void Main(void)

{

TargetInit(VPBDIV_DATA, PLLCFG_DATA, MAMTIM_DATA); // don't delete

while((PLLSTAT & (1 << 10)) == 0); // can delete

p04_sck0;

p06_mosi0;

p05_miso0;

p07_gpio; //将端口设置为gpio口

gpio_out(p07); //设置为输出

delay(1);

spiinit();

for(d=0;d<8;d++)

{

for(c=0;c<8;c++)

{

rclk_0();

senddata_mspi(smg_bit[d]);

senddata_mspi(smg_text[c]);

rclk_1();

delay(200);

}

}

while(1)

{

for(c=0;c<11;c++)

{

rclk_0();

senddata_mspi(smg_bit[8]);

senddata_mspi(smg[c]);

rclk_1();

delay(200);

delay(200);

delay(200);

}

}

}

//*********************初始化SPI接口********************

void spiinit(void)

{

SPI_SPCCR=8; //设置SPI时钟分频,该值必须为大于等于8的偶数(该值越大,spi时钟越低)

SPI_SPCR =0<<2 | //每次传输8位数据

0<<3 | //CPHA=0,第一边沿采样.CPHA=1,第二边沿采样

0<<4 | //spi总线空闲时,CPOL=1,时钟为高电平.CPOL=0,时钟为低电平

1<<5 | //MSTR=1,设置为主模式

0<<6 | //LSBF=0,SPI传输MSB在先

0<<7 ; //SPIE=0,SPI中断禁止

}

//******************spi主机发送接收数据*****************

uint8 senddata_mspi(uint8 uiData)

{

SPI_SPDR=uiData;

while((SPI_SPSR&0x80)==0); //等待数据发送完毕

return(SPI_SPDR);

}

//************************延时**************************

void delay(uint32 dly)

{

uint32 i;

for(;dly>0;dly--)

{

for(i=0;i<5000;i++);

}

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数码管
    +关注

    关注

    31

    文章

    1826

    浏览量

    89939
  • LPC2103
    +关注

    关注

    0

    文章

    26

    浏览量

    17284

原文标题:畅学ARM多功能实验箱数码管显示源码资源

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于EasyARM2103的DIY方案一:74HC595驱动数码管设计

    与74HC595进行数据传输。74HC595将LPC2103发送过来的8串行数据转换成8并行数据,用以
    发表于 03-30 09:58

    求大神指导,LPC2103数码管的输出值是算的吗?

    const U8 SEGMENT_DATA【16】={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}最近刚学习LPC210
    发表于 10-13 20:36

    595驱动8位数码管

    最近想做一个用595芯片来驱动8位数码管数码管显示为1,2,3...8。请高手指点一下程序怎么写,谢谢!
    发表于 12-05 14:24

    12时制数字显示电子钟,MCU为LPC2103/2106

    ),校时时不能产生进位;(4)能显示上午、下午标志。 开发环境MCU 为LPC2103/LPC2106交叉编译器为IAR Workbench 5.X仿真环境为Proteus7.X 这是今年暑假实践周
    发表于 07-10 19:20

    求助一个LPC2103的JTAG复用的问题。。。

    是这样的。。 LPC2103的 JTAG 也就是P0.27-P0.31 如果想作为I/O的话应该怎么样设置呢? 光对这几个管脚进行管脚配置好像没有用的。。是不是应该对JTAG功能
    发表于 01-14 15:06

    STM32 硬件SPI max7219 8位数码管显示模块

    网上买的MAX7219 八位数码管模块,没有stm32的程序。刚写的硬件SPI1 程序与大家分享,电源使用3V3,主芯片是stm32f103c8t6,显示0-7。学习交流群:86458
    发表于 12-21 20:03

    如何利用数码管驱动芯片max7221实现8位数码管显示

    MAX7221是什么?有何功能?怎样在keil c51中新建工程ex67?其代码如何去实现?怎样在proteus中新建仿真文件ex67.dsn?如何利用数码管驱动芯片max7221实现8位数码
    发表于 08-03 07:10

    如何实现多位数码管显示

    AVR单片机实验数码管显示与外部中断实验1 实验目的掌握动态扫描与外部中断原理,以实现多位数码管
    发表于 11-18 07:16

    位数码管动态扫描八位数码管+流水灯的相关资料分享

    位数码管+流水灯八位数码管滚动显示可变亮度的数码管显示位数码管动态扫描其
    发表于 12-03 06:55

    动态8位数码管显示更多位数的方案介绍

    第三篇:动态8位数码管显示 —亚龙236电路上一篇中已经实现了数码管的静态显示,如果按照上一篇的思路89s52芯片最多可以
    发表于 02-23 06:55

    8位数码管实现10学号动态显示的代码如何去实现

    8位数码管实现10学号动态显示的原理是什么?8位数码管实现10
    发表于 02-23 06:36

    基于LPC2103SPI 总线技术的应用

    介绍了一种基于SPI 总线技术的LPC2103 对LED 数码管显示实现控制的方法。采用8 位74HC59 5 串并转换芯片驱动LED
    发表于 07-06 16:19 54次下载

    LPC2103系列之无线蓝牙控制小车LPC2103程序

    LPC2103系列之无线蓝牙控制小车LPC2103程序,欢迎下载
    发表于 12-14 14:40 15次下载

    LPC2103工程模板

    LPC2103工程模板源代码,下来看看。
    发表于 05-20 16:08 20次下载

    LPC2103 PACK出厂演示程序

    LPC2103 PACK出厂演示程序(通信电源技术期刊编辑部电话)-【资源描述】:LPC2103 PACK出厂演示程序
    发表于 09-16 16:09 9次下载
    <b class='flag-5'>LPC2103</b> PACK出厂演示程序