久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標(biāo)題:
矩陣鍵盤12864液晶實(shí)時(shí)時(shí)鐘程序
[打印本頁]
作者:
wudawei
時(shí)間:
2014-12-31 13:40
標(biāo)題:
矩陣鍵盤12864液晶實(shí)時(shí)時(shí)鐘程序
#include <reg51.h>
#include <intrins.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar shijian[6]={0x1,0x1,0x0,0x2,0x5,0x8};
uchar zi[]={"時(shí)分秒"};
uchar j,key;
char z,z1;
uchar m,mark=0,bz=0;
uint k=4000;
uchar i;
/* 端口定義*/
sbit LCD_RS = P2^7; //寄存器選擇輸入
sbit LCD_RW = P2^6; //液晶讀/寫控制
sbit LCD_EN = P2^5; //液晶使能控制
sbit LCD_PSB = P2^4; //串/并方式控制
void delay_1ms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++);
}
/*******************************************************************/
/* */
/*寫指令數(shù)據(jù)到LCD */
/*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。 */
/* */
/*******************************************************************/
void jud()
{char n=0,m=0,temp;
if(P1!=0xf0)
{delay_1ms(15);
if(P1!=0xf0)
bz=1;
}
if(bz==1)
{
uchar scan[4]={0xfe,0xfd,0xfb,0xf7};
uchar table[4][4]={0x7e,0xbe,0xde,0xee,0x7d,0xbd,0xdd,0xed,0x7b,0xbb,0xdb,0xeb,0x77,0xb7,0xd7,0xe7};
uchar num[4][4]={0,4,8,12,1,5,9,13,2,6,10,14,3,7,11,15};
while(n<4)
{P1=scan[n];temp=P1;m=0;
while(m<4)
{if(temp==table[n][m])
goto next;
else
m++;
}
n++;
}
next: key=num[n][m];
bz=1;
if(key==10)
mark=1;
}
P1=0XF0;
while(P1!=0xf0);
delay_1ms(15);
P1=0XF0;
}
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;
}
/*******************************************************************/
/* */
/*寫顯示數(shù)據(jù)到LCD */
/*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。 */
/* */
/*******************************************************************/
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;
}
/*********************************************************/
/* */
/* 設(shè)定顯示位置 */
/* */
/*********************************************************/
void lcd_pos(uchar X,uchar Y)
{
uchar pos;
if (X==0)
{X=0x80;}
else if (X==1)
{X=0x90;}
else if (X==2)
{X=0x88;}
else if (X==3)
{X=0x98;}
pos = X+Y ;
write_cmd(pos); //顯示地址
}
/*******************************************************************/
/* */
/* LCD初始化設(shè)定 */
/* */
/*******************************************************************/
void lcd_init()
{
LCD_PSB = 1; //并口方式
write_cmd(0x30); //基本指令操作
delay_1ms(5);
write_cmd(0x0C); //顯示開,關(guān)光標(biāo)
delay_1ms(5);
write_cmd(0x01); //清除LCD的顯示內(nèi)容
delay_1ms(5);
}
/*********************************************************/
/* */
/* 主程序 */
/* */
/*********************************************************/
main()
{ uchar x;
EA=1;
P1=0XF0;
TMOD=0X2;
TH0=0X6;
TL0=0X6;
EA=1;ET0=1;TR0=1;
i=0;
delay_1ms(10); //延時(shí)
lcd_init();
lcd_pos(0,1);
write_dat(zi[0]);
write_dat(zi[1]);
lcd_pos(0,3);
write_dat(zi[2]);
write_dat(zi[3]);
lcd_pos(0,5);
write_dat(zi[4]);
write_dat(zi[5]);
while(1)
{
z=1;
z1=0;
P1=0XF0;
lcd_pos(0,0);
i = 0;
while(i<2)
{
write_dat(shijian[i]+0x30);
i++;
}
lcd_pos(0,2);
while(i<4)
{
write_dat(shijian[i]+0x30);
i++;
}
lcd_pos(0,4);
while(i<6)
{
write_dat(shijian[i]+0x30);
i++;
}
jud();
if(key==10)
{TR0=0;
lcd_pos(0,0);delay_1ms(5);
write_cmd(0x0f);
delay_1ms(5);
bz=0;
while(!bz)
{jud();}
while(mark)
{jud();
if(key==12)
{z--;write_cmd(0x10);delay_1ms(5);write_cmd(0x10);delay_1ms(5);bz=0;if((2*(z-1)+(z1-1))==-3){for(x=0;x<6;x++){write_cmd(0x14);delay_1ms(5);}z=3;z1=0;}}
else if(key==13)
{z++;write_cmd(0x14);delay_1ms(5);write_cmd(0x14);delay_1ms(5);bz=0;if((2*(z-1)+(z1-1))>=5){for(x=0;x<6;x++){write_cmd(0x10);delay_1ms(5);}z=1;z1=0;}}
else if(key<=9)
{z1++;write_dat(key+48);delay_1ms(5);shijian[2*(z-1)+(z1-1)]=key;if((2*(z-1)+(z1-1)<5)&&(z1%2==0)){write_cmd(0x14);delay_1ms(5);}else if(2*(z-1)+(z1-1)>=5){for(x=0;x<5;x++){write_cmd(0x10);delay_1ms(5);}z=1;z1=0;}bz=0;}
else if(key==11)
{write_cmd(0x0c);delay_1ms(5);mark=0;}
while(!bz)
{ jud();}
}
bz=0;
TR0=1;
}
}
}
/*************************************/
count0 (void) interrupt 1
{
k--;
if(k==0x0)
{++shijian[5];k=4000;
if (shijian[5]==0x0a)
{shijian[5]=0x0;
++shijian[4];
if(shijian[4]==0x6)
{shijian[4]=0x0;
++shijian[3];
if (shijian[3]==0x0a)
{shijian[3]=0x0;
++shijian[2];
if(shijian[2]==0x6)
{shijian[2]=0x0;
++shijian[1];
if((shijian[0]==0x0)&&(shijian[1]==0x0a))
{shijian[1]=0x0;
++shijian[0];
}
else if((shijian[0]==0x1)&&(shijian[1]==0x2))
{shijian[1]=0x0;
shijian[0]=0x0;
}
}
}
}
}
}
}
/*******************************************/
復(fù)制代碼
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
天天躁日日躁狠狠很躁
|
91小视频在线观看
|
欧美视频三区
|
午夜精品视频在线
|
精品国产久
|
一区二区高清
|
中文字幕av一区二区三区谷原希美
|
成人在线免费视频观看
|
97在线免费观看
|
91色交视频
|
国产美女永久免费无遮挡
|
色综合五月天
|
久热国产视频
|
狠狠干狠狠插
|
国产精品久久久久久中文字
|
欧美亚洲一区
|
香蕉福利视频
|
午夜激情福利视频
|
国产免费网址
|
毛片视频网站
|
日韩在线观看一区
|
国产精品九九
|
亚洲人天堂
|
黄色精品视频
|
久精品视频
|
亚洲三级黄色片
|
免费激情网站
|
91亚洲精品在线
|
免费高清av
|
国语对白做受欧美
|
国产欧美综合一区二区三区
|
欧美日韩
|
成年人午夜视频
|
精品少妇3p
|
在线看黄色片
|
日韩av一区二区三区四区
|
五月精品
|
日韩av在线免费播放
|
黄色在线免费网站
|
久久一级片
|
www.亚洲视频
|