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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求按鍵控制數碼管定時器定時顯示的程序,我實在想不通按鍵怎么控制定時器?

[復制鏈接]
跳轉到指定樓層
樓主
ID:223880 發表于 2018-10-20 12:38 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求按鍵控制數碼管用定時器定時顯示的程序,我實在想不通按鍵怎么控制數碼管,例子也成
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:223880 發表于 2018-10-20 15:46 | 只看該作者
不用了,我已經做出來了,謝謝
回復

使用道具 舉報

板凳
ID:223880 發表于 2018-10-20 15:53 | 只看該作者
不用了,已經做出來了謝謝 (PS 審核:不用發出去了)
回復

使用道具 舉報

地板
ID:164602 發表于 2018-10-20 16:43 | 只看該作者
我有一個電子秒表的程序,就是用按鍵控制的哦。
//上電待令,按鍵計時開始,再按計時停止,再按清0,周而復始。
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;//連接譯碼器,選擇點亮的數碼管
sbit k3=P3^2;
uchar code table[]={
        0x3f,0x06,0x5b,0x4f,
        0x66,0x6d,0x7d,0x07,
        0x7f,0x6f,0x77,0x7c,
        0x39,0x5e,0x79,0x71};
uchar Cntus=0,Cnt100ms,Cnt1s=0;//中斷計時變量
bit zantin=0;                                        //暫停標志


/***********定時器初始化程序****************/
void Timer0Init(void)                //2500微秒@12.000MHz
{
        TMOD= 0x01;                //設置定時器模式
        TL0 = 0x3C;                //設置定時初值
        TH0 = 0xF6;                //設置定時初值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
        EA=1;                        //開總中斷
        ET0=1;                //開定時器0中斷
}
/***********按鍵掃描程序****************/
void keyscan()        
{
        static uint count2=0,count1=0;        //計數變量                        
        static bit key_sign=0;                                //按鍵狀態標志
        if(k3==0)                                //檢測輸入如果為0
        {
                count1++;                                        //計數延時消抖
                if((count1>=500)&&(key_sign==0))//檢測按鍵如果為0
                {                        
                        key_sign=1;                //按鍵狀態標志置1,防止重復響應
                        count2++;
                        if(count2>=3)
                                count2=0;
                        switch(count2)
                        {
                                case 0:        Cntus=0;
                                                Cnt100ms=0;
                                                Cnt1s=0;        break;//清0
                                case 1:        zantin=1;   break;//計時
                                case 2:        zantin=0;        break;//暫停
                        }               
                }
        }
        else
        {
                count1=0;                                //計數變量清0
                key_sign=0;                                //按鍵狀態標志清0
        }
}
void display()//顯示程序
{
        static uchar  i=0;
        P0=0x00;//消隱
        switch(i)
        {
                case(0):
                LSA=0;LSB=1;LSC=1;P0=table[Cnt1s/10];i++; break;//顯示第5位
                case(1):
                LSA=1;LSB=0;LSC=1;P0=table[Cnt1s%10]|0x80;i++; break;//顯示第6位
                case(2):
                LSA=0;LSB=0;LSC=1;P0=table[Cnt100ms];i=0; break;//顯示第7位
        }
}
/***************主程序****************/
void main()
{
        Timer0Init();                                //定時器初始化
        while(1)
        {
                keyscan();                                //按鍵掃描
        }
}
/**************中斷服務程序*****************/
void timer0() interrupt        1//2500微秒@11.0592MHz
{
        TL0 = 0x00;                //設置定時初值
        TH0 = 0xF7;                //設置定時初值
        Cntus++;                                        //中斷變量Cntus自+1
        if(Cntus>=40)                                //10ms
        {
                Cntus=0;                                //清0
                if(zantin==1)                        //暫停/啟動
                        Cnt100ms++;                        //毫秒計數
                if(Cnt100ms>=10)
                {
                        Cnt100ms=0;
                        Cnt1s++;                                //秒計數
                        if(Cnt1s>=60)
                                Cnt1s=0;
                }
        }
        display();                                        //顯示程序
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费视频二区 | 国产成人精品一区二区三区在线 | 国内精品视频 | 日韩欧美在线观看视频 | 一区二区三区久久久 | 国产精品欧美精品日韩精品 | 中文字幕国产第一页 | 国产一区二区三区在线 | 国产激情视频网 | 亚洲一区二区三区在线免费 | 色综合久久天天综合网 | 精品国产黄色片 | 精品九九九| 一区二区在线免费观看 | 999久久久 | 小h片免费观看久久久久 | 欧美精品二区 | 欧美性生交大片免费 | 日韩精品久久 | 日韩精品一区二区三区视频播放 | 黄视频欧美 | 精品欧美一区二区三区久久久 | 亚洲一区中文字幕 | 午夜在线影院 | jlzzjlzz国产精品久久 | 亚洲国产欧美日韩 | 精品国产一区二区三区久久久久久 | 成人在线免费观看 | 欧美片网站免费 | 91久久精品国产91久久性色tv | 久久久久久免费精品一区二区三区 | 欧美日韩久久精品 | 一区二区三区亚洲 | 亚洲国产精品久久人人爱 | 少妇一级淫片免费放播放 | 一级毛片视频免费观看 | 成人小视频在线观看 | 国产视频中文字幕在线观看 | 超碰97人人人人人蜜桃 | 一级黄色大片 | 羞羞视频在线观看免费观看 |