欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2156|回復: 0
收起左側

數碼管顯示時鐘萬年歷

[復制鏈接]
ID:117590 發表于 2016-4-29 21:16 | 顯示全部樓層 |閱讀模式
/*******************************************************************************
* 實驗名                           : 萬年歷實驗
* 使用的IO             :
* 實驗效果       :1602顯示時鐘
*        注意                                         :
*******************************************************************************/

#include<reg51.h>
#include"ds1302.h"

//數碼管IO
#define DIG        P0
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

unsigned char code DIG_CODE[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char Num=0;
unsigned int disp[8]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};

void LcdDisplay();
void Timer0Configuration();

/*******************************************************************************
* 函數名         : main
* 函數功能                   : 主函數
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/

void main()
{
        Ds1302Init();
    Timer0Configuration();
        while(1)
        {        
                Ds1302ReadTime();
                disp[7] = DIG_CODE[TIME[0]&0x0f];        //TIME[0]的低四位
                disp[6] = DIG_CODE[TIME[0]>>4];                //TIME[0]的高四位
                disp[5] = 0X40;                                                //-
                disp[4] = DIG_CODE[TIME[1]&0x0f];
                disp[3] = DIG_CODE[TIME[1]>>4];
                disp[2] = 0X40;
                disp[1] = DIG_CODE[TIME[2]&0x0f];
                disp[0] = DIG_CODE[TIME[2]>>4];        
        }
        
}

/*******************************************************************************
* 函數名         : Timer0Configuration()
* 函數功能                   : 設置計時器
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/

void Timer0Configuration()
{
        TMOD=0X02;//選擇為定時器模式,工作方式2,僅用TRX打開啟動。

        TH0=0X9C;        //給定時器賦初值,定時100us
        TL0=0X9C;        
        ET0=1;//打開定時器0中斷允許
        EA=1;//打開總中斷
        TR0=1;//打開定時器               
}

/*******************************************************************************
* 函數名         : DigDisplay() interrupt 1
* 函數功能                   : 中斷數碼管顯示
* 輸入           : 無
* 輸出                  : 無
*******************************************************************************/

void DigDisplay() interrupt 1
{
//        定時器在工作方式二會自動重裝初,所以不用在賦值。
//        TH0=0X9c;//給定時器賦初值,定時1ms
//        TL0=0X00;               
        DIG=0; //消隱
        switch(Num)         //位選,選擇點亮的數碼管,
        {
                case(7):
                        LSA=0;LSB=0;LSC=0; break;
                case(6):
                        LSA=1;LSB=0;LSC=0; break;
                case(5):
                        LSA=0;LSB=1;LSC=0; break;
                case(4):
                        LSA=1;LSB=1;LSC=0; break;
                case(3):
                        LSA=0;LSB=0;LSC=1; break;
                case(2):
                        LSA=1;LSB=0;LSC=1; break;
                case(1):
                        LSA=0;LSB=1;LSC=1; break;
                case(0):
                        LSA=1;LSB=1;LSC=1; break;        
        }
        DIG=disp[Num]; //段選,選擇顯示的數字。
        Num++;
        if(Num>7)
                Num=0;
}


數碼管顯示時鐘.rar

46.78 KB, 下載次數: 12, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表