久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
12864液晶萬年歷制作
[打印本頁]
作者:
51hei人人
時間:
2016-3-12 21:22
標題:
12864液晶萬年歷制作
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit LCD_RS=P2^6;
sbit LCD_RW=P2^5;
sbit LCD_EN=P2^7;
sbit LCD_PSB=P3^2;
sbit s1=P1^4; //獨立按鍵
sbit s2=P1^5;
sbit s3=P1^6;
sbit rd=P1^7;
sbit beep=P2^3; //定義蜂鳴器端口
uchar miao,shi,fen,mon,day,week,year1,year2,i, s1num,count;
uint a,b,year;
uchar code dis2[]={"星期 "};
uchar code dis3[]={ "風雨戀情"};
void delay_1ms(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void di() //蜂鳴器
{
beep=0;
delay_1ms(100);
beep=1;
}
void write_cmd(uchar cmd) //寫命令
{
LCD_RS=0;
LCD_RW=0;
LCD_EN=0;
P0=cmd;
delay_1ms(5);
LCD_EN=1;
delay_1ms(5);
LCD_EN=0;
}
void write_dat(uchar dat) //寫數據
{
LCD_RS=1;
LCD_RW=0;
LCD_EN=0;
P0=dat;
delay_1ms(5);
LCD_EN=1;
delay_1ms(5);
LCD_EN=0;
}
void write_sfm(uchar add,char dat) //寫時分秒
{
uchar shi1,ge1;
shi1=dat/10;
ge1=dat%10;
write_cmd(0x90+add); //寫顯示地址的指令
write_dat(0x30+shi1);
write_dat(0x30+ge1);
//ge2=dat%10;
//write_cmd(0x88+add);
// write_dat(0x30+ge2);
}
void write_nyr(uchar add,char dat) //寫年月
{
char shi,ge;
shi=dat/10;
ge=dat%10;
write_cmd(0x80+add);
write_dat(0x30+shi);
write_dat(0x30+ge);
}
void write_week(uchar add,char dat) //寫星期
{
char ge2;
ge2=dat%10;
write_cmd(0x88+add);
write_dat(0x30+ge2);
}
void init()
{ //初始化 2014年11月6日星期1 23:59:59
LCD_PSB=1;
rd=0;
LCD_EN=0;
fen=59;
miao=59;
shi=23;
week=1;
year1=20;
year2=14;
mon=11;
day=6;
count=0;
s1num=0;
TMOD=0x01; //中斷0,方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
write_cmd(0x30);
delay_1ms(5);
write_cmd(0x0c);
delay_1ms(5);
write_cmd(0x01);
delay_1ms(5);
write_cmd(0x91);
write_dat(':');
delay_1ms(5);
write_cmd(0x93);
write_dat(':');
delay_1ms(5);
write_sfm(4,miao);
write_sfm(2,fen);
write_sfm(0,shi) ;
write_cmd(0x82);
write_dat('-');
delay_1ms(5);
write_cmd(0x84);
write_dat('-');
delay_1ms(5);
write_nyr(5,day);
write_nyr(3,mon);
write_nyr(0,year1);
write_nyr(1,year2);
write_week(2,week);
}
void keyscan() //獨立鍵盤檢測
{
if(s1==0)
{
delay_1ms(5);
if(s1==0)
{
s1num++;
while(!s1);
di();
if(s1num==1)
{
TR0=0;
write_cmd(0x80); //光標定位到年的位置
write_cmd(0x0f); //光標開始閃數
}
if(s1num==2)
{
write_cmd(0x81); //光標定位到年的位置
}
if(s1num==3)
{
write_cmd(0x83); //光標定位到月的位置
}
if(s1num==4)
{
write_cmd(0x85); //光標定位到天的位置
}
if(s1num==5)
{
write_cmd(0x90); //光標定位到時的位置
}
if(s1num==6)
{
write_cmd(0x92); //光標定位到分的位置
}
if(s1num==7)
{
write_cmd(0x94); //光標定位到秒的位置
}
if(s1num==8)
{
write_cmd(0x8a); //光標定位到星期的位置
}
if(s1num==9)
{
s1num=0;
write_cmd(0x0c); //取消光標閃數
TR0=1; //啟動定時器
}
}
}
if(s1num!=0) //只有功能鍵被按下后,增大和減小鍵才有效
{
if(s2==0)
{
delay_1ms(5);
if(s2==0)
{
while(!s2);
di();
if(s1num==1)
{
year1++;
if(year1==99)
year1=0;
write_nyr(0,year1);
write_cmd(0x80);
}
if(s1num==2)
{
year2++;
if(year2==99)
year2=0;
write_nyr(1,year2);
write_cmd(0x81);
}
if(s1num==3)
{
mon++;
if(mon==13)
mon=1;
write_nyr(3,mon);
write_cmd(0x83);
}
if(s1num==4)
{
day++;
if(day==a+1)
day=1;
write_nyr(5,day);
write_cmd(0x85);
}
if(s1num==5)
{
shi++;
if(shi==23)
shi=0;
write_sfm(0,shi);
write_cmd(0x90);
}
if(s1num==6)
{
fen++;
if(fen==59)
fen=0;
write_sfm(2 ,fen);
write_cmd(0x92);
}
if(s1num==7)
{
miao++;
if(miao==59)
miao=0;
write_sfm(4,miao);
write_cmd(0x94);
}
if(s1num==8)
{
week++;
if(week==8)
week=0;
write_week(2,week);
write_cmd(0x8a);
}
}
}
if(s3==0)
{
delay_1ms(5);
if(s3==0)
{
while(!s3);
di();
if(s1num==1)
{
year1--;
if(year1==-1)
year1=99;
write_nyr(0,year1);
write_cmd(0x80);
}
if(s1num==2)
{
year2--;
if(year2==-1)
year2=99;
write_nyr(1,year2);
write_cmd(0x81);
}
if(s1num==3)
{
mon--;
if(mon==0)
mon=12;
write_nyr(3,mon);
write_cmd(0x83);
}
if(s1num==4)
{
day--;
if(day==0)
day=a;
write_nyr(5,day);
write_cmd(0x85);
}
if(s1num==5)
{
shi--;
if(shi==-1)
shi=23;
write_sfm(0,shi);
write_cmd(0x90);
}
if(s1num==6)
{
fen--;
if(fen==-1)
fen=59;
write_sfm(2 ,fen);
write_cmd(0x92);
}
if(s1num==7)
{
miao--;
if(miao==-1)
miao=59;
write_sfm(4,miao);
write_cmd(0x94);
}
if(s1num==8)
{
week--;
if(week==0)
week=7;
write_week(2,week);
write_cmd(0x8a);
}
}
}
}
}
void display()//判斷月份年份天數
{
year=year2+year1*100;
if(mon==1||3||5||7||8||10||12)
a=31;
if(mon==4||6||9||11)
a=30;
if(mon==2)
{
if(year%4!=0)
a=28;
else
a=29;
}
}
void main()
{
init();
write_cmd(0x98); //地址
for(i=0;i<8;i++)
{
write_dat(dis3[i]);
delay_1ms(5);
}
write_cmd(0x88); //地址
for(i=0;i<4;i++)
{
write_dat(dis2[i]);
delay_1ms(5);
}
while(1)
{
keyscan();
display();
}
}
void timer0()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)
{
count=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
day++;
week++;
if(week==7)
{
week=0;
}
if(day==a)
{
day=0;
mon++;
if(mon==12)
{
mon=0;
year2++;
if(year2==99)
{
year2=-1;
year1++;
}
write_nyr(0,year1);
write_nyr(1,year2);
}
write_nyr(3,mon);
}
write_nyr(5,day);
}
write_week(2,week);
write_sfm(0,shi);
}
write_sfm(2,fen);
}
write_sfm(4,miao);
}
}
復制代碼
作者:
drci
時間:
2024-1-21 22:40
感謝分享,跟著這么好的例子容易上手
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
a级网站
|
羞羞网站免费观看
|
久久久精品黄色
|
成人免费在线小视频
|
一级片成人
|
91高清免费观看
|
一区二区中文
|
国产精品久久久久久婷婷天堂
|
91在线观看
|
在线免费观看黄a
|
男女深夜网站
|
日韩免费在线视频
|
视频1区2区
|
亚洲天堂一区二区
|
国产女人第一次做爰毛片
|
在线电影日韩
|
国产乱码久久久久久一区二区
|
日韩黄a
|
亚洲在线观看视频
|
成人午夜激情
|
欧美一级毛片在线播放
|
h视频在线免费看
|
国产日韩欧美精品一区二区三区
|
久夜精品
|
成人日韩精品
|
色天堂影院
|
男人天堂99
|
伊人久久免费视频
|
www.亚洲精品
|
亚洲精品久久久久久久久久久久久
|
国产激情一区二区三区
|
精品国产一区二区在线
|
国产a一区二区
|
国产精品久久国产精品99 gif
|
男女视频在线观看网站
|
久久亚洲一区
|
九九热精品视频
|
中国大陆高清aⅴ毛片
|
日韩一级免费电影
|
91久久精品日日躁夜夜躁欧美
|
精品乱子伦一区二区三区
|