📄 plj.c
字号:
#include <reg51.h>
#include<stdio.h>
#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--);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -