设为首页
加入收藏
联系站长
首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | 留言 | 论坛 | 
您现在的位置: 电子爱好者 >> 文章中心 >> ARM入门 >> 正文 用户登录 新用户注册
lpc2103源程序--LED数码管显示          【字体:
lpc2103源程序--LED数码管显示
作者:未知    文章来源:互连网    点击数:    更新时间:2007-4-28

/*------------------------------------------------------------
FILE NAME : SPI_LED.C
DEscrīptION : LED数码管显示。
                  通过I/O模同步串口与74HC164进行连接,控制74HC164驱动LED数管显示。 
--------------------------------------------------------------*/
//--------------------Include files-------------------------//
#include  <lpc2103.h>
//--------------------Variable ----------------------------//

//-------------------Function prototype-------------------//

//-------------------Function ----------------------------//

//-------------------Define-------------------------------//

#define   SPI_MOSI 0x00000040  /* P0.6 */
#define   SPI_MISO 0x00000020  /* P0.5 */
#define   SPI_SCK 0x00000010  /* P0.4 */

#define   BEEP      0x00000080      /* P0.7为蜂鸣器控制 */

#define   SPI_IOCON 0x000000D0  /* SPI接口的I/O设置字,蜂鸣器设置 */


/*--------------------------------------------------------
NAME  : delay()
FUNCTION        : 长软件延时
ENTRY  TYPE : unsigned int
RETURN TYPE : void
PURPOSE  :
VERSION  : 0.0.0
DEscrīptION :
CREATE DATE : 12.07.2006
LOGS  :--\
- 1.create;
---------------------------------------------------------*/
void  delay(unsigned int dly)
{  unsigned int  i;

   for(; dly>0; dly--)
      for(i=0; i<50000; i++);
}
/*--------------------------------------------------------
NAME  : hc164_send
FUNCTION        : 向74HC164发送一字节数据,发送数据时,高位先发送
ENTRY  TYPE : unsigned char
RETURN TYPE : void
PURPOSE  :
VERSION  : 0.0.0
DEscrīptION :
CREATE DATE : 12.07.2006 HC164_SendDat
LOGS  :--\
- 1.create;
---------------------------------------------------------*/
void  hc164_send(unsigned char dat)
{  unsigned char  i;

   IOCLR = SPI_MISO;       // SPI_MISO = 0
   for(i=0; i<8; i++)   // 发送8位数据
   {  IOCLR = SPI_SCK;   // SPI_SCK = 0
      /* 设置SPI的MOSI输出值 */
      if( (dat&0x80)!=0 ) IOSET = SPI_MOSI;
        else IOCLR = SPI_MOSI;
      dat <<= 1;
      IOSET = SPI_SCK;   // SPI_SCK = 1
   }
  
   IOSET = SPI_MISO;       // SPI_MISO = 1,输出显示数据
}

/*--------------------------------------------------------
NAME  : main()
FUNCTION        : 控制LED数码管显示。
ENTRY  TYPE : void
RETURN TYPE : int
PURPOSE  :
VERSION  : 0.0.0
DEscrīptION :
CREATE DATE : 12.07.2006
LOGS  :--\
- 1.create;
---------------------------------------------------------*/

int  main(void)
{  const unsigned char  DISP_TAB[16] = { 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,
                                 0x88,0x83,0xC6,0xA1,0x86,0x8E };
   unsigned char  i;   
 
   PINSEL0 = 0x00000000;  // 设置所有管脚连接GPIO
   PINSEL1 = 0x00000000;
   IODIR = SPI_IOCON;   // 设置SPI控制口为输出
  
   IOCLR = BEEP;                // 打开蜂鸣器响一声
   delay(100);
   IOSET = BEEP;               
  
   while(1) 
   {  for(i=0; i<16; i++)
      {  hc164_send(DISP_TAB[i]); // 输出LED显示数据
         delay(50);   // 延时
      }
    
   }
   return(0);
}

//------------------ End of file ----------------------------//

文章录入:admin    责任编辑:admin 
  • 上一篇文章: lpc2103源程序--GPIO口键盘输入

  • 下一篇文章: lpc2103源程序--FGPIO
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
       最新热点    最新推荐    相关文章
  • 【本站学习光盘列表】

  • 8051、ARM和DSP指令周期分析

  • 32位RISC ARM芯片的应用和选…

  • ARM7在嵌入式应用中启动程序…

  • ARM开发调试教程

  • ARM简介与编程-献给ARM初学者

  • lpc2103实验--外部中断

  • lpc2103源程序--PWM

  • lpc2103源程序--TIME1的计数…

  • lpc2103源程序--定时器1匹配…

  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)  
    {$PopAnnouceWindow(400,440)}