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

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

QQ登錄

只需一步,快速開始

搜索
查看: 3458|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于89C51單片機(jī)的可調(diào)倒計(jì)時(shí)程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
使用 獨(dú)立按鍵 數(shù)碼管 定時(shí)器 ;

源代碼如下:


#include "reg52.h"
sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

#define plusvalue 30 //每次按鍵增加多少秒,可調(diào)
#define delays 6200

unsigned int times=0;
int seconds=0,seconds_1=0;
unsigned int sec=0;
unsigned int flag=0;
unsigned int wei[8]={0};
unsigned int i;

unsigned char code smgduan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00};

/*0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d
   0              1              2           3        4     5
0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c
   6           7             8             9      A     B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
   C    D        E      F             NULL
*/
void Timer0Init(void)                //10毫秒@11.0592MHz
{
        TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
        TMOD |= 0x01;                //設(shè)置定時(shí)器模式
        TL0 = 0x00;                //設(shè)置定時(shí)初值
        TH0 = 0xDC;                //設(shè)置定時(shí)初值
        TF0 = 0;                //清除TF0標(biāo)志
        TR0 = 0;                //定時(shí)器0開始計(jì)時(shí)
        ET0=1;
        EA=0;
        
}

void delay()                //@11.0592MHz
{
        unsigned char i, j;

        i = 18;
        j = 235;
        do
        {
                while (--j);
        } while (--i);
}

void delay1( int a)
{
while(a--);
}

void display()
{
                         LSA=0;LSB=0;LSC=0;P0=smgduan[wei[0]];delay1(10);P0=0x00;
                         LSA=1;LSB=0;LSC=0;P0=smgduan[wei[1]];delay1(10);P0=0x00;
                         LSA=0;LSB=1;LSC=0;P0=smgduan[wei[2]];delay1(10);P0=0x00;
                         LSA=1;LSB=1;LSC=0;P0=smgduan[wei[3]];delay1(10);P0=0x00;
                         LSA=0;LSB=0;LSC=1;P0=smgduan[wei[4]];delay1(10);P0=0x00;
                         LSA=1;LSB=0;LSC=1;P0=smgduan[wei[5]];delay1(10);P0=0x00;
                         LSA=0;LSB=1;LSC=1;P0=smgduan[wei[6]];delay1(10);P0=0x00;
                         LSA=1;LSB=1;LSC=1;P0=smgduan[wei[7]];delay1(10);P0=0x00;
        
                wei[7]=seconds_1/60/10;
                wei[6]=seconds_1/60%10;
                wei[5]=16;
                wei[4]=seconds_1%60/10;
                wei[3]=seconds_1%60%10;
                wei[2]=17;
                wei[1]=17;
                wei[0]=17;
        
}

void caculate()
{
        seconds=plusvalue*times;
                seconds_1=seconds;
}

void start()
{        
        if(seconds!=0)
        {
                        TR0=1;
                        EA=1;
        }
        else
        {
                        TR0=0;
                        EA=0;
        }
               
}

void stop()
{
        TR0=0;
        EA=0;
        flag++;
        if(flag%2==0)
        {
                TR0=1;
                EA=1;
                flag=0;
        }
}

void plus()
{
        times=times+1;
}

void cut()
{
        times=times-1;
}

void keyscan()
{
        if(k1==0)
        {
                delay1(delays);
                if(k1==0)
                        start();
                caculate();
        }
        else if(k2==0)
        {
                delay1(delays);
                if(k2==0)
                stop();
        }
        else if(k3==0)
        {
                delay1(delays);
                if(k3==0)
                plus();
                caculate();
        }
        else if(k4==0)
        {
                delay1(delays);
                if(k4==0)
                cut();
                caculate();
        }
}
void main()
{
        Timer0Init();
        while(1)
        {
                        keyscan();
                        display();
                        if(seconds_1<0)
                {
                        EA=0;
                        for(i=0;i<8;i++)
                                wei[ i]=17;
                }
        }
}
void Timer0_Routine() interrupt 1 //10ms溢出一次
{
        unsigned int T0Count;
        TL0 = 0x00;                //設(shè)置定時(shí)初值
        TH0 = 0xDC;
        T0Count++;
        if(T0Count==100)
        {
                T0Count=0;
                seconds_1--;
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:328014 發(fā)表于 2021-7-14 00:09 | 只看該作者
樓主能分享一下原理圖或者介紹下電路連接嗎?
回復(fù)

使用道具 舉報(bào)

板凳
ID:952422 發(fā)表于 2021-7-14 10:41 | 只看該作者
電路的連接如圖

51hei圖片20210714103757.png (54.49 KB, 下載次數(shù): 143)

51hei圖片20210714103757.png

51hei圖片20210714103753.png (83.66 KB, 下載次數(shù): 139)

51hei圖片20210714103753.png

51hei圖片20210714103747.png (33.59 KB, 下載次數(shù): 136)

51hei圖片20210714103747.png

51hei圖片20210714103742.png (142.38 KB, 下載次數(shù): 131)

51hei圖片20210714103742.png
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩二三区 | 婷婷色在线播放 | 中文字幕三区 | av中文在线播放 | 精品国产一区二区三区av片 | 午夜av免费 | 国产一区二区三区日韩 | av天天干 | 亚洲精品在线免费 | 国产精品久久久亚洲 | 国产男女视频 | 丁香婷婷在线视频 | 久久久国产网站 | 天天爽夜夜爽精品视频婷婷 | 久久久久久成人 | 亚洲黄色一级毛片 | 亚洲一区视频在线 | 亚洲视频在线观看一区二区三区 | 一区二区精品在线 | 一级做a爰片性色毛片视频停止 | 人人玩人人添人人澡欧美 | 日韩中文字幕在线观看 | 中文字幕日韩一区 | 久久精品国产一区二区三区不卡 | 在线午夜 | 国产精品一区在线 | 97av视频在线观看 | 欧美激情综合色综合啪啪五月 | 精品国产欧美一区二区 | 国产乱xxav | 久久国产精品久久国产精品 | 草久久| 日本一区二区三区四区 | aaaa一级毛片| 成人av免费播放 | 九九色综合| 免费久久99精品国产婷婷六月 | 黄色成人免费在线观看 | 中文字幕不卡在线观看 | 激情久久网 | 国产1区2区3区|