欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 怎么用單片機用定時器控制數碼管的顯示? [打印本頁]

作者: lx駕    時間: 2018-12-24 18:53
標題: 怎么用單片機用定時器控制數碼管的顯示?
想實現數碼管與定時器結合,依次顯示數字并切換顯示速度,現在遇到的問題是不會用定時器控制晶體管的顯示,希望大神幫忙。


作者: shuisheng    時間: 2018-12-25 03:23
拿去吧,這有定時器不同時間的應用!用數組給定時器值
#include<reg51.h>
#define uchar unsigned char
#define uchar unsigned char
#define uint unsigned int
unsigned int i=0;  f=0;
unsigned char mm[ ] = {0x04,0xf5,0x56,0xef,0x14,0xb1,0xc7,0x98,0xe2,0x25,0xd4,0x02,0x11,0xa8,0xb7,0x03};
sbit led=P1^0;
void main()
{
        TMOD=0x01;               //T0工作在方式1下,16位定時功能
    TH0=f;  //定時器T1的高8位賦初值
    TL0=f;  //定時器T1的高8位賦初值
        TF0=0;                        //清除TF0標志位
        TR0=1;                        //啟動T0
        while(1)
        {
                if(TF0==1)                //判斷T0溢出標志位是否為1
                {         
                        TF0=0;
                    i++;
         if(i==16)

                   f=mm[i];

                        TH0=f;  //定時器T1的高8位賦初值
            TL0=f;  //定時器T1的高8位賦初值
               
                        led=~led;
                        i=0;
         }
        }}
       

作者: 周超然    時間: 2018-12-25 14:36
stc的那個isp下載器里面有詳細的設置和介紹,去官網上下載。對理解單片機也快。
作者: lx駕    時間: 2018-12-25 15:52
shuisheng 發(fā)表于 2018-12-25 03:23
拿去吧,這有定時器不同時間的應用!用數組給定時器值
#include
#define uchar unsigned char

謝謝啦
作者: wh8010jky    時間: 2018-12-25 21:19
uchar TimeForSEG;
作者: robinsonlin    時間: 2018-12-25 21:33
如果你剛接觸單片機,在了解中斷之前去學定時器,這是一個好思路。  但是不建議你通過看程序去體會, 還是要找一本不是太老,并且又通俗的教程仔細研讀,光看程序,往往會走彎路。  http://m.raoushi.com/bbs/dpj-26246-1.html
這個教程里面,關于定時器講得很透徹,不像高校的教材,照本宣科,看得人滿頭霧水。
一樓的程序也不錯,很單純的講解了定時器的用法。但是定時器的附初值的方式,很可能會誤導人的。

作者: wh8010jky    時間: 2018-12-25 21:45
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{
    TMOD=0x01;      //定時器0工作方式
    TH0=oxfc;         //   ims定時,(晶振12M)
    TL0=0x18;

    if(TimeForSEG>=xx)     //xx:需要控制數碼管的時間
    {
        TimeForSEG=0;       //清0,為下次計時
         Wei=0;                 //打開數碼管位控制(低電平啟動)
    }
}

vod TimeCount() interrupt 1     //中斷程序
{
    TH)=0xfc;                         //定時器重裝初值
    TL)=0x18
    TimeForSEG++;                 //計時;ims+1
}

我一般是如上寫程序的,這樣做有一個好處,更改時間方便,如果要控制多個元件,只要增加TimeForXX就行。
作者: 一杯二鍋頭    時間: 2018-12-25 22:22
樓主可以嘗試用lcd1602  挺方便的
作者: 1113634577    時間: 2018-12-26 07:25
定時器設置為2ms,對數碼管定時掃描顯示
作者: lx駕    時間: 2018-12-26 15:50
wh8010jky 發(fā)表于 2018-12-25 21:45
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{

謝謝啦
作者: lx駕    時間: 2018-12-27 16:42
wh8010jky 發(fā)表于 2018-12-25 21:45
uchar TimeForSEG;    //定義一個專用于數碼管(SEG)的計時變量
void main()
{

想問一下可以隨意得更改時間嗎?還是只能+1?




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1