数字温度计C程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验内容:DS18b20温度传感器

晶振:11.0592M

实验连线:

*/

#include

#include

#include

unsigned char disp0, disp1, disp2, disp3;

sbit DQ = P2^7;

sbit led0=P2^0;

sbit led1=P2^1;

sbit led2=P2^2;

sbit led3=P2^3;

sbit led4=P2^4;

sbit led5=P2^5;

#define Com_Buf 0x45//命令缓冲单元

#define Dat_Buf 0x46//数据缓冲单元

#define Leng 0x47//读写字节长度存放单元

#define Table 0x78//表首地址存放单元

#define SoftRes 0xe2//液晶软件复位指令

#define Disp_On 0xaf//液晶显示指令

#define Page_Add 0xb8//液晶页面选择指令

#define Col_Add 0x00//液晶列设置指令

#define Colen 0x43//列地址长度存储单元

#define dd 0xd0

typedef unsigned char BYTE;

#define Lcd_Bus P0 //MCU P1<------> LCM unsigned char code HK_HZ[12][16];

unsigned char code HK_HZ1[11][32];

sbit A0=P2^3; //Master chip enable

sbit E1=P2^0; //Slave chip enable

sbit E2=P2^1; //6800 mode Enable single

sbit RW=P2^2; //Data or Instrument Select

sbit Lcd_Rst=P2^4; //Lcm reset

/*------------------延时子程序-----------------------------*/ void delay(unsigned int t)

unsigned int i,j;

for(i=0;i

for(j=0;j<10;j++)

;

}

/*------------------写命令到LCD------------------------------*/ void write_com(unsigned char cmdcode)

{

A0=0;

Lcd_Bus=cmdcode;

E1=0;

E2=0;

//delay(1);

E1=1;

//delay(1);

E1=0;

//delay(1);

E2=1;

//delay(1);

E2=0;

//delay(1);

}

/*-------------------写数据到LCD----------------------------*/

void write_data(unsigned char Dispdata)

{

A0=1;

Lcd_Bus=Dispdata;

E1=0;

E2=0;

//delay(1);

E1=1;

//delay(1);

E1=0;

//delay(1);

E2=1;

//delay(1);

E2=0;

//delay(1);

}

/*-------------------写数据到LCD----------------------------*/

void write_data1(unsigned char Dispdata)

{

A0=1;

Lcd_Bus=Dispdata;

E1=0;

E2=0;

E1=1;

delay(1);

E1=0;

}

/*-------------------写数据到LCD----------------------------*/

void write_data2(unsigned char Dispdata)

{

A0=1;

Lcd_Bus=Dispdata;

E1=0;

E2=0;

E2=1;

delay(1);

E2=0;

}

/*------------------清除内存---------------*/

void Clr_Scr()

{

unsigned char j,k;

for(k=0;k<4;k++)

{

write_com(Page_Add+k);

write_com(Col_Add+0);

for(j=0;j<61;j++)

write_data(0x00);

}

/*---------------------指定位置显示汉字16*16-----------------------*/

void hz_disp16_1(unsigned char pag,unsigned char col, unsigned char code *hzk) {

unsigned char j=0,i=0;

for(j=0;j<2;j++){

write_com(Page_Add+pag+j);

write_com(Col_Add+col);

for(i=0;i<16;i++) write_data1(hzk[16*j+i]);

}

}

/*---------------------指定位置显示汉字------8*16---------------*/

void hz_disp16_2(unsigned char pag,unsigned char col, unsigned char code *hzk) {

unsigned char j=0,i=0;

for(j=0;j<2;j++){

write_com(Page_Add+pag+j);

write_com(Col_Add+col);

for(i=0;i<8;i++) write_data2(hzk[8*j+i]);

}

}

/*------------------初始化LCD屏--------------------------*/

void init_lcd()

{

Lcd_Rst=1;

A0=0;

RW=0;

delay(100);

write_com(SoftRes);//软复位

write_com(Disp_On);//打开显示

write_com(dd);

相关文档
最新文档