教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 小学教育 >

12864液晶电子钟 具有按键可调、闹钟、温度显示

来源:网络收集 时间:2026-05-17
导读: 理解才是最主要 程序已全部通过硬件测试,请放心使用。(没有使用到DS1302) /************12864时钟显示函数*************/ /******实现时间走动、按键控制、蜂鸣器闹铃、温度显示******/ #includereg52.h #include stdio.h #define uchar unsigned char #d

理解才是最主要

程序已全部通过硬件测试,请放心使用。(没有使用到DS1302)

/************12864时钟显示函数*************/

/******实现时间走动、按键控制、蜂鸣器闹铃、温度显示******/

#include<reg52.h>

#include <stdio.h>

#define uchar unsigned char

#define uint unsigned int

/******************** 功能:定义液晶12864控制端接口

*********************/

sbit rs=P2^6;

// 注意: rw 控制端始终为低电平,直接在硬件上接低电平

sbit en=P2^7;

sbit wd=P2^0; //温度传感器信号线

/******************** 功能:定义蜂鸣器、按键 接口

*********************/

sbit beet=P2^2; //蜂鸣器定义

sbit key1=P1^0; //功能选择

sbit key2=P1^1; //至加

sbit key3=P1^2; //至减

sbit key4=P1^3; //北京时间与闹钟时间画面切换

/******************** 功能:定义数据初始值

******************************/

char hour=23,minute=59,second=58,count=0;

char shi=0,fen=0,miao=0,hm;

int years=2012;

char month=12,day=30,mm=0,cc=7;

uint temp;

float f_temp;

/******************** 功能:定义数组字符串 *********************/

uchar code table1[]={" 幸福牌电子钟 "};

uchar code table2[]={"温馨提示:00.0℃"};

/******************** 功能:延时函数 ***************************/

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

/******************* 功能:蜂鸣器响应 ***********************/

void fengmingqi()

{

beet=0;delay(1);beet=1;delay(1);

}

理解才是最主要

/******************** 功能:液晶12864读写数据 ******************/

void xieling_shu(uchar aa,uchar bb)

{

if(aa==1){rs=0;}

if(aa==0){rs=1;}

P0=bb;delay(1);

en=1; delay(1);

en=0; delay(1);

}

/******************** 功能:液晶12864写入地址 ******************/

void xieludizhi(uchar x, uchar y)

{

switch(x)

{

case 1: xieling_shu(1,0x80 + y ); return;//return 返回的意思

case 2: xieling_shu(1,0x90 + y ); return;

case 3: xieling_shu(1,0x88 + y ); return;

case 4: xieling_shu(1,0x98 + y ); return;

}

}

/******************** 功能:液晶12864写入字符串 *****************/

void xiezifuchuan(uchar *dd)

{

while(*dd != '\0')

{

xieling_shu(0,*dd++ );

}

}

/******************** 功能:液晶12864清屏函数 *********************/

void qingping()

{

xieling_shu(1,0x01); //清屏

xieling_shu(1,0x01); //清屏

xieling_shu(1,0x01); //清屏

delay(20);

}

/******************** 功能:液晶12864初始化指令操作

******************/

void init_12864()

{

xieling_shu(1,0x30); //基本指令操作

xieling_shu(1,0x30); //基本指令操作

xieling_shu(1,0x0C); //0x0c: 无光标, OXOF: 光标反白显示

xieling_shu(1,0x01); //清屏

理解才是最主要

xieling_shu(1,0x06);

}

/******************** 功能:液晶12864初始化字串显示

******************/

void init_zifu()

{

xieludizhi(1,0);xiezifuchuan(" 欢迎使用 "); delay(1); xieludizhi(2,0);xiezifuchuan(" 幸福牌电子钟 "); delay(1); xieludizhi(3,0);xiezifuchuan(" 订购热线 "); delay(1); xieludizhi(4,0);xiezifuchuan("Phone:0777-66914"); delay(9534);

qingping();

xieludizhi(1,0);xiezifuchuan(table1); delay(1);

xieludizhi(4,0);xiezifuchuan(table2); delay(1);

xieludizhi(3,5);xiezifuchuan("星期");

xieludizhi(2,2);xiezifuchuan("年 月 日");

}

/******************* 功能:时间、年月日 显示函数 ********************/

void display()

{

xieludizhi(3,0); // 显示 时 分 秒

xieling_shu(0,0x30+hour/10);

xieling_shu(0,0x30+hour%10);

xieling_shu(0,':');

xieling_shu(0,0x30+minute/10);

xieling_shu(0,0x30+minute%10);

xieling_shu(0,':');

xieling_shu(0,0x30+second/10);

xieling_shu(0,0x30+second%10);

xieludizhi(2,0); // 显示 年

xieling_shu(0,0x30+years/1000);

xieling_shu(0,0x30+years%1000/100);

xieling_shu(0,0x30+years%100/10);

xieling_shu(0,0x30+years%10);

xieludizhi(2,3); // 显示 月

xieling_shu(0,0x30+month/10);

xieling_shu(0,0x30+month%10);

xieludizhi(2,5); // 显示 日

xieling_shu(0,0x30+day/10);

xieling_shu(0,0x30+day%10);

}

/******************* 功能:闹钟(时间、年月日) 显示函数

********************/

void display1()

{

理解才是最主要

xieludizhi(3,0); // 显示 时 分 秒

xieling_shu(0,0x30+shi/10);

xieling_shu(0,0x30+shi%10);

xieling_shu(0,':');

xieling_shu(0,0x30+fen/10);

xieling_shu(0,0x30+fen%10);

xieling_shu(0,':');

xieling_shu(0,0x30+miao/10);

xieling_shu(0,0x30+miao%10);

xieludizhi(2,0); // 显示 年

xieling_shu(0,0x30+years/1000);

xieling_shu(0,0x30+years%1000/100);

xieling_shu(0,0x30+years%100/10);

xieling_shu(0,0x30+years%10);

xieludizhi(2,3); // 显示 月

xieling_shu(0,0x30+month/10);

xieling_shu(0,0x30+month%10);

xieludizhi(2,5); // 显示 日

xieling_shu(0,0x30+day/10);

xieling_shu(0,0x30+day%10);

}

/******************* 功能:星期函数 *********************************/

void xingqi()

{

switch(cc)

{

case 1: xieludizhi(3,7); xiezifuchuan("一"); return;

case 2: xieludizhi(3,7); xiezifuchuan("二"); return;

case 3: xieludizhi(3,7); xiezifuchuan("叁"); return;

case 4: xieludizhi(3,7); xiezifuchuan("四"); return;

case 5: xieludizhi(3,7); xiezifuchuan("五"); return;

case 6: xieludizhi(3,7); xiezifuchuan("六"); return;

…… 此处隐藏:4083字,全部文档内容请下载后查看。喜欢就下载吧 ……
12864液晶电子钟 具有按键可调、闹钟、温度显示.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/40922.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)