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

📄 lcd12864.h

📁 DS18B20温度传感器
💻 H
字号:
/****************************************/
/********* 液晶12864头文件  *************/
/****************************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit RST=P3^1;		  /***复位信号***/
sbit PSB=P3^7;        /***串、并行选择信号***/
sbit SCLK=P3^6;       /***时钟信号***/
sbit SID=P3^5;        /***数据信号***/
sbit CS=P3^4;         /***片选信号***/

void delay(uint xms)
 {
  uchar x,y;
  for(x=xms;x>0;x--)
    for(y=110;y>0;y--);
 }

/***************************************/
/*         以串行协议发送数据		   */
/***************************************/
void send_bit(uchar byte)
 {
  uchar x;
  for(x=0;x<8;x++)		  //八位数据,一位一位发送//
     {
	  if((byte<<x)&0x80)  //如果最高位为1,则发送1//
	    {
		SID=1;
		}
	  else
	    {
		SID=0;			  //如果最高位为0,则发送0//
		}
	  SCLK=0;
	  SCLK=1;			  //每发送一位,SCLK跳变一次,上升沿有效//
	 }
  delay(5);
 } 

/***************************************/
/*          写串口命令函数   		   */
/***************************************/

void write_com(uchar com)
 {
  CS=1;                       //每次传数据前把CS端拉高//
  send_bit(0xf8);		      //串行发送命令前必发0xf8识别命令//
  send_bit(com&0xf0);	      //0xf0为1111 0000,送高四位
  send_bit((com<<4)&0xf0);	  //0xf0为1111 0000,送低四位
  delay(5);
  CS=0;
 }
/***************************************/
/*          写串口数据函数   		   */
/***************************************/

void write_date(uchar date)
  {
   CS=1;		                  //每次传数据前把CS端拉高//
   send_bit(0xfa);                //串行发送数据前必发0xfa识别数据//
   send_bit(date&0xf0);	          //0xf0为1111 0000,送高四位//
   send_bit((date<<4)&0xf0);	  //0xf0为1111 0000,送低四位//
   delay(10);
   CS=0;
  }
/***************************************/
/*          液晶显示初始化   		   */
/***************************************/
void LCD_init()
 {
  RST=0;
  delay(50);
  RST=1;
  PSB=0;	                    //选择串口方式
  delay(5);
  write_com(0x30);				//基本指令操作
  delay(5);
  write_com(0x0c);              //开显示,关光标
  delay(5);
  write_com(0x02);              //地址归位
  delay(5);
  write_com(0x01);              //清除液晶显示内容
  delay(5);
 }
/**  显示字符串   **/
void write_zi(uchar code *S)
{
 while(*S!='\0')
   {
   write_date(*S);
   S++;
   delay(5);
   }
}






⌨️ 快捷键说明

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