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

正文內(nèi)容

基于單片機(jī)的多路定時(shí)控制系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-07-24 19:42 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 入。上升沿時(shí)移位寄存器中的數(shù)據(jù)進(jìn)入存儲(chǔ)寄存器,下降沿時(shí)存儲(chǔ)寄存器中的數(shù)據(jù)保持不變。應(yīng)用時(shí)通常將ST_CP置為低點(diǎn)平,移位結(jié)束后再在ST_CP端產(chǎn)生一個(gè)正脈沖更新顯示數(shù)據(jù)。OE:輸出允許,高電平時(shí)禁止輸出(高阻態(tài))。引腳不緊張的情況下可以用STC89C52的一個(gè)引腳來(lái)控制它,這樣可以很方便地產(chǎn)生閃爍和熄滅的效果。實(shí)際應(yīng)用時(shí)可以將它直接連低電平(GND)。DS:移位寄存器的串行數(shù)據(jù)輸入,接STC89C52的某個(gè)數(shù)字I/O引腳。VCC:?jiǎn)卧耍ǔ=?5V電壓。 提示電路 提示電路,提示電路由驅(qū)動(dòng)芯片驅(qū)動(dòng)一位共陽(yáng)極數(shù)碼管構(gòu)成。其中,則移位寄存器總是比存儲(chǔ)寄存器早一個(gè)脈沖。,用于接收來(lái)自單片機(jī)的數(shù)據(jù)。復(fù)位端MR接高電平,防止移位寄存器中的數(shù)據(jù)清0,輸出允許端OE因單片機(jī)引腳緊缺,所以接地,允許輸出。存儲(chǔ)寄存器的輸出Q0Q6接共陽(yáng)數(shù)碼管的ag段,用以顯示相關(guān)的提示數(shù)字(提示數(shù)字為:07)。,在需要顯示提示數(shù)字的時(shí)候,三極管導(dǎo)通,在數(shù)碼管的公共端產(chǎn)生高電平,使能數(shù)碼管;在不需要顯示提示數(shù)字是,三極管截止,數(shù)碼管的公共端為低電平,不使能數(shù)碼管。蜂鳴器由一個(gè)PNP三極管驅(qū)動(dòng),蜂鳴器發(fā)聲;置1時(shí),蜂鳴器不發(fā)生。用于提示按下的某個(gè)按鍵是否被檢測(cè),成為有效按鍵。 控制電路的設(shè)計(jì) ULN2803芯片介紹 ULN2803引腳圖ULN2803是八路NPN達(dá)林管連接晶體管陣系列,特別適用于低邏輯電平數(shù)字電路(諸如TTL, CMOS或PMOS/NMOS)和較高的電流/電壓要求之間的接口,廣泛應(yīng)用于計(jì)算機(jī),工業(yè)用和消費(fèi)類(lèi)產(chǎn)品中的燈、繼電器、打印錘或其它類(lèi)似負(fù)載中。所有器件具有集電極開(kāi)路輸出和續(xù)流箱位二極管,用于抑制躍變。ULN2803的設(shè)計(jì)與標(biāo)準(zhǔn)TTL系列兼容,而ULN2804 最適于6至15伏高電平CMOS或PMOS。,引腳說(shuō)明如下:18引腳:輸入端1118引腳:輸出端9引腳:地端10引腳:電源端 控制電路, 控制電路ULN2803的公共端接5V電源,輸出引腳1118分別經(jīng)限流電阻接LED燈燈7燈0(燈從上到下編號(hào)為07,對(duì)應(yīng)電器支路07),LED燈采用共陰極接法。實(shí)物中沒(méi)有采取ULN2803芯片,LED采用共陽(yáng)極接法;實(shí)際生活中,LED燈應(yīng)該接繼電器。,對(duì)應(yīng)的LED會(huì)亮(模擬電器支路從斷到通);輸出為1時(shí),對(duì)應(yīng)的LED燈從亮到滅(模擬電器支路從通到斷)。4 系統(tǒng)軟件的設(shè)計(jì) 系統(tǒng)主程序,畫(huà)出了系統(tǒng)的主程序流程圖,從圖中可以看出程序的執(zhí)行過(guò)程主要包括程序初始化、時(shí)間校準(zhǔn)模式、動(dòng)作時(shí)間設(shè)定模式、動(dòng)作路徑選擇模式、動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定模式。程序初始化程序可以獨(dú)立完成,后面的4個(gè)模式都要鍵盤(pán)輸入電路的配合才能完成,可見(jiàn)按鍵檢測(cè)的重要性。在后面的內(nèi)容中,先介紹按鍵檢測(cè)子程序然后再分別介紹程序初始化、時(shí)間校準(zhǔn)子程序、動(dòng)作時(shí)間設(shè)定子程序、動(dòng)作路徑選擇子程序、動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定子程序,每個(gè)子程序會(huì)舉例說(shuō)明,必要時(shí)會(huì)給流程圖。 按鍵檢測(cè)子程序本次畢設(shè)中,由于按鍵設(shè)置的模式較多,需要個(gè)數(shù)達(dá)到9個(gè),為了節(jié)約I/O口,選擇使用33矩陣鍵盤(pán),矩陣鍵盤(pán)有查詢式和中斷式兩種,本次畢設(shè)采用查詢式,采用按行查詢。在判斷鍵盤(pán)中有無(wú)按鍵按下時(shí),先判斷是那根行線的狀態(tài)為低電平,其他線為高電平。在確認(rèn)某行線為低電平后,再逐行檢測(cè)各列線的電平狀態(tài)。若某列為低,則該列線與低電平的行線交叉處的按鍵就是閉合的按鍵?,F(xiàn)給出部分按鍵檢測(cè)程序,以便說(shuō)明。uchar ScanKey() //鍵盤(pán)掃描{ uchar temp,temp1,key。 temp=P3。 //讀取P3端口狀態(tài) tempamp。=0x87。 //判斷行線狀態(tài) switch(temp) { case 0x86: // { P3=0xB8。 delay(100)。 //延時(shí)片刻,以利于狀態(tài)的獲取否進(jìn)入路徑選擇模式進(jìn)入動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定模式進(jìn)入動(dòng)作時(shí)間設(shè)定模式等待動(dòng)作支路動(dòng)作否是是否是程序初始化,進(jìn)入時(shí)間校準(zhǔn)時(shí)間校準(zhǔn)是否完成?動(dòng)作時(shí)間設(shè)定是否完成?開(kāi)始動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定是否完成?是否連續(xù)進(jìn)行了8次動(dòng)作設(shè)置?是否需要進(jìn)行下一次動(dòng)作設(shè)定?路徑選擇是否完成?否否否是是是 系統(tǒng)總體執(zhí)行流程圖 temp1=P3。 //讀取P3端口狀態(tài)temp1amp。=P3。 //判斷列線狀態(tài) switch(temp1) { case 0xB0: //,表示”0“鍵被按下 key=0。 /鍵值為0 break。 //跳出列線判斷狀態(tài) case 0xA8: //,表示”1“鍵被按下 key=1。 //鍵值為1 break。 //跳出列線判斷狀態(tài) case 0x98: //,表示”2“鍵被按下 key=2。 //鍵值為2 break。 //跳出列線判斷狀態(tài) default: //列線沒(méi)有發(fā)生狀態(tài)變化 break。 } P3=0x87。 break。 } return (key)。}程序中只給出了按鍵0、按鍵1和按鍵2的檢測(cè)程序,先檢測(cè)行線,給P3口賦初值0x87,當(dāng)按鍵按下后P3口狀態(tài)變?yōu)?x86。后檢測(cè)列線,給P3口賦初值0xB8,當(dāng)按鍵按下后P3口狀態(tài)變?yōu)?xB0,此時(shí)檢測(cè)按鍵0被按下;當(dāng)按鍵按下后P3口狀態(tài)變?yōu)?xA8,檢測(cè)按鍵1被按下;當(dāng)按鍵被按下后P3口狀態(tài)變?yōu)?x98,檢測(cè)按鍵2被按下。 系統(tǒng)初始化系統(tǒng)初始化包括中斷初始化、DS1302初始化和LCD1602初始化。中斷初始化,設(shè)開(kāi)始定時(shí)中斷0初始化LCD1602初始化DS1302初始化初始化結(jié)束 程序初始化流程圖置了定時(shí)器0的工作方式、定時(shí)初值、開(kāi)放總中斷和啟動(dòng)定時(shí)器0。DS1302初始化將時(shí)、分、秒、年、月、日、星期的值賦值為0。LCD初始化設(shè)置了顯示格式、清除了LCD顯示內(nèi)容。時(shí)間校準(zhǔn)就是檢查L(zhǎng)CD1602顯示的時(shí)間是否準(zhǔn)確,如果時(shí)間不準(zhǔn)確,將影響后面的設(shè)置。時(shí)間校準(zhǔn)校準(zhǔn)的是基準(zhǔn)時(shí)間(通常以當(dāng)前時(shí)間為基準(zhǔn)時(shí)間),可以消除DS1302長(zhǎng)時(shí)間走時(shí)所產(chǎn)生的累計(jì)誤差。按鍵0進(jìn)入時(shí)間校準(zhǔn),按鍵3使校準(zhǔn)時(shí)標(biāo)加1,按鍵4使校準(zhǔn)時(shí)標(biāo)減1,校準(zhǔn)完一個(gè)時(shí)標(biāo)后,按鍵2右移到下一個(gè)時(shí)標(biāo)進(jìn)行校準(zhǔn),當(dāng)所有時(shí)標(biāo)都校準(zhǔn)完成后,按鍵5退出時(shí)間校準(zhǔn)模式。校準(zhǔn)順序:年→月→日→星期→時(shí)→分→秒,現(xiàn)以校準(zhǔn)年的過(guò)程為例說(shuō)明如何校準(zhǔn)時(shí)間。 動(dòng)作時(shí)間設(shè)定子程序動(dòng)作時(shí)間設(shè)定模式中,可以設(shè)置動(dòng)作時(shí)間。設(shè)置過(guò)程與時(shí)間校準(zhǔn)相同,只是設(shè)置時(shí)標(biāo)只有時(shí)、分、秒,設(shè)置順序?yàn)闀r(shí)→分→秒。設(shè)置時(shí),按鍵1進(jìn)入動(dòng)作時(shí)間模式,按鍵 LCD顯示年是否大于準(zhǔn)確年?LCD顯示年等于準(zhǔn)確年?LCD顯示年小于準(zhǔn)確年?按鍵3,使顯示年加1按鍵4,使顯示年減1否是否是是LCD顯示年等于準(zhǔn)確年?否否是按鍵0,進(jìn)入時(shí)間校準(zhǔn)模式按鍵2,右移到校準(zhǔn)月 校準(zhǔn)年流程圖鍵3使設(shè)置的時(shí)標(biāo)加1,按鍵4使設(shè)置的時(shí)標(biāo)減1,設(shè)置完一個(gè)時(shí)標(biāo)按鍵2向右移位,當(dāng)最后一個(gè)時(shí)標(biāo)都設(shè)置好了之后,按鍵5退出動(dòng)作時(shí)間設(shè)定模式。例如設(shè)置動(dòng)作時(shí)間為12:50:10。(1)按鍵1進(jìn)入動(dòng)作時(shí)間設(shè)定模式,LCD顯示第二行顯示Alarm:00:00:00,且小時(shí)在閃爍。(2)多次按鍵3,使顯示的小時(shí)為12后,按鍵2右移到時(shí)標(biāo)分。(3)多次按鍵4,使顯示的分為50后,按鍵2右移到時(shí)標(biāo)秒。(4)多次按鍵3,使顯示的秒為10后,按鍵5退出動(dòng)作時(shí)間設(shè)定模式。動(dòng)作路徑選擇是緊接動(dòng)作時(shí)間設(shè)定后的操作,就是當(dāng)你設(shè)定的動(dòng)作時(shí)間到后,哪幾條電器支路動(dòng)作,可以選擇18條動(dòng)作路徑。在這個(gè)模式中,數(shù)碼管顯示的數(shù)字十分重要,顯示數(shù)字范圍為07,對(duì)應(yīng)支路07,數(shù)碼管的數(shù)字是通過(guò)按鍵3(按一下數(shù)碼管數(shù)字加1)和按鍵4(按一下使數(shù)碼管數(shù)字減1)來(lái)改變的。按鍵2的作用是選中支路,如數(shù)碼管顯示0時(shí),按下按鍵2就代表選中了支路2。當(dāng)你選中支路2后,可以繼續(xù)改變數(shù)碼管的數(shù)字,接著選中其他的路徑,也可以按鍵5退出路徑選擇。注意在此模式中,按下的鍵要求有效,即按下某個(gè)鍵蜂鳴器發(fā)聲,才能保證設(shè)置無(wú)誤。例如,選中支路2和支路3的操作步驟如下:(1)按鍵6,進(jìn)入動(dòng)作路徑選擇模式,此時(shí)數(shù)碼管顯示為0,對(duì)應(yīng)支路0.(2)多次按鍵3,使數(shù)碼管顯示為2,按鍵2,選中支路2.(3)按鍵3,是數(shù)碼管顯示為3,按鍵2,選中支路3,兩條支路選擇完成后,按鍵5退出動(dòng)作路徑選擇模式。此程序是緊接動(dòng)作路徑選擇之后的程序,也是最后需要按鍵設(shè)置的程序,設(shè)置動(dòng)作次第就是用一個(gè)多維數(shù)組,存放動(dòng)作時(shí)間設(shè)定模式中設(shè)定好的動(dòng)作時(shí)間,人為的給其確定一個(gè)次第,這個(gè)次第的取值范圍是07,建議逐次設(shè)置,這樣不容易出錯(cuò);動(dòng)作性質(zhì)設(shè)置,就是給在動(dòng)作路徑選擇模式中選擇的路徑一個(gè)信號(hào),讓它們?cè)趧?dòng)作時(shí)間到的時(shí)候產(chǎn)生動(dòng)作開(kāi)或者動(dòng)作關(guān)。動(dòng)作開(kāi)對(duì)應(yīng)實(shí)物上的燈亮,動(dòng)作關(guān)對(duì)應(yīng)實(shí)物上的燈滅。動(dòng)作性質(zhì)是通過(guò)一系列算法產(chǎn)生的。例如,設(shè)置路徑2和路徑3動(dòng)作次第為0、動(dòng)作性質(zhì)為開(kāi),設(shè)置步驟如下:(1)按鍵7,進(jìn)入動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定模式,此時(shí)數(shù)碼管顯示0,對(duì)應(yīng)次第0,在該模式中,數(shù)碼管顯示幾表示對(duì)應(yīng)的次第是幾,不再對(duì)應(yīng)支路。數(shù)碼管顯示的數(shù)字可以通過(guò)按鍵3和按鍵4改變。(2)按鍵2,設(shè)定動(dòng)作性質(zhì)為開(kāi)。(按鍵8,設(shè)定動(dòng)作性質(zhì)為關(guān))設(shè)定完成,按鍵5退出動(dòng)作次第與動(dòng)作性質(zhì)設(shè)定模式。5 系統(tǒng)的安裝調(diào)試 仿真與編程軟件簡(jiǎn)介 仿真軟件簡(jiǎn)介仿真軟件采用Proteus ISSI軟件,ProteusISIS是英國(guó)Labcenter公司開(kāi)發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是:①實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤(pán)和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。②支持主流單片機(jī)系統(tǒng)的仿真。目前支持的單片機(jī)類(lèi)型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如KeilC51uVision2等軟件。④具有強(qiáng)大的原理圖繪制功能。總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。 編程軟件簡(jiǎn)介編程軟件采用Kei C51軟件,Keil C51是德國(guó)Keil 公司推出的單片機(jī)開(kāi)發(fā)軟件,它是一個(gè)基于32位Windows環(huán)境的應(yīng)用程序,支持C語(yǔ)言和匯編語(yǔ)言編程,(通常稱為μV2)。Keil提供包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,由以下幾部分組成:μVisionIDE集成開(kāi)發(fā)環(huán)境(包括工程管理器、源程序編輯器、程序調(diào)試器)、C51編譯器、A51匯編器、LIB51庫(kù)管理器、BL51連接/定位器、OH51目標(biāo)文件生成器以及Monitor5RTX51實(shí)時(shí)操作系統(tǒng)。 系統(tǒng)安裝調(diào)試 硬件調(diào)試硬件調(diào)試步驟如下:,檢測(cè)所有的線路是否有漏焊,焊錯(cuò)的地方。檢查結(jié)果:?jiǎn)纹瑱C(jī)上的EA管腳未接電源;DS1302的主電源引腳為VCC2,接成了VCC1。檢查結(jié)果:LCD1602有條數(shù)據(jù)線虛焊;按鍵也存在虛焊。 軟件調(diào)試軟件編譯不成功,主要有以下方面的問(wèn)題:1. 定義變量過(guò)多,超出范圍;2. 使用了未聲明的變量和函數(shù);3. 定義了函數(shù)但為使用;4. 變量名和函數(shù)名寫(xiě)錯(cuò);5. 在語(yǔ)句的結(jié)尾漏寫(xiě)結(jié)束符號(hào)“;”。 軟硬結(jié)合調(diào)試硬件和軟件調(diào)試之后,進(jìn)行軟硬結(jié)合調(diào)試。,程序功能是通電后8個(gè)LED燈全亮,實(shí)物顯示時(shí)有的燈時(shí)亮?xí)r滅,原因是單片機(jī)沒(méi)插牢。插牢之后,所有的燈正常顯示。,編寫(xiě)小程序檢測(cè)按鍵程序是否好使,程序功能是按下鍵幾燈幾亮,結(jié)果按鍵不好使,所有按鍵都試了,按鍵檢測(cè)無(wú)效。檢查程序知,是P3口賦初值不正確,修改初值后按鍵好使。,針對(duì)蜂鳴器編寫(xiě)一段小程序,功能是按下一個(gè)按鍵,蜂鳴器發(fā)聲一次,結(jié)果蜂鳴器一直發(fā)聲,原因是蜂鳴器的驅(qū)動(dòng)三極管焊錯(cuò),把PNP型三極管,當(dāng)成了NPN型三極管。,功能是通電后數(shù)碼管顯示8,結(jié)果是數(shù)碼管顯示8但亮度弱,原因是數(shù)碼管為共陰數(shù)碼管,換數(shù)碼管,改相關(guān)程序后亮度夠。,燒錄進(jìn)單片機(jī)進(jìn)行最后的調(diào)試。在調(diào)試過(guò)程中,主要遇到以下問(wèn)題:(1)在時(shí)間校準(zhǔn)過(guò)程中出現(xiàn)按下鍵3,時(shí)標(biāo)不加1的現(xiàn)象,查找原因是因?yàn)榘存I檢測(cè)程序有問(wèn)題,解決方法:在按鍵檢測(cè)函數(shù)后添加一個(gè)Yes函數(shù),作用是確認(rèn)有按鍵按下,按鍵檢測(cè)只能檢測(cè)出按下鍵的鍵值,然后在每個(gè)涉及按鍵語(yǔ)句的前面都加上一條“K=Yes()”語(yǔ)句。(2)在動(dòng)作時(shí)間設(shè)定過(guò)程中,出現(xiàn)進(jìn)入動(dòng)作時(shí)間設(shè)定模式難的問(wèn)題,原因是條件復(fù)雜,需要按下按鍵1和顯示“:”時(shí),才能進(jìn)入。解決方法:改變進(jìn)入條件,使按鍵1按下就可以進(jìn)入動(dòng)作時(shí)間設(shè)定模式。(3)在路徑選擇過(guò)程中,出現(xiàn)按一次鍵3,數(shù)碼管顯示數(shù)字加2的現(xiàn)象。解決方法:延長(zhǎng)按鍵檢測(cè)程序中的去抖時(shí)間。(4)在動(dòng)作次第與動(dòng)作時(shí)間設(shè)定過(guò)程中,設(shè)置完成后,動(dòng)作不準(zhǔn)確。如上一次動(dòng)作結(jié)果為燈0和燈7亮,其他燈滅。這次預(yù)計(jì)結(jié)果為燈0和燈7滅,其他燈狀態(tài)不改變。動(dòng)作時(shí)間到后,燈0和燈7滅,其他燈亮。解決方法:修改程序中的算法。結(jié)論本文主要闡述了基于單片機(jī)實(shí)現(xiàn)的
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1