www.pudn.com > plj.rar > plj.c
#include#include #define UINT unsigned int sbit CLK=P1^1; sbit DIO=P1^2; sbit ZLG_CS=P1^3; void SysInit(void); void UserInit(void); void DisInit(void); void SendComm(UINT); void SendData(UINT); void Display(UINT,UINT); void DataDis(unsigned long); void Delay(UINT); UINT T1count; UINT timecount; bit flag; unsigned long pl; void main(void) { SysInit(); UserInit(); DisInit(); TMOD=0x51; TH1=0; TL1=0; TH0=(65536-46080/256; TL0=(65536-46080)%256; TR0=1; TR1=1; ET0=1; ET1=1; EA=1; while(1) { if(flag==1) { flag=0; pl=T1count*65535+TH1*255+TL1; T1count=0; TH1=0; TL1=0; TH0=(65536-46080/256; TL0=(65536-46080)%256; TR1=1; TR0=1; } DataDis(pl); } } void t1(void) interrupt 3 using 0 { TH1=0; TL1=0; T1count++; } void t0(void) interrupt 1 using 0 { TH0=(65536-46080/256; TL0=(65536-46080)%256; timecount++; if(timecount==20) { TR1=0; TR0=0; timecount=0; flag=1; } } void UserInit() { ZLG_CS = 1; CLK = 0; DIO = 0; } void DisInit() { ZLG_CS = 0; Delay(10); SendComm(0xa4); ZLG_CS = 1; Display(0x0c,3); Display(0x0b,4); Display(0x0d,5); Display(0x0e,6); } void SendComm(UINT commandTemp) { UINT temp = commandTemp; UINT i; for(i = 0;i < 8;i++) { if((temp&0x80) == 0x80) DIO = 1; else DIO = 0; Delay(10); CLK = 1; Delay(10); CLK = 0; temp <<= 1; } } void SendData(UINT dataTemp) { UINT temp = dataTemp; UINT i; for(i = 0;i < 16;i++) { if((temp&0x8000) == 0x8000) { DIO = 1; } else { DIO = 0; } Delay(10); CLK = 1; Delay(10); CLK = 0; temp <<= 1; } } void Display(UINT disData,UINT position) { UINT sendData = 0x8000; UINT temp = position; sendData |= disData; temp <<= 8; sendData |= temp; ZLG_CS = 0; Delay(10); SendData(sendData); ZLG_CS = 1; } void DataDis(unsigned long dataTmp) { UINT disData[7]; UINT i; unsigned long ref = 1000000; for(i = 0;i < 7;i++) { disData[i] = dataTmp/ref; dataTmp %= ref; ref /= 10; } for(i = 0;i < 3;i++) { Display(disData[6-i],i); Delay(10); } for(i = 3;i < 7;i++) { Display(disData[6-i],9-i); Delay(10); } } void SysInit(void) { IE = 0x01; IP = 0x00; TMOD = 0x20; IT0 = 1; IT1 = 0; SCON = 0x50; PCON = 0x00; TH1 = 0xfd; TL1 = 0xfd; TR1 = 1; EA = 1; } void Delay(UINT n) { UINT i; for(i = n; i > 0; i--); }