📄 led7.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 + -