完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include"reg52.h"
typedef unsigned char u8; //这两个可以不这样宏定义 typedef unsigned int u16; #define datapins P0 //其实可以不加,直接在下面用P0 ***it RW=P2^5; ***it RS=P2^6; ***it E=P2^7; ***it beep=P1^5; ***it k1=P1^4; //时钟功能键 ***it k2=P1^3; //增大键 ***it k3=P1^2; //减小键 ***it k4=P1^1; //闹钟功能键 u8 k1num,knnum,shi,fen,miao,nian,yue,ri,nshi,nfen,nmiao,nnian,nyue,nri,i,count,we,nwe; void delay(u16 c); //延时函数 误差 0us void LcdWriteCom(u8 com); //LCD1602写入8位命令子函数 void LcdWriteData(u8 dat); //LCD1602写入8位数据子函数 void init(); //初始化程序 void keyscan(); //按键程序 void di(); //发声函数 void write_sfm(u8 add,u8 date); //时间调节 void write_sfm1(u8 add,u8 date); //时间调节 void write_nyr(u8 add,u8 date); //时间调节 void write_nyr1(u8 add,u8 date); //时间调节 void lcd_init(); //LCD1602初始化函数 void delay(u16 c) //延时 误差 0us { u16 a,b; for (;c>0;c--) { for(b=199;b>0;b--) { for(a=1;a>0;a--); } } } void lcd_init() //lcd初始化函数 { E=0; RW=0; RS=0; LcdWriteCom(0x38); //开显示 LcdWriteCom(0x0c); //开显示不显示光标 LcdWriteCom(0x06); //写一个指针加1 LcdWriteCom(0x80); //设置数据指针起点 } void di() //发出di声 { beep=0; delay(100); beep=1; } void LcdWriteCom(u8 com) //写入命令 { datapins=com; //放入命令 delay(1); //等待数据稳定 E=1; //写入时序 delay(5); //保持时间 E=0; } void LcdWriteData(u8 dat) //写入数据 { E=0; //使能清零 RS=1; //选择输入数据 RW=0; //选择写入 datapins=dat; //写入数据 delay(1); E = 1; //写入时序 delay(5); //保持时间 E = 0; } void write_sfm(u8 add,u8 date) //时间调节 { u16 sh,ge; sh=date/10; ge=date%10; lcd_init(); LcdWriteCom(0x80+0x40+add); LcdWriteData(0x30+sh); LcdWriteData(0x30+ge); } void write_sfm1(u8 add,u8 date) //定时器用时间调节 { u16 sh,ge; sh=date/10; ge=date%10; if(knnum==0) { lcd_init(); LcdWriteCom(0x80+0x40+add); LcdWriteData(0x30+sh); LcdWriteData(0x30+ge); } } void write_nyr(u8 add,u8 date) //时间调节 { u16 sh,ge; sh=date/10; ge=date%10; lcd_init(); LcdWriteCom(0x80+add); LcdWriteData(0x30+sh); LcdWriteData(0x30+ge); } void write_nyr1(u8 add,u8 date) //定时器用时间调节 { u16 sh,ge; sh=date/10; ge=date%10; if(knnum==0) { lcd_init(); LcdWriteCom(0x80+add); LcdWriteData(0x30+sh); LcdWriteData(0x30+ge); } } void write_week(u8 we) { LcdWriteCom(0x80+13); switch(we) { case 1:LcdWriteData('M');delay(5); LcdWriteData('O');delay(5); LcdWriteData('N'); break; case 2:LcdWriteData('T');delay(5); LcdWriteData('U');delay(5); LcdWriteData('E'); break; case 3:LcdWriteData('W');delay(5); LcdWriteData('E');delay(5); LcdWriteData('D'); break; case 4:LcdWriteData('T');delay(5); LcdWriteData('H');delay(5); LcdWriteData('U'); break; case 5:LcdWriteData('F');delay(5); LcdWriteData('R');delay(5); LcdWriteData('T'); break; case 6:LcdWriteData('S');delay(5); LcdWriteData('A');delay(5); LcdWriteData('T'); break; case 7:LcdWriteData('S');delay(5); LcdWriteData('U');delay(5); LcdWriteData('N'); break; } } void write_week1(u8 nwe) { LcdWriteCom(0x80+13); switch(nwe) { case 1:LcdWriteData('M');delay(5); LcdWriteData('O');delay(5); LcdWriteData('N'); break; case 2:LcdWriteData('T');delay(5); LcdWriteData('U');delay(5); LcdWriteData('E'); break; case 3:LcdWriteData('W');delay(5); LcdWriteData('E');delay(5); LcdWriteData('D'); break; case 4:LcdWriteData('T');delay(5); LcdWriteData('H');delay(5); LcdWriteData('U'); break; case 5:LcdWriteData('F');delay(5); LcdWriteData('R');delay(5); LcdWriteData('T'); break; case 6:LcdWriteData('S');delay(5); LcdWriteData('A');delay(5); LcdWriteData('T'); break; case 7:LcdWriteData('S');delay(5); LcdWriteData('U');delay(5); LcdWriteData('N'); break; } } void init() //初始化程序 { E=0; RW=0; RS=0; shi=23; fen=59; miao=55; nian=18; yue=7; ri=30; we=1; nwe=2; k1num=0; //时钟k1计数 knnum=0; //闹钟k4计数 nshi=0; nfen=0; nmiao=5; nnian=18; nyue=8; nri=1; LcdWriteCom(0x38); //开显示 LcdWriteCom(0x0c); //开显示不显示光标 LcdWriteCom(0x06); //写一个指针加1 LcdWriteCom(0x01); //清屏 LcdWriteCom(0x80); //设置数据指针起点 delay(5);
|
|
相关推荐
|
|
就是这样,这个代码是可以单独调整星期跟日期的,但没有月份和闰平年的区分算法。是直接用单片机就行了。我这文件的原理就是根据LCD1602,定时器而写的
|
|
|
|
|
|
开这是在开发板上的效果图,有电路图和烧写文件吗?分享一下
|
|
|
|
手机版论坛有问题,回复只能看到右半部分。看不到左边写的什么?
|
|
|
|
请问我把程序弄进去了为什么1602就是不显示
|
|
|
|
|
|
690 浏览 0 评论
735 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
624 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
1099 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1092 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11794 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-26 09:01 , Processed in 1.441768 second(s), Total 128, Slave 96 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号