久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
利用NOKIA 3310 LCD 顯示屏做個電子時鐘
[打印本頁]
作者:
lianlian
時間:
2015-7-10 02:10
標題:
利用NOKIA 3310 LCD 顯示屏做個電子時鐘
做了一個3310顯示的時鐘,只是用到定時器,簡單一點。
//E:\DPJ-C\3310-16\3310_CLOCK\3310_CLOCK.C 2012 01 05
#include<reg51.h>
#include<intrins.h>
#include"tab.h"
#include"tab1.h"
#define uchar unsigned char
#define uint unsigned int
sbit SCLK=P1^0;
sbit SDIN=P1^1;
sbit DC=P1^2;
sbit SCE=P1^3;
sbit RES=P1^4;
sbit key_s_p=P3^0;
sbit key_clear=P3^1;
sbit key_hh=P3^2;
sbit key_mm=P3^3;
sbit key_ss=P3^4;
uchar time,time1,num,hh,mm,ss,h_1,h_0,m_1,m_0,s_1,s_0;
bit flag,Lkey;
void delay(uint ms);
void keyscan();
void TimerINTinit();
void write_dat(uchar dat);
void write_com(dat);
void set_add(uchar x,uchar y);
void clear_scr();
void disp_HH_MM(uchar x,uchar y,uchar *p );
void disp_SS(uchar x,uchar y,uchar *s);
void init_3310();
void TimerINTinit()
{
TMOD=0x11;
EA=1;
ET0=1;
ET1=1;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
}
void keyscan()
{
while(!key_s_p)
{
delay(10);
if(key_s_p)
TR0=!TR0;
}
while(!key_clear) //清零鍵
{
delay(10);
if(key_clear)
{
TR0=0;
hh=0;
mm=0;
ss=0;
}
}
while(!key_hh) //調時鍵
{
delay(10);
TR1=1;
if(time1>=10)
{
time1=0;
Lkey=1; //長按標志置1
}
if(key_hh)
{
TR1=0;
time1=0;
if(Lkey)
{
hh=hh+10;
Lkey=0;
if(hh>24)
hh=0;
}
else
{
hh++;
}
}
if(hh==24)
hh=0;
}
while(!key_mm) //調分鍵
{
delay(10);
TR1=1;
if(time1>=10)
{
time1=0;
Lkey=1; //長按標志置1
}
if(key_mm)
{
TR1=0;
time1=0;
if(Lkey)
{
mm=mm+10; //長按加10
Lkey=0;
if(mm>60)
mm=0;
}
else
{
mm++;
}
}
if(mm==60)
mm=0;
}
while(!key_ss) //調秒鍵
{
delay(10);
TR1=1;
if(time1>=10)
{
time1=0;
Lkey=1; //長按標志置1
}
if(key_ss)
{
TR1=0;
time1=0;
if(Lkey)
{
ss=ss+10; //長按加10
Lkey=0;
if(ss>60)
ss=0;
}
else
{
ss++;
}
}
if(ss==60)
ss=0;
}
}
void delay(uint ms)
{
uchar i;
while(ms--)
for(i=0;i<123;i++);
}
void write_dat(uchar dat)
{
uchar i;
SCE=0;
for(i=0;i<8;i++)
{
SCLK=0;
dat<<=1;
SDIN=CY;
_nop_();
_nop_();
_nop_();
SCLK=1;
}
DC=1;
SCE=1;
}
void write_com(dat)
{
DC=0;
write_dat(dat);
}
void set_add(uchar x,uchar y)
{
write_com(x|0x80);//設置RAM的x地址 1 X?6?4 X?6?3 X?6?2 X?6?1 X?6?0 X?6?9 X?6?8
write_com(y|0x40);//設置RAM的y地址 0 1 0 0 0 Y?6?0 Y?6?9 Y?6?8
}
void clear_scr()
{
uchar i,j;
for(i=0;i<6;i++) //6行、84列
{
write_dat(0x00);
while(j<84)
{
write_dat(0x00);
j++;
}
j=0;
}
}
void disp_HH_MM(uchar x,uchar y,uchar *p )
{
uint i;
set_add(x,y);
{
for(i=0;i<16;i++)
{
write_dat(p[2*i]);
}
}
set_add(x,y+1);
{
for(i=0;i<16;i++)
{
write_dat(p[2*i+1]);
}
}
}
void disp_SS(uchar x,uchar y,uchar *s)
{
uint i;
set_add(x,y);
{
for(i=0;i<8;i++)
{
write_dat(s[i]);
}
}
}
void init_3310()
{
write_com(0x21); //功能設定,使用擴充命令
write_com(0x99); //設定液晶電壓
write_com(0x20); //使用基本命令
write_com(0x0d); //設定顯示模式,反白顯示
clear_scr();
}
void main()
{
TimerINTinit();
RES=0;
RES=0;
RES=0;
RES=0;
_nop_();
_nop_();
RES=1;
init_3310();
while(1)
{
keyscan();
if(ss==60)
{
ss=0;
mm++;
if(mm==60)
{
mm=0;
hh++;
}
if(hh==24)
hh=0;
}
h_1=hh/10;
h_0=hh%10;
m_1=mm/10;
m_0=mm%10;
s_0=ss%10;
s_1=ss/10;
disp_HH_MM(0x02,0x02,tab+h_1);
disp_HH_MM(0x12,0x02,tab+h_0);
disp_HH_MM(0x30,0x02,tab+m_1);
disp_HH_MM(0x40,0x02,tab+m_0);
disp_SS(0x40,0x05,tab1+s_1);
disp_SS(0x48,0x05,tab1+s_0);
if(!flag)
disp_HH_MM(0x21,0x02,tab+10);
else
disp_HH_MM(0x21,0x02,tab+11);
}
}
void T0INT()interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
time++;
if(time==20)
{
time=0;
ss++;
flag=!flag;
}
}
void T1INT()interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
time1++; //長按標志
}
復制代碼
"TAB.H"
//16x16 逐列、逆向、陰碼 Microsoft Sans Serif 寬 31 高 25
unsigned char code tab[12][32]=
{
{0x00,0x00,0xE0,0x0F,0xF8,0x3F,0xFC,0x7F,0x1C,0x70,0x0E,0xE0,0x06,0xC0,0x06,0xC0,
0x06,0xC0,0x06,0xC0,0x0E,0xE0,0x1C,0x70,0xFC,0x7F,0xF8,0x3F,0xE0,0x0F,0x00,0x00,},/*"0",0*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x38,0x00,0x18,0x00,
0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*"1",1*/
{0x00,0x00,0x10,0xE0,0x18,0xE0,0x1C,0xF0,0x0E,0xD8,0x06,0xD8,0x06,0xCC,0x06,0xCC,
0x06,0xC6,0x06,0xC6,0x06,0xC3,0x8E,0xC1,0xFC,0xC1,0xFC,0xC0,0x78,0xC0,0x00,0x00,},/*"2",2*/
{0x00,0x00,0x10,0x30,0x1C,0x70,0x1C,0x70,0x0E,0xE0,0x06,0xC0,0x86,0xC1,0x86,0xC1,
0x86,0xC1,0x86,0xC1,0xCE,0xC3,0xFC,0x63,0x7C,0x7F,0x38,0x3E,0x00,0x1C,0x00,0x00,},/*"3",3*/
{0x00,0x00,0x00,0x0E,0x00,0x0F,0x80,0x0D,0xC0,0x0C,0x60,0x0C,0x60,0x0C,0x30,0x0C,
0x18,0x0C,0x0C,0x0C,0xFE,0xFF,0xFE,0xFF,0xFE,0xFF,0x00,0x0C,0x00,0x0C,0x00,0x00,},/*"4",4*/
{0x00,0x00,0x00,0x10,0xE0,0x71,0xFE,0x71,0xFE,0xE1,0x9E,0xC0,0xC6,0xC0,0xC6,0xC0,
0xC6,0xC0,0xC6,0xC0,0xC6,0xE1,0xC6,0x71,0x86,0x7F,0x06,0x3F,0x00,0x1E,0x00,0x00,},/*"5",5*/
{0x00,0x00,0xE0,0x0F,0xF8,0x3F,0xFC,0x7F,0xBC,0x71,0x8E,0xE1,0xC6,0xC0,0xC6,0xC0,
0xC6,0xC0,0xC6,0xC0,0xC6,0xE1,0xCE,0x61,0x9C,0x7F,0x1C,0x3F,0x10,0x1E,0x00,0x00,},/*"6",6*/
{0x00,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x80,0x06,0xE0,0x06,0xF0,0x06,0xFC,
0x06,0x3F,0xC6,0x0F,0xE6,0x03,0xFE,0x01,0x7E,0x00,0x1E,0x00,0x06,0x00,0x00,0x00,},/*"7",7*/
{0x00,0x00,0x00,0x3C,0x38,0x7E,0x7C,0x7E,0xFC,0xE7,0xCE,0xC3,0xC6,0xC1,0x86,0xC1,
0x86,0xC1,0xC6,0xC1,0xCE,0xC3,0xFC,0xE7,0x7C,0x7E,0x38,0x7E,0x00,0x3C,0x00,0x00,},/*"8",8*/
{0x00,0x00,0xF0,0x10,0xF8,0x71,0xFC,0x73,0x0C,0xE7,0x0E,0xC7,0x06,0xC6,0x06,0xC6,
0x06,0xC6,0x06,0xC6,0x0E,0xE3,0x1C,0x7B,0xFC,0x7F,0xF8,0x1F,0xE0,0x0F,0x00,0x00,},/*"9",9*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x30,0x30,
0x30,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*":",10*/
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,},/*" ",11*/
};
/***************************************************************/
復制代碼
"TAB1.H"
// 8x8 逐列、逆向、陰碼 Microsoft Sans Serif 字寬 14 字高 12
unsigned char code tab1[10][8]=
{
{0x00,0x7C,0x82,0x82,0x82,0x82,0x7C,0x00,},/*"0",0*/
{0x00,0x00,0x04,0x04,0xFE,0x00,0x00,0x00,},/*"1",1*/
{0x00,0x84,0xC2,0xA2,0xA2,0x92,0x8C,0x00,},/*"2",2*/
{0x00,0x44,0x82,0x92,0x92,0x92,0x6C,0x00,},/*"3",3*/
{0x00,0x20,0x30,0x28,0x24,0xFE,0x20,0x00,},/*"4",4*/
{0x00,0x4E,0x8A,0x8A,0x8A,0xCA,0x72,0x00,},/*"5",5*/
{0x00,0x7C,0xD6,0x92,0x92,0x92,0x64,0x00,},/*"6",6*/
{0x00,0x02,0x82,0x42,0x32,0x0A,0x06,0x00,},/*"7",7*/
{0x00,0x6C,0x92,0x92,0x92,0x92,0x6C,0x00,},/*"8",8*/
{0x00,0x4C,0x92,0x92,0x92,0xD2,0x7C,0x00,},/*"9",9*/
};
復制代碼
作者:
With_commands
時間:
2018-3-23 22:23
謝謝分享
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产wwwwww
|
久久久久性
|
国产中文在线
|
清清草视频
|
亚洲综合久久久
|
国产视频一区二区在线观看
|
欧美日韩免费在线观看
|
成人精品在线观看
|
日韩综合精品
|
国产精品欧美激情
|
天天射日日干
|
av免费网
|
成人三级晚上看
|
艳妇诱春(第5部分)(h)
|
在线观看av网站
|
免费观看一区二区
|
亚洲精品蜜桃
|
日韩免费在线观看视频
|
欧美日韩国产成人
|
性久久久久久
|
成人三级视频在线观看
|
天天综合永久入口
|
一级视频网站
|
91精品国产日韩91久久久久久
|
日韩精品国产精品
|
91成人国产
|
久久视频免费观看
|
久久久久国产一区二区三区
|
国产视频一区在线观看
|
四虎影院在线
|
欧美在线免费观看视频
|
九九视频在线观看
|
一区二区三区不卡视频
|
黄色a网站
|
欧美黄色片视频
|
91在线精品李宗瑞
|
免费91网站
|
视频一区二区在线观看
|
欧美日韩一区二区三区视频
|
九九九精品视频
|
欧美日韩免费在线
|