標(biāo)題: 簡單的時(shí)鐘程序 [打印本頁]

作者: LIUYUANAS    時(shí)間: 2019-1-13 12:25
標(biāo)題: 簡單的時(shí)鐘程序
#include<STC15W.h>

/************************通信接口配置*************************************************/

typedef unsigned int u16;          //對數(shù)據(jù)類型進(jìn)行聲明定義
typedef unsigned char u8;

sbit LSA=P1^1;
sbit LSB=P1^2;
sbit LSC=P1^3;

u8 code smgduan[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
                                        0x80,0x90};//顯示0~F的值   共陽0-9

u16 s,shi=0,fen=0,miao=0;
u8 mb[8];


void Timer0Init()
{
        TMOD|=0X01;//選擇為定時(shí)器0模式,工作方式1,僅用TR0打開啟動。
        TH0=0xFC;        //給定時(shí)器賦初值,定時(shí)1ms
        TL0=0X18;       
        TR0=1;//打開定時(shí)器                       
}
void yanshi(u16 i)
{
        while(i--);       
}
void DigDisplay()
{
        u8 i;
        for(i=0;i<8;i++)
        {
                switch(i)         //位選,選擇點(diǎn)亮的數(shù)碼管,
                {
                        case(0):
                                LSA=0;LSB=0;LSC=0; break;//顯示第0位
                        case(1):
                                LSA=1;LSB=0;LSC=0; break;//顯示第1位
                        case(2):
                                LSA=0;LSB=1;LSC=0; break;//顯示第2位
                        case(3):
                                LSA=1;LSB=1;LSC=0; break;//顯示第3位
                        case(4):
                                LSA=0;LSB=0;LSC=1; break;//顯示第4位
                        case(5):
                                LSA=1;LSB=0;LSC=1; break;//顯示第5位
                        case(6):
                                LSA=0;LSB=1;LSC=1; break;//顯示第6位
                        case(7):
                                LSA=1;LSB=1;LSC=1; break;//顯示第7位
                                                                               
                }
                P2=smgduan[mb[i]];//發(fā)送段碼
                yanshi(1); //間隔一段時(shí)間掃描       
                P2=0xff;//消隱
        }
}
/*******************************************************************************
* 函 數(shù) 名       : main
* 函數(shù)功能                 : 主函數(shù)
* 輸    入       : 無
* 輸    出             : 無
******v*************************************************************************/
void main()
{       
        Timer0Init();
        while(1)
        {   
                if(TF0==1)
                {
                        TF0=0;
                        TH0=0XFC;        //給定時(shí)器賦初值,定時(shí)1ms
                        TL0=0X18;
                        s++;
                }
                if(s==1000)                 //到達(dá)1s時(shí)間
                {       
                        s=0;
                        miao++;
               
                               
                }
                mb[0]=miao%10;          
            mb[1]=miao/10;
            mb[2]=16;          
            mb[3]=fen%10;
            mb[4]=fen/10;          
            mb[5]=16;
            mb[6]=shi%10;          
            mb[7]=shi/10;
            if(miao==60)fen++,miao=0;
            if(fen==60)shi++,fen=0;
            if(shi==24)shi=0;          
                DigDisplay();
        }
}



作者: admin    時(shí)間: 2019-1-13 15:34
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1