历史上的今天
今天是:2025年02月13日(星期四)
2020年02月13日 | 单片机驱动19264液晶大数字时钟程序
2020-02-13 来源:51hei
弄了个简单的19264液晶时钟,采用大数字显示,用DS1302和ds12cr887时钟芯片,分别两个对应程序。只有时、分、秒和温度显示。
仿真原理图如下

单片机源程序如下:
/*系统头文件--------------------------------------------------------------------*/
#include #include /*包含的文件--------------------------------------------------------------------*/ #include "MODEL.h" #include "LCD19264.h" #include "DS12CR887.h" #include "DS18B20.h" /*定义变量名--------------------------------------------------------------------*/ #define uchar unsigned char #define uint unsigned int /*定义变量----------------------------------------------------------------------*/ bit q=0,w=0; //调时标志位 /*定义时间变量——————————————————————————————————————————————————————————————————*/ uchar sec,min,hour; /*定义按键----------------------------------------------------------------------*/ sbit K1 = P1^7; //按键K1-设置 sbit K2 = P1^4; //按键K2-确认、返回 sbit K3 = P1^6; //按键K3-加 sbit K4 = P1^5; //按键K4-减 sbit K5 = P1^3; //液晶背光控制按键,按一下亮,再按一下灭 sbit BEEP= P1^2; //蜂鸣器 sbit BLA = P1^0; //液晶背光控制输出,低电平有效,PNP三极管控制。 /*显示时、分、秒————————————————————————————————————————————————————————————————*/ void displaytime(void) { //往液晶屏填写"小时"数据----------------------------------------------- hour=ds_read(4); //读取DS12CR887的小时数据 if((hour/10)==0){Show3264(0,0,11);} else {Show3264(0,0,(hour/10));} //小时十位 Show3264(0,1,(hour%10)); //小时个位 Show3264(0,2,10); //时钟分隔符":" //往液晶屏填写"分钟"数据----------------------------------------------- min=ds_read(2); //读取DS12CR887的分数据 Show3264(0,3,(min/10)); //分钟十位 Show3264(0,4,(min%10)); //分钟个位 //往液晶屏填写"秒"数据------------------------------------------------- sec=ds_read(0); //读取DS12CR887的秒数据 Show1632(2,10,(sec/10)); //秒钟十位 Show1632(2,11,(sec%10)); //秒钟个位 } /*设置日期、时间函数------------------------------------------------------------*/ void Set_time(uchar sel) { signed char address,item; signed char max,mini; ds_write(0x0a,0x00); //开始调时,DS12CR887关闭时钟振荡器 ShowHZ(0,10,0); //显示"设" ShowHZ(0,11,1); //显示"置" if(sel==2) {ShowHZ(1,10,6);ShowHZ(1,11,3);address=0; max=59;mini=0;}//秒钟 if(sel==1) {ShowHZ(1,10,2);ShowHZ(1,11,3);address=2; max=59;mini=0;}//分钟 if(sel==0) {ShowHZ(1,10,4);ShowHZ(1,11,5);address=4; max=23;mini=0;}//小时 item=ds_read(address); //读取DS12CR887某地址上的数值赋给item if(K3 == 0) {item++;} //K3-加数:1 if(K4 == 0) {item--;} //K4-减数:1 if(item>max) item=mini; //限制数值最大有效范围 if(item displaytime(); //显示时间 } /*主函数------------------------------------------------------------------------*/ void main() { uchar e=0; K1=1;K2=1;K3=1;K4=1;K5=1; //按健复位 BLA=0; //打开液晶、按键背光 BEEP=0; //蜂鸣器响50毫秒 DelayM(50); BEEP=1; ds_int(); //DS12CR887初始化 InitLCD(); //液晶屏初始化 while(1) { if(w==0) { displaytime(); read_temp(); //读取温度 ds1820disp(); //显示温度 } //正常走时 else {} //否则启动调时 //设置键------------------------------------------------------------------------ if (K1 == 0) // 设置时间 { DelayM(20); //按键消抖 if(K1 == 0 && w == 1) //当是调时状态 本键用于调整下一项 { e++; if (e >= 3 ){e = 0;} Set_time(e); //调整 } if(K1 == 0 && w == 0) //当是正常状态时就进入调时状态 { ClearScreen(0); ClearScreen(1); ClearScreen(2); //清除左中右屏显示 w=1; //进入调时 Set_time(e); //调整 } while(K1 == 0); //等待键松开 } //确认,返回键------------------------------------------------------------------- if (K2 == 0) //在调时状态时就退出调时 { DelayM(20); //按键消抖 if(K2 == 0 && w == 1) { w = 0; //退出调时
史海拾趣
|
加拿大一家企业最近推出可取代现有汽车液晶显示器的显示系统。该系统在仪表盘内部设置小型投影机,可以向整个仪表盘投射内容并显示,既可使画面尺寸大型化,又可在仪表盘之类的曲面上显示。另外,如只需改变投影图像,就能更改仪表盘的外形,以满足 ...… 查看全部问答> |
|
请帮忙推荐一款元器件I-V曲线测试仪,用作手机领域电子器件的失效分析用,要求价格适中。 我们工厂现在用的是Sony 370A programmable curve tracer,我需要与之功能类似的I-V曲线测试仪。 我的邮箱为liuping_davy@yahoo.com.cn 谢谢大家。 [ 本 ...… 查看全部问答> |
|
看到坛子里正在带着大家做电子钟,看到了一个博客,写的很清晰,引用过来供大家参考: LED3216电子钟是由LED3216点阵显示系统升级过来的,在这个过程中硬件电路也有过几次变动,如果不是跟着我一起升级过来的爱好者, ...… 查看全部问答> |
|
这是我找到的一些信息,供大家参考下~~~~ 日前,德州仪器 (TI) 宣布推出业界最低功耗 6 核 DSP,该款 TMS320C6472 器件旨在满足要求极低功耗的处理密集型应用的需求。此外,为了更便捷、更经济地评估 C6472 器件的性能,TI 还同步推出了一款多核处 ...… 查看全部问答> |
|
需要一些提示! 因为对数据的传输要求高! 我是利用SPI 来实现向设备写数据的,而且写数据时在设备触发的IST中的! 我想用DMA的方式来做! 【平台】 2440 wince5.0… 查看全部问答> |
|
急需compactPCI 相关规范,尤其compactPCI hot swap specification 哪个好心人给发一份吧, 邮箱:dashu124@yahoo.com.cn QQ: 277642914… 查看全部问答> |
|
请教各位大侠,如何快速地利用板子上已有的+5V和+12V产生-5v和-12v电压? 采用什么芯片或者电路构建比较简单合理呢? 补充: -12v负电压没什么要求,只要引到LF353的4脚给他做负电源就行了~ 板子上的+5v和+12v是通过PC104总线 ...… 查看全部问答> |
|
—地下停车场LED智能灯应用及前景展望 经过数年的理论积淀、技术研发及产品推广,华威凯德照明科技(北京)有限公司在半导体照明领域取得了显著成绩。公司率先提出的“按需照明”理念已为业内专家、同行及社会各界广泛接受,以地下停车场LED智能 ...… 查看全部问答> |




