標題:
單片機按鍵控制時分秒動態(tài)顯示(時鐘)+仿真
[打印本頁]
作者:
戎馬半生戀
時間:
2019-7-23 16:50
標題:
單片機按鍵控制時分秒動態(tài)顯示(時鐘)+仿真
仿真.PNG
(22.89 KB, 下載次數(shù): 59)
下載附件
2019-7-23 16:47 上傳
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
uchar hour,min,sec,ok;
uchar code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, //0~9 共陰 shuzu
0x77,0x7c,0x39,0x5e,0x79,0x71,0x09,0x38,0x40}; //a~f -
uchar disp[8]={0,0,18,0,0,18,0,0};
void display()
{
uchar i,j,k=0x80;
for(i=0;i<8;i++)
{
P0=dispcode[disp[i]];
P2=k;
k=k>>1;
for(j=250;j>0;j--);
P2=0;
}
}
uchar inkey()
{
uchar k;
static uint cnt=0;
k=P3;
if(k!=0xff)
{
cnt++;
if(cnt==10){return k;}
else if(cnt>200){cnt=180;return k;}
else return 0xff;
}
else {cnt=0;return 0xff;}
}
void keyaction()//按鍵功能
{
uchar k;
k=inkey();
switch(k)
{
case 0xf7://加秒
sec++;if(sec>60)sec=0;break;
case 0xfb://加分
min++;if(min>60)min=0;break;
case 0xfd://加時
hour++;if(hour>24)hour=0;break;
case 0xef://開始運行
ok=!ok;break;
default: break;
}
disp[0]=sec%10;
disp[1]=sec/10;
disp[3]=min%10;
disp[4]=min/10;
disp[6]=hour%10;
disp[7]=hour/10;
}
void calc()
{
sec++;
if(sec>59)
{
sec=0;
min++;
if(min>59)
{
min=0;
hour++;
if(hour>23)hour=0;
}
}
disp[0]=sec%10;
disp[1]=sec/10;
disp[3]=min%10;
disp[4]=min/10;
disp[6]=hour%10;
disp[7]=hour/10;
}
void main()
{
uchar i;
while(1)
{
for(i=0;i<250;i++)
{
display();
keyaction();
}
if(ok)calc();
}
}
復制代碼
全部資料51hei下載地址:
按鍵動態(tài)顯示(時鐘).zip
(64.41 KB, 下載次數(shù): 34)
2019-7-23 16:49 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1