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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 5124|回復(fù): 8
收起左側(cè)

單片機(jī)30秒,300秒,600秒三檔倒計(jì)時(shí),key1按鍵切換時(shí)間,key2鍵LED點(diǎn)亮,松手后啟動(dòng)

  [復(fù)制鏈接]
ID:708110 發(fā)表于 2020-3-14 10:31 | 顯示全部樓層 |閱讀模式
/30秒,300秒,600秒三檔倒計(jì)時(shí),key1按鍵切換時(shí)間,key2鍵LED點(diǎn)亮,松手后啟動(dòng)倒計(jì)時(shí),數(shù)碼管顯示數(shù)值每秒減1,
//倒計(jì)時(shí)結(jié)束,LED熄滅,數(shù)碼管顯示設(shè)定值;如果倒計(jì)時(shí)沒(méi)結(jié)束時(shí),再按下key2鍵,倒計(jì)時(shí)時(shí)間置設(shè)定值重新計(jì)時(shí)
//仿真通過(guò)
#include <reg52.h>
#define uchar unsigned char
#define uint  unsigned int
sbit led = P1^7;
sbit key1 = P1^0; //時(shí)間切換鍵
sbit key2 = P1^1; //啟動(dòng)按鍵
sbit we1 = P2^0;  //數(shù)碼管位端口
sbit we2 = P2^1;
sbit we3 = P2^2;
uchar knum;                  //key1按鍵按下次數(shù)計(jì)數(shù)變量
uchar cont;                  //中斷次數(shù)變量
uint cont1=30,cont2=300,cont3=600;        //定義時(shí)間變量并賦值30秒,300秒,600秒
uchar code LedTab[]=  //定義共陰極數(shù)碼管段碼
   {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
void delay(uint z)
{
        uint x,y;
        for(x=z; x>0; x--)
                for(y=114; y>0; y--);
}
void display1(uint shu)
{
        we1 = 0;
        P0 = LedTab[shu/100];
        delay(5);
        we1 = 1;
        we2 = 0;
        P0 = LedTab[shu%100/10];
        delay(5);
        we2 = 1;
        we3 = 0;
        P0 = LedTab[shu%10];
        delay(5);
        we3 = 1;
}
void keyscan()
{
        if(key1==0)
        {
                delay(5);
                if(key1==0)
                {
                        while(!key1);
                        knum++;
                        if(knum==3)
                                knum=0;
                }
        }
        if(key2 == 0)
        {
                delay(5);
                if(key2 == 0)         //key2按下
                {
                        led = 0;         //點(diǎn)亮LED,松手后啟動(dòng)倒計(jì)時(shí)
                        while(!key2)        //這句后面不加分號(hào),下一句調(diào)用顯示函數(shù),按鍵時(shí)數(shù)碼管才不會(huì)滅
                        {
//                                if(knum==0)
//                                display1(cont1);
//                                if(knum==1)
//                                display1(cont2);
//                                if(knum==2)
//                                display1(cont3);
                                switch(knum)
                                {
                                         case 0: display1(cont1);  break;
                                         case 1: display1(cont2);  break;
                                         case 2: display1(cont3);  break;
                                }
                                TR0 = 1;         //啟動(dòng)定時(shí)器
        //                        led = 0;         //點(diǎn)亮LED
                                cont1=30;
                                cont2=300;
                                cont3=600;
                        }
                }
        }
}
void main()
{
        TMOD = 0X01;                          //T0定時(shí)器,模式1, 16位計(jì)數(shù)
        TH0 = (65536-46082)/256;  //50ms初值
        TL0 = (65536-46082)%256;
        EA = 1;                         //開(kāi)總中斷
        ET0 = 1;                 //開(kāi)定時(shí)器中斷
        while(1)
        {
                keyscan();
                switch(knum)
                {
                         case 0: display1(cont1); cont2=300; cont3=600; break;
                         case 1: display1(cont2); cont1=30; cont3=600; break;
                         case 2: display1(cont3); cont1=30; cont2=300; break;
                }
        }
}
void timer0() interrupt 1
{
        TH0 = (65536-46082)/256; //重裝初值
        TL0 = (65536-46082)%256;
        cont++;
        if(cont == 20)
        {
                cont = 0;
                switch(knum)
                {
                        case 0: cont1--;
                                        if(cont1==0)
                                        {
                                                cont1=30;  //倒計(jì)時(shí)時(shí)間到
                                                led=1;           //熄滅LED
                                                TR0=0;           //關(guān)閉定時(shí)器
                                        } break;
                        case 1: cont2--;
                                        if(cont2==0)
                                        {
                                                cont2=300;
                                                led=1;
                                                TR0=0;
                                        } break;
                        case 2: cont3--;
                                        if(cont3==0)
                                        {
                                                cont3=600;
                                                led=1;
                                                TR0=0;
                                        } break;
                }
        }
}
回復(fù)

使用道具 舉報(bào)

ID:1 發(fā)表于 2020-3-14 12:50 | 顯示全部樓層
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復(fù)

使用道具 舉報(bào)

ID:478073 發(fā)表于 2020-3-14 13:18 | 顯示全部樓層
admin 發(fā)表于 2020-3-14 12:50
本帖需要重新編輯補(bǔ)全電路原理圖,源碼,詳細(xì)說(shuō)明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)

真不明白為什這么簡(jiǎn)單的東東還要?jiǎng)e人給電路,電路完全能從下面這些代碼中畫出來(lái)
sbit led = P1^7;
sbit key1 = P1^0; //時(shí)間切換鍵
sbit key2 = P1^1; //啟動(dòng)按鍵
sbit we1 = P2^0;  //數(shù)碼管位端口
sbit we2 = P2^1;
sbit we3 = P2^2;
P0 = LedTab
回復(fù)

使用道具 舉報(bào)

ID:214276 發(fā)表于 2020-3-24 15:44 | 顯示全部樓層
這個(gè)程序和在開(kāi)發(fā)板上調(diào)試了一下可行,想請(qǐng)教樓主一個(gè)問(wèn)題,你這個(gè)程序就是按鍵按下去了松開(kāi)才開(kāi)始倒計(jì)時(shí),按鍵不松手就不會(huì)開(kāi)始,如何能實(shí)現(xiàn)只要即使不松手按下就開(kāi)始計(jì)時(shí)
回復(fù)

使用道具 舉報(bào)

ID:1045601 發(fā)表于 2023-5-30 11:19 來(lái)自觸屏版 | 顯示全部樓層
Mian里case 0: display1(cont1); cont2=300; cont3=600; break
回復(fù)

使用道具 舉報(bào)

ID:1045601 發(fā)表于 2023-5-30 11:20 來(lái)自觸屏版 | 顯示全部樓層
Mian里case 0: display1(cont1); cont2=300; cont3=600; break為什么要cont2=300; cont3=600
回復(fù)

使用道具 舉報(bào)

ID:863362 發(fā)表于 2023-5-30 12:48 | 顯示全部樓層
拋磚引玉

仿真圖

仿真圖

按鍵倒計(jì)時(shí)秒表.zip

73.73 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

仿真文件和源程序

回復(fù)

使用道具 舉報(bào)

ID:169549 發(fā)表于 2023-5-30 16:19 | 顯示全部樓層
春風(fēng)十里吹死你 發(fā)表于 2020-3-14 13:18
真不明白為什這么簡(jiǎn)單的東東還要?jiǎng)e人給電路,電路完全能從下面這些代碼中畫出來(lái)
sbit led = P1^7;
sbit ...

哥們,樓主也是為著群里的剛?cè)腴T的同學(xué)著想的。必竟對(duì)于高手來(lái)說(shuō),很簡(jiǎn)單,但是對(duì)于入門的朋友可能有些難度了。
回復(fù)

使用道具 舉報(bào)

ID:140489 發(fā)表于 2023-5-31 08:09 | 顯示全部樓層
http://www.zg4o1577.cn/bbs/dpj-105379-1.html大家看看,這是我多年前寫著玩的一個(gè)程序,被樓主復(fù)制過(guò)來(lái)了
回復(fù)

使用道具 舉報(bào)

10#
無(wú)效樓層,該帖已經(jīng)被刪除

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频在线一区 | 国产欧美精品一区 | 天堂精品视频 | 黑人一级片视频 | 欧美啪啪 | 天天想天天干 | 欧美一区二区三区 | 亚洲少妇综合网 | 亚洲视频在线播放 | 国产一级片在线观看视频 | 97精品国产一区二区三区 | 国产重口老太伦 | 精品国产1区2区3区 在线国产视频 | 在线观看亚 | 男人电影天堂 | 亚洲精品视频久久 | 毛片一区二区 | 一区二区三区四区免费在线观看 | 日本在线视频中文字幕 | 四虎永久免费地址 | 亚洲精品国产成人 | 99久久精品免费 | 午夜精品久久久久99蜜 | 毛片一级黄色 | 日韩欧美在线免费观看视频 | 操射视频 | 一级黄色片一级黄色片 | av片免费 | 亚洲va中文字幕 | 天天综合久久网 | 啪啪网页| 色本道 | 国产精品久久一区 | 99福利 | 精品国产欧美一区二区三区成人 | 欧美成人a| 操操操操操 | 精品国产91乱码一区二区三区 | 亚洲影视在线 | 久久久久久亚洲国产精品 | 国产一区二区精品在线 |