久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機lcd1602d電子時鐘設計
[打印本頁]
作者:
13538677177
時間:
2017-7-8 21:51
標題:
51單片機lcd1602d電子時鐘設計
由于課程設計需要,本人做了一個基于51單片機控制的lcd1602d顯示的電子時鐘電子設計產品。可以顯示萬年歷,星期。
本來還想加上溫濕度的檢測,發現屏幕空間不夠用了。。有需要可以再另外共享那個設計。第一次
0.png
(520.7 KB, 下載次數: 120)
下載附件
2017-7-9 04:59 上傳
0.png
(49.36 KB, 下載次數: 114)
下載附件
2017-7-9 04:59 上傳
單片機源程序如下:
#include<reg52.h>
#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);
}
display_2(0,hou); //時針的十位數字在屏幕的左邊第一個位置
write_com(0x80+0x40+1);
}
if(key_num==4)
{
day++;
//week++;
if(day==30)
{
day=0;mon=mon+1;
display_2(5,mon);
write_com(0x80+6);
}
display_1(8,day);
write_com(0x80+9);
}
}
}
if(key_down==0)
{
delay(5);
if(key_down==0)
{
while(!key_down);
if(key_num==1)
{
sec--;
if(sec==-1)
{ sec=59;min=min-1;
display_2(3,min);
write_com(0x80+0x40+4);
}
display_2(6,sec);
write_com(0x80+0x40+7);
}
if(key_num==2)
{
min--;
if(min==-1)
{
min=59;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==-1)
{hou=23;week--;}//星期還沒加入
display_2(0,hou);
write_com(0x80+0x40+1);
}
}
}
}
}
void main()
{
init();
write_week(week); //送到液晶屏顯示
while(1)
{
keyscan();
if(aa==20)
{
aa=0;
sec++;
if(sec==60)
{
sec=0;
min++;
if(min==60)
{
min=0;
hou++;
if(hou==24)
{
hou=0;
}
display_2(1,hou);
}
display_2(3,min);
}
display_2(6,sec);//在秒鐘那個位置開始加一
}
}
}
void write_com(uchar com)
{
rs=0;
en=1;
P0=com;
delay(5);
en=1;
delay(5);
en=0;
}
void write_dat(uchar dat)
{
rs=1;
en=1;
P0=dat;
delay(5);
en=1;
delay(5);
en=0;
}
void init()
{
key_set=key_up=key_down=1;
week=3;
rw=0;
en=0;
delay(50);
write_com(0x38); //
delay(1);
write_com(0x0c); // s
delay(1);
write_com(0x06); //
delay(1);
write_com(0x80); //
delay(1);
write_com(0x01); //
delay(1);
for(num=0;num<16;num++)
{
write_dat(table1[num]);
delay(1);
}
write_com(0x80+0x40); //左邊第二行第一個位置開始寫,往右(16個數據)
for(num=0;num<14;num++)
{
write_dat(table2[num]);
delay(1);
}
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
1602test03.7z
(436.38 KB, 下載次數: 225)
2017-7-8 21:51 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
無心梧桐
時間:
2018-1-10 18:25
你好,另外一個溫度的可以分享嗎
作者:
ALPHATTT
時間:
2018-3-7 19:24
棒棒噠
作者:
gty
時間:
2018-4-19 11:00
樓主 溫濕度可以共享嗎
作者:
Oerror
時間:
2018-5-29 17:32
為什么運行出來 顯示Wed 不能改哇
作者:
SHLMango
時間:
2019-3-14 19:40
厲害,厲害
作者:
liujielei1998
時間:
2019-4-17 22:58
這個設計太好了
作者:
屠魔幻影
時間:
2019-6-6 00:51
能不能發個電路原理圖
作者:
Elliott
時間:
2019-6-21 09:20
很好的帖子,謝謝樓主,但是能不能發一下原理圖呢
作者:
寂滅無為
時間:
2019-6-26 15:44
感謝樓主
作者:
hao18
時間:
2020-9-14 09:01
謝謝樓主的分享。下載來學習一下
作者:
ZZJ87
時間:
2020-9-15 14:44
圖紙真多,時鐘專家!
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久久久久成人网
|
亚洲欧美日韩一区
|
国产九九av
|
噜久寡妇噜噜久久寡妇
|
久久精品成人
|
欧美一级三级
|
欧美在线a
|
另类专区亚洲
|
欧美日韩国产精品一区
|
国产a视频
|
成人在线观看中文字幕
|
日韩影音
|
久久久青草婷婷精品综合日韩
|
欧美不卡一区二区
|
日韩免费看片
|
免费在线观看一级毛片
|
国产又爽又黄的视频
|
欧美成年人
|
精品一区二区三区免费视频
|
久久se精品一区精品二区
|
一级毛片视频在线
|
欧美在线视频一区
|
欧洲精品在线观看
|
北条麻妃国产九九九精品小说
|
一级片在线视频
|
精品久久久久久久久久久下田
|
久久久久久久久久久丰满
|
91精品久久久久
|
久久性
|
玖玖在线精品
|
国产福利91精品
|
99精品视频在线观看
|
欧美一区两区
|
中文天堂在线观看
|
99re在线视频观看
|
精品国偷自产在线
|
日日摸夜夜添夜夜添精品视频
|
成人精品鲁一区一区二区
|
久久久久国产一区二区三区
|
欧美在线一区二区三区四区
|
色性av
|