標(biāo)題:
簡(jiǎn)單的數(shù)碼管時(shí)鐘顯示程序
[打印本頁(yè)]
作者:
rubiks
時(shí)間:
2015-11-16 23:28
標(biāo)題:
簡(jiǎn)單的數(shù)碼管時(shí)鐘顯示程序
沒(méi)有開(kāi)發(fā)板,用慧凈四驅(qū)的主控板四位數(shù)碼管顯示時(shí)間,運(yùn)行準(zhǔn)確,電路圖大家可以搜一下。小數(shù)點(diǎn)隔一秒閃爍一下,按鈕3和4分別調(diào)制時(shí)和分。附上源程序:
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit KEY1=P2^5;//調(diào)制時(shí)
sbit KEY2=P2^4;//調(diào)制分
uchar num,fen,miao,shi,flag;
uint disnum;
uchar code table_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code table_we[]={0xfe,0xfd,0xfb,0xf7};//P2口,控制數(shù)碼管的位選
delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=200;b>0;b--);
}
void display()
{
//P2=0xFF;
P0=table_du[shi/10];
P2=table_we[0];
delay(10);
P0=table_du[shi%10]-flag*(0x80);//小數(shù)點(diǎn)間隔1s閃爍
P2=table_we[1];
delay(10);
P0=table_du[fen/10];
P2=table_we[2];
delay(10);
P0=table_du[fen%10];
P2=table_we[3];
delay(10);
}
void revise()//調(diào)制時(shí),分
{
if(KEY1==0)
{
delay(10);
if(KEY1==0)
{
shi++;
}
while(!KEY1);
delay(10);
while(!KEY1);
}
if(KEY2==0)
{
delay(10);
if(KEY2==0)
{
fen++;
}
while(!KEY2);
delay(10);
while(!KEY2);
}
}
void main()
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=0xB8;
TL0=0x00;
TR0=1;
while(1)
{
revise();
display();
}
}
void time0() interrupt 1
{
TH0=0xB8; //對(duì)應(yīng)11.0592M晶振計(jì)算得到,20ms
TL0=0x00;
num++;
if(num==50)
{
num=0;
miao++;
flag=miao%2;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
{
shi=0;
}
}
}
}
}
作者:
hoanghajery
時(shí)間:
2017-5-1 16:24
please give me schematic diagram
thanks!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1