找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2403|回復(fù): 0
收起左側(cè)

數(shù)碼管clock源程序(C程序打造)

[復(fù)制鏈接]
ID:127496 發(fā)表于 2016-6-21 01:08 | 顯示全部樓層 |閱讀模式

效果如圖:


源程序:


/***************************************************
作者:T.Z.R.                 
使用簡介:寫的過于差勁,僅供菜鳥看看玩玩,高人別P我……
主要功能:1.顯示時(shí)間(……)
    2.二十四小時(shí)整點(diǎn)報(bào)時(shí),蜂鳴器響1秒.
    3.具有鬧鐘功能,鬧鐘響一分鐘,中途可以按下Set鍵停止吵人。
    缺點(diǎn):由于使用數(shù)碼管,無時(shí)無刻亮著,所以有些耗電……
***************************************************/
#include <at89x52.h>
sbit w4=P3^5;
sbit w3=P3^4;
sbit w2=P3^3;
sbit w1=P3^2;
sbit beep=P3^7;
sbit mode=P3^0;
sbit set=P3^1;
sbit d=P1^7;
/*變量聲明部分*/
unsigned char code num [10]={0x7e,0x48,0x3d,0x6d,0x4b,0x67,0x77,0x4c,0x7f,0x6f}; //核心部分,用于顯示數(shù)碼管
unsigned char i;
unsigned char sec;
unsigned char min;
unsigned char hour;
unsigned char mmin;
unsigned char mhour;
unsigned char day;
unsigned char month;
unsigned char v1;
unsigned char v2;
unsigned char v3;
unsigned char v4;
unsigned char k1;
unsigned char k2;
unsigned char k3;
unsigned char k4;
unsigned char mos;
unsigned int ms;
bit sh;
bit alm;
void hp(void){
w1=0;
w2=0;
w3=0;
w4=0;
}
void delay(unsigned int a){
unsigned int i;
while(--a>0){
for(i=0;i<300;i++);
}
}
/*主函數(shù)開始*/
void main (void){
alm=1;
hour=11;
min=59;
mhour=12;
mmin=0;
sec=55;
beep=1;                                 
ms=0;
mos=0;
mode=0;
set=0;
while(1){
if(mode==1){
delay(20);
if(mode==1){
mos++;
if(mos==5){
mos=0;
}
while(mode==1);
}
}
if(set==1){
delay(20);
if(set==1){
if(hour==mhour && min==mmin && alm==1){
alm=0;
}
if(mos==1){
hour++;
}
if(mos==2){
min++;
}
if(mos==3){
mhour++;
alm=1;
}
if(mos==4){
mmin++;
alm=1;
}
while(set==1);
}
}
if(mos==0){
ms++;
}
if(ms==14600){
sec++;
ms=0;
beep=0;
if(hour==mhour && min==mmin && alm==1){
beep=0;
}else{
beep=1;
}
sh=~sh;
}
if(sec==60){
min++;
sec=0;
}
if(min==60){
min=0;
hour++;
beep=0;
alm=1;
}
if(hour==24){
hour=0;
}
if(mhour==24){
mhour=0;
}
if(mmin==60){
mmin=0;
}
v1=hour%10;//小時(shí)4數(shù) 24:10
v2=hour/10;//小時(shí)2數(shù)
v3=min%10;//分鐘0數(shù)
v4=min/10;//分鐘1數(shù)
k1=mhour%10;//小時(shí)4數(shù) 24:10
k2=mhour/10;//小時(shí)2數(shù)
k3=mmin%10;//分鐘0數(shù)
k4=mmin/10;//分鐘1數(shù)
if(mos!=3 && mos!=4){
if(mos!=2){
hp();
w4=1;
P1=~num[v2];//v4
hp();
w3=1;
P1=~num[v1];//v3
d=sh;
hp();
}
if(mos!=1){
w2=1;
P1=~num[v4];
hp();
w1=1;
P1=~num[v3];
hp();
}
}
if(mos==3){
hp();
w4=1;
P1=~num[k2];//v4
hp();
w3=1;
P1=~num[k1];//v3
d=sh;
hp();
}
if(mos==4){
w2=1;
P1=~num[k4];
hp();
w1=1;
P1=~num[k3];
hp();
}
}
}


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表