![單片機(jī)原理及應(yīng)用項目化教程課件項目四 定時器與數(shù)碼管動態(tài)顯示_第1頁](http://file4.renrendoc.com/view10/M00/27/32/wKhkGWWH7LmAU3Q2AAB3trbeBUY268.jpg)
![單片機(jī)原理及應(yīng)用項目化教程課件項目四 定時器與數(shù)碼管動態(tài)顯示_第2頁](http://file4.renrendoc.com/view10/M00/27/32/wKhkGWWH7LmAU3Q2AAB3trbeBUY2682.jpg)
![單片機(jī)原理及應(yīng)用項目化教程課件項目四 定時器與數(shù)碼管動態(tài)顯示_第3頁](http://file4.renrendoc.com/view10/M00/27/32/wKhkGWWH7LmAU3Q2AAB3trbeBUY2683.jpg)
![單片機(jī)原理及應(yīng)用項目化教程課件項目四 定時器與數(shù)碼管動態(tài)顯示_第4頁](http://file4.renrendoc.com/view10/M00/27/32/wKhkGWWH7LmAU3Q2AAB3trbeBUY2684.jpg)
![單片機(jī)原理及應(yīng)用項目化教程課件項目四 定時器與數(shù)碼管動態(tài)顯示_第5頁](http://file4.renrendoc.com/view10/M00/27/32/wKhkGWWH7LmAU3Q2AAB3trbeBUY2685.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目四定時器與數(shù)碼管
動態(tài)顯示項目描述
定時器用來實現(xiàn)精確定時,是單片機(jī)系統(tǒng)的一個重點,應(yīng)用十分廣泛,大家一定要完全理解并熟練掌握定時器的應(yīng)用。本項目利用定時器設(shè)計一個實時時鐘,利用六位數(shù)碼管分別顯示時鐘的時、分、秒等信息。定時器4.1.1定時器的初步認(rèn)識
學(xué)習(xí)定時器之前,我們先來了解單片機(jī)時序中的幾個概念:時鐘周期、機(jī)器周期和指令周期。
時鐘周期:時鐘周期T是時序中最小的時間單位,具體計算的方法就是1/時鐘源頻率,我們KST-51單片機(jī)開發(fā)板上用的晶振是11.0592M,那么對于我們這個單片機(jī)系統(tǒng)來說,時鐘周期=1/11059200秒。定時器
機(jī)器周期:單片機(jī)完成一個操作的最短時間。機(jī)器周期主要針對匯編語言而言,在匯編語言下程序的每一條語句執(zhí)行所使用的時間都是機(jī)器周期的整數(shù)倍,而且語句占用的時間是可以計算出來的。51單片機(jī)系列,在其標(biāo)準(zhǔn)架構(gòu)下一個機(jī)器周期是12個時鐘周期,也就是12/11059200秒。定時器指令周期:執(zhí)行一條指令(這里指匯編語言指令)所需要的時間稱為指令周期,指令周期是時序中的最大單位。由于機(jī)器執(zhí)行不同指令所需時間不同,因此不同指令所包含的機(jī)器周期數(shù)也不盡相同。51系列單片機(jī)的指令可能包括1~4個不等的機(jī)器周期。通常,包含一個機(jī)器周期的指令稱為單周期指令,包含兩個機(jī)器周期的指令稱為雙周期指令,等等。指令所包含的機(jī)器周期數(shù)決定了指令的運算速度,機(jī)器周期數(shù)越少的指令,其執(zhí)行速度越快。定時器
定時器用來進(jìn)行定時。定時器內(nèi)部有一個寄存器,開始計數(shù)后,這個寄存器的值每經(jīng)過一個機(jī)器周期(也就是12/11059200秒)就會自動加1。加到一定的值時會自動溢出,后面會講到定時器有多種工作模式,分別使用不同的位寬(指使用多少個二進(jìn)制位),假如是16位的定時器,也就是2個字節(jié),最大值就是65535,那么加到65535后,再加1就算溢出,對于51單片機(jī)來說,溢出后,這個值會直接變成0。從某一個初始值開始,經(jīng)過確定的時間后溢出,這個過程就是定時的含義。定時器4.1.2定時器的寄存器標(biāo)準(zhǔn)的51單片機(jī)內(nèi)部有T0和T1這兩個定時器。(1)定時值存儲寄存器下表的寄存器是存儲定時器的計數(shù)值的。TH0/TL0用于T0,TH1/TL1用于T1。先學(xué)習(xí)如何看寄存器TF1TR1TF0TR0IE1IT1IE0IT0TCON1、先分清每一位屬于哪個模塊2、查看每一位是可讀、可寫、可讀寫位的哪一種3、看每一位的具體功能以及在0或1時分別是什么狀態(tài)4、如何通過指令設(shè)置寄存器或者寄存器某一位的值5、寄存器的物理地址定時器(2)定時器控制寄存器TCON(地址0x88、可位尋址)TF0/TF1:T0/T1計數(shù)溢出標(biāo)志位??捎糜谏暾堉袛嗷蚬〤PU查詢。在進(jìn)入中斷服務(wù)程序時會自動清零;但在查詢方式時必須軟件清零。
=1:計數(shù)溢出;=0:計數(shù)未滿。TR0/TR1:T0/T1啟??刂莆弧?/p>
=1:啟動計數(shù);=0:停止計數(shù)。低四位IE1、IT1、IE0、IT0用于外部中斷,下一章再做介紹。
M1,M0:工作方式選擇位。
=00:13位定時器/計數(shù)器;
=01:16位定時器/計數(shù)器(常用);
=10:可自動重裝的8位定時器/計數(shù)器(常用);
=11:T0分為2個8位定時器/計數(shù)器;僅適用于T0。
C/:定時方式/計數(shù)方式選擇位。
=1:選擇計數(shù)器工作方式,對T0/T1引腳輸入外部事件的負(fù)脈沖計數(shù);
=0:選擇定時器工作方式,對機(jī)器周期脈沖計數(shù)定時。GATEC/TM1M0GATEC/TM1M0T1T0定時器(3)定時器模式寄存器TMOD(地址0x89、不可位尋址)GATE:門控位,定時/計數(shù)器的啟/??捎绍浖c硬件兩者控制
=0:軟件控制,只由TCON中的啟/??刂莆籘R0/TR1控制 定時器/計數(shù)器的啟/停。
=1:硬件控制,由外部中斷請求信號/和TCON中 的啟/??刂莆籘R0/TR1組合狀態(tài)控制定時器/計數(shù)器的啟/停。定時器定時器定時器/計數(shù)器的4種工作方式M1M0工作方式功能描述00工作方式013位計數(shù)器01工作方式116位計數(shù)器10工作方式2自動再裝入8位計數(shù)器11工作方式3定時器0:分成兩個8位計數(shù)器,定時器1:停止計數(shù)
MCS-51單片機(jī)的定時器/計數(shù)器共有4種工作模式,現(xiàn)以T0為例加以介紹,T1與T0的工作原理相同,但在方式3下,T1停止計數(shù)。1.工作方式0(M1M0=00,13位定時器/計數(shù)器)由TH0的全部8位和TL0的低5位(TL0的高3位未用)構(gòu)成13位加1計數(shù)器,當(dāng)TL0低5位計數(shù)滿時直接向TH0進(jìn)位,并當(dāng)全部13位計數(shù)滿溢出時,溢出標(biāo)志位TF0置“1”。2.工作方式1(M1M0=01,16位定時器/計數(shù)器)由TH0和TL0構(gòu)成16位加1計數(shù)器,其他特性與工作方式0相同。定時器3.工作方式2(M1M0=10,自動重裝計數(shù)初值的8位定時器/計數(shù)器)
16位定時器/計數(shù)器被拆成兩個8位寄存器TH0和TL0,CPU在對它們初始化時必須裝入相同的定時器/計數(shù)器初值。以TL0作計數(shù)器,而TH0作為預(yù)置寄存器。當(dāng)計數(shù)滿溢出時,TF0置“1”,同時TH0將計數(shù)初值以硬件方法自動裝入TL0。這種工作方式很適合于那些重復(fù)計數(shù)的應(yīng)用場合(如串行數(shù)據(jù)通信的波特率發(fā)生器)。定時器4、工作方式3(M1M0=11,2個8位定時器/計數(shù)器,僅適用于T0)TL0:8位定時器/計數(shù)器,使用T0原有控制資源TR0和TF0,其功能和操作與方式0或方式1完全相同。TH0:只能作為8位定時器,借用T1的控制位TR1和TF1,只能對片內(nèi)機(jī)器周期脈沖計數(shù)。在方式3模式下,定時器/計數(shù)器0可以構(gòu)成兩個定時器或者一個定時器和一個計數(shù)器。
一般,只有在T1以方式2運行(當(dāng)波特率發(fā)生器用)時,才讓T0工作于方式3下。定時器定時器例:設(shè)定定時器1為定時工作方式,要求軟件啟動定時器1按方式2工作。定時器0為計數(shù)方式,要求由軟件啟動定時器0,按方式1工作。怎么來實現(xiàn)這個要求呢?①控制定時器1工作在定時方式或計數(shù)方式是哪個位?
位(D6)是定時或計數(shù)功能選擇位,當(dāng)=0時定時/計數(shù)器就為定時工作方式。②設(shè)定定時器1按方式2工作。要使定時/計數(shù)器1工作在方式2,M0(D4)M1(D5)的值必須是10。③設(shè)定定時器0為計數(shù)方式。當(dāng)=1時,就工作在計數(shù)器方式。④由軟件啟動定時器0,當(dāng)門控位GATE=0時,定時/計數(shù)器的啟停就由軟件控制。定時器⑤設(shè)定定時/計數(shù)器工作在方式1,使定時/計數(shù)器0工作在方式1,M0(D0)M1(D1)的值必須是01。
從上面的分析我們可以知道,只要將TMOD的各位,按規(guī)定的要求設(shè)置好后,定時器/計數(shù)器就會按我們預(yù)定的要求工作。我們分析的這個例子最后各位的情況如下: D7D6D5D4D3D2D1D0 00100101
二進(jìn)制數(shù)00100101b=十六進(jìn)制數(shù)25H。所以執(zhí)行TMOD=0x25(或者用匯編語言MOVTMOD,#25H)這條指令就可以實現(xiàn)上述要求。定時器4.1.3定時器初始化
由于定時器/計數(shù)器的功能是由軟件編程確定的,所以一般在使用前都要對其進(jìn)行初始化,初始化的步驟一般如下:(1)確定工作方式(即對TMOD賦值);(2)預(yù)置定時或計數(shù)的初值(可直接將初值寫入TH0、TL0或TH1、TL1);(3)根據(jù)需要開放定時器/計數(shù)器中斷(直接對IE位賦值)(4)啟動定時器/計數(shù)器(若已規(guī)定用軟件啟動,則可把TR0或TR1置“1”;若已規(guī)定由外中斷引腳電平啟動,則需給外引腳加啟動電平。)。定時器下面介紹一下確定時時/計數(shù)器初值的具體方法。在不同工作方式下計數(shù)器位數(shù)不同,最大計數(shù)值也不同?,F(xiàn)假設(shè)最大計數(shù)值為M,那么各方式下的最大值M值如下:方式0:M=213=8192方式1:M=216=65536方式2:M=28=256方式3:定時器0分成兩個8位計數(shù)器,所以兩個M均為256。
因為定時器/計數(shù)器是作“加1”計數(shù),并在計數(shù)滿溢出時產(chǎn)生中斷,因此初值X可以這樣計算: X=M-計數(shù)值定時器例:選擇T1方式0用于定時,在P1.1輸出周期為1ms方波,晶振
fosc=6MHz。解:根據(jù)題意,只要使P1.1每隔500us取反一次即可得到1ms的方波,因而T1的定時時間為500us,因定時時間不長,取方式1即可。則M1M0=1;因是定時器方式,所以=0;在此用軟件啟動T1,所以GATE=0。T0不用,方式字可任意設(shè)置,只要不使其進(jìn)入方式3即可,一般取0,故TMOD=10H。計算500us定時T1初始值:
機(jī)器周期:T=12/fosc=12/(6×106)Hz=2μs設(shè)初值為X,則:(216-X)×2×10-6s=500×10-6s定時器X=216-250=65286=FF06H=1111111100000110B因此TH1=FFH,TL1=06H。初始化程序如下:TMOD=0x10; //定時器1方式1TH1=0XFF;TL1=0X06; //裝入時間常數(shù)TR1=1; //啟動定時器定時器4.1.4定時器中斷1、中斷的基本概念
中斷的定義:所謂“中斷”,是指CPU執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)特殊請求,CPU暫時中止當(dāng)前的程序,轉(zhuǎn)去處理更緊急的事件(執(zhí)行中斷服務(wù)程序),處理完畢(中斷服務(wù)完成)后,CPU自動返回原程序的過程。
中斷后轉(zhuǎn)向執(zhí)行的程序叫中斷服務(wù)程序或中斷處理程序。原程序被斷開的位置(地址)叫作斷點。
發(fā)出中斷信號的設(shè)備稱為中斷源。中斷源要求中斷服務(wù)所發(fā)出的標(biāo)志信號稱為中斷請示或中斷申請。
定時器
中斷源向CPU發(fā)出中斷申請,CPU經(jīng)過判斷認(rèn)為滿足條件,則對中斷源作出答復(fù),這叫中斷響應(yīng)。中斷響應(yīng)后就去處理中斷源的有關(guān)請求,即轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。2.引入中斷的主要優(yōu)點(1)提高CPU工作效率(2)實現(xiàn)實時處理功能(3)實現(xiàn)分時操作定時器3.STC89C52中斷源 STC89C52單片機(jī)共有6個中斷源。它們分別是:2個外部中斷,4個片內(nèi)中斷,即定時器T0的溢出中斷、定時器T1的溢出中斷、定時器T2的溢出中斷和串行口中斷;這6個中斷源,可以根據(jù)需要隨時向CPU發(fā)出中斷申請。(1)外部中斷源
外部中斷是由外部信號引起的,請求有兩種信號觸發(fā)方式,即低電平觸發(fā)和下降沿觸發(fā)。外部中斷請求的這兩種信號方式,可通過設(shè)置寄存器TCON中的IT0和IT1位狀態(tài)的值來設(shè)定。定時器控制寄存器TCON各位定義如下表所示。定時器IE0/IE1:外部中斷申請標(biāo)志位(由硬件自動置位,中斷響
應(yīng)后轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動清0)
=0:沒有外部中斷申請;
=1:有外部中斷申請。IT0/IT1:外部中斷請求的觸發(fā)方式控制位(可由用戶通過軟
件設(shè)置)。 =0:在端申請中斷的信號低電平有效; =1:在端申請中斷的信號負(fù)跳變有效。定時器(2)定時器溢出中斷源
定時/計數(shù)器中斷由單片機(jī)內(nèi)部定時器產(chǎn)生,屬于內(nèi)部中斷。STC89C52內(nèi)部有三個16位的定時器/計數(shù)器T0、T1和T2,最常用的是T0和T1,它們以計數(shù)的方法來實現(xiàn)定時或計數(shù)的。當(dāng)它作為定時器使用時,其計數(shù)信號來自于CPU內(nèi)部的機(jī)器周期脈沖,當(dāng)它作為計數(shù)器使用時,其計數(shù)信號來自于CPU的T0(P3.4)、T1(P3.5)引腳。
在啟動定時/計數(shù)器后,每來一個機(jī)器周期或在對應(yīng)的引腳上每檢測到一個脈沖信號時,定時/計數(shù)器就加1一次,當(dāng)計數(shù)器的值從全1變?yōu)槿?時,就去置位一個溢出標(biāo)志位,CPU查詢到后就知道有定時/計數(shù)器的溢出中斷的申請。定時器(3)串行中斷源
串行口中斷源分為串行口發(fā)送中斷和串行口接收中斷兩種。串行中斷是為串行數(shù)據(jù)傳送的需要而設(shè)置的。每當(dāng)串行口發(fā)送完一組串行數(shù)據(jù)時,就會使串行口控制寄存器SCON中的串行發(fā)送中斷標(biāo)志位TI置1,每當(dāng)串行口接收完一組串行數(shù)據(jù)時,就會使串行接收中斷標(biāo)志位RI置1,作為串行口中斷請求標(biāo)志,產(chǎn)生一個中斷請求。串行口控制寄存器SCON的內(nèi)容如下表所示。SCOND7D6D5D4D3D2D1D0位符號SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H定時器其中與中斷請求標(biāo)志有關(guān)的位如下:①TI:串行口發(fā)送中斷請求標(biāo)志位
當(dāng)發(fā)送完一幀串行數(shù)據(jù)后,由硬件置“1”;在轉(zhuǎn)向中斷服務(wù)程序后,需要用軟件對該位清“0”。②RI:串行口接收中斷請求標(biāo)志位
當(dāng)接收完一幀串行數(shù)據(jù)后,由硬件置“1”;在轉(zhuǎn)向中斷服務(wù)程序后,需要用軟件對該位清“0”。串行中斷請求由TI和RI的邏輯或得到。就是說,無論是發(fā)送標(biāo)志還是接收標(biāo)志,都會產(chǎn)生串行中斷請求。4.中斷控制51系列單片機(jī)中斷系統(tǒng)的硬件結(jié)構(gòu)如下圖所示定時器定時器對中斷信號進(jìn)行鎖存、屏蔽、優(yōu)先級控制是通過設(shè)置一些特殊功能寄存器,如寄存器TCON、SCON、IE和IP來進(jìn)行的。(1)中斷允許控制寄存器IE(0A8H)
EAESET1EX1ET0EX0EX0/EX1/ET0/ET1/ES位:分別是
,T0/T1,串行口的中斷允許控制位。
=0:禁止中斷;
=1:允許中斷。EA:總的中斷允許控制位(總開關(guān)):
=0:禁止全部中斷;
=1:允許中斷。(4)中斷優(yōu)先級控制寄存器IP(0B8H)
51單片機(jī)有兩個中斷優(yōu)先級,即高優(yōu)先級和低優(yōu)先級,每個中斷源都可設(shè)置為高或低中斷優(yōu)先級,以便CPU對所有的中斷實現(xiàn)兩級中斷嵌套。51單片機(jī)內(nèi)部中斷系統(tǒng)對各中斷源的中斷優(yōu)先級有一個統(tǒng)一的規(guī)定,稱為自然優(yōu)先級。如下表所示。中斷源入口地址中斷號優(yōu)先級別說
明外部中斷00003H0高低來自P3.2引腳(INT0)的外部中斷請求定時/計數(shù)器0000BH1定時/計數(shù)器T0溢出中斷請求外部中斷10013H2來自P3.3引腳(INT1)的外部中斷請求定時/計數(shù)器1001BH3定時/計數(shù)器T1溢出中斷請求串行口0023H4串行口完成一幀數(shù)據(jù)的發(fā)送或接受請求定時/計數(shù)器2002BH5定時/計數(shù)器T2溢出中斷請求↓
中斷優(yōu)先級控制寄存器IP(0B8H)
PSPT1
PX1
PT0PX0PX0/PX1:優(yōu)先級控制位:
=0:屬低優(yōu)先級;
=1:屬高優(yōu)先級。PT0/PT1:T0/T1中斷優(yōu)先級控制位:
=0:屬低優(yōu)先級;
=1:屬高優(yōu)先級。PS:串行口中斷優(yōu)先級控制位:
=0:屬低優(yōu)先級;
=1:屬高優(yōu)先級。定時器中斷優(yōu)先級處理原則:對同時發(fā)生多個中斷申請時:不同優(yōu)先級的中斷同時申請:先高后低相同優(yōu)先級的中斷同時申請:按序執(zhí)行正處理低優(yōu)先級中斷又接到高級別中斷:高打斷低
正處理高優(yōu)先級中斷又接到低級別中斷:高不理低定時器定時器5.C51中的中斷函數(shù)
在C51中規(guī)定,中斷服務(wù)程序中,必須指定對應(yīng)的中斷號,用中斷號確定該中斷服務(wù)程序是哪個中斷所對應(yīng)的中斷服務(wù)程序。(1)中斷服務(wù)程序格式為:void
函數(shù)名(參數(shù))interruptnusingm{
函數(shù)體語句;}
其中:interrupt后面的n是中斷號;關(guān)鍵字using后面的m是所選擇的寄存器組,取值范圍是0-3,定義中斷函數(shù)時,using是一個選項,可以省略不用。定時器(2)使用中斷函數(shù)時要注意的問題①在設(shè)計中斷時,要注意的是哪些功能應(yīng)該放在中斷程序中,哪些功能應(yīng)該放在主程序中。②中斷函數(shù)不能傳遞參數(shù)。③中斷函數(shù)沒有返回值。④中斷函數(shù)調(diào)用其他函數(shù),則要保證使用相同的寄存器組,否則出錯。⑤中斷函數(shù)使用浮點運算要保存浮點寄存器的狀態(tài)。定時器4.1.5定時器的應(yīng)用
利用定時器T0中斷控制KST-51開發(fā)板上的8個LED燈每秒鐘閃爍一次。①確定TMOD寄存器值
設(shè)置T0工作在定時模式,工作方式1,起停由TR0控制,由TMOD寄存器結(jié)構(gòu)可知,其初值為0x01;②確定計數(shù)初值
開發(fā)板上使用的晶振為11.0592MHz,最長定時時間是工作在方式1下,其初值為0時,此時定時時間為(216-0)×12/(11.0592×106)=0.0711s,因此,單純用定時器無法實現(xiàn)1s的定時。定時器
一般采用軟件計數(shù)器進(jìn)行設(shè)計,設(shè)計思想為:定義一個軟件計數(shù)器變量cnt,初始化為0,先用T0實現(xiàn)一個50ms的定時器,定時時間到之后并不是立即閃爍變換(取反P0),而是將計數(shù)器cnt的值加1,如果軟件計數(shù)器cnt到了20,再取反P0,并清除軟件計數(shù)器中的值,否則直接返回,這樣,20次定時中斷后才取反一次P0,定時時間為20×50=1000ms=1s。因此,定時初值可通過如下公式計算:
計算可得,初值X=19456=0x4C00,可得,TH0=4C,TL0=00。定時器③確定IE寄存器的值 IE寄存器中與定時器T0中斷相關(guān)的位有兩個,中斷總開關(guān)EA,定時器T0中斷允許控制位ET0,若要單片機(jī)能相應(yīng)T0中斷,這兩個位都應(yīng)為1.④源程序編寫#include<reg52.h>sbitADDR0=P1^0;sbitADDR1=P1^1;sbitADDR2=P1^2;sbitADDR3=P1^3;sbitENLED=P1^4;unsignedcharcnt=0;//定義一個計數(shù)變量,記錄T0溢出次數(shù)定時器voidmain(){ENLED=0;ADDR3=1;ADDR2=1;ADDR1=1;ADDR0=0;TMOD=0x01;//設(shè)置T0為模式1TH0=0x4C;//為T0賦初值0xB800TL0=0x00;EA=1;ET0=1;TR0=1;//啟動T0while(1);}voidclock()interrupt1{ cnt++; TH0=0x4C; TL0=0x00; if(cnt==20) { P0=~P0; cnt=0; }}
將上述程序編譯一下,并下載到單片機(jī)中,觀察運行結(jié)果并分析。數(shù)碼管動態(tài)顯示4.2.1動態(tài)顯示的基本原理
多個數(shù)碼管顯示數(shù)字的時候,我們實際上是輪流點亮數(shù)碼管(一個時刻內(nèi)只有一個數(shù)碼管是亮的),利用人眼的視覺暫留現(xiàn)象(也叫余輝效應(yīng)),就可以做到看起來是所有數(shù)碼管都同時亮了,這就是動態(tài)顯示,也叫做動態(tài)掃描。
例如:有2個數(shù)碼管,我們要顯示“12”這個數(shù)字,先讓高位的位選三極管導(dǎo)通,然后控制段選讓其顯示“1”,延時一定時間后再讓低位的位選三極管導(dǎo)通,然后控制段選讓其顯示“2”。把這個流程以一定的速度循環(huán)運行就可以讓數(shù)碼管顯示出“12”,由于交替速度非???,人眼識別到的就是“12”這兩位數(shù)字同時亮了。數(shù)碼管動態(tài)顯示
那么要多長時間完成一次全部數(shù)碼管的掃描呢(很明顯:整體掃描時間=單個數(shù)碼管點亮?xí)r間*數(shù)碼管個數(shù))?答案是:10ms以內(nèi)。只要刷新率大于100Hz,即刷新時間小于10ms,就可以做到無閃爍,這是動態(tài)掃描的硬性指標(biāo)。有最小值的限制嗎?理論上沒有,但實際上做到更快的刷新卻沒有任何進(jìn)步的意義了,因為已經(jīng)無閃爍了,再快也還是無閃爍,只是徒然增加CPU的負(fù)荷而已(因為1秒內(nèi)要執(zhí)行更多次的掃描程序)。所以,通常我們設(shè)計程序的時候,都是取一個接近10ms,又比較規(guī)整的值就行了。數(shù)碼管動態(tài)顯示4.2.2數(shù)碼管動態(tài)顯示應(yīng)用
利用定時中斷設(shè)計一個電子時鐘并通過6位數(shù)碼管顯示時、分、秒。①LED數(shù)碼管動態(tài)顯示驅(qū)動方式
動態(tài)驅(qū)動是將所有數(shù)碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時,所有數(shù)碼管都接收到相同的字形碼,但究竟是哪個數(shù)碼管會顯示出字形,取決于單片機(jī)對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼管的的COM端,就使各個數(shù)碼管輪流受控顯示,這就是動態(tài)驅(qū)動。動態(tài)顯示方式驅(qū)動電路數(shù)碼管動態(tài)顯示
在輪流顯示過程中,每位數(shù)碼管的點亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實際上各位數(shù)碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會有閃爍感,動態(tài)顯示的效果和靜態(tài)顯示是一樣的,但動態(tài)顯示更能夠節(jié)省大量的I/O端口,而且功耗更低。數(shù)碼管動態(tài)顯示②60進(jìn)制計數(shù)程序設(shè)計說明1)一位計數(shù)方法:unsignedchartime=0//定義變量time為計數(shù)值,初值為0voidcalc()//計數(shù)程序{time[0]++;//計數(shù)值加1if(time[0]>59)//判斷計數(shù)是否到59time[0]=0;//到59,則計數(shù)從0重新開始}voidconvert()//計數(shù)轉(zhuǎn)換程序{ display_data[0]=time/10;//對計數(shù)值取整得到計數(shù)的十位 display_data[1]=time%10;//對計數(shù)值求余得到計數(shù)的個位}數(shù)碼管動態(tài)顯示2)分別計數(shù)方法inttime[]={0,0}//time[0]用于個位計數(shù),time[1]用于存放十位計數(shù)voidcalc()//計算程序{ time[0]++;//個位計數(shù), if(time[0]>9)//判斷是否計數(shù)到9 { time[0]=0;//若計數(shù)到9,則十位加1,個位重新從0開始 time[1]++; iftime[1]>5;//判斷十位是否計數(shù)到5 { time[1]=0//若十位計數(shù)到5,則計數(shù)重新開始 } }}數(shù)碼管動態(tài)顯示4.2.3源程序編寫#include<reg52.h>#defineucharunsignedcharsbitADDR0=P1^0;sbitADDR1=P1^1;sbitADDR2=P1^2;sbitADDR3=P1^3;
sbitENLED=P1^4;ucharcnt=0;//定義一個計數(shù)變量,記錄T0溢出次數(shù)ucharsec=0,min=0,hour=0;unsignedcharcodeLedChar[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 物流管理中的客戶服務(wù)優(yōu)化
- 現(xiàn)代醫(yī)療辦公環(huán)境的電氣化改造
- 國慶節(jié)包廂套餐活動方案
- 2024年五年級品社下冊《祖國不會忘記他們》說課稿 山東版
- 2023二年級數(shù)學(xué)上冊 6 表內(nèi)乘法(二)綜合與實踐 量一量比一比說課稿 新人教版
- 1 北京的春節(jié) 說課稿-2023-2024學(xué)年語文六年級下冊統(tǒng)編版
- 9《生活離不開他們》 感謝他們的勞動 說課稿-2023-2024學(xué)年道德與法治四年級下冊統(tǒng)編版
- Unit 2 Weather Lesson 1(說課稿設(shè)計)-2023-2024學(xué)年人教新起點版英語二年級下冊001
- 2024年高中英語 Unit 3 Welcome to the unit and reading I說課稿 牛津譯林版選擇性必修第二冊
- 2024-2025學(xué)年高中歷史 第五單元 經(jīng)濟(jì)全球化的趨勢 第26課 經(jīng)濟(jì)全球化的趨勢(1)教學(xué)說課稿 岳麓版必修2
- 工程公司總經(jīng)理年終總結(jié)
- 2024年海南省高考地理試卷(含答案)
- 【企業(yè)盈利能力探析的國內(nèi)外文獻(xiàn)綜述2400字】
- 三年級上冊數(shù)學(xué)口算題1000道帶答案
- 2024年知識競賽-競彩知識考試近5年真題集錦(頻考類試題)帶答案
- GB/T 44311-2024適老環(huán)境評估導(dǎo)則
- 蘇教版(2024新版)一年級上冊科學(xué)全冊教案教學(xué)設(shè)計
- 【長安的荔枝中李善德的人物形象分析7800字(論文)】
- 期末綜合測試卷一(試題)-2023-2024學(xué)年一年級下冊數(shù)學(xué)滬教版
- QB/T 6019-2023 制漿造紙專業(yè)設(shè)備安裝工程施工質(zhì)量驗收規(guī)范 (正式版)
- 江西警察學(xué)院治安學(xué)專業(yè)主干課程教學(xué)大綱 文檔
評論
0/150
提交評論