找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機時間中斷怎么設(shè)定

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:698558 發(fā)表于 2022-7-17 16:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
新手求教,如題,打算設(shè)定一個50mS的時間中斷怎么設(shè)定,TL和TH的值是怎么計算的?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:698558 發(fā)表于 2022-7-17 16:35 | 只看該作者
補充一下TMOD該怎么設(shè)定?
回復(fù)

使用道具 舉報

板凳
ID:401564 發(fā)表于 2022-7-17 17:57 | 只看該作者
你是不應(yīng)該問這個問題的,定時器是單片機學(xué)習(xí)最基礎(chǔ)的知識點之一,你不會,那就說明你沒有看這一章節(jié)的內(nèi)容
你要做的不是找到這個代碼,而是了解定時器的原理,然后自己寫代碼
就算是人家給你代碼了,你也不一定能知道為什么這個要這樣寫,那個要那樣寫
這是12MHZ時鐘下的代碼,你看一下吧
void Timer0Init(void)                //50毫秒@12.000MHz
{
        AUXR &= 0x7F;                //定時器時鐘12T模式
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TL0 = 0xB0;                //設(shè)置定時初始值
        TH0 = 0x3C;                //設(shè)置定時初始值
        TF0 = 0;                //清除TF0標志
        TR0 = 1;                //定時器0開始計時
}
回復(fù)

使用道具 舉報

地板
ID:8222 發(fā)表于 2022-7-17 18:06 | 只看該作者
老式51單片機為12T單片機,一個機器周期需要12個時鐘。假設(shè)晶振頻率為12MHz,則一個機器周期是1uS,定時器工作方式1為16位計數(shù)方式,最多能計算65536微秒=65.536毫秒。你需要50毫秒,TH0=15536/256,TL0=15536%256。另外,如果需要更精確定時,就用方式2的8位重裝方式吧。
回復(fù)

使用道具 舉報

5#
ID:8222 發(fā)表于 2022-7-17 18:10 | 只看該作者
zhangxl 發(fā)表于 2022-7-17 16:35
補充一下TMOD該怎么設(shè)定?

TMOD = 0X01 (T0工作在方式1)
TMOD = 0X02 (T0工作在方式2)
TMOD = 0X10 (T1工作在方式1)
TMOD = 0X20 (T1工作在方式2)
回復(fù)

使用道具 舉報

6#
ID:1009217 發(fā)表于 2022-7-17 23:36 | 只看該作者
b站上有很多關(guān)于51單邊機學(xué)習(xí)的視頻的,像基礎(chǔ)篇定時器的配置,他們講的還是很詳細的,建議你可以去看看
回復(fù)

使用道具 舉報

7#
ID:68189 發(fā)表于 2022-7-18 08:40 | 只看該作者
新手除了學(xué)習(xí)基礎(chǔ)知識以外,日常還可以利用一些輔助軟件進行定時器的設(shè)置,比如STC的ISP工具(STC芯片的固件下載軟件)。
回復(fù)

使用道具 舉報

8#
ID:698558 發(fā)表于 2022-7-18 09:06 | 只看該作者
溫xyz 發(fā)表于 2022-7-17 18:06
老式51單片機為12T單片機,一個機器周期需要12個時鐘。假設(shè)晶振頻率為12MHz,則一個機器周期是1uS,定時器 ...

非常感謝!我已經(jīng)調(diào)試成功了
回復(fù)

使用道具 舉報

9#
ID:698558 發(fā)表于 2022-7-18 09:07 | 只看該作者
xiaojin11111111 發(fā)表于 2022-7-17 23:36
b站上有很多關(guān)于51單邊機學(xué)習(xí)的視頻的,像基礎(chǔ)篇定時器的配置,他們講的還是很詳細的,建議你可以去看看

謝謝您的推薦
回復(fù)

使用道具 舉報

10#
ID:121859 發(fā)表于 2022-7-18 14:39 | 只看該作者
50毫秒定時的話,定時器必須設(shè)置為方式1,也就是16位定時器模式,51單片機是溢出時申請中斷的,所以50毫秒定時也即是50000微秒需要在一個“初值”基礎(chǔ)上往上加知道溢出。如果使用12M晶振,那么初值就是65536-50000.到TH和TL上面就是
THn=(65536-50000)/256;
TLn=(65536-50000)%256;
TMOD=0x01;
回復(fù)

使用道具 舉報

11#
ID:1006814 發(fā)表于 2022-7-18 16:31 | 只看該作者
我用的是STC的單片機,他們提供的ISP軟件里,有關(guān)于波特率、定時器、軟件延時等各種代碼,方便調(diào)用。

新建文本文檔.jpg (51.91 KB, 下載次數(shù): 85)

新建文本文檔.jpg
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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