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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8557|回復: 5
打印 上一主題 下一主題
收起左側

求單片機程序 用四位數碼管分別顯示小時和分鐘

[復制鏈接]
跳轉到指定樓層
樓主
ID:207654 發表于 2017-6-5 00:06 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
用四位數碼管分別顯示小時和分鐘(其中第二位數碼管倒置安放,用第二和第三位數碼管的小數點閃爍指示秒);設置兩個功能按鍵,A鍵作為數字加鍵,B鍵作為小時、分鐘切換鍵。第一次按下B鍵時鐘進入調整小時狀態,第二次按下B鍵進入調整分鐘狀態,第三次按下B鍵退出調整時間回到正常走時狀態。進入調整狀態后,時間位對應數碼管閃爍顯示,以提示用戶,未被調整的時間位應保持正常顯示狀態。按下A鍵修改相應時間位。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:82765 發表于 2017-6-5 06:17 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

板凳
ID:207654 發表于 2017-6-6 00:02 來自觸屏版 | 只看該作者
cjjcjj1 發表于 2017-6-5 06:17
你好!是51單片機嗎?程序是c語言寫嗎?可以加我QQ 1413753805

程序有了 就是實物出了點問題
回復

使用道具 舉報

地板
ID:207654 發表于 2017-6-6 22:54 來自觸屏版 | 只看該作者
#include <reg51.h>//<stc15.h>

#define uchar unsigned char
#define uint unsigned int

void BCSegNum();
void XSSegNum();
void DelayMs(uint n);

uchar Second=59, Hour=8, Minute=13;
static uchar Counter;
uchar flag0=0;


sbit dp=P2^7;
SegNum[]={1,2,3,4};//四個數碼管
SegCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
BitCode[]={0x01,0x02,0x04,0x08};

void main()
{

        TMOD = 0x01;    //16位不自動重裝,方式1
        TH0 = 0x4c;     //50ms
        TL0 = 0x00;
        ET0 = 1;
        EA = 1;
        TR0 = 1;
        EX0 = 1;
        EX1 =1;
        IT0 = 1;
        IT1 = 1;
        P1 = 0;
        while(1)
        {
                BCSegNum();
                XSSegNum();

        }
}

void BCSegNum()
{
        SegNum[3] = Hour/10;   //時十位
        SegNum[2] = Hour%10;
        SegNum[1] = Minute/10;
        SegNum[0] = Minute%10;
}

void XSSegNum()
{
        uchar i;
        for(i=0;i<4;i++)
{
         P2=SegCode[SegNum[i]];
         P1=BitCode[i];
         DelayMs(3);
         P1=0x00;
}
}

void T0_Isr(void)interrupt 1
{

        TH0 = 0x4c;
        TL0 =0x00;
        Counter++;
        if(Counter<=10)dp = 0;
        else dp = 1;
        if(Counter==20)
        {
                Second++;
                Counter = 0;
                if(Second==60)
                {
                        Second=0;
                        Minute++;
                        if(Minute==60)
                        {
                                Minute=0;
                                Hour++;
                                if(Hour==24)
                                {
                                        Hour=0;
                                }
                        }
                }
        }

}

void DelayMs(uint n)
{
        uchar j;
        while(n--)
        {
                for(j=0;j<113;j++);
        }
}

void Ex0Isr() interrupt 0 //選擇鍵
        {
                TR0 = 0;
    flag0++;        //flag0=0無鍵按下
                if(flag0==3)
                {
                        flag0=0;
                        TR0 = 1;
                }
        }
       
        void Ex1tsr() interrupt 2 //加鍵
        {
                if(flag0==1)   //分加1
                {
                        Minute++;
                       
                        if(Minute==60)
                                        Minute=0;
                }
                if(flag0==2)   //時加1
                {
                        Hour++;                       
                        if(Hour==24)
                                Hour=0;       
                }
               
        }
回復

使用道具 舉報

5#
ID:207654 發表于 2017-6-6 22:56 來自觸屏版 | 只看該作者
程序如下 怎么把它改成雙機通信呀

#include <reg51.h>//<stc15.h>

#define uchar unsigned char
#define uint unsigned int

void BCSegNum();
void XSSegNum();
void DelayMs(uint n);

uchar Second=59, Hour=8, Minute=13;
static uchar Counter;
uchar flag0=0;


sbit dp=P2^7;
SegNum[]={1,2,3,4};//四個數碼管
SegCode[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
BitCode[]={0x01,0x02,0x04,0x08};

void main()
{

        TMOD = 0x01;    //16位不自動重裝,方式1
        TH0 = 0x4c;     //50ms
        TL0 = 0x00;
        ET0 = 1;
        EA = 1;
        TR0 = 1;
        EX0 = 1;
        EX1 =1;
        IT0 = 1;
        IT1 = 1;
        P1 = 0;
        while(1)
        {
                BCSegNum();
                XSSegNum();

        }
}

void BCSegNum()
{
        SegNum[3] = Hour/10;   //時十位
        SegNum[2] = Hour%10;
        SegNum[1] = Minute/10;
        SegNum[0] = Minute%10;
}

void XSSegNum()
{
        uchar i;
        for(i=0;i<4;i++)
{
         P2=SegCode[SegNum[i]];
         P1=BitCode[i];
         DelayMs(3);
         P1=0x00;
}
}

void T0_Isr(void)interrupt 1
{

        TH0 = 0x4c;
        TL0 =0x00;
        Counter++;
        if(Counter<=10)dp = 0;
        else dp = 1;
        if(Counter==20)
        {
                Second++;
                Counter = 0;
                if(Second==60)
                {
                        Second=0;
                        Minute++;
                        if(Minute==60)
                        {
                                Minute=0;
                                Hour++;
                                if(Hour==24)
                                {
                                        Hour=0;
                                }
                        }
                }
        }

}

void DelayMs(uint n)
{
        uchar j;
        while(n--)
        {
                for(j=0;j<113;j++);
        }
}

void Ex0Isr() interrupt 0 //選擇鍵
        {
                TR0 = 0;
    flag0++;        //flag0=0無鍵按下
                if(flag0==3)
                {
                        flag0=0;
                        TR0 = 1;
                }
        }
       
        void Ex1tsr() interrupt 2 //加鍵
        {
                if(flag0==1)   //分加1
                {
                        Minute++;
                       
                        if(Minute==60)
                                        Minute=0;
                }
                if(flag0==2)   //時加1
                {
                        Hour++;                       
                        if(Hour==24)
                                Hour=0;       
                }
               
        }
回復

使用道具 舉報

6#
ID:260987 發表于 2017-12-13 11:04 | 只看該作者
在嗎兄弟 有電路嗎
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩成人在线 | 亚洲区一 | 在线欧美一区 | 亚洲网在线 | 成人小视频在线免费观看 | 亚洲网站在线播放 | 中文二区 | 91精品国产自产精品男人的天堂 | 免费成人高清在线视频 | 久久精品亚洲一区二区三区浴池 | 97天天干 | 久久国内精品 | 久久久久久久久国产成人免费 | 成人一区二| 91久久久久久 | 亚洲一二三视频 | 国内精品成人 | 成人国产免费视频 | 日韩视频a | 欧美日韩免费 | 日本福利视频免费观看 | 四虎永久影院 | 涩涩片影院 | 成人一级毛片 | 精品国产一区二区三区观看不卡 | 亚洲精品乱码久久久久久久久 | 成人99 | 久久欧美高清二区三区 | 欧美日韩国产高清视频 | 麻豆视频在线免费观看 | 欧美三级网站 | 老司机成人在线 | 91视频在线看| 久久久激情视频 | 全免费a级毛片免费看视频免 | 在线观看成年视频 | 日韩成人免费视频 | 久久精品亚洲欧美日韩精品中文字幕 | 拍拍无遮挡人做人爱视频免费观看 | 国产精品成人一区二区三区夜夜夜 | 日韩高清一区二区 |