68精品久久久久久欧美,最近中文字幕完整在线看一,久久亚洲男人天堂,最近中文字幕完整视频高清1

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

51單片機(jī)的定時(shí)/計(jì)數(shù)器(CTC)及應(yīng)用

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

51單片機(jī)內(nèi)有兩個(gè)定時(shí)/計(jì)數(shù)器,稱為T0和T1,是16位的,所以它們各由兩個(gè)8位的特殊功能寄存器(SFR)組成,即T0=TH0+TL0,T1=TH1+TL1,默認(rèn)情況下,通電后它們是不啟動(dòng)的。

一、定時(shí)/計(jì)數(shù)器的應(yīng)用

1.計(jì)數(shù)功能:

2.定時(shí)功能:

二、定時(shí)/計(jì)數(shù)器的工作原理

定時(shí)/計(jì)數(shù)器中的核心部件為可預(yù)置初值計(jì)數(shù)器。預(yù)置初值后開始計(jì)數(shù),直至計(jì)數(shù)值產(chǎn)生溢出,可查詢判斷此溢出;也可申請中斷。

  • 定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)示意圖

 

2.定時(shí)器的控制、模式寄存器

TMOD定時(shí)器方式寄存器(89H)         TCON定時(shí)器控制/狀態(tài)寄存器(88H)

  • 定時(shí)實(shí)驗(yàn)(采用查詢法)

如圖,P0口接了8只發(fā)光管,高電平亮。用定時(shí)器實(shí)現(xiàn)50ms延時(shí),輪流點(diǎn)亮。(注:實(shí)驗(yàn)時(shí)用短路帽短路JMP2的2-3腳和JMP3的2-3腳)

參考程序:

         Org    0000H

Main:    mov    tmod,#00000001B   ;選T0,定時(shí),方式1

         Mov    th0,#3ch

         Mov    tl0,#0b0h          ;預(yù)置初值15536

         Setb    tr0                ;啟動(dòng)T0

         Mov    a,#00000001B      ;設(shè)置顯示模式

Loop:    mov     p0,a

         RL      a

         Jnb      tf0,$             ;等候50ms的溢出

         Clr      tf0

         Mov    th0,#3ch

         Mov    tl0,#0b0h          ;預(yù)置初值15536

         Sjmp    loop

思考題:⑴  若定時(shí)30ms,怎樣修改程序?

⑵  若定時(shí)1秒,怎樣修改程序?

⑶  若定時(shí)任意長時(shí)間,怎樣修改程序?

  • 計(jì)數(shù)實(shí)驗(yàn)

如圖,計(jì)數(shù)器T0的計(jì)數(shù)引腳(P3.4腳)接有一開關(guān),每按一次開關(guān),理論上計(jì)數(shù)器T0就會(huì)計(jì)一個(gè)數(shù)(若考慮抖動(dòng)問題,實(shí)際上可能會(huì)計(jì)多個(gè)數(shù)),讀出該數(shù)送P0口,通過P0口的發(fā)光管的亮滅情況,讀出計(jì)數(shù)值(設(shè)T0計(jì)數(shù)、用方式2)。

 

參考程序:

         Org    0000H

Main:    mov    P0,#0

mov    tmod,#00000110B    ;選T0,計(jì)數(shù),方式2

         Setb    tr0                ;啟動(dòng)T0

Loop:    mov    a,tl0               ;讀出T0的低8位值送A寄存器

         Mov   P0,a               ;送P0口顯示

         Sjmp   loop

思考題:⑴  若計(jì)數(shù)100,然后聲光指示,怎樣修改程序?

⑵  若計(jì)數(shù)500,然后聲光指示,怎樣修改程序?

  • 定時(shí)、計(jì)數(shù)聯(lián)合實(shí)驗(yàn)(采用查詢法)

任務(wù):定時(shí)器T0產(chǎn)生2000Hz方波信號(hào),從P3.6腳輸出,再從T1的計(jì)數(shù)腳P3.5引入;T0還產(chǎn)生1秒的定時(shí)信號(hào),定期打開和關(guān)閉T1計(jì)數(shù)器。打開T1時(shí),方波信號(hào)輸入并計(jì)數(shù);關(guān)閉T1時(shí),讀出T1的值送P0口和P1口顯示(注:P1口的值是反相的,即低電平亮,高電平滅。當(dāng)然可以取反后送P1口)。

參考程序:

;*********************************************************

;*************       數(shù)字頻率計(jì)程序        ***************

;*********************************************************

;任務(wù):利用定時(shí)器T0定時(shí),產(chǎn)生2KHz方波,從P3.6腳輸出,

;并送P3.5腳(T1的計(jì)數(shù)腳)進(jìn)行計(jì)數(shù);T0還產(chǎn)生1秒定時(shí),不斷地

;打開和關(guān)閉T1計(jì)數(shù)器,并將讀取到的頻率值送P0口和P1口顯示。

 

;分析:2KHz方波,設(shè)占空比為50%,則高低電平的時(shí)間各為250uS,

;可用T0定時(shí),選方式2,自動(dòng)重新裝載初始值6。T1計(jì)數(shù),方式1。

 

;硬件上,將P3.6腳與P3.5腳相連(注意從排針上相連或短路帽短接)即可。

 

               org     0000h

               ljmp    main

;*********************************************************

;主程序

               org     0030h

main:          mov     p0,#0

               mov     p1,#0ffh

                        mov     p3,#0ffh             ;初始化,關(guān)閉所有發(fā)光管

                        mov     r3,#0

                        mov     r4,#0                     ;r3-r4組成1秒計(jì)數(shù)器

                        mov     tmod,#01010010B ;T1計(jì)數(shù),方式1;

                                                ;T0定時(shí),方式2。

                        mov     th0,#6

                        mov     tl0,#6                 ;預(yù)置初始值6,準(zhǔn)備計(jì)數(shù)250

                        mov     th1,#0

                        mov     tl1,#0

                        setb      tr0                    ;啟動(dòng)定時(shí)器T0

main_disp:      jnb      tf0,  main_disp

               clr      tf0

                        cpl      p3.6                ;輸出方波

                        inc      r3

                        cjne     r3,#0,next

                        inc      r4

               sjmp    main_disp

next:           cjne     r3,#0a0h,main_disp

               cjne     r4,#0fh,main_disp ;判斷夠4000次計(jì)數(shù)嗎?

                                                 ;因?yàn)橹袛?000次為1秒。

                        mov      r3,#0

                        mov      r4,#0                    ;1秒計(jì)數(shù)器清0

                        cpl       tr1                       ;啟動(dòng)或關(guān)閉T1計(jì)數(shù)器

                        jb        tr1,main_disp    ;若T1啟動(dòng)則返回,否則去讀取頻率值

                        mov      a,tl1

                        mov      P0,a            ;將頻率值的低8位送P0口顯示

                        mov      a,th1

               cpl       a               ;考慮P1口是低電平點(diǎn)亮,故取反

                        mov      P1,a            ; 將頻率值的高8位送P1口顯示

                        mov      tl1,#0

                        mov      th1,#0                  ;T1計(jì)數(shù)器清0

                        ljmp      main_disp

               end

;注:以上送P1和P0口的數(shù)據(jù)為16進(jìn)制。經(jīng)實(shí)驗(yàn),得到的16進(jìn)制值為07H、0D0H。

;***************************************************************

編輯: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

甘洛县| 肇州县| 滨海县| 资兴市| 武川县| 南昌县| 万州区| 宝应县| 庆元县| 平邑县| 万州区| 西乡县| 科技| 株洲市| 大新县| 保亭| 大化| 惠东县| 吉林市| 永州市| 云南省| 安龙县| 水城县| 高陵县| 大埔县| 无为县| 桐乡市| 云浮市| 泗洪县| 石阡县| 安徽省| 兴隆县| 上蔡县| 鹿泉市| 渑池县| 安塞县| 内江市| 红河县| 广东省| 石台县| 遵义县|