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

QQ登錄

只需一步,快速開始

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

關(guān)于單片機(jī)數(shù)碼管倒計(jì)時(shí)無(wú)法進(jìn)行的問題

[復(fù)制鏈接]
回帖獎(jiǎng)勵(lì) 1 黑幣 回復(fù)本帖可獲得 1 黑幣獎(jiǎng)勵(lì)! 每人限 1 次
ID:1110437 發(fā)表于 2024-3-10 12:43 | 顯示全部樓層 |閱讀模式
//頭文件聲明區(qū)
#include <REGX52.H>
#include  "key.h"
#include  "seg.h"
//變量聲明區(qū)
unsigned char key_slow_down;//按鍵減速變量
unsigned char key_val,key_down,key_old,key_up;//按鍵掃描變量
unsigned int seg_slow_down;//數(shù)碼管減速變量
unsigned int time_1000ms;// 定時(shí)器時(shí)間計(jì)數(shù)
unsigned char seg_mode;//數(shù)碼管顯示模式
unsigned char seg_pose;//數(shù)碼管顯示變量
unsigned char seg_buff[6]={10,10,10,10,10,10};//數(shù)碼管顯示變量組
unsigned char count=30;//倒計(jì)時(shí)


//按鍵處理函數(shù)
void key_pro()
{
        if(key_slow_down)return;
        key_slow_down=1;
        key_val=key_read();
        key_down=key_val&(key_val^key_old);
        key_up=key_val&(key_val^key_old);
        key_old=key_val;
        
        
        switch(key_down)
        {
               
        
               
        }
        
        
}
//數(shù)碼管函數(shù)
void seg_pro()
{
if(seg_slow_down)return;
        seg_slow_down=1;
        
        seg_buff[0]=seg_mode+1;
        if(seg_mode==0)
        {
                seg_buff[4]=count /10%10;//數(shù)碼管第五個(gè)燈顯示倒計(jì)時(shí)十位數(shù)
                seg_buff[5]=count %10;//數(shù)碼管第6個(gè)燈顯示倒計(jì)時(shí)個(gè)位數(shù)
               
               
        }
}

//led函數(shù)
void led_proc()
{
        
        
        
}
//定時(shí)器0初始化函數(shù)
void Timer0_Init(void)                //1毫秒@12.000MHz
{

        TMOD &= 0xF0;                        //設(shè)置定時(shí)器模式
        TMOD |= 0x01;                        //設(shè)置定時(shí)器模式
        TL0 = 0x20;                                //設(shè)置定時(shí)初始值
        TH0 = 0xD1;                                //設(shè)置定時(shí)初始值
        TF0 = 0;                                //清除TF0標(biāo)志
        TR0 = 1;                                //定時(shí)器0開始計(jì)時(shí)
        ET0=1;
        EA=1;
}


//定時(shí)器服務(wù)函數(shù)
void time0server() interrupt 1
{
        
                TL0 = 0x20;                                
          TH0 = 0xD1;                        
if(++key_slow_down==10)key_slow_down=0;
if(++seg_slow_down==500)seg_slow_down=0;
if(++seg_pose==6)seg_pose=0;
        seg_disp(seg_pose,seg_buff[seg_pose]);
if(++time_1000ms==1000)
{
        time_1000ms=0;
        count--;//每秒倒計(jì)時(shí)減少一秒
        
}
        
}
//主
void main()
{
        Timer0_Init();
        while(1)
        {
               
               
           seg_pro();
     led_proc();
                key_pro();
               
               
               
               
               
        }
               
               
        }
有大哥知道,為啥數(shù)碼管倒計(jì)時(shí)顯示只停留在30嗎,不進(jìn)行倒計(jì)時(shí)
        

8c79860ea17956f1b051e711b466b220.png
回復(fù)

使用道具 舉報(bào)

ID:1110437 發(fā)表于 2024-3-10 13:21 | 顯示全部樓層
發(fā)現(xiàn)可以倒計(jì)時(shí),就是速度極慢,不是設(shè)定的1s一次
回復(fù)

使用道具 舉報(bào)

ID:195496 發(fā)表于 2024-3-11 08:56 | 顯示全部樓層
定時(shí)時(shí)間有問題
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-3-11 15:20 | 顯示全部樓層
用錯(cuò)了1T單片機(jī)的算式
2024-03-11_151834.png

2024-03-11_151909.png

回復(fù)

使用道具 舉報(bào)

ID:195496 發(fā)表于 2024-3-12 08:42 | 顯示全部樓層
你的定時(shí)器初值不正確

定時(shí)器初值

定時(shí)器初值
,
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表