📄 lmx2325-test.c
字号:
#include <stdio.h>
#include <AT892051.H>
sbit KEY1=P1^2;
sbit KEY2=P1^3;
sbit KEY3=P1^4;
sbit BCLK=P1^5;
sbit BDATA=P1^6;
sbit BLE=P1^7;
void d_send(unsigned long int BYT);
unsigned long int cal_shu(unsigned long int lasts);
void d_senda(int DBYT);
void delay(void);
void delay1(void);
//unsigned int crc16l(unsigned char *ptr,unsigned char len);
unsigned long int X;
//unsigned int crc;
char flag;
main()
{
EA=0;
SP=0x70;
RS0=0;
RS1=0;
P1=0XDF;
flag=0;
delay1();
delay1();
d_senda(0x0101);
delay1();
delay1();
X=8070;
d_send(cal_shu(X));
delay1();
while(1)
{
if (flag==1)
{
d_send(cal_shu(X));
flag=0;
}
if (KEY1==0)
{
delay();
delay();
if (KEY1==0)
{
X+=2;
flag=1;
}
}
if (KEY2==0)
{
delay();
delay();
if (KEY2==0)
{
X=8070;
flag=1;
}
}
if (KEY3==0)
{
delay();
delay();
if (KEY3==0)
{
X-=2;
flag=1;
}
}
}
}
//**********延时约20ms**********
void delay(void)
{
unsigned char i;
unsigned char l;
for(i=15;i>=1;i--)
{
for(l=250;l>=1;l--);
}
}
//**********延时约1s**********
void delay1(void)
{
unsigned char i;
for(i=32;i>=1;i--)
{
delay();
}
}
//********写16位数据子程序********
void d_senda(int DBYT)
{
unsigned char i;
BCLK=0;
BLE=0;
for(i=16;i>=1;i--)
{
BDATA=DBYT&0X8000;
DBYT=DBYT<<1;
BCLK=1;
BCLK=0;
}
BLE=1;
}
//********写19位数据子程序********
void d_send(unsigned long int BYT)
{
unsigned char i;
unsigned long int S;
BCLK=0;
BLE=0;
S=BYT;
for(i=19;i>=1;i--)
{
BDATA=S&0X800000;
S=S<<1;
BCLK=1;
BCLK=0;
}
BLE=1;
}
unsigned long int cal_shu(unsigned long int lasts)
{
char intL;
unsigned long int lonX;
lonX=lasts>>6;
intL=lasts&0x3f;
lonX<<=7;
lonX+=intL;
lonX<<=6;
return lonX;
}
/*unsigned int crc16l(unsigned char *ptr,unsigned char len)
{
unsigned char i;
while(len--)
{
for(i=0x80;i!=0;i>>1)
{
if((crc&0x8000)!=0) {crc<<=1;crc^=0x1021;}
else crc<<=1;
if((*ptr&i)!=0) crc^=0x1021;
}
ptr++;
}
return(crc);
}*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -