当前位置:首页 > 单片机 > 单片机
[导读]Ds3231+12864液晶显示AT89C51带温度功能的时钟程序。#include#include#include#define uchar unsigned char#define uint unsigned intsbit LCD_RS=P2^6;sbit LCD_RW=P2^5;sbit LCD_EN=P2^4;sbit LCD_PSB=P2^3;sbit D

Ds3231+12864液晶显示AT89C51带温度功能的时钟程序。



#include

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit LCD_RS=P2^6;

sbit LCD_RW=P2^5;

sbit LCD_EN=P2^4;

sbit LCD_PSB=P2^3;

sbit DQ=P3^7; //18b20

sbit SDA=P1^4; //ds32321 //模拟I2C数据传送位SDA

sbit SCL=P1^3; //模拟I2C时钟控制位SCL

//

////

////

////

////

sbit K1=P3^2;

sbit K2=P3^3;

sbit K3=P3^4;

sbit K4=P3^5;

//定义变量

uchar numbr[10]="0123456789"; //字模

uchar dis4[]=" "; // 第四行显示 自己添加

uchar t[]=" . ℃" ; //18b20

uint sdata,xiaoshu1,xiaoshu2; //整数、小数1位、小数2位

bit fg=1; //温度正负标志

uchar tempL=0,tempH=0; // 变量

uchar year,month,date,hour,min,sec; // ds3231

uchar a[]="2011年22月33日";

uchar b[]="11时22分33秒";

///函数

/

void write_cmd(uchar cmd)

{

LCD_RS=0;

LCD_RW=0;

LCD_EN=0;

P0=cmd;

delay1ms(5);

LCD_EN=1;

delay1ms(5);

LCD_EN=0;

}

void lcd_pos(uchar X, uchar Y)

{

ucharpos;

if(X== 0)

{

X= 0x80;

}

elseif(X == 1)

{

X= 0x90;

}

elseif(X == 2)

{

X= 0x88;

}

elseif(X == 3)

{

X= 0x98;

}

pos= X + Y;

write_cmd(pos); //显示地址

}

void write_dat(uchar dat)

{

LCD_RS=1;

LCD_RW=0;

LCD_EN=0;

P0=dat;

delay1ms(5);

LCD_EN=1;

delay1ms(5);

LCD_EN=0;

}

void lcd_init()

{ uinti;

LCD_PSB=1; //并口方式

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭