#include<reg52.h>
typedefunsigned char u8
typedef unsigned int u16
u8 DispBuf[4]//显示
sbitRL = P1^0//左移键
sbitRR = P1^1//右移键
sbitADD = P1^2//加1键
sbitSUB = P1^3//减1键
void Disp(void)
void Delay(void)
u8 code Led[]={
0x3F,// 0
0x06,// 1
0x5B,// 2
0x4F,// 3
0x66,// 4
0x6D,// 5
0x7D,// 6
0x07,// 7
0x7F,// 8
0x6F//游腊 9
}
void Disp(void)
{
u8 i,j = 0x01
for(i = 0i <4i ++)
{
P0 = ~Led[DispBuf[i]]
P2 = j | 0xf0
j <<= 1
Delay()
P0 = 0xff
P2 &= 0xf0
}
}
void Delay(void)
{
u16 i
for(i = 1000i != 0i --)
}
void main(void)
{
u8 i = 0
DispBuf[0] = 0
DispBuf[1] = 1
DispBuf[2] = 2
DispBuf[3] = 3
for()
{
Disp()
if(!RL)//左移
{
Disp()
Disp()
if(!RL)
{
i --
if(i == 0 || i >4)
i = 4
while(!RL)
Disp()
}
}
if(!RR)/神昌滑/右移
{
Disp()
Disp()
if(!RR)
{
if(++ i >4)
i = 1
while(!RR)
Disp()
}
}
if(!ADD)//加1
{
Disp()
Disp()
if(!ADD)
{
if(i != 0)
{
if(++ DispBuf[i - 1] >9)
DispBuf[i - 1] = 0
}
while(!ADD)
Disp()
}
}
if(!SUB)//减迅核1
{
Disp()
Disp()
if(!SUB)
{
if(i != 0)
{
if(-- DispBuf[i - 1] >9)
DispBuf[i - 1] = 9
}
while(!SUB)
Disp()
}
}
}
}
你好,这是我用89C2051写誉肆的时钟程序,约2K BIT,如雀闷下是一个按键为移位的程序.:CASE0,CASE1就是功能转庆岁轿换,
另两个按键分别为加减,且有加速功能.程序功能强大,容量小,是我得意之作.
尊重他人知识,请不抄袭.
程序很长,这是片断,如你有意用我的硬件,软件方案,请联系.多谢!
void scan_enter_key()
{
unsigned char data time_key=0
if(enter_key==0)
{
dely_ms55()//while(~ms55)//while(ms55)
//if(enter_key==0)
{ if(enter_key==0&&ad_key==0){while(enter_key==0){dely_ms55()time_key=70min50=0} }
if(enter_key==0){while(enter_key==0){dely_ms55()time_key++min50=0} }
if(time_key>10){ se=~se
if(psw_psw==0)
{be0_ok=~be0_okif(be0_ok==1)bell_1s()}
if(psw_psw==1)
{
if(B_OutA_Time_end==1&&B_OutB_Time_end==1)
{ OutA_Time_H=OutA_Time_M=0
OutB_Time_H=OutB_Time_M=0
B_OutA_Time_end=B_OutB_Time_end=0
}
Bcount_on=1be1_ok=~be1_ok
if(be1_ok==1)bell_1s()}
if(time_key>60)//3--10秒 是否铃响?/?//按下大于6秒,该状态数据清零
{
switch(psw_psw)
{
case 0:hour=min=ms51=0mon=day=1break
case 1:B_Run_Able=~B_Run_Ablebreak
default:time_key=0break
}
}//是否清除 ?
}
else {
se=0psw_psw++if(psw_psw>1){psw_psw=0} //
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)