⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 led7.c

📁 TQ公司的STK16x开发系统的源码
💻 C
字号:
/* LED7.C */

/****************************************************************************
* 
* STK16XSW.LED7
* =============
*
* Low level rouines for 7-segment LED
*
* TQ-Systems GmbH                                                         
* ---------------                                                         
* Costumer: TQ Components
* Project : STK16XSW
* Tools   : uVision 2.05
*
* Rev: Date:     Name:            Modification:
* ----+---------+----------------+------------------------------------------
* 100  19.01.01  A. Lichte        taken over from STK16X.506                
*****************************************************************************/

/****************************************************************************
*
*                            availability summary
*
* available for Starterkit: STK16X STK16XU
* conformed for Starterkit: STK16X STK16XU 
* available for Modul     : TQM167U TQM167UE                            
* conformed for Modul     : TQM167U TQM167UE
*****************************************************************************/

/*==========================================================================*
* pragmas:
*===========================================================================*/

/*==========================================================================*
* include files (#INCLUDE):
*===========================================================================*/

/*--------------------------------------------------------------------------*
* standard include files: 
*---------------------------------------------------------------------------*/
#include <ctype.h>              /* typecast functions        */
#include <string.h>             /* string functions          */
#include <absacc.h>             /* absolute accesss          */
#include <intrins.h>            /* intrinsic functions       */
#include <reg167.h>             /* special function register */

/*--------------------------------------------------------------------------*
* project specific include files:
*---------------------------------------------------------------------------*/
#include "led7.h"               /* include 7-segment LED         */

/*==========================================================================*
* module internal definitions (#DEFINE):
*===========================================================================*/
/*--------------------------------------------------------------------------*
* defines for 7 segment LED control;
*---------------------------------------------------------------------------*/ 
#define LED7_ADDR     XREG_BASEADDR+0 /* LED address: CS2# start adress + 0x0400 */


/*==========================================================================*
* module internal type declarations (TYPEDEF):
*===========================================================================*/

/*==========================================================================*
* module internal constants (CONST):
*===========================================================================*/
const BYTE LED7_CHAR[] = 
      {
        /* bit mask to display 0..9 or clear LED7 (w/o DP): */
	    0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF,
        /* bit mask to display 0..9 or clear LED7 (with DP): */
        0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x78, 0x00, 0x10, 0x7F
      };

/*==========================================================================*
* extern available constants (CONST):
*===========================================================================*/

/*==========================================================================*
* modul internal variables:
*===========================================================================*/

/*==========================================================================*
* globale external available variables (EXTERN):
*===========================================================================*/

/*==========================================================================*
* modul internal functions:
*===========================================================================*/

/*--------------------------------------------------------------------------*
* void led7_init()
*---------------------------------------------------------------------------*
* FT: init 7-segment LED display
* EP: -
* RV: -
* GP: ADDRSEL2, CS2_ADDRSEL, BUSCON2, CS2_BUSCON, LED7_CLEAR, FALSE
*---------------------------------------------------------------------------*/
void led7_init()
{

  /* clear all LED segments, clear decimal point: */
  led7_set(LED7_CLEAR);  
}

/*--------------------------------------------------------------------------*
* BOOL led7_set(BYTE value)
*---------------------------------------------------------------------------*
* FT: set digit 0..9 and decimal point
*     (handle decimal point: digit + LED_DP)
* EP: value = number to be displayed   0..9: digit to be displayed, clear DP
*                                        10: clear digit, clear DP
*                                    11..20: digit to be displayed, set DP
*                                        21: clear digit, set DP
* RV: TRUE = function succesfully; FALSE = function failed
* GP: LED7_ADDR, FALSE
*---------------------------------------------------------------------------*/
BOOL led7_set(BYTE value)
{
  /* check for valid input parameter: */
  if ((value < 0) || (value > 21)) return (FALSE);

  /* set 7-segment LED, get segments via macro: */
  MVAR(BYTE, LED7_ADDR) = LED7_CHAR[value];

  return (TRUE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -