历史上的今天
今天是:2025年01月10日(星期五)
2018年01月10日 | 数码管显示数字钟程序
2018-01-10 来源:eefocus
#include
#define uint unsigned int
uint DIDA=0,SEC=0,MIN=0,HOUR=0,h=0;
code char tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void timer0() interrupt 1 using 1
{
TR0=0;
TH0=0x3c;
TL0=0xb0;
DIDA++;
TR0=1;
}
main()
{ uint p,k;
uint KEY();
void CONV();
void ITX();
TMOD=0x01;
TH0=0x3c;TL0=0xb0;
ET0=1;EA=1;
TR0=1;
while(1)
{ if(h==0)
{
P2=0x81;
P0=0x80;
for(p=0;p<200;p++);
}
else
{
P2=0x81;
P0=0x00;
for(p=0;p<200;p++);
}
CONV();
ITX();
P1=0x0f;
if(P1!=0x0f)
{ for(p=0;p<=10000;p++);
if(P1!=0x0f)
{ k=KEY();
if(k==0)
{ MIN++;
if(MIN==60)
{ MIN=0;
HOUR++;
if(HOUR==24)
HOUR=0;
}
}
else if(k==4)
{ HOUR++;
if(HOUR==24)
HOUR=0;
}
}
}
}
}
void CONV()
{
if(DIDA==20)
{
DIDA=0;
SEC++;
h=!h;
if(SEC==60)
{ SEC=0;
MIN++;
if(MIN==60)
{ MIN=0;
HOUR++;
if(HOUR==24)
HOUR=0;
}
}
}
}
void ITX()
{ uint i,j,k,e,p;
i=HOUR/10;
j=HOUR%10;
k=MIN/10;
e=MIN%10;
P2=0x80;
P0=tab[j];
for(p=0;p<200;p++);
P2=0x81;
P0=tab[i];
for(p=0;p<200;p++);
P2=0x82;
P0=tab[e];
for(p=0;p<200;p++);
P2=0x83;
P0=tab[k];
for(p=0;p<200;p++);
}
uint KEY()
{ uint i,k;
unsigned char code tab[16]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,
0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};
P1=0x0f;
i=P1;
P1=0xf0;
i=i|P1;
for(k=0;tab[k]!=i&&k<16;k=k+1);
return (k);
}
上一篇:键盘显示模块调试程序
史海拾趣
|
这是zhangxyttkx在《电子设计1000例》主题中的一份留言,这是一个很好的题目,恐怕湮没在那个主题内,故抄录如下: 请高手指点一下能不能找人帮我看一个电路,我的电路是这样的,一个高压放大电路,是要将0-2.5V的电压放大到0-150V,我的供电电 ...… 查看全部问答> |
|
用汇编编写了一段程序,用到了8255和8253,怎么不能让机器动起来? DATA1 SEGMENT ; TABLE DB R(S*N) DUP (?) ;S为选针器数=16,N为总针数=1024,R为转数=1,2,3...。 ...… 查看全部问答> |
|
之前用的 STM32 做 GPS 产品! 因为STM32对 GPS 频段有干扰在信号弱的时候定位不了! 现在解决的方法是 用四层PCB+屏蔽罩 才解决! (成本高出 8 RMB) 产品本身利润就不高! 所以现在想看看 ST的 M0 怎么样!… 查看全部问答> |
|
紧急招聘:☞产品管理类 (深圳/北京/上海/苏州可选)负责从产品战略规划到策略执行的产品全生命周期管理,期望研发背景出身,对技术、市场有较深的了解并有独立的见解,有很强的沟通和协调能力【SSD产品经理】【内存产品经理】【eMMC产品经理 ...… 查看全部问答> |




