📄 text1.c
字号:
#include<reg51.h>
#include"LCD12864.h"
#include"zimo.h"
#include"LCD1602.h"
void hua_zuobiao(void);//画坐标
void delay1ms(uint k);//延时间
void TLC2543(void);//2543读数据子函数
void count_ad(void);//1602的显示
uchar code shuzi[]={0x00,0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};//0--8
uchar code number[]={"0123456789"};
uchar tab1[]={" wendu=+49.99c "};// 9 10. 12 13
uchar code tab2[]={" made of suwei "};
unsigned long int ad;
///////////////////TLC2543
sbit clk=P1^3;//时钟
sbit cs=P1^2;//1变0时TLC2543复位
sbit adtain=P1^1;//数据输入
sbit adtaout=P1^0;//数据输出
////////////////
void main(void)
{uchar x,y;//x页 y列
uchar i;
uint j;
uchar wendu=30,dp;//温度//曲线的点
///////////1602
init_1602();
gotoxy(1,0);
for(i=0;i<16;i++)write_LCD_data(tab1[i]);
gotoxy(2,0);
for(i=0;i<16;i++)write_LCD_data(tab2[i]);
///////////////12864LCD
initi_LCD();//
hua_zuobiao();//画坐标图
y=12;//从12列开始
while(1)
{ TLC2543();//2543读数据子函数
count_ad();//lcd1602的更新显示
delay1ms(1);
j++;
if(j>50){j=0;
wendu=ad/100;//取温度的前2位
x=(wendu-1)/8;
x=6-x;
dp=(wendu-1)%8+1;
if(y<64){set_adr(x,y);
wdata(shuzi[dp],1,0);
}
else { set_adr(x,y-64);
wdata(shuzi[dp],0,1);
}
y++;//列
if(y==128){y=12;//
clear();//清屏
hua_zuobiao();//画坐标图
}
}
}
}
////////////
/*i=0;
initi_LCD();
hua_zuobiao();//画坐标
set_adr(3,12);
y=3;c=13;
while(1)
{i++;
c++;
if(i==8){i=0;
y=y-1;
if(y==0)y=7;
//temp=0xb8+y;
wcode(temp,1,1);
}
if(c==64) set_adr(temp,0);
if(c>=127)while(1);
if(c>=64) wdata(shuzhi[i],0,1);
else wdata(shuzhi[i],1,0);
delay1ms(100);
*/
/////////////
// }
//}
////1602的显示
void count_ad(void)
{uchar i;
uint temp;
temp=ad;
tab1[13]=number[temp%10];temp=temp/10;
tab1[12]=number[temp%10];temp=temp/10;
tab1[10]=number[temp%10];temp=temp/10;
tab1[9]= number[temp%10];
gotoxy(1,0);
for(i=0;i<16;i++)write_LCD_data(tab1[i]);
}
//////////////////////////////////
void TLC2543(void)//2543读数据子函数
{uchar i;//输入数据为0x00//0x10为第一通道
ad=0;
clk=0;
cs=0;
for(i=0;i<12;i++)
{if(adtaout==1)ad=ad|0x01;//读出数据
adtain=0;//写入数据
clk=1;
clk=0;
ad<<=1;//左移一位
}
cs=1;
ad>>=1;//数据存在ad里
ad=(ad*1000)/819;//temp=(ad*5000)/4095;
}
///////////////////////////
void hua_zuobiao(void)//画坐标
{uchar j;
uint i;
for(j=0;j<8;j++)//页码
{set_adr(j,0);
for(i=1;i<=64;i++){wdata(zuobiao[i+j*128],1,0);
wdata(zuobiao[63+i+j*128],0,1);
}
}
}
////////////////////////
void delay1ms(uint k)//延时间
{k=k*125;
while(--k);
}
////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -