📄 网线断点检测.c
字号:
#include<AT89X51.H>
#define uchar unsigned char
/*CA12864K显示部分*////////////////////////////////////////////////////
sbit RS=P2^4;
sbit E=P2^6;
sfr Data=0x80; //定义Date为P0口
unsigned char code TABLE[]={
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87, //第一行汉字位置
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97, //第二行汉字位置
0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f, //第三行汉字位置
0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f, //第四行汉字位置
};
//要发送的字符串
uchar str[]={"大家好要发送的字符串"};
//延时
void delay(char us)
{ unsigned char i,j;
for(i=0;i<us;i++)
for(j=0;j<256;j++);
}
///发命令
void sendcom(uchar com)
{
RS=0;delay(1);
E=1;delay(1);
Data=com;delay(1);
E=0; delay(1);
}
//发数据
void senddat(uchar dat)
{
RS=1;delay(1);
E=1;delay(1);
Data=dat;delay(1);
E=0;delay(1);
}
//发字符串
void display(uchar *str,uchar row,uchar col) //str为字符串、row为行、col为列
{
sendcom(0x30); //8BitMCU,基本指令集合
sendcom(TABLE[8*row+col]); //起始位置
while(*str != '\0') //判断字符串是否显示完毕
{
if(col==8) //判断换行
{ //若不判断,则自动从第一行到第三行
col=0;
row++;
}
if(row==4) row=0; //一屏显示完,回到屏左上角
sendcom(TABLE[8*row+col]);
senddat(*str); //一个汉字要写两次
str++;
senddat(*str);
str++;
col++;
}
}
//显屏初始化
void intlcd()
{
delay(255);
sendcom(0x30); //8BitMCU,基本指令集合
sendcom(0x0C); //显示ON,游标OFF,游标位反白OFF
sendcom(0x01); //清屏,AC归0
sendcom(0x80); //1000,0000 设定DDRAM 7位地址000,0000到地址计数器AC
}
////////////////////////////////////////////////////////////////////////////////////////
uchar i,j,a=0x01,b=0,temp,mov;
uchar line[8]={1,1,0,0,1,1,0,0};
uchar bite[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void main()
{ intlcd();
while(1)
{display(str,1,1);
/*编码部分
temp=0x01;
for(i=0;i<8;i++)
line[i]=0;
for(mov=0;mov<8;mov++)
{P3=bite[mov];
P1=bite[mov];
delay(155);
if(P1==0)
{
delay(155);
if(P1==0) line[mov]=1;
}
}
//译码部分
b=0;
for(i=0;i<8;i++)
{ if(line[i]==1)
{
temp=a<<i;
b=b|temp;
}
}*/
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -