freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)9999秒倒計(jì)時(shí)器設(shè)計(jì)-在線(xiàn)瀏覽

2025-03-07 16:23本頁(yè)面
  

【正文】 儲(chǔ)器4KB ROM數(shù)據(jù)存儲(chǔ)器256B2個(gè)16位定時(shí)器/計(jì)數(shù)器64K總線(xiàn)擴(kuò)展控制器可編程I/O可編程全雙工串行口 ⑨一個(gè)可編程全雙工串行口;5個(gè)中斷源,可設(shè)置成2個(gè)優(yōu)先級(jí)。因此,時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)得穩(wěn)定性。單片機(jī)必須在時(shí)鐘的驅(qū)動(dòng)下才能工作。圖 32本系統(tǒng)使用的是內(nèi)部時(shí)鐘方式。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產(chǎn)生幅度為3V左右的正弦波時(shí)鐘信號(hào),其振蕩頻率主要由石英晶振的頻率確定。通常在顯示上采用的方法一般包括兩種:一種是靜態(tài)顯示,另一種是動(dòng)態(tài)顯示。在本設(shè)計(jì)中,為了減少端口資源,降低電能消耗,采用的是動(dòng)態(tài)顯示方法。從格式可知數(shù)碼管顯示電路要用到4位數(shù)碼管。數(shù)碼管有段選和位選控制,在此電路中有8個(gè)位選,8個(gè)段選,分別用單片機(jī)的P0口和P1進(jìn)行8個(gè)位的控制。它使用了 8 個(gè) LED 發(fā)光二極管,其中 7 個(gè)用于顯示字符,剩下的一個(gè)用于顯示小數(shù)點(diǎn),故通常稱(chēng)之為 7 段發(fā)光二極管數(shù)碼器。如圖33所示。每個(gè)二極管就是一個(gè)筆畫(huà),若干個(gè)二極管發(fā)光時(shí),就構(gòu)成了一個(gè)顯示字符。例如:當(dāng)I/O輸出得代碼為0011 1111時(shí),數(shù)碼管顯示的字符為0。本次設(shè)計(jì)的實(shí)驗(yàn)板用的共陰LED顯示器,[2]。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管的段選必須接一個(gè)8位數(shù)據(jù)線(xiàn)來(lái)保持顯示的字形碼。這種方法的優(yōu)點(diǎn)是占用CPU時(shí)間少,顯示便于監(jiān)測(cè)和控制。本次設(shè)計(jì)采用的是動(dòng)態(tài)顯示方式。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。除了進(jìn)入系統(tǒng)的正常初始化之外,由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤而使系統(tǒng)處于死鎖狀態(tài)。圖 35在系統(tǒng)中,有時(shí)會(huì)出現(xiàn)顯示不正常。AT89C52單片機(jī)復(fù)位電路共有上電復(fù)位、按鍵電平復(fù)位和按鍵脈沖復(fù)位。復(fù)位電路可由簡(jiǎn)單的RC電路構(gòu)成,也可使用其它的相對(duì)復(fù)雜,但功能更完善的電路。當(dāng)時(shí)鐘頻率選用12MHz時(shí),C取10uF,R取10KΩ,上電自動(dòng)復(fù)位電路由上電瞬間C與R構(gòu)成充電電路,RESET端的電位與電源Vcc相同,隨著充電電流的減少,RESET的電位逐漸下降。若復(fù)位電路失效,加電后CPU從一個(gè)隨機(jī)的狀態(tài)開(kāi)始工作,系統(tǒng)就不能正常運(yùn)行。按鍵復(fù)位用在系統(tǒng)運(yùn)行時(shí)的復(fù)位,使系統(tǒng)重新運(yùn)行。控制參數(shù)是指模塊進(jìn)入和退出的條件和方式,數(shù)據(jù)參數(shù)是指模塊間的信息交換方式、交換量的多少及交換的頻繁程度。模塊語(yǔ)句長(zhǎng)度通常在 20~100 條適合。由以上原則,本次設(shè)計(jì)的倒計(jì)時(shí)軟件系統(tǒng)如下圖41所示:圖 41 倒計(jì)時(shí)軟件設(shè)計(jì)框圖由上述硬件電路分析可知,本次設(shè)計(jì)采用的是定時(shí)器 0、工作方式 1,MAXTIME 為 9999秒的倒計(jì)時(shí)計(jì)數(shù)器。主程序的設(shè)計(jì)分為:①主程序的初始化內(nèi)容。②引入鍵盤(pán)掃描程序,對(duì)按鍵 key 進(jìn)行判斷,判斷哪個(gè)按鍵被按下,本系統(tǒng)設(shè)計(jì)調(diào)用的鍵盤(pán)掃描程序是 keyscan()。然后關(guān)定時(shí)器 0,等待初值并與最大值相比進(jìn)行判斷,引入初值設(shè)置子程序 setfunc()。③調(diào)用顯示子程序 display()對(duì)以上操作和后面的倒計(jì)時(shí)進(jìn)行顯示。最后,根據(jù)主程序語(yǔ)句判斷倒計(jì)時(shí)是否自減到 0,并進(jìn)行相應(yīng)的操作。圖 42 主程序流程圖矩陣鍵盤(pán)的掃描程序 keyscan()設(shè)計(jì):if((P0amp。if((P0amp。 //逐行掃描初值(即先掃描第 1 行)while((sccodeamp。若有值返回,則逐行掃描以確定按鍵所在的行,再確定按鍵所在列,從而最終確定該按鍵。),然后進(jìn)行掃描,找到閉合鍵并計(jì)算鍵值。流程圖見(jiàn)圖 43所示。 //50ms 產(chǎn)生一次中斷TL0 = (65536TIME)%256。}倒計(jì)時(shí)程序模塊:if(count == 20){count = 0。if(data_set == 0){ stop_timer0()。對(duì)計(jì)數(shù)值 count 賦初值 0,對(duì)定時(shí)器 0 的高八位 TH0和低八位 TL0 設(shè)置初值,然后開(kāi)中斷。判斷值是否為 0,如果不為 0,繼續(xù)倒計(jì)時(shí);如果為 0,則關(guān)中斷程序 stoptimer0(),倒計(jì)時(shí)結(jié)束。圖 44 倒計(jì)時(shí)流程圖 軟件仿真圖51 仿真電路圖圖 52 PCB圖 調(diào)試 uVision3Keil uVision3 仿真器是一款利用其 IDE 集成開(kāi)發(fā)環(huán)境作為仿真環(huán)境的廉價(jià)仿真器,是利用 SST 公司具有 IAP 功能的單片機(jī) SST89C58 制作而成,主要是利用了 SST89C58 的 IAP功能,所謂 IAP 功能是 In application program 的英文縮寫(xiě),是在應(yīng)用編程的意思,通俗一點(diǎn)講就是:它可以通過(guò)串口將用戶(hù)的程序下載到單片機(jī)中,可以通過(guò)串口對(duì)單片機(jī)進(jìn)行編程。①啟動(dòng) Keil uVision3。Project 菜單——〉New project ,選擇好我們要保存的文件夾后,鍵入 djs 保存。③在工程中加入文件。④現(xiàn)在可以把文件加入到工程中去。⑤此時(shí)工程建成,可以寫(xiě)入程序了。⑥當(dāng)程序完成之后,點(diǎn)擊 Rebuild all target files 按鈕 (重新編譯所有目標(biāo)文件)進(jìn)行程序調(diào)試、查錯(cuò),在程序下面的提示框 Output window 中點(diǎn)擊出錯(cuò)的提示,進(jìn)行程序改錯(cuò),當(dāng)程序沒(méi)有錯(cuò)誤的時(shí)候,出現(xiàn)如下圖 53的對(duì)話(huà)框。選擇 Dubug 按鈕,選擇 Use(Keil Monitor51 Driver),點(diǎn)擊確定。第一次將會(huì)出現(xiàn)下圖 55提示窗口,則需要點(diǎn)擊 Settings,在下面彈出窗口如圖56中,設(shè)置相應(yīng)端口號(hào)。圖 55 提示選擇窗口圖 16⑨ 點(diǎn)擊 Run 按鈕 ,在試驗(yàn)版上即可以看到程序效果(顯示默認(rèn)初值 9999 并開(kāi)始以秒為單位倒計(jì)時(shí)),接下來(lái)在實(shí)驗(yàn)板上進(jìn)行操作。⑩ 當(dāng)演示完成后,按 RESET 開(kāi)關(guān)鍵復(fù)位,然后點(diǎn)擊。因?yàn)橹灰绦蛘Z(yǔ)句沒(méi)有語(yǔ)法錯(cuò)誤,軟件就不能檢測(cè)出錯(cuò)誤的地方,必須一個(gè)模塊一個(gè)模塊仔細(xì)編寫(xiě)。通過(guò)對(duì) MCS51 單片機(jī)原理和接口技術(shù)的初步了解,結(jié)合自己的專(zhuān)業(yè)知識(shí)和對(duì) C 語(yǔ)言的基本認(rèn)識(shí),在導(dǎo)師的幫助指導(dǎo)下完成了基于單片機(jī)控制的 9999 秒倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)和這篇論文,本論文完成了以下幾個(gè)方面的工作:①介紹了本次倒計(jì)時(shí)系統(tǒng)的設(shè)計(jì)目的、設(shè)計(jì)方案和開(kāi)發(fā)意義。系統(tǒng)功能:一切就緒后,通過(guò) KC 鍵等待初值設(shè)置,其次通過(guò)矩陣鍵盤(pán)設(shè)定任何小于9999 的初值,然后通過(guò) KF 鍵開(kāi)始倒計(jì)時(shí),同時(shí)設(shè)置有復(fù)位鍵,以達(dá)到可以重新設(shè)置初值的目的。但是由于本次設(shè)計(jì)我對(duì)單片機(jī)是從頭開(kāi)始學(xué),對(duì)知識(shí)了解的局限性,使得這個(gè)倒計(jì)時(shí)系統(tǒng)在功能上不完善,對(duì)開(kāi)發(fā)有一定的影響,懇請(qǐng)各位老師原諒!時(shí)光飛逝,畢業(yè)設(shè)計(jì)完成了,在這個(gè)過(guò)程中我學(xué)到了很多東西。他在日常繁忙的工作中,多次詢(xún)問(wèn)我的論文進(jìn)程,并為我指點(diǎn)迷津。感謝大學(xué)四年所有的授課老師,是他們讓我了解專(zhuān)業(yè)知識(shí),并讓我學(xué)會(huì)如何學(xué)習(xí)專(zhuān)業(yè)知識(shí),這是一筆寶貴的財(cái)富,我將受用終身。 最后,我要感謝所有關(guān)心、幫助過(guò)我的朋友們!祝愿他們?cè)谖磥?lái)的日子里,生活愉快,工作順利!參考文獻(xiàn)(references):[1]譚浩強(qiáng),C程序設(shè)計(jì)(第三版),清華大學(xué)出版社,[2]郭天祥,新概念51單片機(jī)C語(yǔ)言教程 電子工業(yè)出版社,2009[3]張洪潤(rùn),廖勇明,王德超,模擬電路與數(shù)字電路 北京:清華大學(xué)出版社,2009[4]王化祥,感器原理及應(yīng)用(第三版)天津大學(xué)出版社,2007附錄 程序includedefine LEDData P0 //定時(shí)數(shù)碼管的段值從P0口輸出unsigned char code LEDCode[]={0x5F,0x44,0x9D,0xD5,0xC6,0xD3,0xDB,0x45,0xDF,0xD7}。 //分,秒,計(jì)數(shù)器unsigned char set_minit=99,set_second=99。 //每按一次加時(shí)間sbit dec1=P1^4。 //每按一次加時(shí)間sbit dec2=P3^4。 //秒閃動(dòng)點(diǎn)//數(shù)碼管的位選控制腳,共有11位數(shù)碼管sbit led1=P2^3。sbit led3=P2^5。dabit playon=0。 //比賽結(jié)束標(biāo)志位,為1時(shí)表示時(shí)間已經(jīng)完bit halfsecond=0。 for(i=100。i)。 //顯示第一位 9 led1=0。 led1=1。 //顯示第二位 9 led2=0。 led2=1。 else secondpoint=0。 Delay5ms()。 secondpoint=0。 //顯示第三位 9 led3=0。 led3=1。 //顯示第四位 9 led4=0。 led4=1。 //調(diào)用顯示,同時(shí)作為延時(shí)消抖 if(add1==0)。 else minit=99。 while(add1==0)。 if(dec1==0)。 else minit=0。 while(dec1==0)。 if(add2==0)。 else second=99。 while(add2==0)。 if(dec2==0)。 else second=0。 while(dec2==0)。 //TMOD設(shè)置 TL0=0xb0。 TL1=0xb0。 minit=set_minit。 EA=1。 //開(kāi)T0中斷 ET1=1。 EX0=1。 IT1=1。 //按鍵檢查 display()。 EX0=0。 //開(kāi)始標(biāo)志位 TR0=1。 //開(kāi)始標(biāo)志位清零,表示暫停 TR0=0。 //重新開(kāi)中斷 }//===================定時(shí)器0中斷服務(wù)函數(shù)======================void time0_int(void) interrupt 1 { TL0=0xb
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1