⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.c

📁 用12864在液晶中显示曲线,是个很好的材料,你们一定不会后悔,赶快下载
💻 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 + -