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++);

}

}

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

    关注

    32

    文章

    1881

    浏览量

    91056
  • LPC2103
    +关注

    关注

    0

    文章

    26

    浏览量

    17337

原文标题:畅学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

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

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

    基于LPC2103SPI 总线技术的应用

    介绍了一种基于SPI 总线技术的LPC2103 对LED 数码管显示实现控制的方法。采用8 7
    发表于 07-06 16:19 55次下载

    AVR单片机595驱动8位数码管显示的电路实现

    AVR单片机595驱动8位数码管显示的电路实现
    发表于 10-29 15:11 26次下载

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

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

    8位数码管动态扫描显示

    23-8位数码管动态扫描显示示----------51单片机源程序 用keil直接打开
    发表于 06-16 15:36 22次下载

    8位数码管显示时间

    8位数码管显示时间 keil源程序+protues仿真   采用8位数码管显示,DS1302时
    发表于 11-21 17:32 18次下载

    数码管静态显示介绍_8位数码管静态显示程序解析

    数码管显示屏其中一类, 通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。本文为大家介绍一个
    发表于 01-15 16:53 1.5w次阅读

    8位数码管电子时钟仿真图及程序源代码

    利用8位数码管显示时间,原理与4位数码管显示的基本一样。
    的头像 发表于 01-21 16:24 1.4w次阅读
    <b class='flag-5'>8</b><b class='flag-5'>位数码管</b>电子时钟仿真图及程序源代码

    十个单片机IO应用及数码管显示实验代码免费下载

    本文档的主要内容详细介绍的是9个单片机IO应用及数码管显示实验代码免费下载包括了:1. 单片机驱动蜂鸣器的
    发表于 09-24 17:18 0次下载
    十个单片机IO<b class='flag-5'>口</b>应用及<b class='flag-5'>数码管</b><b class='flag-5'>显示</b>的<b class='flag-5'>实验</b>代码免费下载

    8位数码管显示-verilog-xlinx

    ARTIX7-xlinx 版本FPGA开发,8位数码管模块
    发表于 06-20 11:06 3次下载

    51单片机8位数码管显示学号程序编写思路

    51单片机是一种非常经典的单片机型号,具有广泛的应用领域。我们可以利用51单片机的IO来控制8位数码管显示,实现学号的显示功能。下面提供
    的头像 发表于 01-04 15:21 7571次阅读

    8位数码管在Proteus中的使用技巧

    的基本概念 8位数码管是一种用于显示数字和部分字母的电子器件,通常由8个独立的七段显示器组成,每个七段
    的头像 发表于 08-28 16:31 3842次阅读

    8位数码管怎么不显示数字

    8位数码管是一种常见的电子显示设备,用于显示数字或字符。然而,有时8位数码管可能无法正常
    的头像 发表于 08-28 16:34 836次阅读