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

正文內(nèi)容

單片機(jī)開發(fā)工程案例分析與解析-wenkub

2023-05-02 00:02:13 本頁面
 

【正文】 {init_val++。 case 2: if(state_val==1) //只有在設(shè)置狀態(tài),增1鍵才有用 { if (init_val0) //更改原來的倒計數(shù)初始值 {init_val。 switch (key_val_new) { case 1: //設(shè)置鍵 state_val=1。 //打開總中斷允許 ET1=1。 //用T1計時 8位自動裝載定時模式 TH1=0x19。 key_val_old=255。 }}//主程序main(){init_val=59。 } break。 switch (state_val) { case 0: if(T1_t3999) //如果計數(shù)3999, 計時1s { T1_t=0。 //延時 } else { P0=led_seg_code[0]。 //延時 i=v%100/10。 if (state_val!=2) //動態(tài)掃描 {i=v%10。} else { if (P1_3==0) { i=4。 //延時,去抖動 if (i==(P1amp。}//按鍵掃描unsigned char scan_key(){ unsigned char i。 //狀態(tài)值unsigned char data show_val。 //閃爍時LED的開/關(guān)狀態(tài)unsigned char data t_val。 //設(shè)置鍵sbit P1_1=P1^1。 程序設(shè)計(僅供參考的C語言源程序)//晶振: T1250微秒 按鍵P10 P11 P12 P13/*變量的定義: show_val: 顯示的值059 init_val: 初始值 state_val: 狀態(tài)值 0計數(shù)狀態(tài)。在編譯成功后,產(chǎn)生以 “*.hex”和“*.bin” 后綴的目標(biāo)文件。 圖33 主程序的流程圖 在定時器的參數(shù)中,選擇定時器T1的8位自動裝載模式,每250us產(chǎn)生一次溢出中斷,中斷服務(wù)程序如圖34所示。如果不同,表示有鍵按下或彈起,同時用本次按鍵值更新上一次的按鍵值。按下“確認(rèn)鍵”時,回到計時模式開始以新的初始值進(jìn)行倒計時。這些狀態(tài)的切換取決于按下哪一個鍵以及是否計時到0。②程序設(shè)計思路鑒于題目要求,存在三種工作模式:初始值設(shè)置模式、倒計時模式、計時到0時的閃爍模式。只有這兩個變量值不一樣時,才能說明是一次新的按鍵按下或彈起了,同時將新的鍵值賦給key_val_old變量。電路原理圖如圖31所示。根據(jù)鍵盤的按鍵值實(shí)現(xiàn)設(shè)置狀態(tài)、計時狀態(tài)的切換。當(dāng)?shù)褂嫊r計數(shù)器到0時,觸發(fā)另一個標(biāo)志變量,進(jìn)入閃爍狀態(tài)。如果已經(jīng)處于計時狀態(tài)則此鍵無效。要求根據(jù)設(shè)定的初始值(159秒)進(jìn)行倒計時,當(dāng)計時到0時數(shù)碼管閃爍“00”(以1Hz閃爍),按鍵功能如下:(1)設(shè)定鍵:在倒計時模式時,按下此鍵后停止倒計時,進(jìn)入設(shè)置狀態(tài);如果已經(jīng)處于設(shè)置狀態(tài)則此鍵無效。(2)增一鍵:在設(shè)置狀態(tài)時,每按一次遞增鍵,初始值的數(shù)字增1。 模塊1:系統(tǒng)設(shè)計(1)任務(wù)分析與整體設(shè)計思路根據(jù)題目的要求,需要實(shí)現(xiàn)如下幾個方面的功能。顯示功能:顯示倒計時的數(shù)字要采用動態(tài)掃描的方式將數(shù)字拆成“十位”和“個位”動態(tài)掃描顯示。 (2)單片機(jī)型號及所需外圍器件型號,單片機(jī)硬件電路原理圖選用MCS51系列AT89S51單片機(jī)作為微控制器,選擇兩個四聯(lián)的共陰極數(shù)碼管組成8位顯示模塊,由于AT89S51單片機(jī)驅(qū)動能力有限,采用兩片74HC244實(shí)現(xiàn)總線的驅(qū)動,一個74HC244完成位控線的控制和驅(qū)動,另一個74HC244完成數(shù)碼管的7段碼輸出,在輸出口上各串聯(lián)一個100歐姆的電阻對7段數(shù)碼管限流。 圖31 定時報警器電路原理圖(3)程序設(shè)計思路,單片機(jī)資源分配以及程序流程 ①單片機(jī)資源分配采用單片機(jī)的P3口作為按鍵的輸入,構(gòu)成四個功能按鍵。在顯示功能中,需要定義一組數(shù)組(code類型),值為09數(shù)字對應(yīng)的數(shù)碼管7段碼。變量state_val為0時,處于倒計時模式。狀態(tài)的切換圖如圖32 圖32 狀態(tài)的切換單片機(jī)復(fù)位之后,默認(rèn)處于倒計時模式,啟動定時器,定時器每隔250us溢出一次,根據(jù)定時器溢出次數(shù)來計時,到1秒時將時間的計數(shù)器減1。當(dāng)?shù)褂嫊r到0時,變量state_val由1變?yōu)?,處于閃爍狀態(tài),在這種狀態(tài)下,根據(jù)按鍵的情況分別又切換到計時和設(shè)置狀態(tài)。這樣設(shè)計旨在避免一個按鍵長時間按下時被重復(fù)判為有新鍵按下,使得當(dāng)前按下的鍵只有松開后,下一次按下時才算為一次新的按鍵。 圖34中斷服務(wù)程序流程圖(4)軟硬件調(diào)試方案 軟件調(diào)試方案:偉福軟件中,在“文件\新建文件”中,新建C語言源程序文件,編寫相應(yīng)的程序。硬件調(diào)試方案:在設(shè)計平臺中。1設(shè)置狀態(tài)。 //增一鍵sbit P1_2=P1^2。 //保存倒計數(shù)的當(dāng)前值unsigned int data T1_t。 //存放需要在數(shù)碼管顯示的數(shù)字unsigned char data init_val。 i=P1amp。0x0f)) { if (P1_0==0) { i=1。} } } } } else { i=255。 //取要顯示的數(shù)的個位 P0=led_seg_code[i]。 //取十位 P0=led_seg_code[i]。 //處于閃爍狀態(tài) if (shan_val) { P2=0xff。 if(t_val!=0) { t_val。 case 2: if(T1_t1999) //如果計數(shù)1999, { T1_t=0。 //初始化各變量 t_val=init_val。 T1_t=0。 //250微秒溢出一次。 //開中斷允許 TR1=1。 //處于設(shè)置狀態(tài) TR1=1。 } else {init_val=59。 } else {init_val=0。 //將初始值賦給計數(shù)變量 show_val=t_val。 } } led_show(show_val)。表1 交通燈的狀態(tài)切換表南北方向東西方向序號狀態(tài)序號狀態(tài)1綠燈亮25秒,紅、黃燈滅1紅燈亮30秒,綠、黃燈滅2黃燈亮5秒,紅、綠燈滅3紅燈亮30秒,綠、黃燈滅2綠燈亮25秒,紅、黃燈滅3黃燈亮25秒,紅、綠燈滅回到狀態(tài)1回到狀態(tài)1:系統(tǒng)設(shè)計(1)任務(wù)分析與整體設(shè)計思路試題要求實(shí)現(xiàn)的功能主要包括計時功能、動態(tài)掃描以及狀態(tài)的切換等幾部分。開始下一個狀態(tài),如此循環(huán)重復(fù)執(zhí)行。實(shí)現(xiàn)交通燈信號的顯示,每個發(fā)光二極管串聯(lián)500歐姆電阻起限流作用。還需要定義兩個變量( t_ sn, t_ ew)暫存東西、南北兩個方向的倒計時剩余時間。在初始化變量與寄存器后,主程序進(jìn)入一個循環(huán)結(jié)構(gòu),在循環(huán)中只做動態(tài)掃描的工作,根據(jù)東西、南北兩向的剩余時時間進(jìn)行動態(tài)掃描顯示。 在 “項目\編譯”菜單中將C源文件編譯,檢查語法錯誤及邏輯錯誤。然后,上電重新啟動單片機(jī),檢查所編寫的程序是否達(dá)到題目的要求,是否全面完整地完成試題的內(nèi)容。//南北方向綠燈sbit SN_yellow=P3^1 。//東西方向黃燈sbit EW_red=P3^3 。char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}。 }//void led_show(unsigned int u,unsigned int v){ unsigned char i。 delay(100)。 delay(100)。 delay(100)。 delay(100)。 } else { state_val_sn++。//南北方向綠燈 SN_yellow=1 。//南北方向綠燈 SN_yellow=0 。//南北方向綠燈 SN_yellow=1 。 } else { state_val_ew++。//東西方向綠燈 EW_yellow=1。//東西方向綠燈 EW_yellow=1 。//東西方向綠燈 EW_yellow=0 。 t_ew=init_ew[0]。//初始化各燈的狀態(tài) SN_green=0 。//東西方向綠燈滅 EW_yellow=1。//0x4b。 //開中斷 ET1=1。AT89S52單片機(jī)P1引腳外接獨(dú)立式按鍵S1S8,分別代表數(shù)字鍵0確定鍵、取消鍵。(2)密碼輸入正確后,輸出一個電磁鎖開鎖信號與已開鎖信號,并發(fā)出兩聲短“滴”聲提示。 系統(tǒng)設(shè)計(1)分析任務(wù)要求。若5秒內(nèi)沒有輸入內(nèi)容則清除已輸入的內(nèi)容。 整體程序設(shè)計思想:程序分為主程序和中斷服務(wù)程序兩個主要部分,主程序完成變量和單片機(jī)特殊功能寄存器的初始化后,進(jìn)入一個循環(huán)結(jié)構(gòu)。 中斷服務(wù)程序只要實(shí)現(xiàn)三個狀態(tài)的計時,待機(jī)時需要計時5秒,密碼正確需要計時5s,密碼3次輸入錯誤需要計時15秒。在74HC244的7段碼輸出線上串聯(lián)100歐姆電阻起限流作用。硬件電路原理圖如圖39所示。 圖310 密碼鎖的主程序流程圖中斷服務(wù)程序主要完成三種定時的計時工作,包括①按鍵之后啟動的待機(jī)計時,當(dāng)待機(jī)超過5s則清除已輸入的內(nèi)容。 圖311 密碼鎖中斷服務(wù)程序流程圖 單片機(jī)資源的分配與變量的定義: 密碼的輸入與判斷需要定義4個變量。 計時功能需要5個變量。(4)設(shè)計系統(tǒng)軟件調(diào)試方案、硬件調(diào)試方案及軟硬件聯(lián)合調(diào)試方案 軟件調(diào)試方案:偉福軟件中,在“文件\新建文件”中,新建C語言源程序文件,編寫相應(yīng)的程序。硬件調(diào)試方案:在設(shè)計平臺中。 key1=P1^1。key5=P1^5。 //電磁鎖開鎖驅(qū)動sbit pw_error=P3^1。 //有源蜂鳴器unsigned char data t_val_15s,t_val_5s,t_val_4s,t_state。unsigned char data show_val[6]。 }//清除輸入內(nèi)容void init_variant(){unsigned char i。 //led_seg_code[10]=0x00表示數(shù)碼管不顯示任何內(nèi)容 key_index=0。amp。} else { TR1=1。 case 0xfd: k=1。 case 0xf7: k=3。 case 0xdf: k=5。 case 0x7f: k=7。 P2=0xdf。 delay(500)。 P0=led_seg_code[show_val[3]]。 P2=0xfd。 delay(500)。} else { t_val_5s=0。 case 1://密碼輸入正確,需要計時4s if(t_val_4s4) { t_val_4s++。 //已開鎖信號清零 relay_open=1。 case 2: //密碼輸入錯誤3次,計時15s if(t_val_15s15) { t_val_15s+
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1