12864液晶电子钟 具有按键可调、闹钟、温度显示
理解才是最主要
程序已全部通过硬件测试,请放心使用。(没有使用到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字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




