性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

肉嘟嘟的程序媛
認證:普通會員
所在專題目錄 查看專題
暴揍單片機知識點 1 -- 一門和芯片對話的外語
暴揍單片機知識點 2 -- 三頭六臂
暴揍單片機知識點 3 -- 51初窺
暴揍單片機知識點 4 -- 51的手表和鬧鐘 (1)
暴揍單片機知識點 5 -- 51的手表實操(2)
暴揍單片機知識點 6 -- 51的鬧鐘 + 鬧鈴
作者動態(tài) 更多
git 情景 4 —— 永世不滅
2021-12-16 22:14
git 情景 3 —— 多重分身
2021-08-06 17:28
git 情景 2 —— 時空穿梭
2021-06-08 01:20
git 情景 1 —— 封存歷史,探索代碼的前世今生
2021-05-13 21:11
git 版本管理 —— 使用場景以及入門
2021-05-11 13:12

暴揍單片機知識點 5 -- 51的手表實操(2)

首先給大家講解 51 定時器的兩個特點:自增,三種運行模式(8位,13 位,16 位)。幾個控制的寄存器(也就是我們前面說的編號的問題:TMOD,TH0,TL0,TR0。知道這幾個是什么意思,你就能控制 51 定時器了),下面詳細講解自增和運行模式的問題。
自增:就是51定時器會從 0 到 1 到 2 。。。 就好像我們小時候數(shù)數(shù)一樣。
運行模式:就是我們小時候最多也就 0 - 9 數(shù)一數(shù),你再厲害也就 0 - 100 數(shù)一數(shù)。而這就是模式的差異,也就是你的上限(max)能達到哪里,當定時器到達上限(max)之后,就會又從 0 開始,循環(huán)往復。比如我們選擇 8 位的模式(還記得二進制嗎?0b11111111 = 255)也就是說,他能從 0 數(shù)到 255。那16位呢?(0b1111111111111111 = 65535)。
好了,現(xiàn)在我們知道上面這些了,具體怎么設置呢?
TMOD的詳細對照說明(就是告訴單片機,我要使用 16 位的定時器。如果想用其他模式需要對比 51 的說明文檔進行設置)我們只需要關心定時器 0 的 M1 和 M0 的相關設置。他們有如下 4 種組合方式。如果我們選用方式 1,那么 TMOD = 0b0000 0001 = 0x01,這句話就是告訴單片機我們要使用定時器0的工作方式1(也就是 16 位定時器)。其他比如 GATE 和 C/T 暫時不用去糾結是干嘛的。

TH0 和 TL0 就是我們設置的初始時間。就是我們數(shù)數(shù)的第一個數(shù)。這里為什需要兩個呢?因為 TH0 和 TL0 都只能存放8位的數(shù)據。再多也放不下了,但是他們兩個人能組合成 16 位的。也就是說 TH0 拼接 TL0 就是 0b (11111111) (11111111)。其中前面是 TH0,后面是 TL0。我們前面說了,16位定時器最大可以設置成 65535。那如果我現(xiàn)在想把它設置成從 10000 開始計時,該怎么寫呢?首先,我們將 10000 換算二進制(10000 = 0b0010011100010000=0x2710 也就是說:TH0=0b00100111=0x27,TL0=0b00010000=0x10。這樣我們就告訴單片機要從 10000 開始數(shù)數(shù)了。每次這么寫是不是有點麻煩?我們也就簡化一下 TH0 = (10000 >> 8)這就話就是說,把10000的二進制格式向右移動 8 位。(詳細的移動說明如下圖,一個二進制數(shù),右邊有一堵墻,只要整體往右移動,碰到墻的數(shù)字就會立刻消失。)

TR0 就是一個開關,當 TR0 = 1 的時候,定時器就工作了,TR0 = 0 的時候,定時器就停止了。這樣你就能使用定時器了。
知道了上面這些,你就能很明顯的知道如下寫法的正確含義了。以及為什么編程的時候需要這么寫程序了。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯(lián)系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 7
收藏 7
關注 54
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧