📄 led.c
字号:
#include"SPCE061A.H"
#include"Led.h"
/***********************************************************************
*显示的数字对应在实际IO口上的映像
************************************************************************/
static unsigned int unLedDispBuffer[LED_DISP_SCALE];
/***********************************************************************
*Led数字对应在实际IO口上的映像,代码移植时需要根据实际的情况,设置。
************************************************************************/
static unsigned int unNumMap[10] = {
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
/***********************************************************************
*Led数码管选通端对应在实际IO口上的映像,代码移植时需要根据实际的情况,设置。
*对需要选通的数码管对应IO脚置1 ,其它置0
************************************************************************/
static unsigned int unLedCsMap[LED_DISP_SCALE] = {
0x0010,0x0020,0x0040,0x0080
};
/***********************************************************************
*Led的IO端口初始化
************************************************************************/
static void vLedInit(void){
unsigned int temp;
temp = LED_IO_DIR & ~LED_IO_REG_MASK;
temp |= LED_IO_DIR_INITIAL_VALUE;
LED_IO_DIR = temp;
temp = LED_IO_ATTRIB & ~LED_IO_REG_MASK;
temp |= LED_IO_ATTRIB_INITIAL_VALUE;
LED_IO_ATTRIB = temp;
temp = LED_IO_DATA & ~LED_IO_REG_MASK;
temp |= LED_IO_DATA_INITIAL_VALUE;
LED_IO_DATA = temp;
}
/**********************************************************************
*设置显示的数据。
*把十进制的数据,转化为实际IO对应的映像值
***********************************************************************/
void vSetLedDispNum(unsigned int unNum){
unsigned int temp1,temp2;
unsigned char i;
temp1 = unNum;
temp2 = unNum;
for(i = 0; i < LED_DISP_SCALE; i++ ){
temp1 = temp2;
temp1 %= 10;
temp2 /= 10;
temp1 = unNumMap[temp1];
temp1 &= ~unLedCsMap[LED_DISP_SCALE];
unLedDispBuffer[LED_DISP_SCALE] = temp1;
}
}
/**********************************************************************
*在Led上显示数据,实际是把转换好的IO映像数据,直接映射到IO上
***********************************************************************/
void vLedDispNum(void){
unsigned char i;
vLedInit();
for(i = 0; i < LED_DISP_SCALE; i++ ){
LED_IO_DATA |= unLedDispBuffer[LED_DISP_SCALE];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -