亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

c51 24秒倒計時 求助大神

[復制鏈接]
跳轉到指定樓層
樓主
倒計時部分  有問題  求助大神指點

4.jpg (449.32 KB, 下載次數: 35)

4.jpg

3.png (23.48 KB, 下載次數: 34)

3.png

1.png (10.17 KB, 下載次數: 45)

1.png

2.jpg (25.06 KB, 下載次數: 39)

2.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:213173 發表于 2018-6-7 15:51 | 只看該作者
#include <AT89X52.H>
#define uchar unsigned char
#define uint  unsigned int
sbit key1=P2^0;
sbit key2=P2^1;       
uchar code table[]={                //共陽數碼管段碼"0~f-."
                0xc0,0xf9,0xa4,0xb0,
                0x99,0x92,0x82,0xf8,
                0x80,0x90,0x88,0x83,
                0xc6,0xa1,0x86,0x8e,0xbf,0x7f};
uchar Cnt50ms = 0;
uchar Cnt1s = 24;

void display()//顯示程序
{
        static uchar count=0;        //計數變量
        static uchar count1=0;
        count1++;                                        //動態顯示計數延時
        if(count1>=50)
        {
                count1=0;
                P1=0xff;                                        //消隱
                switch(count)
                {
                        case 0:
                           P3=0x01;                        //秒十位位碼
                           P1=table[Cnt1s/10];//秒十位段碼
                           count=1;
                        break;
                        case 1:                               
                           P3=0x02;                        //秒個位位碼
                           P1=table[Cnt1s%10];//秒個位段碼
                           count=0;
                        break;
                }
        }
}

void Timer0Init()                //50毫秒@12.000MHz
{
        TMOD= 0x01;                //設置定時器模式
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        TF0 = 0;                //清除TF0標志
//        TR0 = 1;                //定時器0開始計時
        EA=1;                                                        //開總中斷
        ET0=1;                                                //開定時器0中斷
}
void keyscan()                                //按鍵掃描
{
        static uchar count1=0,count2=0;        //計數變量                       
        static bit key_sign1=0,key_sign2=0;        //按鍵狀態標志

        if(key1==0)                                //檢測輸入如果為0
        {
                count1++;                                        //計數延時消抖
                if((count1>=250)&&(key_sign1==0))
                {                       
                        key_sign1=1;                //按鍵狀態標志置1,防止重復響應
                        TR0 = 1;                                //定時器0開始計時
                }
        }
        else                                                         //按鍵抬起
        {
                count1=0;                                //計數變量清0
                key_sign1=0;                        //按鍵狀態標志清0
        }
        if(key2==0)                                //檢測輸入如果為0
        {
                count2++;                                        //計數延時消抖
                if((count2>=250)&&(key_sign2==0))
                {                       
                        key_sign2=1;                //按鍵狀態標志置1,防止重復響應
                        Cnt1s=24;
                        TR0 = 0;                                //定時器0停止計時
                }
        }
        else                                                         //按鍵抬起
        {
                count2=0;                                //計數變量清0
                key_sign2=0;                        //按鍵狀態標志清0
        }
}
/***************主程序****************/
void main()
{
        Timer0Init();                                //定時器初始化
        while(1)
        {
                keyscan();                                //按鍵掃描
                display();                                //顯示程序
        }
}
/**************中斷服務程序*****************/
void timer0() interrupt        1
{
        TL0 = 0xB0;                //設置定時初值
        TH0 = 0x3C;                //設置定時初值
        Cnt50ms++;
        if(Cnt50ms>=20)                                //1s
        {
                Cnt50ms=0;
                Cnt1s--;
                if(Cnt1s==0)
                {
                        Cnt1s=0;
                        TR0 = 0;                        //定時器0停止計時
                }
        }
}
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:346831 發表于 2018-6-7 16:02 | 只看該作者
這個論壇沒人的嗎
回復

使用道具 舉報

6#
ID:295874 發表于 2018-6-7 18:09 | 只看該作者
啥問題也沒有說明白。再說這是你的全部程序嗎?如果是,你的程序計時是不會對的,因為你的定時器在初始化的時候就已經開始計數了,會產生計時不準確的。
回復

使用道具 舉報

7#
ID:111634 發表于 2018-6-7 20:47 | 只看該作者
本帖最后由 zl2168 于 2018-6-7 20:49 編輯

介紹你一個參考案例
實例96  能預置初值的倒計時秒表
實例96 能設置初值的倒計時秒表.rar (40 KB, 下載次數: 31)
Proteus仿真一下,確認有效。
以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,書中電路和程序設計有詳細說明,電路與程序真實可靠可信可行,程序語句條條有注解。
回復

使用道具 舉報

8#
ID:346831 發表于 2018-6-8 16:45 | 只看該作者
liyongan_1985 發表于 2018-6-7 18:09
啥問題也沒有說明白。再說這是你的全部程序嗎?如果是,你的程序計時是不會對的,因為你的定時器在初始化的 ...

額  第一次發帖見諒見諒  謝謝大佬的幫助
回復

使用道具 舉報

9#
ID:346831 發表于 2018-6-8 16:48 | 只看該作者
wulin 發表于 2018-6-7 15:51
#include
#define uchar unsigned char
#define uint  unsigned int

大神  你這是直接幫我寫出了嗎 辛苦了  還打好了備注  作為一個初學者  非常感謝
回復

使用道具 舉報

10#
ID:346831 發表于 2018-6-8 16:49 | 只看該作者
zl2168 發表于 2018-6-7 20:47
介紹你一個參考案例
實例96  能預置初值的倒計時秒表
先Proteus仿真一下,確認有效。

謝謝幫助
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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