一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

單片機(jī)學(xué)習(xí)心得1:89c51單片機(jī)定時器應(yīng)用!

鋰電聯(lián)盟會長 ? 來源:聶磊 ? 作者:電子發(fā)燒友 ? 2019-03-04 13:36 ? 次閱讀

定時器的應(yīng)用涉及到中斷方面的知識,可以先了解中斷的概念再來看定時器

如,一個16位的定時器,它所能計數(shù)的范圍是0~65535,如果單片機(jī)采用的是12M的晶振,那么定時器單次最長的時間為65535((1/12)12),因為一個一個機(jī)器周期等于12個振蕩周期,那么定時器加一所用的時間是1/12M*12是1us,也就是一個12MHz晶振的51單片機(jī)單次最長時間約為65ms.

定時器的控制

89c51的定時器由兩個寄存器控制,分別是工作模式寄存器TMOD和控制寄存器TCON

工作模式寄存器TMOD是用于控制定時器0/1的工作模式,通過對TMOD進(jìn)行賦值,則可以改變定時器的工作模式

具體各位的定義如下

當(dāng)我們使用定時器功能時,就只用設(shè)置D0、D1、D4、D5的的值就可以了,其余位置0即可

我們在使用定時器時基本使用的是模式1和模式2,模式0與模式3基本不用,我就不進(jìn)行描述了。

模式1

當(dāng)TMOD的D5位置0,D4位置1時,即為定時器T1的模式一,該模式對應(yīng)的是一個16位的定時器,寄存器TH1和TL1即為T1初值的高8位和低8位,定時時間為:(65536-T1的初值)振蕩周期12

模式二

當(dāng)TMOD的D5位置1,D4位置0時,即為定時器T1的模式二,該模式對應(yīng)的是一個可以自動裝載的8位定時器,當(dāng)定時器計數(shù)滿了(計數(shù)溢出時),會自動把TH1中的內(nèi)容重新裝載到TL1中,那么模式二計數(shù)的最長時間即為(257-T1的初值)振蕩周期12

定時器的控制寄存器TCON

TCON的各位定義如下

TF1:T1的溢出標(biāo)志位,當(dāng)T1溢出時,由硬件自動使TF1位置1,并向CPU申請中斷。當(dāng)CPU響應(yīng)中斷進(jìn)入中斷服務(wù)子程序后,TF1又被硬件自動清0,也可以用軟件清0.

TF0:T0溢出標(biāo)志位。其功能和操作情況同TF1

TR1:T1的運(yùn)行控制位,當(dāng)該位置1時,即啟動定時器1當(dāng)該位置0時,即關(guān)閉

TR0:T0的運(yùn)行控制位,其功能及操作情況同TR1。

接下來我將用定時器來結(jié)合數(shù)碼管制作一個0-9計時器

具體操作如下(定時器的初始化在程序最下面)

include //引用了51單片機(jī)的官方庫文件 void T0INI() ; //定時器0初始化函數(shù)聲明 unsigned int temp = 0,i = 0; //中間變量 unsigned char leddata[]={ //定義一個字符型數(shù)組用來存放共陽極數(shù)碼管數(shù)字顯示 0xC0, //"0" 0xF9, //"1" 0xA4, //"2" 0xB0, //"3" 0x99, //"4" 0x92, //"5" 0x82, //"6" 0xF8, //"7" 0x80, //"8" 0x90, //"9" 0x88, //"A" 0x83, //"B" 0xC6, //"C" 0xA1, //"D" 0x86, //"E" 0x8E, //"F" 0x89, //"H" 0xC7, //"L" 0xC8, //"n" 0xC1, //"u" 0x8C, //"P" 0xA3, //"o" 0xBF, //"-" 0xFF, //熄滅 0xFF //自定義 }; void main() { T0INI(); while(1) { P2 = 0x0e; //位選段P20置0 P0 = leddata[i]; //數(shù)碼管顯示 if(TF0 == 1) //當(dāng)定時器計數(shù)溢出時 { TH0 = 0X3c; TL0 = 0xb0; //給定時器高8位和低8位重新賦值 temp++; //50ms加1 } if(temp == 20) //計數(shù)到20次也就是一秒 i++; //數(shù)碼管顯示值加一 if(i == 10) i = 0; } } void T0INI() //定時器T0初始化 { IE = 0x82; //cpu開總中斷 ,定時器T0溢出中斷允許 TCON = 0x10; //打開定時器T0 TMOD = 0x01; //設(shè)置T0為工作模式1,16位定時計數(shù)器 TH0 = 0X3c; TL0 = 0xb0; //12Mhz定時50ms }

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6058

    文章

    44821

    瀏覽量

    644704

原文標(biāo)題:【人物】靜下心來,讀一段特斯拉掌門人埃隆·馬斯克的自述!

文章出處:【微信號:Recycle-Li-Battery,微信公眾號:鋰電聯(lián)盟會長】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    89C51單片機(jī)的結(jié)構(gòu)和原理

    2.1 89C51系列單片機(jī)的結(jié)構(gòu)2.2 89C51單片機(jī)引腳及其功能2.3 89C51存儲
    發(fā)表于 02-23 17:31 ?0次下載

    基于51單片機(jī)定時器2的操作與實現(xiàn)

    基于51單片機(jī)定時器2的操作與實現(xiàn),51單片機(jī)定時器2的使用!
    發(fā)表于 02-22 17:53 ?14次下載

    52單片機(jī)有幾個定時器?52單片機(jī)定時器1和52單片機(jī)定時器2程序?qū)Ρ?/a>

    52單片機(jī)有幾個定時器?STC89C52RC其實是有三個定時器單片機(jī),STC89C52RC共有
    發(fā)表于 11-10 14:30 ?3.6w次閱讀

    89C51單片機(jī)中斷知識要點(diǎn)

    一、基本概念1、 89C51單片機(jī)中共有5 個中斷源:兩個外部中斷,兩個定時/計數(shù)中斷(溢出),一個串行
    的頭像 發(fā)表于 03-01 14:41 ?1.8w次閱讀
    <b class='flag-5'>89C51</b><b class='flag-5'>單片機(jī)</b>中斷知識要點(diǎn)

    89C51單片機(jī)課程設(shè)計

    89C51單片機(jī)課程設(shè)計資料免費(fèi)下載。
    發(fā)表于 05-28 14:27 ?136次下載

    基于89c51單片機(jī)的時鐘可調(diào)定時器設(shè)計

    基于89c51單片機(jī)的時鐘可調(diào)定時器設(shè)計
    發(fā)表于 08-31 10:05 ?63次下載

    51單片機(jī)定時器中斷

    ,提高CPU的運(yùn)行效率和處理速度stc89c52定時器資源定時器個數(shù):3個(T0,T1,T2),T0和T1和傳統(tǒng)的
    發(fā)表于 11-11 19:36 ?7次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機(jī)</b><b class='flag-5'>定時器</b>中斷

    基于AT89C51單片機(jī)定時器設(shè)計的門鈴仿真及代碼

    基于AT89C51單片機(jī)定時器設(shè)計的門鈴仿真及代碼
    發(fā)表于 05-04 15:33 ?3次下載

    基于89C51單片機(jī)定時器0源程序

    基于89C51單片機(jī)定時器0源程序
    發(fā)表于 05-16 09:17 ?1次下載

    基于89C51單片機(jī)定時器源程序

    基于89C51單片機(jī)定時器1源程序
    發(fā)表于 05-12 17:29 ?8次下載

    基于89C51單片機(jī)定時器2源程序

    基于89C51單片機(jī)定時器2源程序
    發(fā)表于 05-16 09:17 ?0次下載

    基于89C51單片機(jī)定時器掃描數(shù)碼管(不閃爍)源程序

    基于89C51單片機(jī)定時器掃描數(shù)碼管(不閃爍)源程序
    發(fā)表于 05-12 17:16 ?2次下載

    基于89C51單片機(jī)定時做普通時鐘可調(diào)源程序

    基于89C51單片機(jī)定時做普通時鐘可調(diào)源程序
    發(fā)表于 05-16 09:13 ?0次下載

    基于89C51單片機(jī)的秒表源程序

    基于89C51單片機(jī)的秒表源程序
    發(fā)表于 05-15 10:37 ?13次下載

    基于89C51單片機(jī)的閃爍1個LED源程序

    基于89C51單片機(jī)的閃爍1個LED源程序
    發(fā)表于 05-15 10:35 ?3次下載