|
#include "dis.h"
#include "reg52.h"
#include "intrins.h"
#define out(b,d) { P0 = (d);P2 = (P2&0x1f) | (b<<5);P2 = (P2&0x1f); }
extern unsigned int f1;
extern unsigned char temp_code[];
extern unsigned char timer1[];
unsigned char smgdata[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0x8c};
void delay() //@11.0592MHz
{
unsigned char i, j;
i = 12;
j = 169;
do
{
while (--j);
} while (--i);
}
void selecthc573(unsigned char a)
{
switch(a)
{
case 4: P2=(P2&0x1f)|0x80;break;
case 5: P2=(P2&0x1f)|0xa0;break;
case 6: P2=(P2&0x1f)|0xc0;break;
case 7: P2=(P2&0x1f)|0xe0;break;
}
}
void dsiplaysmg(unsigned char value,unsigned char pos)
{
P0=0xff;
selecthc573(6);
P0=0x01<<pos;
selecthc573(7);
P0=value;
}
void smg_dis()
{
dsiplaysmg(smgdata[17],0);
delay();
dsiplaysmg(smgdata[temp_code[4]],5);
delay();
dsiplaysmg(smgdata[temp_code[5]],6);
delay();
dsiplaysmg(smgdata[temp_code[6]],7);
delay();
|
|