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

📄 12864f.c

📁 51单片机控制LCD(12864F)和DS18B20
💻 C
字号:
#include <reg51.h>#include <intrins.h>#include <string.h>#include <DS18B20.h>  #define uchar unsigned char#define uint unsigned int//12864 汉字显示模块 与MCU连接sbit RS = P3^0;// 1:输入数据 ;0:输入命令sbit RW = P3^1;//1:读数据  0:写数据sbit E = P3^2;//sbit PSB = P1^1;  //串并口选择 1:并口模式; 0:串口模式;sbit ak = P1^0;sbit be = P3^7;sbit br = P1^7;sbit key= P3^3;#define  LcdData P0//延时子程序void delay(unsigned int t){  unsigned int i,j;   for(i=0;i<t;i++)      for(j=0;j<10;j++);         }//测试LCD忙bit Check_Busy(){    bit busy;    RS = 0;    RW = 1;    E = 1;      _nop_();     busy = (bit)(LcdData&0x80);    E = 0;    return busy;}//等待LCD到空闲void wait(){    while(Check_Busy());}//写数据void Lcd_Writedata(unsigned char dispdata){  wait();   RS=1;   RW=0;   E=0;   _nop_();  _nop_();   LcdData=dispdata;   E=1;   _nop_(); _nop_();   E=0;}//写指令代码void Lcd_WriteCmd(unsigned char cmdcode){  wait();   RS=0;   RW=0;    E=0;   _nop_();  _nop_();   LcdData=cmdcode;   _nop_(); _nop_();   E=1;   _nop_();  _nop_();   E=0;}//初始化LCDvoid Lcd_Reset(){ // PSB=1;   Lcd_WriteCmd(0x30);       //选择基本指令集   delay(5);    Lcd_WriteCmd(0x0e);       //开显示(无游标、不反白)   delay(5);   Lcd_WriteCmd(0x01);       //清除显示,并且设定地址指针为00H   delay(5);   Lcd_WriteCmd(0x06);       //指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位   }void WriteStr(unsigned char code *s){     while(*s>0)   {  Lcd_Writedata(*s);      s++;        }}void hzDisp(){    Lcd_WriteCmd(0x80);   WriteStr(" ");   Lcd_WriteCmd(0x90);   WriteStr("系统初始化。。。");   delay(40000);   Lcd_WriteCmd(0x90);   WriteStr("                ");   delay(5000);   Lcd_WriteCmd(0x80);   WriteStr("欢迎使用");       Lcd_WriteCmd(0x88);   WriteStr("  智能家居系统");  }void Main(){     unsigned int a,b,c,d,tem;   Lcd_Reset(); //初始化LCD屏   ak=0;   hzDisp();   delay(40000);   d=0;      while(1)   {  		  	    tem=ReadTemperature(); 	    a=tem/100+48;		b=tem%100/10+48;		c=tem%10+48;   		Lcd_Reset(); //初始化LCD屏   		delay(5);		Lcd_WriteCmd(0x80);          		WriteStr("当前室内温度:");   		Lcd_WriteCmd(0x90);          		Lcd_Writedata(a);	    		Lcd_Writedata(b);   		Lcd_Writedata(0x2e);   		Lcd_Writedata(c);   		WriteStr("度");   		Lcd_WriteCmd(0x88);          		WriteStr("当前室内照度:");   		Lcd_WriteCmd(0x98);          		WriteStr("偏暗");   		delay(20000);        	if(d++==10)        	 ak=1;	    if (key==0)	    { d=0;	 	  ak=0;	 	  be=0;	 	  delay(5000);	      be=1;}   }   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -