历史上的今天
今天是:2024年09月16日(星期一)
2020年09月16日 | 51单片机lcd1602d电子时钟设计
2020-09-16 来源:51hei
由于课程设计需要,本人做了一个基于51单片机控制的lcd1602d显示的电子时钟电子设计产品。可以显示万年历,星期。
本来还想加上温湿度的检测,发现屏幕空间不够用了。。有需要可以再另外共享那个设计。第一次
单片机源程序如下:
#include #define uint unsigned int #define uchar unsigned char sbit rs=P1^0; sbit rw=P1^1; sbit en=P1^2; sbit key_set=P3^4; sbit key_up=P3^5; sbit key_down=P3^6; uchar code table1[]="2017/04/18 Aiice:"; uchar code table2[]="00:00:00 "; uchar num,aa,sec,min,hou,week,day,mon,year,key_num; void write_week(uchar week); void delay(uint z) { uint x,y; for (x=z;x>0;x--) { for(y=250;y>0;y--); } } void write_dat(uchar); // void write_com(uchar); // void init(); void display_1(uchar add,uchar acc); void display_2(uchar add,uchar acc); // void write_week(uchar week) { write_com(0x80+0x40+12); switch(week) { case 1: write_dat('M');delay(5); write_dat('O');delay(5);write_dat('N');break; case 2: write_dat('T');delay(5);write_dat('U');delay(5);write_dat('E');break; case 3: write_dat('W');delay(5);write_dat('E');delay(5);write_dat('D');break; case 4: write_dat('T');delay(5);write_dat('H');delay(5);write_dat('U');break; case 5: write_dat('F');delay(5);write_dat('R');delay(5);write_dat('I');break; case 6: write_dat('S');delay(5);write_dat('A');delay(5);write_dat('T');break; case 7: write_dat('S');delay(5);write_dat('U');delay(5);write_dat('N');break; } } void keyscan() // { if(key_set==0) { delay(5); if(key_set==0) { while(!key_set); key_num++; if(key_num==1) //定位到秒 { TR0=0; write_com(0x80+0x40+7); write_com(0x0f); if(key_up==0) { delay(5); if(key_up==0) { while(!key_up); //up_num++; sec++; if(sec==60) { sec=0;min=min+1;} display_2(7,sec); write_com(0x80+0x40+7); } } } ////////////////////////////////////// if(key_num==2) //定位到分 { TR0=0; write_com(0x80+0x40+4); } if(key_num==3) //定位到时 { TR0=0; write_com(0x80+0x40+1); } if(key_num==4) //定位到日 { TR0=0; write_com(0x80+9); } if(key_num==5) //定位到月 { TR0=0; write_com(0x80+6); } if(key_num==6) //定位到年 { TR0=0; write_com(0x80+3); } if(key_num==7) //保存设置 { //TR0=0; key_num=0; write_com(0x0c);//取消闪烁 TR0=1; } } } if(key_num!=0) { if(key_up==0) { delay(5); if(key_up==0) { while(!key_up); if(key_num==1) { sec++; if(sec==60) { sec=0;min=min+1; display_2(3,min); write_com(0x80+0x40+4); } display_2(6,sec); //6表示十位数字的位置,则各位数字在7.(大发现!!!) write_com(0x80+0x40+7);//光标闪烁的位置(在个位) } if(key_num==2) { min++; if(min==60) { min=0;hou=hou+1; display_2(0,hou); write_com(0x80+0x40+1); } display_2(3,min); write_com(0x80+0x40+4); } if(key_num==3) { hou++; if(hou==24) { hou=0;day=day+1;week++; display_1(8,day); write_com(0x80+9);
史海拾趣
|
RFID标签的生产链虽然不长,但需要的设备却不少。从制造过程来看,分为芯片制造、天线制造、芯片倒贴或邦定、合成材料印刷、层压或覆膜合成几大工序。 1. 天线印刷天线可以采用传统的腐蚀天线或印刷天线。腐蚀天线可以是铝箔或铜箔。生产商需要 ...… 查看全部问答> |
|
小弟现在正移植ucfs文件系统到nucleus上面,大概知道了一些切入点,可是发现对具体的设备移植的时候要明白具体的硬件操作,比如说sd卡的内部擦除、写啊等操作,还需要自己写相关的操作函数,有点困难。 能不能给介绍下sd驱动的编程,sd和mmc是不是 ...… 查看全部问答> |
|
我按照汉之云的资料修改了stm8s_map.h,文件又重新配库的.h文件,因为我用STM8S103K,编译通过,我用STLINK调的时发现程序跑飞然后,请大家看看,STM8到底行不行啊,还有我共20键,我用STLINK关察那个初始化数组始终显示9个,闷 ...… 查看全部问答> |




