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

標題: 哪位大佬幫做一下倒計時器的程序 [打印本頁]

作者: 長河流月    時間: 2017-5-19 10:16
標題: 哪位大佬幫做一下倒計時器的程序
最近要求做一個51單片機的倒計時器程序,可是做了好久也做不出來,看了很多都不太符合要求,就請大家幫個忙。
要求用C語言做。
倒計時計時器
1、LCD1602顯示倒計時時間
2、時間到蜂鳴提醒
3、獨立按鍵設定時長(分鐘為單位)


作者: 長河流月    時間: 2017-5-19 10:45
像這個好像是數碼管顯示的,怎么改成LCD1602顯示啊,有人幫改一下代碼嗎?
#include"reg52.h"
#define uchar unsigned char
#define uint unsigned int

sbit Key_up=P3^4;        //分鐘調節按鍵+
sbit Key_down=P3^5;        //分鐘調節按鍵-
sbit Key_enter=P3^6;//開始、暫停按鍵
sbit Key_esc=P3^7;        //清除按鍵
sbit beep=P2^3;                //蜂鳴器
sbit wela=P2^7;                //位鎖存器
sbit dula=P2^6;                //段鎖存器

uint cnt,min,sec; //中斷計數、分、秒
bit flag;                //開始位
uchar dsp[6];  //數碼管內容
uchar dsp_du[17]={0x3f , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
                                  0x7d , 0x07 , 0x7f , 0x6f , 0x77 , 0x7c ,
                                  0x39 , 0x5e , 0x79 , 0x71 , 0x00};//段編碼
uchar dsp_we[6]={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf};//位編號

//延時
void delay(uint z)
{
        uint t1,y;
        for(t1=z;t1>0;t1--)
                for(y=110;y>0;y--);
}

//鍵盤控制
void key()
{
        if(!Key_up) //向上
        {
                delay(200);
                if(!Key_up)        min++;
                min=min%100;
        }

        if(!Key_down) //向下
        {
                delay(200);
                if(!Key_down) min--;
                min=min%100;
        }

        if(!Key_enter) //開始位
        {
                delay(50);
                if(!Key_enter) flag=~flag;
                while(!Key_enter);
        }

        if(!Key_esc) //停止位
        {
                flag=0;
                min=0;
                sec=0;
        }

}

void run()
{
        if(cnt>199)        //秒計數
        {
                cnt=0;
                if(sec==0)  //分鐘計數
                {
                        sec=60;
                        if(min==0)        //分鐘復位
                        {
                                min=100;
                                flag=0; //停止運行
                                beep=0;//響聲提示
                                delay(2000);
                                beep=1;
                        }
                        min--;
                 }
                sec--;
        }
}

//定時器初始化
void init()
{
        TMOD=0x11;
        TR0=1;        //啟動定時器0
        ET0=1;        //打開定時器0中斷
        TR1=1;        //啟動定時器1
        ET1=1;        //打開定時器1中斷
        TH1=0xfd; //寫入定時器1初始值
        TL1=0x77;                 
        TH0=0xee;
        TL0=0;                 
        EA=1;        //打開總中斷
        min=20;  //預置時間
}

//主函數
void main()
{
        init();
        while(1)
        {
                if(flag)
                        {run();}
                key();
                //數字拆分成個位和十位
                dsp[0]=min/10;
                dsp[1]=min%10;
                dsp[2]=sec/10;
                dsp[3]=sec%10;

        }
}

//定時器0,用于計時
timer0() interrupt 1  // 定時器0中斷是1號
{
        TH0=0xee;        //5ms
        TL0=0;
        cnt++;                 
}

//定時器1,用于LED動態掃描
timer1() interrupt 3  // 定時器1中斷是3號
{
        uchar wei; //數碼管顯示位計數

        TH1=0xf0; //定時器初始值
        TL1=0x00;
        wela=1;
        P0=dsp_we[wei];
        wela=0;

        dula=1;
        P0=dsp_du[dsp[wei]];
        if(wei==1) P0=P0|0x80;        //第二位加點
        dula=0;

        wei++;
        wei=wei%4;
}

作者: 長河流月    時間: 2017-5-19 13:54
有哪位會的大神幫忙嗎?
作者: 長河流月    時間: 2017-6-3 15:16
看起來沒人了
作者: 不熬夜    時間: 2017-6-5 15:56
這些都是最基本的網上找找例程就好了
作者: dzbj    時間: 2017-6-5 16:50
本帖最后由 dzbj 于 2017-6-5 20:42 編輯

你做個定時器 比如每1s產生一次中斷 然后用一個變量做計數 在沖斷外的程序里 用一個變量紀錄倒計時的最大數 不斷用倒計時最大數-變量就是剩余時間 就相當于每s減一下
作者: a11123    時間: 2017-6-5 21:00
有沒有這個的仿真圖分享一下  剛好也是做這個
作者: zl2168    時間: 2017-6-5 21:20
本帖最后由 zl2168 于 2017-6-5 21:21 編輯

介紹你一個案例,顯示方式有些不同,供你參考。
實例96  能預置初值的倒計時秒表
Proteus仿真一下,確認有效。
實例96 能設置初值的倒計時秒表.rar (40 KB, 下載次數: 12)

以上摘自張志良編著《80C51單片機仿真設計實例教程——基于Keil CProteus》清華大學出版社ISBN 978-7-302-41682-1內有常用的單片機應用100案例,用于仿真實驗操作,書中電路和程序設計有詳細說明,電路與程序真實可靠可信可行,程序語句條條有注解。若需99.99秒,硬件電路增加一位595軟件程序增加0.01s10ms)計數器,并修改相應計數顯示程序。仿真電路和Hex文件能在清華出版社網站免費下載,程序源代碼只能到書上看了。到圖書館借,或到新華書店翻閱,或到網上書店打折購買。

作者: 長河流月    時間: 2017-6-6 18:12
a11123 發表于 2017-6-5 21:00
有沒有這個的仿真圖分享一下  剛好也是做這個

你有這個的代碼嗎?可以分享一下嗎?
作者: 長河流月    時間: 2017-6-6 18:15
zl2168 發表于 2017-6-5 21:20
介紹你一個案例,顯示方式有些不同,供你參考。
實例96  能預置初值的倒計時秒表
先Proteus仿真一下,確 ...

謝謝了
作者: jubaolun    時間: 2017-6-7 20:23
我這里剛給別人做的,經過了仿真,做了實物。現成的
作者: jubaolun    時間: 2017-6-7 20:24
加QQ:2279196123
作者: 文龍    時間: 2017-6-8 20:14
采用了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 涩涩视频在线观看免费 | 小视频你懂得 | 日本福利一区 | 中文日韩在线视频 | 亚洲国产精品一区二区第一页 | 亚洲成人精品免费 | 伊人狠狠| 日韩午夜影院 | 99久久婷婷 | 欧洲视频一区二区 | 五月天婷婷丁香 | 国产美女在线观看 | 久久9热| 国产精品一区二区不卡 | av黄色免费 | 精品成人一区二区 | 亚洲永久在线 | 久久国产精品一区二区 | 亚洲精品1 | 免费观看一级毛片视频 | 韩国精品一区 | 国产一区二区三区免费观看视频 | 麻豆91精品91久久久 | a精品视频 | 精品国产一区二区三区久久久四川 | 午夜视频一区二区三区 | 国产精品国产a级 | 亚洲国产一区视频 | 午夜精品网站 | 日本三级线观看 视频 | 日本色婷婷| 久久大陆| 搞黄网站在线观看 | 欧美日韩精品专区 | 午夜影院 | 97国产精品| 天天激情综合 | 日本一区二区在线视频 | 阿v视频在线观看 | 国产欧美日韩在线一区 | 国产精品久久久久久久久免费桃花 |