资源简介

材料:AT89S52RC,DS1302,DS18B20 K1键:选择设置位 K2键:增键 K3键:减键 K4键:跳出设置

资源截图

代码片段和文件信息

#include 
#include 
//#include “LCD1602.h“
//#include “DS1302.h“
#define uint unsigned int
#define uchar unsigned char
sbit  DS1302_CLK = P1^7;              //实时时钟时钟线引脚 
sbit  DS1302_IO  = P1^6;              //实时时钟数据线引脚 
sbit  DS1302_RST = P1^5;              //实时时钟复位线引脚
sbit  wireless_1 = P3^0;
sbit  wireless_2 = P3^1;
sbit  wireless_3 = P3^2;
sbit  wireless_4 = P3^3;
sbit  ACC0 = ACC^0;
sbit  ACC7 = ACC^7;
char hide_sechide_minhide_hourhide_dayhide_weekhide_monthhide_year;  //秒分时到日月年位闪的计数
sbit Set = P2^0;       //模式切换键
sbit Up = P2^1;        //加法按钮
sbit Down = P2^2;      //减法按钮
sbit out = P2^3;       //立刻跳出调整模式按钮
sbit DQ = P1^0;        //温度传送数据IO口
char donecounttempflagup_flagdown_flag;    //
uchar temp_value;      //温度值
uchar TempBuffer[5]week_value[2];              //


void show_time();   //液晶显示程序
/***********1602液晶显示部分子程序****************/


//Port Definitions**********************************************************
sbit LcdRs = P2^5;
sbit LcdRw = P2^6;
sbit LcdEn   = P2^7;
sfr  DBPort  = 0x80; //P0=0x80P1=0x90P2=0xA0P3=0xB0.数据端口

//内部等待函数**************************************************************************
unsigned char LCD_Wait(void)
{
LcdRs=0;
LcdRw=1; _nop_();
LcdEn=1; _nop_();
 
LcdEn=0;
return DBPort;
}
//向LCD写入命令或数据************************************************************
#define LCD_COMMAND 0      // Command
#define LCD_DATA 1      // Data
#define LCD_CLEAR_SCREEN 0x01      // 清屏
#define LCD_HOMING   0x02      // 光标返回原点
void LCD_Write(bit style unsigned char input)
{
LcdEn=0;
LcdRs=style;
LcdRw=0; _nop_();
DBPort=input; _nop_();//注意顺序
LcdEn=1; _nop_();//注意顺序
LcdEn=0; _nop_();
LCD_Wait();
}

//设置显示模式************************************************************
#define LCD_SHOW 0x04    //显示开
#define LCD_HIDE 0x00    //显示关   

#define LCD_CURSOR 0x02  //显示光标
#define LCD_NO_CURSOR 0x00    //无光标      

#define LCD_FLASH 0x01    //光标闪动
#define LCD_NO_FLASH 0x00    //光标不闪动

void LCD_SetDisplay(unsigned char DisplayMode)
{
LCD_Write(LCD_COMMAND 0x08|DisplayMode);
}

//设置输入模式************************************************************
#define LCD_AC_UP 0x02
#define LCD_AC_DOWN 0x00      // default

#define LCD_MOVE 0x01      // 画面可平移
#define LCD_NO_MOVE 0x00      //default

void LCD_SetInput(unsigned char InputMode)
{
LCD_Write(LCD_COMMAND 0x04|InputMode);
}

//初始化LCD************************************************************
void LCD_Initial()
{
LcdEn=0;
LCD_Write(LCD_COMMAND0x38);           //8位数据端口2行显示5*7点阵
LCD_Write(LCD_COMMAND0x38);
LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);    //开启显示 无光标
LCD_Write(LCD_COMMANDLCD_CLEAR_SCREEN);   //清屏
LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);       //AC递增 画面不动
}

//液晶字符输入的位置************************
void GotoXY(unsigned char x unsigned char y)
{
if(y==0)
LCD_Write(LCD_COMMAND0x80|x);
if(y=

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-07-25 20:05  ds1302时钟、温度、LCD1602显示,按键设置\
     文件       32136  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302
     文件       22056  2011-07-25 19:59  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.c
     文件      154636  2007-12-18 14:53  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.DSN
     文件        7525  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.hex
     文件          44  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.lnp
     文件       45712  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.LST
     文件       41410  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.M51
     文件       38259  2011-07-25 20:00  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.OBJ
     文件        1012  2011-07-25 20:04  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.Opt
     文件         691  2011-07-25 20:04  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.plg
     文件        1221  2011-07-25 20:01  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.PWI
     文件        1985  2011-07-25 20:04  ds1302时钟、温度、LCD1602显示,按键设置\DS1302.Uv2

评论

共有 条评论