달력

7

« 2025/7 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2019. 11. 26. 15:06

7 segment 에 0~FFFF 표시 카테고리 없음2019. 11. 26. 15:06

/**************************************

7 segment 에 0~FFFF(16진수로 표시)카운터

****************************************/

#include

#define S7_1 0x07
#define S7_2 0x0b
#define S7_3 0x0d
#define S7_4 0x0e


const char Font[17] = { 0xc0, 0xf9, 0xa4, //'0', '1', '2'
0xb0, 0x99, 0x92, // '3', '4', '5'
0x83, 0xf8, 0x80, // '6', '7', '8'
0x98, 0x88, 0x83, // '9', 'A', 'b'
0xc6, 0xa1, 0x86, // 'C', 'd', 'E'
0x8e, 0x7f } ; // 'F', '.'

void Control_7Seg(int);
/*
void delay (char);

void delay (char p)
{
int i, j ;

for ( j = 0 ; j < p ; j++)

for ( i = 0 ; i < 20000 ; i++) ;

}
*/

void Control_7Seg(int N)
{
unsigned int i, d , Buff;
unsigned char N1000, N100, N10, N1 ;

N1000 = N / 1000;
Buff = N % 1000;

N100 = Buff / 0x100 ;
Buff = Buff % 0x100;

N10 = Buff / 0x10;
N1 = Buff % 0x10;

for ( i = 0 ; i < 100 ; i ++ ) {
P1 = S7_1 ; // 첫번째 7-Segmnet를 켜준다.
P0 = Font[N1000] ; // 천의 자리를 써 준다.
for(d = 0 ; d < 10; d++ ) ;

P1 = S7_2 ; // 두번째 7-Segmnet를 켜준다.
P0 = Font[N100] ; // 백의 자리를 써 준다.
for(d = 0 ; d < 10; d++ ) ;

P1 = S7_3; // 세번째 7-Segmnet를 켜준다.
P0 = Font[N10]; // 십의 자리를 써 준다.
for(d = 0 ; d < 10; d++ ) ;

P1 = S7_4 ; // 네번째 7-Segmnet를 켜준다.
P0 = Font[N1] ; // 일의 자리를 을 써 준다.
for(d = 0 ; d < 10; d++ ) ;
}
}

void main(void)
{
int Number =0 ;

for( ;; ) {
Control_7Seg(Number);
Number ++ ;
if(Number > 9999)
Number = 0 ;

}
}

:
Posted by gonlab