標題: 匯編很容易之說說對定時器的理解與編程思路 [打印本頁]
作者: 慢慢思考 時間: 2023-3-20 22:27
標題: 匯編很容易之說說對定時器的理解與編程思路
這里說一說定時器的理解學習思路。
定時器其實就是個計數器,我們用得最多的是用于計時,計時這個東西我們應該都明白是個什么東西,手機里的秒表就屬于這個東西。手機上是怎么用的?一,調出手機的秒表功能,二歸零,三按下開始,四盯著看看到沒到我們預定的時間值。
單片機里是一樣的流程,先將其設置成計時功能,然后呃不是歸零而是設置起始值(初始值),三給個信號讓其開始,四不停地查詢看其是否計數滿值了。這樣一說,計時器是不是在你眼中變得很低級?
知道了計時器的工作原理,編程時具體怎么做?查芯片說明書啊,管它什么芯片,都一個查字:計時器功能設置在哪個單元,找地址嘛;初始值要放在哪個單元,啟動信號在哪個單元,計滿信號(溢出信號)在哪個單元,還是個查字。查到之后,就是修改,怎么修改,還是查說明書啊。
說說為什么要弄個初始值,對于十六位的計時器來說,計時最大值就是65535,再加1就漫出了(溢出)。51單片機的設計上,計數方式是加加加,也就是計數單元中的值是增加方式,如果我們想計數100,從0開始也不是不行,但你要去不斷地判斷其值是否到了99,這個也不是不行,但有更好的方法,那就是從65436開始,計到溢出,而計數器本身設計了一個功能,就是溢出后就給出一個溢出信號,這個信號存在某一個單元之中(稱之為溢出標志,51單片機存在某個單元的某一位上,稱之為溢出標志位),程序運行中只需要盯著這個標志位的值就行了,用不著盯計數值。
談點芯片設計人員的思路,上面說的是計數值加加加,那采用計數值減減減的方式可以不可以實現呢?這個問題并不復雜,我在這里就不羅嗦了。
可以說,這個溢出標志的設計,是很好的設計,定時器的中斷功能,也是在這個基礎上弄出來的。
有了以上的知識,那我們在應用定時器進行編程時,思路也就很清楚了,首先使用前別忘了標志位應該是零啊,啟動位當然也要是零,然后把初始值送進去,然后設置(也可以說是調出)其計時功能(十六位的或八位的,按你的需要),然后把啟動位設置成開始(啟動),然后不停查詢標志位的值。哦還有一點,單片機的定時器不止一個,以上這些動作,只對你所選擇的那個定時器進行編程。再有一點,計時完成之后,啟動位、溢出標志位等是否需要人工處理,這個要看說明書。
吐槽一下:現有的教材都是告訴你有這些特殊功能寄存器、如何設置這些寄存器,卻沒怎么講解為什么機器中存在這些寄存器、為什么需要設置這些項目,這樣的結果,自然是讓人不容易理解掌握,不能理解的結果,就只能是死記硬背,反正本人特煩死記硬背,沒法,記性比別人差,于是只能逼著自己去理解原理,理解了原理,編程就是心中長了竹子。
好了,下面我們就查表,首先是計時功能設置的單元,教材中稱之為定時器工作方式寄存器,俗名TMOD,設計在片內數據存儲單元中,歸于特殊功能寄存器,對這類單元只能直接尋址,不能間接尋址,該單元沒有設計位尋址功能,其地址編號為89H,這個單元控制兩個定時器的工作模式(標準的51機有兩個定時器),高四位控制定時器1,低四位控制定時器0。這四個位的功能在一般的教材上都有講解,反正如果你想使用十六位計時功能時,將四位設成0001就行了。因為不能位尋址,那一次就得送入一整個字節,所以如果你若讓定時器1閑著而用定時器0,那就得把00000001B送入89H單元中,可以用MOV命令將00000001B作為立即數送入89H中(當然你也可以將其先存于某個單元之中再送入),前面說了對于特殊功能寄存器89H這個單元只能直接尋址,那么這個單元的地址就必須直接寫在這條語句中,所以這條命令是這樣寫的:MOV 89H,#00000001B,當然,89H這個單元你可以不用數據地址,而是用其俗名來代替,這個俗名,程序編輯器中已經有了一個,就是“TMOD”,于是,這條命令就可以這樣寫:MOV TMOD,#00000001B。也當然,如果你不喜歡TMOD這個俗名,你自己取一個自己喜歡自己好記的名字也行。
再就是計數數據單元了,它是十六位,就是兩個字節,51機是每個單元里面存的是一個字節的數據,那十六位就得兩個字節,就得占用兩個單元;51機每個單元都有一個地址編號,那兩個單元就得兩個地址編號。查說明書,這兩個計數單元也屬于“特殊功能寄存器”的范疇,不可位尋址,只能直接尋址,所以可以同上面一樣的格式編寫語句將初始值送入。定時器0的高字節地址編號為8CH,俗名TH0;低字節為8AH,俗名TL0。
再接下來就是啟動設置,還有溢出標志,這兩個放在一起講,是因為51機芯片設計中將這兩個放在了同一個單元中,只是在不同的位。查說明書,仍屬于“特殊功能寄存器”,只能直接尋址,可位尋址,單元地址編號88H,俗名TCON,這一個單元控制兩個定時器,其中的第5位(注意,現有教材中的規定是最低位編號為第0位,最高位編號為第7位)是定時器0的啟動設置位,這一位的地址編號為8CH,俗名TR0;第6位是定時器0的溢出標志位,這一位的地址編號為8DH,俗名TF0。所以,對這兩個位的操作,我們既可以一次送入一個字節到TCON中去,也可以直接操作位。位的操作蠻簡單,在51機中,所有的位尋址是只能直接尋址(即在任何時候編寫程序時,都只能將其地址直接寫在語句中),不具有任何其它的尋址方式。對位的操作51機設計的動作比較少,常用的有兩種動作:清零和置位(置位就是置1),51機對位的清零操作碼是C2H,匯編助記符CLR;置位的操作碼是D3H,匯編助記符為SETB。前面說了,寫程序時,只能直接在語句中寫它的位地址,所以,編寫時,在操作碼后面直接寫上其位地址就行了,即SETB 8CH(SETB TR0)啟動定時器0,CLR 8DH(SETB TF0)清零定時器0的溢出標志。
解釋一下51機芯片的位尋址設計。51機的片內數據存儲單元中,有一部分單元的位,是統一編有地址的,這個地址是8位地址,編號從0開始,最大255,所以其最多只能對256個位給予地址編號(即最多只有32個單元能有位尋址功能),有了這個地址編號,我們就可以依據這個地址編號,直接找到這個位并進行操作。接下來我們就有了一個疑惑,片內數據存儲單元的編號也是從0到255,那么機器是怎么區分這兩者而不會弄混的?答案就在操作碼上,51機的操作碼本身就暗含了接下來的操作的對象是單元還是位,可以這樣理解:對單元進行操作的操作碼打開的是一道門,門后通向單元;對位進行操作的操作碼打開的是另一道門,門后通向位。另外說一句,其它種類的單片機不一定是這樣設計的,如stm32的設計,它是統一編號,不管是單元還是位,它們的地址全在0到4G的編號之內。
寫得好辛苦啊,沒想到會寫出這么多。定時器的自動重載和中斷,就不寫了,有了以上的知識,自己應該可以推理出來吧?
作者: 王秋冬 時間: 2023-3-21 07:37
辛苦樓主了,看你講解能看懂,不像有些資料講解的云里霧里的,謝謝分享。
作者: 慢慢思考 時間: 2023-3-21 08:09
謝謝鼓勵。
作者: 慢慢思考 時間: 2023-3-21 09:05
昨天忘了說在啟動計時器之后如何盯溢出標志位了。
這個問題,我們先不看書,而是自己先思考,把自己放在芯片設計者的位置,思考如何設計這個機器指令。
方法是多種多樣的,既然51機的這個標志位可以直接尋址,那我們可以把這個位值取出來,看看是不是1,如果還是零,那就回去再取,直到其變成1,就表示時間到了,這個方法,取值與判斷都耽誤了些時間,對于精度自然有了影響,也讓程序變長了。
另一種方法,那就是直接看著這個標志位,直到其變成1。
我們自己有了兩種方法(當然你可能還會想到別的方法),接下來就是看看51機是怎么設計相關的指令的,怎么做,還是查說明書查表啊。51機的指令,按機器操作碼分,總數是256個;按匯編指令分,有111條,分為數據傳送類、算術運算類、邏輯運算類、自加自減類、控制轉移類、位操作類這幾類指令(當然也有其它的分類法),我們要用到的這個指令,初步判斷應該屬于對位進行操作的控制轉移類,然后我們就在這兩個分類里面找,看操作功能欄,然后發現里面有兩條與位值有關的條件轉移指令,一個是直接尋址位為1則轉移,一個是直接尋址位不為1則轉移,這兩條指令,其匯編指令格式一個是JB bit,rel,一個是JNB bit,rel。這里的bit就是被操作的位的位地址編號,而rel這個東西說起來稍微復雜點,它的實質,是程序接下來要執行的命令的首地址,這個地址不是指數據存儲器的地址,而是程序存儲器的地址,這個首地址里面存儲的數據,單片機在運行時,是當作操作碼的。
“rel”其實只是個指令格式代號,在編程過程中,如果你知道這個首地址的地址值,你可以直接寫成這個地址,如果你不知道,你就在這個條件轉移語句中的條件成立后接下來要執行的那條語句的前面加一個英文標號作為標記(別忘了標號后面必須得有冒號),然后你在編寫那條轉移語句時用這個標號代替rel就行了,編譯器在編譯時,會記住標號標記處該語句存在程序存儲器中的地址值,然后在編譯這條條件轉移語句時,將語句中的標號用這個地址值替換。
好了,接下來我們該怎么編程就很清楚了。
你看,其實我們并不需要死記硬背什么指令,你只需要清楚你想干什么,然后查指令表就行了,這樣的學習方法是不是很容易就能著手編程實踐?至于記住指令,實踐多了自然就記住了。所以說你只要懂了其原理,匯編不過是順手的事。
作者: 王秋冬 時間: 2023-4-1 19:09
謝謝樓主,有機會整理一下,俺次序從頭開始講解一下,在做成PDF文檔,時最好不過的了。
作者: hi等你 時間: 2023-4-14 09:05
俺天生愚昧,實在沒辦法通過計時器來計算波形需要的時間,我編程的時候只能用笨辦法
,例如,編寫紅外解碼,實在無法知道下一個低電平到達的時間,就反復執行短時間的延時
程序,再讀取有沒有低電平,直到有低電平了,再看延時程序執行了多少次。就知道了。
我智商太低的人實在不會算,就這樣死腦筋湊數
作者: nlming 時間: 2023-5-4 09:55
牛X,一力降十會
作者: lxh2002 時間: 2023-11-12 08:41
贊,大贊,單片機基石文章
作者: ftdjbdsh 時間: 2024-3-2 10:14
樓主既分享了知識,又分享了學習方法,贊!
作者: 873383636 時間: 2024-4-20 12:14
好資料講的很明白
| 歡迎光臨 (http://www.izizhuan.cn/bbs/) |
Powered by Discuz! X3.1 |
中文字幕有码在线播放|
可以直接看的av网址站|
日本人添下边视频免费|
欧美一二三四五区|
中文字幕综合一区|
福利精品视频在线|
国产91富婆露脸刺激对白|
午夜精品影视国产一区在线麻豆|
亚洲国产精品精华素|
色婷五月综激情亚洲综合|
性猛交xxxx|
日韩美女视频网站|
亚洲天堂av网站|
丰满的少妇愉情hd高清果冻传媒|
亚洲伊人久久大香线蕉av|
久久精品中文字幕一区|
在线不卡a资源高清|
国产精品色噜噜|
美美哒免费高清在线观看视频一区二区|
成人午夜大片|
国产美女高潮在线|
深夜福利在线看|
日本三级电影网站|
日本精品一区二区在线观看|
国产在线欧美在线|
少妇大叫太粗太大爽一区二区|
欧美 日韩 国产 高清|
久久一区二区精品|
国产欧洲精品视频|
欧美猛男性生活免费|
亚洲精品一区二区三区99|
无吗不卡中文字幕|
国产精品国产三级国产|
懂色av一区二区三区蜜臀|
在线亚洲欧美|
青青草成人影院|
日韩视频一区二区三区四区|
国内激情视频在线观看|
1769在线观看|
神马亚洲视频|
草久在线视频|
777视频在线观看|
free欧美性|
欧美精品另类|
亚洲影院中文字幕|
亚洲欧美激情另类|
一本色道久久综合熟妇|
天堂网一区二区三区|
老熟妇高潮一区二区三区|
91精品小视频|
久久久老熟女一区二区三区91|
午夜欧美福利视频|
黄色一级视频在线播放|
欧美一二三不卡|
亚洲最大免费|
亚洲欧美久久234|
日韩精品第一页|
免费精品视频一区二区三区|
亚洲专区在线视频|
成人女保姆的销魂服务|
国产精品久久久久久久久影视
|
一区二区三区免费视频网站
|
成人影院在线观看|
av电影在线观看网址|
一区二区三区不卡在线视频
|
国产成人精品a视频|
亚洲黄网在线观看|
丁香社区五月天|
日韩精品成人免费观看视频|
国产成人在线视频观看|
黄色免费av网站|
久久国产视频播放|
中文字幕一区在线播放|
无码人妻丰满熟妇奶水区码|
久久亚洲精品石原莉奈|
波多野结衣影片|
亚洲熟妇av乱码在线观看|
亚洲视频久久久|
六月婷婷综合网|
久热视线观看免费视频|
国产丝袜自拍|
狠狠色噜噜狠狠|
日本免费看黄色|
邻家有女韩剧在线观看国语|
黄在线免费观看|
国产乱码精品一区二三赶尸艳谈|
丰满少妇一区|
网站一区二区|
欧美色网址大全|
黄页网站一区|
久久精品99久久久|
99久久精品免费看国产
|
国产成人一区二区在线|
成人黄色大片在线免费观看|
精品国产乱码久久久久久108|
欧美系列一区|
欧美丰满熟妇bbbbbb百度|
欧美在线aaa|
毛片网站免费观看|
日本中文字幕在线免费观看|
91久久国语露脸精品国产高跟|
午夜精品久久久久久久爽|
亚洲精品自拍区在线观看|
看**视频a级毛片|
国产一级电影网|
亚洲成人三级|
另类中文字幕国产精品|
红杏一区二区三区|
99久久影视|
亚洲综合好骚|
日本国产一级片|
日韩精品视频在线看|
日韩在线一二三区|
久久久视频精品|
一区中文字幕电影|
av手机在线观看|
免费毛片在线看片免费丝瓜视频|
少妇激情av一区二区三区|
男女av在线|
尤物视频在线观看|
在线看片福利|
麻豆免费网站|
18加网站在线|
av成人影院在线|
国产精品久一|
欧美亚洲国产精品久久|
国精品一区二区三区|
一本色道久久精品|
国产无人区一区二区三区|
亚洲柠檬福利资源导航|
欧美优质美女网站|
亚洲另类xxxx|
97超碰国产精品女人人人爽|
99理论电影网|
日韩国产精品一区二区三区|
成年人三级黄色片|
国产精品密蕾丝袜|
依依成人综合网|
亚洲 欧美 激情 另类|
国产精品18久久久久久久久久|
h视频免费看|
久青草国产在线|
欧美日韩午夜电影网|
97精品在线|
国产一二三精品|
亚洲色图.com|
欧美一区二区女人|
久久亚洲精品网站|
99精彩视频|
免费涩涩18网站入口|
老司机福利在线观看|
在线观看国产小视频|
精品国产免费观看一区|
永久免费不卡在线观看黄网站|
成人短视频在线|
成人动漫一区|
亚洲无线视频|
av在线不卡免费看|
欧美唯美清纯偷拍|
欧美理论电影在线观看|
国产精品免费一区二区三区|
成人网站免费观看入口|
中文字幕av播放|
欧美视频一二区|
激情五月色综合亚洲小说|
www视频在线看|
美女一区二区在线观看|
日本中文字幕一区二区有限公司|
亚洲精品日日夜夜|
精品偷拍一区二区三区在线看|
欧美专区在线观看|
成人手机视频在线|
性久久久久久久久久久|
中文字幕乱码在线观看|
涩涩视频网站|
成人黄色免费短视频|
亚洲国产精品成人|
国产日韩视频一区二区三区|
日韩午夜中文字幕|
国产精品视频久久|
国产中文字幕二区|
日韩不卡视频在线|
青草视频.com|
日韩另类在线|
**女人18毛片一区二区|
91美女视频网站|
欧美成人伊人久久综合网|
国产99在线|中文|
国产aaa免费视频|
亚洲天堂av中文字幕|
av亚洲男人天堂|
国产私人尤物无码不卡|
久久久久久毛片免费看
|
国产精品夫妻自拍|
日韩成人av在线播放|
久久天天躁狠狠躁夜夜av|
欧美午夜精品久久久久免费视|
亚洲色图欧美另类|
亚洲免费国产视频|
日韩有码电影|
首页国产精品|
中文字幕中文字幕在线一区|
一区二区三区 在线观看视|
国产精品一区二区你懂得|
国产精品igao网网址不卡|
国产成人av免费|
jizz视频播放器|
77成人影视|
av一区二区三区黑人|
亚洲精品国产精品久久清纯直播
|
中文在线视频|
精品伊人久久久|
在线成人国产|
亚洲国产成人高清精品|
91精品成人久久|
亚洲中文字幕无码专区|
国产无码精品一区二区|
宅男深夜视频|
爱高潮www亚洲精品|
成人精品视频一区二区三区|
日韩理论片久久|
亚洲国产一区二区三区在线|
亚洲一级理论片|
二区视频在线|
免费成人三级|
国产精品电影一区二区|
欧美日韩第一视频|
精品国产乱码久久久久久郑州公司
|
99久久精品免费精品国产|
亚洲欧洲日本专区|
一级全黄肉体裸体全过程|
加勒比婷婷色综合久久|
麻豆自创视频在线观看|
亚洲开心激情|
国产日韩精品一区|
亚洲97在线观看|
网站在线你懂的|
国产一起色一起爱|
欧洲精品久久久久毛片完整版|
国产一区二区91|
国产亚洲精品一区二区|
大陆av在线播放|
国产欧美第一页|
天堂中文在线播放|
国产高清成人在线|
亚洲天堂av图片|
香港三级韩国三级日本三级|
jizz中国女人|
久久久久久国产精品免费无遮挡
|
亚洲色图影院|
毛片免费看不卡网站|
懂色av一区二区三区免费观看|
亚洲成人在线观看视频|
欧美凹凸一区二区三区视频|
动漫精品一区一码二码三码四码|
久草电影在线|
国产精品草草|
777久久久精品|
两根大肉大捧一进一出好爽视频|
国产精品羞羞答答在线|
日本三级在线观看网站|
激情小说亚洲一区|
精品国产区一区二区三区在线观看|
成人一级片网站|
最近的中文字幕在线看视频|
亚洲午夜剧场|
亚洲日本中文字幕区|
成人做爽爽免费视频|
波多野结衣不卡视频|
在线观看二区|
国产一区久久久|
久久久久久网站|
欧美肉大捧一进一出免费视频|
成片免费观看|
久久国产黄色片|
午夜看片在线免费|
国产91丝袜在线播放|
国内自拍欧美激情|
五月婷六月丁香|
免费h片在线观看|
天堂精品中文字幕在线|
欧美三级韩国三级日本三斤|
中文字幕乱码一区二区三区|
亚洲av永久无码国产精品久久|
国产v综合v|
国产午夜精品久久久久久久|
国产欧美日韩综合精品二区|
人人爽人人爽人人片av|
不卡视频观看|
亚洲色图欧美在线|
免费av一区二区三区|
亚洲成人在线电影|
亚洲影院天堂中文av色|
欧美精品一二三|
日本三级免费网站|
91tv国产成人福利|
亚洲欧美一区二区三区|
国产精品天天摸av网|
国产精品日韩高清|
国产精品羞羞答答在线|
免费一区二区三区在线视频|
一本大道av伊人久久综合|
2022亚洲天堂|
美女又黄又免费|
亚洲巨乳在线|
久久艳片www.17c.com
|
欧美伦理一区二区|
精品国产无码一区二区|
在线高清av|
欧美日韩国内自拍|
国产欧美日韩小视频|
国产精品福利视频一区二区三区|
色无极亚洲影院|
色综合色综合久久综合频道88|
精品少妇一区二区三区密爱|
免费在线毛片网站|
国产精品不卡视频|
97超碰免费观看|
a在线观看网站|
免费看欧美女人艹b|
国产精品久久久久av免费|
在线观看 亚洲|
亚洲区小说区图片区qvod|
亚洲精品美女在线观看|
岛国av免费观看|
在线观看黄av|
午夜在线视频观看日韩17c|
久久久久久一区二区三区|
亚洲精品在线观看av|
videos性欧美另类高清|
欧美性高潮床叫视频|
xxxx在线免费观看|
你懂的在线观看视频网站|
久久久精品中文字幕麻豆发布|
日韩精品福利视频|
亚洲天堂久久久|
久久狠狠一本精品综合网|
国产精品高潮呻吟久久av无限|
免费视频网站在线观看入口|
日韩中文字幕视频网|
亚洲成人精品在线|
在线不卡av电影|
宅男午夜在线|
国产人成一区二区三区影院|
中文字幕中文字幕在线中心一区|
999sesese|
成人动漫一区二区在线|
日本一区二区三区视频在线观看|
免费精品国产自产拍在|
成人国产精选|
亚洲欧洲日韩国产|
avove在线播放|
国产精品美女久久久久人|
日韩精品一区二区三区第95|
久热国产精品视频一区二区三区|
日本毛片在线观看|
亚洲黄色一区|
亚洲最大的网站|
国产美女在线看|
久热综合在线亚洲精品|
国产日韩欧美二区|
一个人免费观看在线视频www|
久久国产精品色|
蜜桃狠狠色伊人亚洲综合网站|
夜先锋资源站|
成人激情免费网站|
欧美性天天影院|
色综合97天天综合网|
久久久久久久国产精品影院|
av在线观看地址|
四虎在线免费看|
欧美日韩一区二区在线播放|
中文字幕无人区二|
亚洲热app|
一区二区三区影院|
亚洲香蕉中文网|
国产精品迅雷|
亚洲色图欧美制服丝袜另类第一页|
免费看一级大片|
国产专区精品|
亚洲乱码av中文一区二区|
欧美一级高潮片|
北条麻妃国产九九九精品小说|
欧美r级电影在线观看|
日韩欧美一级视频|
国产精品99视频|
91pron在线|
全部孕妇毛片免费孕妇|
亚洲精品欧美二区三区中文字幕|
五月婷婷丁香色|
国产在线美女|
亚洲欧洲自拍偷拍|
亚洲黄色在线播放|
蜜桃视频免费观看一区|
视频一区二区视频|
av网址在线|
亚洲欧美国产高清va在线播|
欧美brazzers|
亚洲精品孕妇|
91动漫在线看|