📄 display.c
字号:
//*****************************************************************************
// HPA449 Demo - for AFA Seminar, March 31 2003
//
//
//
// T.Hendrick
// Texas Instruments, Inc
// March 2003
// Built with IAR Embedded Workbench Version: 1.26B
//*****************************************************************************
#include <msp430x44x.h>
#include "SBLCDA2.h"
#define M_H_UB (MF+ME+MG)
#define M_H_LB (MM+MB+MC)
#define M_P_UB (MF+ME+MG)
#define M_P_LB (MA+MM+MB)
#define M_A_UB (ME+MF+MG)
#define M_A_LB (MA+MM+MB+MC)
#define maxDigits 5
void displayMajor( int a, int b, int c );
void displayMinor( int a, int b );
//void displaySpecial( long int a );
//void displayValue( long int a );
void displayDelay( long int time );
//void displayMajor( int a, int b, int c );
void displayMajor( int position, int U_half, int L_half )
{
LCDMEM[position*2+5] = U_half;
LCDMEM[position*2+4] = L_half;
}
void sortMajor( unsigned int value )
{
int i, maj_dig_pntr;
if ( value == 0)
{displayMajor( 1, M_ZERO_UB, M_ZERO_LB );}
else
for (i=1; i<maxDigits+1; i++)
{
maj_dig_pntr = (value%10);
if (value == 0)
{maj_dig_pntr = -1;}
switch (maj_dig_pntr)
{
case -1:
LCDMEM[i] = 0;
break;
case 0:
displayMajor( i, M_ZERO_UB, M_ZERO_LB );
break;
case 1:
displayMajor( i, M_ONE_UB, M_ONE_LB );
break;
case 2:
displayMajor( i, M_TWO_UB, M_TWO_LB );
break;
case 3:
displayMajor( i, M_THREE_UB, M_THREE_LB );
break;
case 4:
displayMajor( i, M_FOUR_UB, M_FOUR_LB );
break;
case 5:
displayMajor( i, M_FIVE_UB, M_FIVE_LB );
break;
case 6:
displayMajor( i, M_SIX_UB, M_SIX_LB );
break;
case 7:
displayMajor( i, M_SEVEN_UB, M_SEVEN_LB );
break;
case 8:
displayMajor( i, M_EIGHT_UB, M_EIGHT_LB );
break;
case 9:
displayMajor( i, M_NINE_UB, M_NINE_LB );
break;
default:
LCDMEM[i] = 0;
break;
}
value = value/10;
}
}
void displayMinor( int position, int digit )
{
LCDMEM[position] = digit;
}
void displaySpecial( long int a )
{
LCDMEM[1] = a;
displayDelay(0x10);
}
void displayHPA449(void)
{
displayMajor( 6, M_H_UB, M_H_LB );
displayMajor( 5, M_P_UB, M_P_LB );
displayMajor( 4, M_A_UB, M_A_LB );
displayMajor( 3, M_FOUR_UB, M_FOUR_LB );
displayMajor( 2, M_FOUR_UB, M_FOUR_LB );
displayMajor( 1, M_NINE_UB, M_NINE_LB );
}
void displayDelay( long int time )
{
long int i;
for (i=0; i<time; i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -