版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)1:數(shù)碼管顯示顯示器及其接口單片機(jī)系統(tǒng)中常用的顯示器有:發(fā)光二極管LED(LightEmittingDiode)顯示器、液晶LCD(LiquidCrystalDisplay)顯示器、CRT顯示器等。LED、LCD顯示器有兩種顯示結(jié)構(gòu):段顯示(7段、米字型等)和點(diǎn)陣顯示(5×8、8×8點(diǎn)陣等)。LED數(shù)碼管結(jié)構(gòu)和原理字符編碼限流電阻計(jì)算編程實(shí)現(xiàn)靜、動(dòng)態(tài)顯示LED數(shù)碼管結(jié)構(gòu)及原理
共陰極共陽(yáng)極LED數(shù)碼管字符編碼共陰數(shù)碼管碼表
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0 1 2 345
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
6 7 8 9AB
0x39,0x5e,0x79,0x71
CDEF LED數(shù)碼管字符編碼共陽(yáng)數(shù)碼管碼表
0xC0,0xF9,0xA4,0xB0,0x99,0x92,
0 1 2 345
0x82,0xF8,0x80,0x90,0x88,0x83,
6 7 8 9AB
0xC6,0xA1,0x86,0x8E
CDEF 限流電阻的計(jì)算
單片機(jī)外接數(shù)碼管,數(shù)碼管的內(nèi)部結(jié)構(gòu)是LED發(fā)光二極管,電路必須使用電阻進(jìn)行限流。串聯(lián)電阻,避免損壞單片機(jī)的輸出引腳,同時(shí)防止LED發(fā)光二極管過(guò)熱損害,也能限制LED發(fā)光二極管的功耗。一般單片機(jī)驅(qū)動(dòng)引腳能夠承受的電流輸入在10~15mA左右,串聯(lián)的限流電阻計(jì)算如下:R=(5V–Vd)/IdId為限制電流,取值10mA,Vd為L(zhǎng)ED發(fā)光二極管的正向電壓,取值2V,從而得到限流電阻值如下:R=(5V-2V)/10mA=300(歐)在實(shí)際設(shè)計(jì)中,為了有效保護(hù)單片機(jī)引腳,一般對(duì)LED發(fā)光二極管驅(qū)動(dòng)采用的限流電阻比300歐大,常用的典型值為470歐。LED靜態(tài)顯示
靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定導(dǎo)通或恒定截止。舉例1:?jiǎn)纹瑱C(jī)控制1位數(shù)碼管上顯示2。硬件電路設(shè)計(jì)軟件程序設(shè)計(jì)
分析思考:硬件連好了,如何讓數(shù)碼管上顯示2呢?數(shù)字2的共陽(yáng)極的字型編碼是0xa4,當(dāng)P0口輸出數(shù)據(jù)0xa4時(shí),單片機(jī)的P0口的P0.7……P0.1、P0.0引腳輸出10100100,數(shù)碼管的COM端接高電平,則LED數(shù)碼管上有5段點(diǎn)亮,見上圖的a、b、d、e、g,所以數(shù)碼管上顯示數(shù)字2。單片機(jī)控制在LED數(shù)碼管顯示數(shù)字2,參考程序如下:#include<reg51.h>voidmain() //單片機(jī)控制LED數(shù)碼管顯示2{unsignedcharcodeled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽(yáng)數(shù)碼管的字符編碼0,1,2,3,4,5,6,7,8,9unsignedchari;while(1){i=2;P0=led[i];}}LED動(dòng)態(tài)顯示動(dòng)態(tài)顯示是按位輪流點(diǎn)亮各位數(shù)碼管的顯示方式。即在任一時(shí)段,只有其中一位數(shù)碼管“位選端”有效,并送出相應(yīng)的字形顯示編碼,其它的數(shù)碼管此時(shí)都因?yàn)椤拔贿x端”無(wú)效而處于熄滅狀態(tài)。下一個(gè)時(shí)段按順序選通另外一位數(shù)碼管,并送出相應(yīng)的字形顯示編碼,依此規(guī)律循環(huán)下去,即可使各位數(shù)碼管分別間斷顯示出相應(yīng)的字符。只要每位顯示間隔時(shí)間足夠短,就會(huì)看到各數(shù)碼管好像是“同時(shí)”顯示。舉例:設(shè)計(jì)程序?qū)崿F(xiàn)四個(gè)LED從左到右循環(huán)依次顯示0,1,2,3,4,并用PROTUES進(jìn)行仿真。硬件電路設(shè)計(jì)軟件程序設(shè)計(jì)上圖中標(biāo)為1234引腳的稱為位選,控制選擇某一個(gè)數(shù)碼管,確定顯示的位置;標(biāo)為ABCDEGDP的稱為段選,控制選擇數(shù)碼管中哪幾段點(diǎn)亮,確定顯示的字型。圖中單片機(jī)從P2口向數(shù)碼管輸出數(shù)字“4”的段碼,此時(shí)所有的數(shù)碼管都接收到“4”的段碼,哪個(gè)數(shù)碼管顯示“4”由數(shù)碼管的公共端決定,即位選碼決定。此時(shí)第4個(gè)數(shù)碼管的公共端為低電平,其他數(shù)碼管的公共端為高電平,因此只有第4個(gè)數(shù)碼管顯示“4”,其他數(shù)碼管不顯示任何數(shù)字。圖中數(shù)碼管上顯示數(shù)字“1234”,實(shí)際是先輸出位選信號(hào)選中第1個(gè)數(shù)碼管,輸出1的段碼,延時(shí)一段時(shí)間后選中第二個(gè)數(shù)碼管,輸出2的段碼,延時(shí)一段時(shí)間后。又輸出位選碼選中第3個(gè)數(shù)碼管,輸出3的段碼,延時(shí)一段時(shí)間后,又輸出位選碼選中第4個(gè)數(shù)碼管,輸出4的段碼……,反復(fù)這個(gè)過(guò)程,就可以顯示出“1234”,由于交替的速度非常快,利用視覺暫留,人眼看到的就是連續(xù)的“1234”。軟件程序流程圖參考程序#include<reg51.h>voiddelay(unsignedchari);unsignedcharch[4]={0x06,0x5b,0x4f,0x66};//共陰數(shù)碼管1、2、3、4的字型碼voidmain(){while(1){ P3=0x0fe;//位選,選通第1個(gè)數(shù)碼管
P2=ch[0]; //段選,數(shù)碼管的字型碼
delay(20);//延時(shí)
P3=0xfd;//位選,選通第2個(gè)數(shù)碼管
P2=ch[1]; delay(20); P3=0xfb;
P2=ch[2]; delay(20); P3=0xf7; P2=ch[3]; delay(20);}}voiddelay(unsignedchari){unsignedcharj,k;
for(k=0;k<i;k++)
for(j=0;j<255;j++);}任務(wù)擴(kuò)展:實(shí)現(xiàn)四位數(shù)碼管循環(huán)顯示0~9999。提示:注意區(qū)分4位數(shù)碼管是共陰管還是共陽(yáng)管。任務(wù)2:蜂鳴器發(fā)音理論學(xué)習(xí):蜂鳴器1、蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計(jì)算機(jī)、打印機(jī)、復(fù)印機(jī)、報(bào)警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時(shí)器等電子產(chǎn)品中作發(fā)聲器件。按其驅(qū)動(dòng)方式的不同,可分為:有源蜂鳴器(內(nèi)含驅(qū)動(dòng)線路)和無(wú)源蜂鳴器(外部驅(qū)動(dòng))
2、有源蜂鳴器和無(wú)源蜂鳴器的區(qū)別1)外觀
2、有源蜂鳴器和無(wú)源蜂鳴器的區(qū)別2)驅(qū)動(dòng)方式注意:“源”指的是震蕩源,而不是電源。有源蜂鳴器內(nèi)部帶有震蕩源,只要一通電就會(huì)叫。無(wú)源蜂鳴器內(nèi)部不帶震蕩源,必須用2K~5K的方波信號(hào)去驅(qū)動(dòng)才能發(fā)聲。
2、有源蜂鳴器和無(wú)源蜂鳴器的區(qū)別3)引腳長(zhǎng)短有源蜂鳴器引腳一腳長(zhǎng)一腳短,有正負(fù)之分無(wú)源蜂鳴器引腳一樣長(zhǎng),無(wú)正負(fù)之分
3、有源蜂鳴器和無(wú)源蜂鳴器的區(qū)分1)看外觀2)用外用表用萬(wàn)用表電阻檔Rxl
檔測(cè)試:用黑表筆接蜂鳴器“+”引腳,紅表筆在另一引腳上來(lái)回觸碰,如果覺發(fā)出咔、咔聲且電阻為8Ω(或16Ω)的是無(wú)源蜂鳴器;如果能發(fā)出持續(xù)聲音,且電阻在幾百歐以上的,是有源蜂鳴器。
有源蜂鳴器發(fā)音及舉例任務(wù):編程實(shí)現(xiàn)聲音報(bào)警,報(bào)警時(shí)發(fā)出“嘟嘟”的響聲。1)硬件設(shè)計(jì):蜂鳴器一端接高電平,另一端接三極管的集電極,三極管發(fā)射極接地,三極管的基極接單片機(jī)端口P2.7。當(dāng)三極管的基極為高電平飽和導(dǎo)通蜂時(shí),蜂鳴器就會(huì)發(fā)聲了。電路下圖所示:小知識(shí):為什么單片機(jī)不直接接控制蜂鳴器呢?因?yàn)殚L(zhǎng)聲蜂鳴器5V(SOT塑封封裝)的參數(shù)為:直流有源蜂鳴器:電壓:3.5—5.5V;電流:<25mA;頻率:2300±500Hz;而51單片機(jī)高電平輸出能力很弱,輸出電流弱,驅(qū)動(dòng)電流一般不超過(guò)20ma所以用三極管擴(kuò)流驅(qū)動(dòng)。軟件設(shè)計(jì):自行練習(xí)項(xiàng)目2帶鬧鐘的數(shù)字鐘的設(shè)計(jì)與制作系統(tǒng)功能仿真演示項(xiàng)目要求在基于單片機(jī)設(shè)計(jì)制作一個(gè)帶鬧鐘的數(shù)字鐘,用數(shù)碼管顯示時(shí)間,有啟動(dòng)、停止和時(shí)間調(diào)整、鬧鐘等功能,具體功能描述如下:1)系統(tǒng)以秒為計(jì)時(shí)單位,通過(guò)四位數(shù)碼管實(shí)現(xiàn)時(shí)間的倒計(jì)時(shí)顯示,即顯示的時(shí)間范圍為0~9999秒。2)系統(tǒng)具有啟動(dòng)/暫停計(jì)時(shí)功能,通過(guò)按鍵來(lái)實(shí)現(xiàn)。3)系統(tǒng)可通過(guò)按鍵實(shí)現(xiàn)時(shí)間調(diào)整,即分/秒的加減。4)當(dāng)系統(tǒng)到達(dá)設(shè)定時(shí)間,蜂鳴器發(fā)出“嘟嘟”的響聲,響3秒。
系統(tǒng)方案設(shè)計(jì)(1)總體結(jié)構(gòu)設(shè)計(jì):根據(jù)帶鬧鐘的數(shù)字鐘的功能要求,進(jìn)行了系統(tǒng)的總體設(shè)計(jì)。該系統(tǒng)由51單片機(jī)模塊、按鍵控制模塊、蜂鳴器模塊、數(shù)碼管顯示模塊、電源模塊5個(gè)模塊組成。其系統(tǒng)結(jié)構(gòu)總體框圖如圖1所示。
晶振電路復(fù)位電路單片機(jī)按鍵控制模塊蜂鳴器數(shù)碼管顯示模塊項(xiàng)目任務(wù)1、數(shù)碼顯示2、蜂鳴器3、鍵盤4、定時(shí)/計(jì)數(shù)器任務(wù)要求理解本任務(wù)的軟、硬件原理,然后以個(gè)人為單位,完成如下任務(wù):硬件電路板的制作、調(diào)試;程序的編寫和仿真;軟硬件的聯(lián)調(diào)。任務(wù)3:鍵盤的應(yīng)用1、鍵盤的分類鍵盤分編碼鍵盤和非編碼鍵盤。在單片機(jī)組成的測(cè)控系統(tǒng)及智能化儀器中,用的最多的是非編碼鍵盤。非編碼鍵盤有分為:獨(dú)立式非編碼鍵盤和行列式非編碼鍵盤。2、鍵盤的結(jié)構(gòu)常用的機(jī)械式按鍵,按鍵是4腳封裝,內(nèi)部2腳相連,圖(b)是按鍵的背面圖,用萬(wàn)用表測(cè)試4只引腳的通斷。1號(hào)和2號(hào)引腳是連通的,3號(hào)和4號(hào)引腳是連通的。硬件連接時(shí)注意引出按鍵4個(gè)引腳中不相通的2個(gè)引腳,如按鍵的對(duì)角上的兩個(gè)引腳。
按鍵與單片機(jī)引腳相連后,按鍵按下或閉合會(huì)影響單片機(jī)引腳狀態(tài),讀取引腳狀態(tài),推斷按鍵是否按下,從而達(dá)到輸入信息的目的。3、獨(dú)立式按鍵
獨(dú)立式按鍵是指各按鍵相互獨(dú)立地接通一條輸入數(shù)據(jù)線。當(dāng)任何一個(gè)鍵按下時(shí),與之相連的輸入數(shù)據(jù)線即可讀入數(shù)據(jù)0,而沒有按下時(shí)讀入1。獨(dú)立式鍵盤的電路簡(jiǎn)單,易于編程,但占用的IO口線較多,當(dāng)需要較多按鍵時(shí)可能產(chǎn)生IO資源緊張問(wèn)題。獨(dú)立按鍵的三種接法的分析1)當(dāng)按鍵閉合時(shí),單片機(jī)引腳接地,當(dāng)按鍵斷開時(shí),單片機(jī)引腳不能穩(wěn)定工作,因?yàn)樘幱诟咦钁B(tài),易受干擾。獨(dú)立按鍵的三種接法的分析2)當(dāng)按鍵閉合時(shí),單片機(jī)引腳接地,當(dāng)按鍵斷開時(shí),單片機(jī)引腳被上拉電阻拉為高電平,按鍵閉合或按下,單片機(jī)引腳的電平穩(wěn)定,是一種標(biāo)準(zhǔn)的接法。獨(dú)立按鍵的三種接法的分析3)當(dāng)按鍵斷開時(shí),單片機(jī)引腳接地,當(dāng)按鍵閉合時(shí),單片機(jī)引腳直接和電源相連,這種接法短路電流大,易燒毀單片機(jī)I/O口電路,是危險(xiǎn)的連接方法。4、獨(dú)立按鍵讀取引腳狀態(tài)的方法
軟件方面如何讀取引腳狀態(tài)呢?有查詢法和中斷法。普遍采用查詢法。查詢法是CPU讀取連接按鍵的單片機(jī)端口的電平狀態(tài),如果讀取的是低電平,就確認(rèn)該端口對(duì)應(yīng)的按鍵已按下,如果讀取的是高電平,就確認(rèn)該端口對(duì)應(yīng)的按鍵沒按下。
提示:因?yàn)?1系列單片機(jī)的端口是準(zhǔn)雙向口,在讀引腳前,需要先對(duì)輸入端口置1。
舉例:讀P1.0bits1;//定義位變量s1,保存按鍵通斷狀態(tài)P1_0=1;S1=P1_0;讀P1:Unsignedcharsw;//定義字節(jié)變量
P1=0xff;Sw=P1;
5、按鍵的去抖由于機(jī)械觸點(diǎn)的彈性作用,按鍵在閉合時(shí)不會(huì)馬上穩(wěn)定地接地,在斷開時(shí)也不會(huì)立刻斷開。通常在閉合和斷開的瞬間都伴隨有一定時(shí)間的觸點(diǎn)機(jī)械抖動(dòng),如下圖。抖動(dòng)時(shí)間一般為5
10ms,在觸點(diǎn)抖動(dòng)期間檢測(cè)按鍵的通與斷狀態(tài),可能導(dǎo)致判斷出錯(cuò)。因此,為保證CPU對(duì)按鍵的斷開和閉合做出正確的判斷,就必須消除抖動(dòng)。按鍵的去抖—硬件方法在鍵數(shù)較少時(shí)可用硬件方法消除鍵抖動(dòng)。如圖所示的RS觸發(fā)器為常用的硬件去抖。圖中兩個(gè)“與非”門構(gòu)成一個(gè)RS觸發(fā)器。當(dāng)按鍵未按下時(shí),輸出為1;當(dāng)鍵按下時(shí),輸出為0。此時(shí)即使用按鍵的機(jī)械性能,使按鍵因彈性抖動(dòng)而產(chǎn)生瞬時(shí)斷開(抖動(dòng)跳開B),中要按鍵不返回原始狀態(tài)A,雙穩(wěn)態(tài)電路的狀態(tài)不改變,輸出保持為0,不會(huì)產(chǎn)生抖動(dòng)的波形。也就是說(shuō),即使B點(diǎn)的電壓波形是抖動(dòng)的,但經(jīng)雙穩(wěn)態(tài)電路之后,其輸出為正規(guī)的矩形波。這一點(diǎn)通過(guò)分析RS觸發(fā)器的工作過(guò)程很容易得到驗(yàn)證。按鍵的去抖—硬件方法利用電容的放電延時(shí),采用按鍵并聯(lián)電容法,也可以實(shí)現(xiàn)消抖。按鍵的去抖—軟件延時(shí)法
(a)檢測(cè)按鍵(b)釋放按鍵按鍵去抖流程圖軟件去抖的原理一:前沿消抖法。讀按鍵狀態(tài),判斷有鍵按下,延時(shí)10ms,再次讀按鍵狀態(tài),有鍵按下,才確認(rèn)是哪一個(gè)按鍵,從而消除前沿的抖動(dòng)。流程如下圖(a)。按鍵的去抖—軟件延時(shí)法
軟件去抖的原理二:在去抖時(shí)間內(nèi)連續(xù)多次去讀按鍵所在端口的狀態(tài),并與上一次進(jìn)行對(duì)比,若狀態(tài)改變,則重新初始化去抖時(shí)間。直到在去抖時(shí)間內(nèi),每次讀到的口狀態(tài)都一致時(shí),我們才認(rèn)為掃描到穩(wěn)定的按鍵。流程如下圖(C)。舉例編寫程序,識(shí)別圖中的8個(gè)按鍵是哪一個(gè)鍵被按下,返回鍵的編號(hào)。
硬件電路按鍵編號(hào)K0K1K2K3K4K5K6K7P1二進(jìn)制1111111011111101111110111111011111101111110111111011111101111111十六進(jìn)制0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f/****************獲取按鍵狀態(tài)的參考程序片段*************///**********按鍵掃描程序
unsignedcharkeyscan(){unsignedcharsw;//定義變量sw,暫存P1狀態(tài)的變量
unsignedcharkey//定義變量key,暫存按下鍵的編號(hào)
P1=0xff;//預(yù)先對(duì)輸入端口置1
sw=P1;
switch(sw){ case0xfe:key=0;break; case0xfd:key=1;break; case0xfb:key=2;break; case0xf7:key=3;break; case0xef:key=4;break; case0xdf:key=5;break; case0xbf:key=6;break; case0x7f:key=7;break;} returnkey;//獲得按鍵編號(hào)}6、矩陣式按鍵特點(diǎn):占用IO口線較少,但軟件將較為復(fù)雜。判斷鍵盤的位置—常用方法鍵盤掃描法和反線法。行列式鍵盤鍵盤掃描法步驟:第一步:判別有無(wú)按鍵按下。其方法:向所有行給低電平0,所有的列給高電平1。讀取此時(shí)列線I/O狀態(tài),如果不是全高,則有按鍵按下。第二步:有按鍵按下,則下一步就是查找按鍵所在位置,具體步驟:向第0行給低電平0,其它給高電平1,讀取所有列的電平狀態(tài)。如果所有列電平均為高電平,則說(shuō)明按下的按鍵不在第0列。反之則找到了該按鍵。依次對(duì)第1列、第2列、第3列如此操作,直到找到按下的按鍵為止。第三步:對(duì)按鍵進(jìn)行編碼。反線法步驟:①判斷哪一列有鍵壓下寫端口(0xf0):行線電平=0;列線電平=1。讀端口進(jìn)行判斷:若P3=0xf0→沒有按鍵壓下。若P3≠0xf0→某列有鍵壓下→則將讀取的值賦值給K1。②判斷哪一行有鍵壓下寫端口(0x0f):行線電平=1;列線電平=0。讀端口進(jìn)行判斷:若P3=0x0f→沒有按鍵壓下;若P3≠0x0f→某行有鍵壓下→K2。③將K1與K2相“或”并存于K2(形成鍵值)——閉合鍵所在行、列的狀態(tài)均為0,其余皆為1。
第一列第二列第三列第四列第一行
ee de be 7e第二行
ed dd
bd 7d第三行
eb db bb 7b第四行
e7 d7 b7 774*4行列式鍵盤的各按鍵的鍵值舉例:按下任意按鍵后,LED顯示器上顯示該鍵的鍵模(0~F)。練習(xí):在任務(wù)1的4位數(shù)碼管動(dòng)態(tài)顯示的基礎(chǔ)上,硬件上設(shè)計(jì)4個(gè)獨(dú)立按鍵,編程調(diào)試仿真實(shí)現(xiàn)按下其中一個(gè)按鍵啟動(dòng)顯示,按下第2個(gè)鍵停止顯示。按下第三個(gè)鍵顯示數(shù)字加1,按下第4個(gè)鍵,顯示數(shù)字減1。項(xiàng)目3:
LED點(diǎn)陣廣告牌的設(shè)計(jì)與制作項(xiàng)目的目標(biāo)及任務(wù)1.項(xiàng)目目標(biāo)掌握單片機(jī)的串口的原理。掌握利用74HC595和單片機(jī)的串口實(shí)現(xiàn)數(shù)據(jù)的串轉(zhuǎn)并。掌握利用單片機(jī)控制LED點(diǎn)陣顯示屏符號(hào)的顯示。2.項(xiàng)目任務(wù)基于單片機(jī)的LED點(diǎn)陣廣告牌功能要求:利用單片機(jī)的串口,實(shí)現(xiàn)16X16LED點(diǎn)陣上滾動(dòng)顯示漢字。任務(wù)1:8×8的LED點(diǎn)陣顯示
一、LED點(diǎn)陣屏的結(jié)構(gòu)和顯示原理LED點(diǎn)陣顯示器是把很多LED發(fā)光二極管按矩陣方式排列在一起,通過(guò)對(duì)每個(gè)LED進(jìn)行發(fā)光控制,完成各種字符或圖形的顯示。最常見的LED點(diǎn)陣顯示模塊有5×7(5列7行),7×9(7列9行),8×8(8列8行)結(jié)構(gòu)。LED點(diǎn)陣由一個(gè)一個(gè)的點(diǎn)(LED發(fā)光二極管)組成,總點(diǎn)數(shù)為行數(shù)與列數(shù)之積,引腳數(shù)為行數(shù)與列數(shù)之和。1、8*8點(diǎn)陣的外部結(jié)構(gòu)及引腳排布2、8*8點(diǎn)陣的內(nèi)部結(jié)構(gòu)
共陰極LDM1088AX共陽(yáng)極LDM1088BX3、LED點(diǎn)陣引腳的測(cè)試方法
①用機(jī)械式萬(wàn)用表測(cè)試管腳的方法。把萬(wàn)用表?yè)艿诫娮铏n×10,先用黑表筆(極性為+)隨意選擇一個(gè)引腳,紅表筆碰余下的引腳,看點(diǎn)陣有沒發(fā)光,沒發(fā)光就用黑色探針再選擇一個(gè)引腳,紅色探針碰余下的引腳,當(dāng)點(diǎn)陣發(fā)光,則這時(shí)黑色探針接觸的那個(gè)引腳為正極,紅色探針碰到就發(fā)光的7個(gè)引腳為負(fù)極,剩下的6個(gè)引腳為正極。②用數(shù)字萬(wàn)用表的測(cè)試方法:把萬(wàn)用表功能開關(guān)撥到發(fā)光二極管檔,將紅表筆插入
"HzVm
插孔,黑表筆插入
"COM"插孔,紅表筆極性為"+",黑表筆極性為"-",若萬(wàn)用表有讀數(shù),同時(shí)發(fā)光二極管會(huì)發(fā)光,則此時(shí)紅表筆所測(cè)端為二極管的正極,如果被測(cè)二極管開路或極性接反,顯示屏將示
"OL"。提示:當(dāng)測(cè)量在線二極管時(shí),測(cè)量前必須斷開電源,并將相關(guān)的電容放電。4、判定LED點(diǎn)陣模塊引腳編號(hào)
先把器件的引腳正負(fù)分布情況記下來(lái),正極(行)用數(shù)字表示,負(fù)極(列)用字母表示,先定負(fù)極引腳編號(hào),黑色探針選定一個(gè)正極引腳,紅色點(diǎn)負(fù)極引腳,看是第幾列的二極管發(fā)光,第一列就在引腳寫A,第二列就在引腳寫B(tài),第三列......以此類推。這樣就點(diǎn)陣的一半引腳都編號(hào)了。剩下的正極引腳用同樣的方法,第一行的亮就在引腳標(biāo)1,第二行就在引腳標(biāo)2,第三行......5、動(dòng)態(tài)掃描的原理分析
LED點(diǎn)陣的顯示過(guò)程以用動(dòng)態(tài)掃描法,有逐線陰極掃描和逐線陽(yáng)極掃描兩種。1)行掃描:一行一行的輪流顯示,具體如下:先給ROW1行的行控制線送有效電平,其他行送無(wú)效電平,控制只可能ROW1行上的發(fā)光管亮,把列控制數(shù)據(jù)送給L0~L7,控制ROW1行上的哪些發(fā)光管亮;延時(shí)1~3ms后,再給ROW2行的行控制線送有效電平,其他行送無(wú)效電平,控制只可能ROW2行上的發(fā)光管亮,把列控制數(shù)據(jù)送COL1~COL8,控制ROW2行上的哪些發(fā)光管亮;延時(shí)1~3ms后……最后給ROW8行的行控制線送有效電平,其他行送無(wú)效電平,控制只可能ROW8行上的發(fā)光管亮,把列控制數(shù)據(jù)送給COL1~COL8,控制ROW8行上的哪些發(fā)光管亮;延時(shí)1~3ms,如此反復(fù)。2)列掃描:同上原理一樣,唯一不同的就是它是按列輪流顯示。行與行之間的延時(shí)為行周期,所有行掃描完為場(chǎng)周期,行周期和場(chǎng)周期的時(shí)間是多少呢?場(chǎng)周期的時(shí)間不超過(guò)人的視覺暫留時(shí)間,取20ms為場(chǎng)周期,行周期為20ms/8,取1~3ms。時(shí)間短了,會(huì)重影或全亮,時(shí)間長(zhǎng)了會(huì)閃爍。任務(wù)實(shí)施舉例:心形圖形1234567812345678方案一:?jiǎn)纹瑱C(jī)I/O直接控制參考程序:#include<reg51.h>unsignedchartable1[16][2]={0xfe,0x1c,0xfd,0x3e,0xfb,0x7e,0xf7,0xfc,0xef,0xfc,0xdf,0x7e,0xbf,0x3e,0x7f,0x1c};unsignedchartable2[8][2]={0xfe,0x00,0xfd,0x18,0xfb,0x3c,0xf7,0x78,0xef,0x78,0xdf,0x3c,0xbf,0x18,0x7f,0x00};unsignedint
i,j;voidmain(){ TMOD=0x01; TH0=0xfc; TL0=0x18; TR0=1; EA=1; ET0=1; P0=0xff; P1=0x00; while(1); }voidt0_inter()interrupt1{ TH0=0xfc; TL0=0x18; P0=table1[i][0]; P1=table1[i][1]; i=i+1;
if(i==8)i=0;
}方案二:?jiǎn)纹瑱C(jī)串口控制補(bǔ)充知識(shí):1、串行通信的相關(guān)知識(shí);2、51單片機(jī)的串行口;3、數(shù)據(jù)的串行并行轉(zhuǎn)換;1、串行通信的相關(guān)知識(shí)計(jì)算機(jī)通信是計(jì)算機(jī)技術(shù)和通信技術(shù)的相結(jié)合,完成計(jì)算機(jī)與外部設(shè)備或計(jì)算機(jī)與計(jì)算機(jī)之間的信息交換。可以分為兩大類:并行通信與串行通信。并行通信通常是將數(shù)據(jù)字節(jié)的各位用多條數(shù)據(jù)線同時(shí)進(jìn)行傳送。并行通信控制簡(jiǎn)單、傳輸速度快;由于傳輸線較多,長(zhǎng)距離傳送時(shí)成本高且接收方的各位同時(shí)接收存在困難。
串行通信是將數(shù)據(jù)字節(jié)分成一位一位的形式在一條傳輸線上逐個(gè)地傳送。串行通信的特點(diǎn):傳輸線少,長(zhǎng)距離傳送時(shí)成本低,且可以利用電話網(wǎng)等現(xiàn)成的設(shè)備,但數(shù)據(jù)的傳送控制比并行通信復(fù)雜。
串行通信的傳輸方向單工:通訊的A方只能送,而B方只能接收——廣播式。例如:除了用于遠(yuǎn)程通信外,系統(tǒng)內(nèi)部單片機(jī)以串行方式接收外圍芯片(ADC)的數(shù)據(jù);或者控制外圍芯片(DAC、LCD等)工作。發(fā)送方A接收方BTXDRXD串行通信的傳輸方向半雙工 在某一時(shí)刻A方只能發(fā)送,B方只能接收;而在另一時(shí)刻B方只能發(fā)送,A方只能接收——對(duì)講機(jī)模式。例如:除了用于遠(yuǎn)程通信外,系統(tǒng)內(nèi)部單片機(jī)與串行接口的RAM、E2PROM之間的數(shù)據(jù)交換。發(fā)送方A接收方BTXDRXDTXDRXD串行通信的傳輸方向全雙工:A、B雙方可以同時(shí)發(fā)送和接收數(shù)據(jù)——手機(jī)模式。例如:兩臺(tái)單片機(jī)系統(tǒng)之間的數(shù)據(jù)串行交換。發(fā)送方A接收方BTXDRXDTXDRXD2、51單片機(jī)的串行口具有一個(gè)“全雙工”的通訊能力串行接口。 其中:P3.0端口作RXD——數(shù)據(jù)接收端;
P3.1端口作TXD——數(shù)據(jù)發(fā)送端。與串行口相關(guān)的SFR有:1、SBUF---數(shù)據(jù)緩沖寄存器(存放發(fā)送和接收的數(shù)據(jù))2、
SCON---串口控制寄存器(設(shè)定串行接口工作模式、表征串口的工作狀態(tài))3.PCON---電源及波特率選擇寄存器(使波特率加倍)數(shù)據(jù)緩沖寄存器SBUF在MCS-51的串行口電路中,SBUF是用來(lái)存放發(fā)送和接收數(shù)據(jù)的兩個(gè)物理上獨(dú)立的數(shù)據(jù)緩沖寄存器,但地址都是99H。那單片機(jī)如何知道什么時(shí)候是發(fā)送數(shù)據(jù)?什么時(shí)候是接收數(shù)據(jù)呢?---通過(guò)對(duì)SBUF的讀、寫語(yǔ)句來(lái)區(qū)分,如下:如果單片機(jī)要從串口輸出數(shù)據(jù),就向SBUF寫數(shù)據(jù),SBUF便是發(fā)送緩沖器:
SBUF=send;如果單片機(jī)要從串口輸入數(shù)據(jù),就從SBUF讀數(shù)據(jù),SBUF便是接收緩沖器:
receive=SBUF;由于發(fā)送SBUF與接收SBUF是兩個(gè)獨(dú)立的緩沖器,所以51串行口是一個(gè)可以同時(shí)發(fā)送與接收的“全雙工”接口。接收SBUF移位寄存器發(fā)送SBUF移位寄存器內(nèi)部總線CPUMCS-51RXDP3.0TXDP3.1串行口控制寄存器SCON用于設(shè)定串行接口工作模式、表征串口的工作狀態(tài)的特殊功能寄存器;在SFR中的地址為98H;這是一個(gè)可以按位尋址的SFR。SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D0SCON寄存器1、SM0SM1:工作方式選擇位。SM0SM1模式功能波特率000同步移位寄存器Fosc/1201110位UART可變10211位UARTFosc/64或/3211311位UART可變UART:UniversalAsynchronousReceiver/Transmitter,通用異步接收/發(fā)送器。
SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D02、SM2:
多機(jī)通信控制位。用于方式2和方式3中。3、REN:允許接收控制位。若軟件置REN=1時(shí),則啟動(dòng)串口接收數(shù)據(jù);若軟件置REN=0,則禁止接收。SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D05:RB8:在方式2或方式3中是接收到數(shù)據(jù)的第9位,作為奇偶校驗(yàn)位或地址/數(shù)據(jù)幀的標(biāo)志位。在方式1時(shí),若SM2=0,則RB8是接收到的停止位。4:TB8:在方式2或方式3中是發(fā)送數(shù)據(jù)的第9位,可以用軟件規(guī)定其作用??梢宰鳛槠媾夹r?yàn)位或地址/數(shù)據(jù)幀的標(biāo)志位。SM0SM1SM2RENTB8RB8TIRID7D6D5D4D3D2D1D06、TI、RI:發(fā)送、接收完成中斷標(biāo)志位TI
:發(fā)送中斷標(biāo)志位。發(fā)送完成由硬件使TI置1,向CPU發(fā)送中斷申請(qǐng),在中斷服務(wù)程序中必須軟件清零,取消此中斷申請(qǐng)。RI
:接收中斷標(biāo)志位。接收完成由硬件使RI置1,向CPU發(fā)送中斷申請(qǐng),在中斷服務(wù)程序中必須軟件清零,取消此中斷申請(qǐng)。D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRI電源及波特率選擇寄存器PCON
PCON主要是為CHMOS型單片機(jī)的電源控制而設(shè)置的專用寄存器,字節(jié)地址為87H,不可以位尋址。在HMOS的AT89C51單片機(jī)中,PCON除了最高位以外其它位都是虛設(shè)的。PCON(87H)
與串行通信有關(guān)的只有SMOD位。SMOD為波特率選擇位。在方式1、2和3時(shí),串行通信的波特率與SMOD有關(guān)。當(dāng)SMOD=1時(shí),通信波特率乘2,當(dāng)SMOD=0時(shí),波特率不變。3、數(shù)據(jù)的串行并行轉(zhuǎn)換串行口的工作方式0串行口工作方式0:同步移位寄存器模式。特點(diǎn):B=fosc/12。在這種模式下數(shù)據(jù)由RXD(P3.0)引腳輸入或輸出;
同步移位脈沖由TXD(P3.1)引腳輸出。發(fā)送和接收的數(shù)據(jù)為8位。在移位過(guò)程中,先移數(shù)據(jù)的低位D0。
MCS-51RXDTXDData外部移位寄存器cp移位脈沖串行數(shù)據(jù)并行的數(shù)據(jù)(8位)主要功能:擴(kuò)展并行輸入或輸出口。74HC595芯片的介紹74HC595方案二的硬件仿真電路圖#include<reg51.h>/******************************大心形圖形的編碼每行:左邊元素為列,右邊元素為行編碼*******************************/unsignedchartable[8][2]={ 0xfe,0x1c,
0xfd,0x3e, 0xfb,0x7e, 0xf7,0xfc, 0xef,0xfc, 0xdf,0x7e, 0xbf,0x3e,
0x7f,0x1c,};sbitlatch=P3^2;unsignedchari,j;voidmain(){SCON=0x00; TMOD=0x01; TH0=0xfc; TL0=0x18; TR0=1; EA=1; ET0=1; while(1) { SBUF=table[i][1];
while(TI==0); TI=0; SBUF=table[i][0];
while(TI==0); TI=0; latch=0; latch=1; } }voidt0_inter()interrupt1{ TH0=0xfc; TL0=0x18; i++;
if(i==8)i=0;}任務(wù)2:16X16LED點(diǎn)陣上穩(wěn)定顯示漢字
最高位1234567891011121314151612345678910111213141516最低位最高位最低位同的字符編碼{0x00,0x00,0xFE,0xFF,0x02,0x00,0x12,0x00,0x92,0x0F,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x0F,0x12,0x40,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00}#include<reg51.h>voidsend_data(unsignedchartimes);unsignedchartimes=0;/*unsignedcharcodelie[]={0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xef,0xff,0xdf,0xff,0xbf,0xff,0x7f,0xff,0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xef,0xff,0xdf,0xff,0xbf,0xff,0x7f,};*/unsignedcharcodelie[]={0xff,0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xfe,0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff,};unsignedcharcodehang[]={0x00,0x00,0xFE,0xFF,0x02,0x00,0x12,0x00,0x92,0x0F,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x08,0x92,0x0F,0x12,0x40,0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00};sbitlatch=P3^2;voidmain(void){ TMOD=0x01; TH0=(65536-1250)/256; //20/16ms TL0=(65536-1250)%256; TR0=1; EA=1; ET0=1; while(1);}voidT0_int(void)interrupt1{ TH0=(65536-1250)/256; //20/16ms TL0=(65536-1250)%256;
send_data(times); times++;
if(times==16)times=0; //times&=15;}voidsend_data(unsignedchartimes){ SBUF=lie[times*2];
while(TI==0); TI=0; SBUF=lie[times*2+1];
while(TI==0); TI=0; SBUF=hang[times*2];
while(TI==0); TI=0; SBUF=hang[times*2+1];
while(TI==0); TI=0;latch=0; latch=1;}任務(wù)3:16X16LED點(diǎn)陣上滾動(dòng)顯示漢字
#include<reg51.h>unsignedcharcodelie[]={0xff,0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xfe,0x7f,0xff,0xbf,0xff,0xdf,0xff,0xef,0xff,0xf7,0xff,0xfb,0xff,0xfd,0xff,0xfe,0xff};unsignedcharcodehang[]={0x00,0x00,0xFE,0xFF,0x02,0x00,0x12,0x00,//“同”的行編碼0x92,0x0F,0x92,0x08,0x92,0x08,0x92,0x08,//“同”的行編碼0x92,0x08,0x92,0x08,0x92,0x0F,0x12,0x40,//“同”的行編碼0x02,0x80,0xFE,0x7F,0x00,0x00,0x00,0x00,//“同”的行編碼0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};sbitlatch=P3^2;voidmain(void){SCON=0x00;TMOD=0x01;TH0=(65536-20000/8)/256 TL0=(65536-20000/8)%256;TR0=1;EA=1;ET0=1;while(1);}voidT0_int(void)interrupt1{staticunsignedcharoffset=0,i=0;//offset為列移動(dòng)的偏移量
inttime;//每一屏重復(fù)刷新顯示的次數(shù)TH0=(65536-20000/8)/256; TL0=(65536-20000/8)%256;SBUF=lie[i*2];
while(TI==0);TI=0;SBUF=lie[i*2+1];
while(TI==0);TI=0;SBUF=hang[(offset+i)*2];
while(TI==0);TI=0;SBUF=hang[(offset+i)*2+1];
while(TI==0);TI=0;latch=0;latch=1;
if(i==16){i=0;time++;
if(time==5){
time=0;offset++;
if(offse==16)offset=0;}}
}任務(wù)拓展:理解LED點(diǎn)陣廣告牌的軟、硬件原理,然后以個(gè)人為單位,完成如下任務(wù):實(shí)現(xiàn)名字的滾動(dòng)花樣顯示;硬件電路板的制作、調(diào)試;程序的編寫和仿真;軟硬件的聯(lián)調(diào)。任務(wù)4:定時(shí)計(jì)數(shù)器的使用軟件延時(shí)法:利用指令(延時(shí)子程序)運(yùn)行所消耗的時(shí)間實(shí)現(xiàn)所需的定時(shí)時(shí)間。特點(diǎn):由CPU控制,占用CPU的資源;硬件法:利用一個(gè)硬件電路實(shí)現(xiàn)所需的時(shí)間定時(shí),一旦時(shí)間到便產(chǎn)生一個(gè)標(biāo)志信號(hào)通知CPU。特點(diǎn):由CPU控制定時(shí)的啟動(dòng),但定時(shí)過(guò)程由專用模塊實(shí)現(xiàn),CPU不參與其過(guò)程。所以提高了CPU的工作效率。定時(shí)器就是專用于產(chǎn)生延時(shí)和計(jì)數(shù)的外圍模塊,是單片機(jī)內(nèi)部重要的組成部分。一、定時(shí)的兩種方式
定時(shí):用于產(chǎn)生一個(gè)標(biāo)準(zhǔn)的時(shí)間間隔。單片機(jī)使用這種方式可以產(chǎn)生一個(gè)符合某一要求的脈沖方波(如下圖)。而定時(shí)/計(jì)數(shù)器是對(duì)89C51晶振信號(hào)12分頻后的脈沖計(jì)數(shù),即每個(gè)機(jī)器周期使定時(shí)器(T0或T1)的數(shù)值加1直至溢出。當(dāng)89C51單片機(jī)晶振頻率為12MHz時(shí),一個(gè)機(jī)器周期為1uS,計(jì)數(shù)頻率為1MHz,計(jì)數(shù)器計(jì)數(shù)1次所用時(shí)間為1uS,計(jì)數(shù)器計(jì)數(shù)N個(gè),則所用時(shí)間為N*1uS。
20mS40mSMCS-51Px.y
輸出波形
計(jì)數(shù):通過(guò)引腳T0(P3.4)和T1(P3.5)對(duì)外部脈沖信號(hào)計(jì)數(shù)。當(dāng)輸入脈沖信號(hào)產(chǎn)生由1至0的下降沿時(shí),定時(shí)器加1計(jì)數(shù)。
外部脈沖外部設(shè)備說(shuō)明:不管是定時(shí)還是計(jì)數(shù)方式,定時(shí)/計(jì)數(shù)器實(shí)質(zhì)都是對(duì)脈沖計(jì)數(shù),當(dāng)對(duì)外部信號(hào)計(jì)數(shù)就是計(jì)數(shù)功能,對(duì)內(nèi)部晶振信號(hào)12分頻計(jì)數(shù)就是定時(shí)功能。每個(gè)定時(shí)/計(jì)數(shù)器都不占用CPU時(shí)間,除非計(jì)數(shù)器溢出,才可以中斷CPU當(dāng)前操作。
二、定時(shí)器的相關(guān)寄存器GATE門控位:GATE=0時(shí),只要軟件設(shè)置TR=1,就可以啟動(dòng)計(jì)數(shù)器工作;
GATE=1時(shí),只有外部中斷引腳INT=TR=“1”時(shí),才能啟動(dòng)計(jì)數(shù)器工作C/T計(jì)數(shù)/定時(shí)方式選擇位:C/T=1時(shí),計(jì)數(shù)模式。
C/T=0時(shí):定時(shí)模式。M1、M0工作方式設(shè)置位。GATEC/TM1M0GATEC/TM1M0定時(shí)器1定時(shí)器01.工作方式寄存器TMOD(SFR的地址:89H)M1M0工作方式說(shuō)明00013位定時(shí)/計(jì)數(shù)器01116位定時(shí)/計(jì)數(shù)器1028位自動(dòng)重裝定時(shí)/計(jì)數(shù)器113T0分成兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器;T1停止計(jì)數(shù)注意!不可以位尋址TF0:T0的溢出中斷請(qǐng)求標(biāo)志:硬件自動(dòng)置1或清0
計(jì)數(shù)器溢出時(shí)硬件自動(dòng)置位,即TF0=1。進(jìn)入中斷后再由硬件自動(dòng)清除(TF0=0);TR0:T0的運(yùn)行控制位:軟件置1或清0
由軟件設(shè)定:TR0=1
T0開始工作;
TR0=0
T0停止計(jì)數(shù)。TF1、TR1同上。TF1TR1TF0TR0IE1IT1IE0IT02、控制寄存器TCON(SFR地址:88H)可以位尋址定時(shí)/計(jì)數(shù)器相關(guān)位外部中斷相關(guān)位3、初值寄存器TH和TLTH1和TL1:T1的高八位和低八位寄存器。TH0和TL0:T0的高八位和低八位寄存器。在MCS-51單片機(jī)內(nèi)部,具有兩個(gè)完全相同的定時(shí)計(jì)數(shù)器T0、T1。它們都具有兩種工作模式:定時(shí)和計(jì)數(shù);無(wú)論是定時(shí)或計(jì)數(shù)模式,又都有具備四種工作方式,根據(jù)實(shí)際要求達(dá)到最佳的工作狀態(tài)。定時(shí)計(jì)數(shù)器的工作方式、工作模式是由SFR中的TMOD內(nèi)容來(lái)決定的。因此對(duì)其方式、模式的設(shè)定是靠對(duì)TMOD的初始化編程實(shí)現(xiàn)的。三、51單片機(jī)定時(shí)器/計(jì)數(shù)器的四種工作方式1,方式0:13位定時(shí)器/計(jì)數(shù)器THTL震蕩器1/12(8位)(低5位)TF中斷啟動(dòng)控制T引腳TRGATEINT高三位棄用C/T=0C/T=113位加1計(jì)數(shù)器在某一個(gè)初值的基礎(chǔ)上加1計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)滿為全“1”,再來(lái)一個(gè)計(jì)數(shù)脈沖時(shí),就產(chǎn)生一個(gè)“溢出中斷信號(hào)”TF=1,向CPU發(fā)出中斷請(qǐng)求。由于低8位計(jì)數(shù)器中的高三位沒有參與工作,故填裝初值時(shí)應(yīng)“避開”此三位。類同于模式0。由于兩個(gè)計(jì)數(shù)器為完整的8位,故將計(jì)算好的16位初值可直接填裝到TH、TL中。在某一個(gè)初值的基礎(chǔ)上加1計(jì)數(shù),當(dāng)計(jì)數(shù)器計(jì)滿為全“1”,再來(lái)一個(gè)計(jì)數(shù)脈沖時(shí),就產(chǎn)生一個(gè)“溢出中斷信號(hào)”TF=1,向CPU發(fā)出中斷請(qǐng)求。TLTH震蕩器1/12(8位)(8位)TF中斷啟動(dòng)控制T引腳TRGATEINTC/T=0C/T=12,方式1:16位定時(shí)器/計(jì)數(shù)器16位加1計(jì)數(shù)器方式0、1的特點(diǎn)13位和16位的計(jì)數(shù)器方式。啟動(dòng)后,從某一個(gè)初值的基礎(chǔ)上進(jìn)行“加1”計(jì)數(shù)。當(dāng)計(jì)到“全1”時(shí)再來(lái)一個(gè)計(jì)數(shù)脈沖,計(jì)數(shù)器就會(huì)產(chǎn)生一個(gè)“溢出中斷信號(hào)”即TF=1,此時(shí)計(jì)數(shù)器本身為“全零”。如果需要重復(fù)性的完成某一值的定時(shí)或計(jì)數(shù),需要在每一次計(jì)數(shù)前不斷的重新預(yù)裝初值,稱之為“軟件重裝初值”。TL做計(jì)數(shù)器,TH做初值寄存器,工作前TL,TH分別預(yù)置相同的初值。TL計(jì)數(shù)產(chǎn)生溢出的同時(shí),將TH中的初值自動(dòng)重裝TL。TL繼續(xù)計(jì)數(shù)。TL(8位)TH(8位)震蕩器1/12TF中斷控制T引腳TRGATEINTC/T=1C/T=03,方式2
:8位自動(dòng)重裝定時(shí)器/計(jì)數(shù)器8位加1計(jì)數(shù)器8位初值寄存器方式2的特點(diǎn)及應(yīng)用8位計(jì)數(shù)器的方式,定時(shí)或計(jì)數(shù)的范圍遠(yuǎn)遠(yuǎn)小于方式0和方式1;具備初值“硬件自動(dòng)重裝”功能,非常適合進(jìn)行重復(fù)性定時(shí)的場(chǎng)合,如產(chǎn)生連續(xù)方波信號(hào)等。編成中省去了軟件重裝初值的麻煩;在MCS-51單片機(jī)中,T1設(shè)定成此模式用于做串行口波特率發(fā)生器。將T0和T1重新進(jìn)行“拆分、組合”。將T0變?yōu)門H0,TL0組成的兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器。TH0+TF1+TR1組成8位定時(shí)/計(jì)數(shù)器;TL0+TF0+TR0組成8位定時(shí)/計(jì)數(shù)器;TL0震蕩器1/12TF0中斷控制T0引腳TR0GATEINT0C/T=0C/T=1TH0TF1中斷控制TR1Fosc/124,方式3
組合擴(kuò)展模式(僅適用于T0)在方式3時(shí)T0,T1的電路結(jié)構(gòu)圖TL0八位定時(shí)/計(jì)數(shù)器TH0八位定時(shí)器TL1TF0TF1將T0分解為兩個(gè)計(jì)數(shù)器TL0:8位定時(shí)/計(jì)數(shù)器;TH0:8位定時(shí)器(借用TR1和TF1)T1(模式2)做波特率發(fā)生器。TH1定時(shí)/計(jì)數(shù)器4種方式比較(計(jì)數(shù)最大值)模式計(jì)數(shù)模M最大計(jì)數(shù)值模式013位Tmax=213=8192模式116位Tmax=216=
65536模式2,38位Tmax=28=256定時(shí)/計(jì)數(shù)器4種方式比較(定時(shí)最大時(shí)間)模式計(jì)數(shù)模M最大定時(shí)時(shí)間Tmax(fosc=12M)模式013位Tmax=8192*1μ?
=8.192ms模式116位Tmax=65536*1μ?=65.536ms模式2,38位Tmax=256*1μ?=0.256msM---計(jì)數(shù)器的模 模式0:M=213 =8192
模式1:M=216 =65536
模式2、3:M=28=256T=(M-TC)×t
其中,T:定時(shí)時(shí)間,M:計(jì)數(shù)器的模,TC:計(jì)數(shù)初值,t:計(jì)數(shù)器計(jì)數(shù)脈沖的周期(t=12/fosc)。四、51單片機(jī)初值的計(jì)算TC計(jì)算舉例定時(shí)方式:要求T0產(chǎn)生50mS的定時(shí)。【解1】選擇模式1。
TC=65536?(50mS*1000)/1μS =65536?50000 =15536=3CB0H【思考題】為什么選擇模式1?【思考題】TC有沒有更簡(jiǎn)潔的表示方式?
TH=(65536-50000)/256;TL==(65536-50000)%256;TH=(-50000)/256;TL==(-50000)%256;(1)設(shè)置定時(shí)/計(jì)數(shù)器的工作方式通過(guò)對(duì)方式寄存器TMOD的設(shè)置,確定相應(yīng)的定時(shí)/計(jì)數(shù)器是定時(shí)功能還是計(jì)數(shù)功能,以及工作方式及啟動(dòng)方法。(2)設(shè)置定時(shí)/計(jì)數(shù)器的初始值,即設(shè)置THx和TLx的值。
定時(shí)/計(jì)數(shù)器允許用戶編程設(shè)定開始計(jì)數(shù)的數(shù)值,稱為賦初值。初值不同,則計(jì)數(shù)器產(chǎn)生溢出時(shí),計(jì)數(shù)個(gè)數(shù)也不同。五、定時(shí)/計(jì)數(shù)器的應(yīng)用步驟(3)啟動(dòng)定時(shí)/計(jì)數(shù)器當(dāng)設(shè)置了定時(shí)器的工作方式并啟動(dòng)定時(shí)器工作后,定時(shí)器就按被設(shè)定的工作方式獨(dú)立工作,不再占用CPU的操作時(shí)間,只有在計(jì)數(shù)器計(jì)數(shù)溢出時(shí)才能中斷CPU當(dāng)前的操作。
(4)計(jì)數(shù)溢出計(jì)數(shù)溢出標(biāo)志位在控制寄存器TCON中,用于通知用戶定時(shí)/計(jì)數(shù)器已經(jīng)計(jì)滿,用戶可以采用查詢方式或中斷方式進(jìn)行操作。中斷方式查詢方式定時(shí)/計(jì)數(shù)器的編程六、51單片機(jī)定時(shí)器編程與控制(1)中斷方式——編程步驟設(shè)置中斷優(yōu)先級(jí),當(dāng)中斷只有一個(gè)時(shí)不用設(shè)置設(shè)置TMOD初始化設(shè)置定時(shí)/計(jì)數(shù)初值啟動(dòng)定時(shí)/計(jì)數(shù)器編寫定時(shí)/計(jì)數(shù)器中斷的處理服務(wù)程序124563編程步驟開中斷(2)查詢方式——編程步驟設(shè)置TMOD初始化設(shè)置定時(shí)/計(jì)數(shù)初值啟動(dòng)定時(shí)/計(jì)數(shù)器查詢溢出標(biāo)志位TF0或TF1置位情況及相關(guān)處理1
2
4
5
3
開中斷編程步驟任務(wù):利用單片機(jī)定時(shí)/計(jì)數(shù)器實(shí)現(xiàn)1位簡(jiǎn)易秒表的設(shè)計(jì),顯示時(shí)間0到9秒。
舉例任務(wù)分析任務(wù)的關(guān)鍵是定時(shí),可以利用單片機(jī)內(nèi)部定時(shí)/計(jì)數(shù)器完成。當(dāng)單片機(jī)晶
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 專業(yè)服務(wù)協(xié)議續(xù)簽文檔:保障雙方權(quán)益(2024版)版
- 2024年05月上海中國(guó)銀聯(lián)“銀星”實(shí)習(xí)生招考筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度軍事工程專用鋼管扣件運(yùn)輸安全保密協(xié)議3篇
- 2025年度合同封面定制與法律風(fēng)險(xiǎn)防控策略合同3篇
- 專項(xiàng)補(bǔ)充貸款協(xié)議規(guī)范示例2024一
- 2025年度產(chǎn)品陳列與品牌形象提升協(xié)議書3篇
- 2025年廠房建筑合同范本:廠房建筑與環(huán)保驗(yàn)收合同規(guī)范4篇
- 2025年產(chǎn)業(yè)園區(qū)場(chǎng)地租賃與產(chǎn)業(yè)金融服務(wù)合同4篇
- 醫(yī)療安全知識(shí)培訓(xùn)
- 2025年度虛擬現(xiàn)實(shí)產(chǎn)品設(shè)計(jì)保密合同(全新版)4篇
- 部編新改版語(yǔ)文一年級(jí)下冊(cè)《語(yǔ)文園地四》教學(xué)設(shè)計(jì)
- 2025年北京鐵路局集團(tuán)招聘筆試參考題庫(kù)含答案解析
- 《藥品招商營(yíng)銷概論》課件
- 曙光磁盤陣列DS800-G10售前培訓(xùn)資料V1.0
- 寺廟祈?;顒?dòng)方案(共6篇)
- 2025年病案編碼員資格證試題庫(kù)(含答案)
- 企業(yè)財(cái)務(wù)三年戰(zhàn)略規(guī)劃
- 提高膿毒性休克患者1h集束化措施落實(shí)率
- 山東省濟(jì)南市天橋區(qū)2024-2025學(xué)年八年級(jí)數(shù)學(xué)上學(xué)期期中考試試題
- 主播mcn合同模板
- 2024測(cè)繪個(gè)人年終工作總結(jié)
評(píng)論
0/150
提交評(píng)論