国产成人av人人爽人人澡-亚洲国产日韩欧美一区-好吊日视频这里只有精品-日本高清精品视频在线

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當(dāng)前位置:首頁 >> 技術(shù)中心 >> 單片機(jī)入門 >> 定時(shí)器程序應(yīng)用

定時(shí)器程序應(yīng)用

作者:admin 來源:不詳 發(fā)布時(shí)間:2018-05-08  瀏覽:18

  了解了定時(shí)器相關(guān)的寄存器,那么我們下面就來做一個(gè)定時(shí)器的程序,鞏固一下我們學(xué)到的內(nèi)容。我們這節(jié)課的程序先使用定時(shí)器0,在使用定時(shí)器的時(shí)候,需要以下幾個(gè)步驟:

  第一步:設(shè)置特殊功能寄存器TMOD,配置好工作模式;

  第二步:設(shè)置計(jì)數(shù)寄存器TH0和TL0的初值;

  第三步:設(shè)置TCON,通過打開TR0位來讓定時(shí)器開始計(jì)數(shù)。

  第四步:判斷TCON寄存器的TF0位,監(jiān)測定時(shí)器溢出情況。

  寫程序之前,我們要先來學(xué)會(huì)計(jì)算如何用定時(shí)器定時(shí)時(shí)間。我們的晶振是11.0592M,時(shí)鐘周期就是1/11059200,機(jī)器周期就是12/11059200,我們假如要定時(shí)20ms,就是0.02秒,要經(jīng)過x個(gè)機(jī)器周期得到0.02秒,我們來算一下x*12/11059200=0.02,得到x= 18432。那么我們現(xiàn)在16位的定時(shí)器溢出值是65536,我們可以這樣,先給TH0和TL0一個(gè)初值,讓他們經(jīng)過18432個(gè)機(jī)器周期后剛好溢出,溢出后我們可以通過檢測TF0位得知,就剛好是0.02秒。這個(gè)初值y = 65536 - 18432 = 47104,轉(zhuǎn)成16進(jìn)制就是0xB800,那么就是TH0 = 0xB8,TL0 = 0x00。

  那0.02秒我們已經(jīng)定時(shí)出來了,細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),我們?nèi)绻踔抵苯咏o一個(gè)0x0000,一直到65536溢出,定時(shí)器定時(shí)值最大也就是71ms左右,那么我們想定時(shí)更長時(shí)間怎么辦呢?用你小學(xué)學(xué)過的邏輯,倍數(shù)關(guān)系就可以解決此問題。

  那好了,我們下面就用程序來實(shí)現(xiàn)以下這個(gè)功能。

 #include               //包含寄存器的庫文件                 

sbit  LED = P0^0;

sbit  ADDR0 = P1^0;

sbit  ADDR1 = P1^1;

sbit  ADDR2 = P1^2;

sbit  ADDR3 = P1^3;

sbit  ENLED = P1^4;

void main()

{

    unsigned char counter = 0;

    ENLED = 0; ADDR0 = 0; ADDR1 = 1;

    ADDR2 = 1; ADDR3 = 1; LED = 1;  //74HC138和LED燈初始化部分

    TMOD = 0x01;   //設(shè)置定時(shí)器0為模式1

    TH0  = 0xB8;

    TL0  = 0x00;   //定時(shí)值初值

    TR0  = 1;      //打開定時(shí)器0

    while(1)

    {

        if(1 == TF0)            //判斷定時(shí)器0是否溢出

        {

            TF0 = 0;

            TH0 = 0xB8;        //一旦溢出后,重新賦值

            TL0 = 0x00;

            counter++;

            if(50 == counter) //判斷定時(shí)器0溢出是否達(dá)到50次

            {

                 counter = 0;  //counter清0,重新計(jì)數(shù)

                 LED = !LED;   //LED取反操作,0-->1,1-->0

            }                 

        }                       

    }

}   

  程序都有注釋,不難理解,這里要解釋一個(gè)地方,就是兩次if判斷,細(xì)心的同學(xué)會(huì)發(fā)現(xiàn),if(1 == TF0)這句,我把1寫前邊,這個(gè)地方我推薦新手按照我這樣來寫,因?yàn)槿绻覀儗慽f(TF0 == 1),作為新手來說,不小心丟掉一個(gè)’=’號(hào)后,寫成if(TF0 = 1),這樣實(shí)際上在語法上是可以通過的,我們用的Keil4還會(huì)出一個(gè)警告說明一下,Keil以前的版本以及一些其他軟件,可能根本不會(huì)出任何錯(cuò)誤或者警告提示,但是這樣產(chǎn)生的Hex文件下載到單片機(jī)里邊,程序就錯(cuò)了,大家可以改改試試看。

  本程序?qū)崿F(xiàn)的結(jié)果是我們板子上最右邊的小燈點(diǎn)亮持續(xù)一秒,熄滅持續(xù)一秒,也就是以0.5HZ的頻率進(jìn)行閃爍。

編輯:admin  最后修改時(shí)間:2018-05-08

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號(hào)-4

亚洲另类女同一二三区| 91精品蜜臀一区二区三区| 国产一区二区三中文字幕| 草草视频福利在线观看| 中文字幕在线五月婷婷| 日本午夜免费福利视频| 亚洲欧美中文日韩综合| 欧美亚洲国产日韩一区二区| 中文字幕高清不卡一区| 精品人妻一区二区三区四区久久| 亚洲中文字幕剧情在线播放| 国产精品美女午夜视频| 国产在线视频好看不卡| 国产精品成人一区二区在线| 91亚洲国产成人久久精品麻豆| 久久国产人妻一区二区免费| 亚洲欧美日韩国产自拍| 日韩欧美中文字幕av| 区一区二区三中文字幕| 东京热加勒比一区二区| 国产爆操白丝美女在线观看| 欧美人禽色视频免费看| 亚洲日本久久国产精品久久| 成人国产激情福利久久| 欧美日韩最近中国黄片| 护士又紧又深又湿又爽的视频| 欧美一区二区在线日韩| 少妇丰满a一区二区三区| 欧美日韩国产自拍亚洲| 亚洲一区二区久久观看| 国产又大又硬又粗又黄| 99国产精品国产精品九九| 亚洲av一区二区三区精品| 日韩在线免费看中文字幕| 大香蕉再在线大香蕉再在线| 好吊日视频这里都是精品| 日韩视频在线观看成人| 日韩成人高清免费在线| 精品日韩欧美一区久久| 中文字幕日韩精品人一妻| 老熟女露脸一二三四区|