久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)C語言時(shí)鐘源碼

作者:佚名   來源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2014年05月02日   【字體:

 此程序是在51hei單片機(jī)開發(fā)板上面做的,如需要移植到自己的電路上,修改相應(yīng)的端口即可,開發(fā)板完整的電路圖下載:  點(diǎn)這里 (注意:只需要看相關(guān)部分即可,其他部分可以忽略)

//****80c52***時(shí)鐘程序
//***手把手教你學(xué)單片開發(fā)板***
//**2012/9/7***23:02***
# include<reg52.h>

typedef unsigned char uint8;
typedef unsigned int  uint16;
typedef unsigned long uint32;
 
uint8 block[]={0xc0,0xf9,0xa4,0xb0,0x99,
  0x92,0x82,0xf8,0x80,0x90};//顯示數(shù)組

uint8 a[6];  
uint16 counter=0;  
uint32 sec=0;  
#define tr 40  //發(fā)聲值
bit MS    = 1;    //狀態(tài)字;
sbit ADDR0 = P1^0; //A0****
sbit ADDR1 = P1^1; //A1*****
sbit ADDR2 = P1^2; //A2*****
sbit ADDR3 = P1^3; //E1|E2**
sbit ENLED = P1^4; //E3****38譯碼器
sbit BUZZ  = P1^6; //蜂鳴器
sbit    keyout1 = P2^3; //按鍵公共端
sbit keyin1  = P2^4; //k1 長(zhǎng)安0.1S進(jìn)入時(shí)間調(diào)節(jié);
sbit keyin2  = P2^5; //k2 時(shí)間調(diào)節(jié)斷碼選擇
sbit keyin3  = P2^6; //k3 調(diào)節(jié)時(shí)間加
sbit keyin4  = P2^7; //k4 調(diào)節(jié)時(shí)間減

void refresh_LS(); //數(shù)碼管掃描函數(shù)
void timer1_int(); //定時(shí)器1中斷函數(shù)
void keying(); //按鍵讀取函數(shù)
void display(); //數(shù)碼管顯示函數(shù)
void buzzer(); //蜂鳴器發(fā)聲函數(shù)
void delay(uint16 n); //延時(shí)函數(shù)

main()
{
keyout1 = 0; 
keyin1 = 1; keyin2 = 1; keyin3 = 1; keyin4 = 1;
ENLED = 0; ADDR3 = 1;
timer1_int();
display(); 
    while(1)
{
if(keyin1 == 0)
{
delay(100000);
if(keyin1 == 0)
{
MS = ~MS;
buzzer();
while(!keyin1);
}
}
if(MS == 0)keying();   

}
void buzzer()
{
static  uint8 i=0;
for(i=0;i<tr;i++)
{
BUZZ =~BUZZ;
delay(100);
}
    BUZZ = 1;
}
void delay(uint16 n)
{
while(n--);
}
void timer1_int()
{
TMOD |= 0X10;
TMOD &= 0xdf;
TH1   = 0xfc;
TL1   = 0x67;
TR1   = 1;  
EA    = 1;
ET1   = 1;
 
}
void interrupt_tiner1() interrupt 3   
{
TH1 = 0xfc;
TL1 = 0x67; 
counter++;
if(counter == 1000)
display();
refresh_LS();
}
void display()
{
counter = 0;
if(sec>=86400)sec=0;

a[0] = 0x7f&block[sec%10];
a[1] = block[sec/10%6];
a[2] = 0x7f&block[sec/60%10];
a[3] = block[sec/600%6];
a[4] = 0x7f&block[sec/3600%10];
a[5] = block[sec/36000%3];
if(MS ==1)sec++;

}

void keying()
{  
static uint8 i=0,y,y1;
   if(keyin2 == 0)
{
i+=2;
if(i == 6)i=0;
delay(500);
}
else if(keyin3 == 0)
{
 
if(i == 0)sec++;

else
if(i == 2)sec+=60;  

else
if(i == 4)sec+=3600;

delay(1000);  
}  
else if(keyin4 == 0)
{
 
if(i == 0)sec--; 
else
if(i == 2)sec-=60;

else
if(i == 4)sec-=3600; 
delay(500);
 
}
display();
if((keyin1 == 0)||(keyin2 == 0)||(keyin3 == 0)||(keyin4 == 0))buzzer();
while((keyin1 == 0)||(keyin2 == 0)||(keyin3 == 0)||(keyin4 == 0));
y    = a[i];
y1   = a[i+1];
a[i] = 0xff;
a[i+1]=0xff;
delay(5000);
a[i]  = y;
a[i+1]=y1;
delay(5000);
}
void refresh_LS()
{
static uint8 j=0;
switch(j)
{
case 0: ADDR0 = 0; ADDR1 = 0; ADDR2 = 0; P0=a[0]; j++; break;
case 1: ADDR0 = 1; ADDR1 = 0; ADDR2 = 0; P0=a[1]; j++; break;
case 2: ADDR0 = 0; ADDR1 = 1; ADDR2 = 0; P0=a[2]; j++; break;
case 3: ADDR0 = 1; ADDR1 = 1; ADDR2 = 0; P0=a[3]; j++; break;
case 4: ADDR0 = 0; ADDR1 = 0; ADDR2 = 1; P0=a[4]; j++; break;
case 5: ADDR0 = 1; ADDR1 = 0; ADDR2 = 1; P0=a[5]; j=0; break;
default: break;
}

}
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 日韩二区 | 亚洲高清一区二区三区 | 日本特黄a级高清免费大片 成年人黄色小视频 | 婷婷桃色网 | 古装人性做爰av网站 | 午夜一级做a爰片久久毛片 精品综合 | 欧美亚洲日本 | 亚洲视频区 | 亚洲欧美精品久久 | 亚洲视频欧美视频 | 天堂在线免费视频 | 在线免费观看黄色 | 欧美性猛片aaaaaaa做受 | www.玖玖玖 | 亚洲成人综合在线 | 欧美一区二区三区在线 | 国产精品1区2区 | 美女黄视频网站 | 蜜桃臀av一区二区三区 | 日韩中文一区二区三区 | 中文字幕动漫成人 | www.788.com色淫免费 | 成人二区 | 欧美在线观看一区 | 在线免费观看黄色av | 国产黄色在线观看 | www国产精品| 99精品久久久久久中文字幕 | 羞羞视频网站免费看 | 国产精品一卡二卡三卡 | 在线免费激情视频 | 免费黄色网址视频 | 日韩精品成人 | 在线视频91 | 欧美激情在线观看一区二区三区 | 国产999精品久久久 精品三级在线观看 | 毛片网在线观看 | 日本三级日产三级国产三级 | 免费在线观看黄色av | 97碰碰碰 | 亚洲综合热 |