標(biāo)題:
單片機時鐘數(shù)碼管顯示按鍵可調(diào)程序+原理圖
[打印本頁]
作者:
羅大韓
時間:
2021-4-16 11:08
標(biāo)題:
單片機時鐘數(shù)碼管顯示按鍵可調(diào)程序+原理圖
電路原理圖如下:
51hei截圖20210416110641.png
(81.2 KB, 下載次數(shù): 89)
下載附件
2021-4-16 11:08 上傳
單片機源程序如下:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit s_set=P1^0;
sbit m_set=P1^1;
sbit h_set=P1^2;
sbit reset=P1^3;
sbit led=P3^2;
unsigned char second,minute,hour,tcnt,restar=0;
uchar code scan[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code table[13]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x39,0x00};
uchar dispbuf[8];
void delay(unsigned int us)
{
while(us--);
}
void scandisp()
{
unsigned char i,value;
for(i=0;i<8;i++)
{
P2=0xff;
value=table[dispbuf[i]];
P0=value;
P2=scan[i];
delay(50);
}
}
void Timer0(void)interrupt 1 using 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tcnt++;
if(tcnt==20)
{
second++;
tcnt=0;
if(second==60)
{
minute++;
second=0;
if(minute==60)
{
hour++;
minute=0;
if(hour==24)
{
hour=0;
minute=0;
second=0;
tcnt=0;
}
}
}
}
}
void display()
{
scandisp();
dispbuf[6]=second/10;
dispbuf[7]=second%10;
dispbuf[5]=10;
dispbuf[3]=minute/10;
dispbuf[4]=minute%10;
dispbuf[2]=10;
dispbuf[0]=hour/10;
dispbuf[1]=hour%10;
}
void key_test()
{
display();
P1=0xff;
restar=0;
if(s_set==0)
{
delay(100);
if(s_set==0)
{
second++;
if(second==60)
{
second=0;
}
while(s_set==0) display();
}
}
if(m_set==0)
{
delay(100);
if(m_set==0)
{
minute++;
if(minute==60)
{
minute=0;
}
while(m_set==0) display();
}
}
if(h_set==0)
{
delay(100);
if(h_set==0)
{
hour++;
if(hour==24)
{
hour=0;
}
while(h_set==0) display();
}
}
if(reset==0)
{
delay(100);
if(reset==0)
{
restar=1;
}
}
}
void main()
{
while(1)
{
P3=0x00;
hour=0;
minute=0;
second=0;
tcnt=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
IE=0x82;
TR0=1;
while(1)
{
if(dispbuf[1]==9&dispbuf[0]==0&dispbuf[6]<=1&dispbuf[7]<=5)
{
led=1;
if(dispbuf[1]==9&dispbuf[0]==0&dispbuf[6]==1&dispbuf[7]==5)
{
led=0;
}
}
key_test();
if(restar==1)
break;
}
}
}
復(fù)制代碼
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1