1、元件清单
AT89C52 一块 LCD 一个 排阻 3个 DS1302 一个 DS18B20 一个 开关 5个 晶振 2个
瓷片电容 2个, 30PF 电解电容 一个, 33Uf 插针 若干 杜邦线 若干
2、程序
#include
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_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数 sbit Set = P2^0; //模式切换键 sbit Up = P2^1; //加法按钮 sbit Down = P2^2; //减法按钮
sbit out = P2^3; //立刻跳出调整模式按钮 sbit DQ = P1^0; //温度传送数据IO口 char done,count,temp,flag,up_flag,down_flag; uchar temp_value; //温度值 uchar TempBuffer[5],week_value[2];
void show_time(); //液晶显示程序
/***********1602液晶显示部分子程序****************/
//Port Definitions********************************************************** sbit LcdRs sbit LcdRw sbit LcdEn
= P2^5; = P2^6; = P2^7;
//P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
sfr DBPort = 0x80; //
内
部
等待函数
************************************************************************** unsigned char LCD_Wait(void) {
LcdRs=0;
LcdRw=1; _nop_(); LcdEn=1; _nop_();
LcdEn=0; return DBPort;
}//向LCD写入命令或数据************************************************************ #define LCD_COMMAND #define LCD_DATA
0 // Command
1 // Data
#define LCD_CLEAR_SCREEN #define LCD_HOMING
0x01 // 清屏
0x02 // 光标返回原点
void LCD_Write(bit style, unsigned char input) { }
//设置显示模式************************************************************ #define LCD_SHOW #define LCD_HIDE
#define LCD_CURSOR
0x02 //显示光标
0x00 //无光标
0x04 //显示开
LcdEn=0; LcdRs=style; LcdRw=0;
_nop_();
DBPort=input; _nop_();//注意顺序 LcdEn=1; LcdEn=0; LCD_Wait();
_nop_();//注意顺序 _nop_();
0x00 //显示关
#define LCD_NO_CURSOR
#define LCD_FLASH
0x01 //光标闪动 0x00 //光标不闪动
#define LCD_NO_FLASH
void LCD_SetDisplay(unsigned char DisplayMode) { }
//设置输入模式************************************************************ #define LCD_AC_UP
0x02
0x00 // default
LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
#define LCD_AC_DOWN
#define LCD_MOVE
0x01 // 画面可平移
0x00 //default
#define LCD_NO_MOVE
void LCD_SetInput(unsigned char InputMode) { }
//初始化LCD************************************************************ void LCD_Initial() {
LcdEn=0;
LCD_Write(LCD_COMMAND, 0x04|InputMode);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于利用时钟芯片DS1302实现万年历,1602LCD显示电子表 - 图文(2)在线全文阅读。
相关推荐: