找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

通過51單片機(jī)定時器1實現(xiàn)99秒倒計時

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:84566 發(fā)表于 2015-7-9 21:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
今天剛剛完成了一個新的單片機(jī)實驗,犯了一個小小的錯誤,導(dǎo)致不能夠倒計時,弄了幾個小時, 結(jié)果發(fā)現(xiàn)是變量的取值范圍出錯了
任何一個實驗都應(yīng)該自己動手去實踐,沒有實踐是不知道自己少了什么的。只有實踐才能夠獲得更多的調(diào)試經(jīng)驗!
程序雖小,但只要實際去做了,就能獲得不少的經(jīng)驗! 這就是做復(fù)雜程序的基礎(chǔ)!
共享自己寫的程序,畢竟是自己勞動了幾個小時的結(jié)果!與大家分享!
程序太小了,就沒有多少注釋了
/******************************************************
                    項目名稱:99秒倒計時
                    時間:2015-7-9
                    目的:使用51單片機(jī)的定時器1實現(xiàn)99秒倒計時
                    單片機(jī)平臺:KST51單片機(jī)開發(fā)平臺-金沙灘單片機(jī)
                    注意:unsigned char 的取值范圍為0-255
                                unsigned char 的取值范圍為0-65535
                                要結(jié)合單片機(jī)的硬件來看程序
**********************************************************/
#include<reg52.h>

sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

unsigned char sec = 99;

unsigned char code LedChar[] ={
    0xC0,0xF9,0xA4,0xB0,0x99, 0x92,0x82,0xF8,
    0x80,0x90,0X88,0x83,0XC6,0xA1,0x86,0x8E
};

unsigned char LedBuff[6] = {
    0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
};


void LedScan()   //´Ëº¯ÊýʵÏÖLedµÄ¶¯Ì¬É¨Ãè
{
    static unsigned char i = 0;
   
    P0 = 0xFF;
    P1 = (P1 & 0xF8)| i;
    P0 = LedBuff[i];
    if(i < 2)
        i++;
    else
        i = 0;
}

void main()
{
   
   
    ENLED =  0;
    ADDR3 = 1;
   
    //¶¨Ê±Æ÷¼Ä´æÆ÷³õʼ»¯
    TMOD = 0X01;   
    TH0 = 0xFC;    //1 ms¶¨Ê±
    TL0 = 0x67;
    EA = 1;
    ET0 = 1;
    TR0 = 1;
   
    while(1)
    {
        LedBuff[0] = LedChar[sec % 10];
        LedBuff[1] = LedChar[sec/10 %10];
    }
   
}

//ÖжϷþÎñº¯Êý
void InterruptTimer0() interrupt 1
{
    static unsigned int cnt = 0;  
   
    //Range of "unsigned char" is 0 to 255
    //Range of "unsigned int"  is 0 to 65535
   
    TH0 = 0xFC;
    TL0 = 0x67;
    cnt++;   
    LedScan();
   
    if(cnt >= 1000)
    {
        cnt = 0;
        sec--;
        if(sec < 0)
        {
            sec = 99;
        }
   
    }
   
}

評分

參與人數(shù) 1威望 +50 黑幣 +50 收起 理由
admin + 50 + 50 共享資料的積分獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩

相關(guān)帖子

回復(fù)

使用道具 舉報

沙發(fā)
ID:77282 發(fā)表于 2015-7-9 22:00 | 只看該作者
占沙發(fā)的
回復(fù)

使用道具 舉報

板凳
ID:84788 發(fā)表于 2015-7-9 23:22 | 只看該作者
沙發(fā)   
回復(fù)

使用道具 舉報

地板
ID:98756 發(fā)表于 2015-12-10 10:55 | 只看該作者
正在找這個
回復(fù)

使用道具 舉報

5#
ID:185112 發(fā)表于 2017-4-20 11:17 | 只看該作者
怎樣用定時器可提高定時精準(zhǔn)度?
回復(fù)

使用道具 舉報

6#
ID:758552 發(fā)表于 2020-5-22 17:57 | 只看該作者
后面有些代碼好像亂碼了
回復(fù)

使用道具 舉報

7#
ID:758552 發(fā)表于 2020-5-22 22:44 | 只看該作者
有proteus仿真圖嘛
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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