




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、. . . . 單片機(jī)PID算法實(shí)現(xiàn)在網(wǎng)絡(luò)上收集了一個(gè)PID控制程序,看到很多研友的畢業(yè)設(shè)計(jì)可能涉與到PID控制,這是一個(gè)PID的程序,希望能做到拋磚引玉,僅供大家參考。/*/*/* initial interrupter */*/*/void init_interrupter(void) /*/TMOD=0x21; /* 設(shè)置計(jì)時(shí)器0工作于模式1,設(shè)置計(jì)時(shí)器1工作于模式2*/TL0=0x00; /*
2、 T0=0000定時(shí)時(shí)間為71.1ms;71.1ms*151.066s*/TH0=0xdc; /*T0=DC00定時(shí)時(shí)間為10ms;10ms*1001s*/ /*T0=FC66定時(shí)時(shí)間為1ms;10ms*10001s*/TL1=0xfd; /* 設(shè)置串口通信速率9600bps*/TH1=0xfd;PCON=0x00; /* SMOD=0, 速率不倍增*/SCON=0x50; /* 8位數(shù)據(jù)通信,串行通信方式1,允許單片機(jī)接收數(shù)據(jù)*/IP=0x10; /*serial is preferential*/IE=0x92; /* 定時(shí)器0, 串
3、口中斷允許;定時(shí)器1中斷禁止*/rs485_receive=0;rs485_transmitte=0;TR0=1; /* 啟動(dòng)定時(shí)器0*/TR1=1; /* 啟動(dòng)定時(shí)器1*/void timer0_server(void) interrupt 1 using 1 /*/ TL0=0x00; TH0=0xdc;/*T0=DC00 timing interval is 10ms;10ms*1001s*/ /*T0=FC66 timing interval is 1ms;10ms*10001s*/ if (flag_se
4、rial=1) timer0_counter_3+; if (timer0_counter_3>11) timer0_counter_3=0; flag_serial=0; pointer_serial_data=serial_data; counter_serial_data=0;
5、 dog=!dog;/*Timer0 is full(10ms), feed dog*/ if (timing_interval=0) timing_interval=1; /*timing_interval is lost then set it to 1 second*/ timer0_counter_1+;/*timer0_counter_1 is software timer. when timer0 interrupt is full, it increase automatically*/ i
6、f (unsigned char) (timer0_counter_1/100)=timing_interval) /*timing_interval arrives*/ out_flag=1;/*indexing 占空比 high level begin*/ /*-scan 0809 to get current equipment's temperature-*/ scan_current_Temperature(); origina_address=0x82;
7、160; display1_Temperature(current_Temperature,origina_address); /*-calculate out_value-*/ PID_algorithm_function(PID_mode,PP,II,DD,BB,current_Temperature,seted_temperature); /out_value=0.5; if (out_value>0.0) /*out_value=0.0, then 占空比 is
8、zero*/ control_0=1; ledctrl_address=0x8c; leddata_address=0xff; /reset timer0_counter_1 and timer0_counter_2, timer0_counter_1=0; /indexing timing_interval's tim
9、ing timer0_counter_2=0; /indexing 占空比's timing if(out_flag=1) timer0_counter_2+; if (out_value<1.0) if( (unsigned char) (timer0_counter_2/out_value/100) >= timing_interval)
10、0; timer0_counter_2=0; control_0=0; ledctrl_address=0x8c; leddata_address=0x00; out_flag=0;
11、60; float PID_algorithm_function(uchar PID_mode_2,float P_2,I_2,D_2,B_2,current_Temperature_2,seted_temperature_2) float idata delta; switch (PID_mode_2) case 1: break;/*PID mode*/ case 2: D_2=0; break;/*PI mode*/
12、case 3: I_2=0; break;/*PD mode*/ case 4: I_2=0; D_2=0; break;/*P mode*/ if (PID_mode_2<5)/*PID algorithm*/ ek=(seted_temperature_2-current_Temperature_2)/99.9; delta=P_2*(ek-ek1)+I_2*ek+D_2*(ek-2.0*ek1+ek2); out_value=
13、out_value+delta; ek2=ek1; ek1=ek; if (out_value>1.0) out_value=1; else if (out_value<=0) out_value=0.0; if (PID_mode_2=5) /*BB
14、 algorithm*/ if (current_Temperature_2-seted_temperature_2>=B_2) out_value=0.0; if (seted_temperature_2-current_Temperature_2>=B_2) out_value=1.0; return (out_value);軟件練習(xí)十二:將十六進(jìn)制數(shù)據(jù)轉(zhuǎn)換成十進(jìn)制數(shù)據(jù)實(shí)驗(yàn)?zāi)康模菏煜?1 單片機(jī)指令系統(tǒng),掌握程序設(shè)計(jì)方法。實(shí)驗(yàn)容:將R2 中的容轉(zhuǎn)換成十進(jìn)制數(shù)據(jù),然后將轉(zhuǎn)換的數(shù)據(jù)百位、十位
15、和個(gè)位分別存入R0指出的30H、31H 單元中。實(shí)驗(yàn)程序框圖:程序清單:ORG 00HAJMP MAINORG 30HMAIN: MOV SP,#5FHMOV R0,#30HMOV A,R2MOV B,#100DIV ABMOV R0,AINC R0MOV A,#10XCH A,BDIV ABSWAP AADD A,BMOV R0,ASJMP $END軟件練習(xí)十一:BCD 碼數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)據(jù)實(shí)驗(yàn)?zāi)康模菏煜?1 單片機(jī)指令系統(tǒng),掌握程序設(shè)計(jì)方法。實(shí)驗(yàn)容:將R2 中的容轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),并傳送到20H 單元中。實(shí)驗(yàn)程序框圖:實(shí)驗(yàn)步驟:將R2 送#99H 后,執(zhí)行程序得到結(jié)果是否與你預(yù)
16、計(jì)一致。程序清單:ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#5FHMOV R2,#99HMOV A,R2SWAP AANL A,#0FHMOV B,#0AHMUL ABMOV R3,AMOV A,R2ANL A,#0FHADD R3,AMOV 20H,ASJMP $END思考:修改程序,將R2 中容換成其他數(shù)據(jù)。交通燈控制電路一、設(shè)計(jì)任務(wù)與要求1設(shè)計(jì)一個(gè)十字路口的交通燈控制電路,要求甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,每次通行時(shí)間都設(shè)為25秒;2要求黃燈先亮5秒,才能變換運(yùn)行車道;3黃燈亮?xí)r,要求每秒鐘閃亮一次 。二、實(shí)驗(yàn)預(yù)習(xí)要求1復(fù)習(xí)數(shù)字系統(tǒng)設(shè)
17、計(jì)基礎(chǔ)。2復(fù)習(xí)多路數(shù)據(jù)選擇器、二進(jìn)制同步計(jì)數(shù)器的工作原理。3根據(jù)交通燈控制系統(tǒng)框圖,畫出完整的電路圖。三、設(shè)計(jì)原理與參考電路 1分析系統(tǒng)的邏輯功能,畫出其框圖 交通燈控制系統(tǒng)的原理框圖如圖12、1所示。它主要由控制器、定時(shí)器、譯碼器和秒脈沖信號發(fā)生器等部分組成。秒脈沖發(fā)生器是該系統(tǒng)中定時(shí)器和控制器的標(biāo)準(zhǔn)時(shí)鐘信號源,譯碼器輸出兩組信號燈的控制信號,經(jīng)驅(qū)動(dòng)電路后驅(qū)動(dòng)信號燈工作,控制器是系統(tǒng)的主要部分,由它控制定時(shí)器和譯碼器的工作。圖中: TL: 表示甲車道或乙車道綠燈亮的時(shí)間間隔為25秒,即車輛正常通行的時(shí)間間隔。定時(shí)時(shí)間到,TL
18、=1,否則,TL=0。 TY:表示黃燈亮的時(shí)間間隔為5秒。定時(shí)時(shí)間到,TY=1,否則,TY=0。 ST:表示定時(shí)器到了規(guī)定的時(shí)間后,由控制器發(fā)出狀態(tài)轉(zhuǎn)換信號。由它控制定時(shí)器開始下個(gè)工作狀態(tài)的定時(shí)。圖12、1 交通燈控制系統(tǒng)的原理框圖2畫出交通燈控制器的ASM(Algorithmic State Machine,算法狀態(tài)機(jī)) (1)圖甲車道綠燈亮,乙車道紅燈亮。表示甲車道上的車輛允許通行,乙車道禁止通行。綠燈亮足規(guī)定的時(shí)間隔
19、TL時(shí),控制器發(fā)出狀態(tài)信號ST,轉(zhuǎn)到下一工作狀態(tài)。 (2)甲車道黃燈亮,乙車道紅燈亮。表示甲車道上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行,乙車道禁止通行。黃燈亮足規(guī)定時(shí)間間隔TY時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號ST,轉(zhuǎn)到下一工作狀態(tài)。 (3)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上的車輛允許通行綠燈亮足規(guī)定的時(shí)間間隔TL時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號ST,轉(zhuǎn)到下一工作狀態(tài)。 (4)甲車道紅燈亮,乙車道黃燈亮。表示甲車道禁止通行,乙車道上位過縣停車線的車輛停止通行,已過停車線的
20、車輛停止通行,已過停車線的車輛繼續(xù)通行。黃燈亮足規(guī)定的時(shí)間間隔TY時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號ST,系統(tǒng)又轉(zhuǎn)換到第(1)種工作狀態(tài)。 交通燈以上4種工作狀態(tài)的轉(zhuǎn)換是由控制器器進(jìn)行控制的。設(shè)控制器的四種狀態(tài)編碼為00、01、11、10,并分別用S0、S1、S3、S2表示,則控制器的工作狀態(tài)與功能如表12、1所示,控制器應(yīng)送出甲、乙車道紅、黃、綠燈的控制信號。為簡便起見,把燈的代號和燈的驅(qū)動(dòng)信號合二為一,并作如下規(guī)定: 表12、1 控制器工作狀態(tài)與功能 控制狀態(tài) 信號燈狀態(tài)
21、 車道運(yùn)行狀態(tài) S0(00) 甲綠,乙紅 甲車道通行,乙車道禁止通行 S1(01) 甲黃,乙紅 甲車道緩行,乙車道禁止通行 S3(11) 甲紅,乙綠 甲車道禁止通行,甲車道通行 S2(10) 甲紅,乙黃 甲車道禁止通行,甲車道緩行 AG=1:甲車道綠
22、燈亮; BG=1:乙車道綠燈亮; AY=1:甲車道黃燈亮; BY=1:乙車道黃燈亮; AR=1:甲車道紅燈亮; BY=1:乙車道紅燈亮; 由此得到交通燈的ASM圖,如 圖12、2所示。設(shè)控制器的初始狀態(tài)為S0(用狀態(tài)框表示S0),當(dāng)S0的
23、持續(xù)時(shí)間小于25秒時(shí),TL=0(用判斷框表示TL),控制器保持S0不變。只有當(dāng)S0的持續(xù)時(shí)間等于25秒時(shí),TL=1,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號ST(用條件輸出框表示ST),并轉(zhuǎn)換到下一個(gè)工作狀態(tài)。依此類推可以弄懂ASM圖所表達(dá)的含義。3單元電路的設(shè)計(jì) (1)定時(shí)器 定時(shí)器由與系統(tǒng)秒脈沖(由時(shí)鐘脈沖產(chǎn)生器提供)同步的計(jì)數(shù)器構(gòu)成,要求計(jì)數(shù)器在狀態(tài)信號ST作用下,首先清零,然后在時(shí)鐘脈沖上升沿作用下,計(jì)數(shù)器從零開始進(jìn)行增1計(jì)數(shù),向控制器提供模5的定時(shí)信號TY和模25的定時(shí)信號TL。 計(jì)數(shù)器選
24、用集成電路74LS163進(jìn)行設(shè)計(jì)較簡便。74LS163是4位二進(jìn)制同步計(jì)數(shù)器,它具有同步清零、同步置數(shù)的功能。74LS163的外引線排列圖和時(shí)序波形圖如圖12、3所示,其功能表如表12、2所示。圖中, 是低電平有效的同步清零輸入端, 是低電平有效才同步并行置數(shù)控制端,CTp、CTT是計(jì) 圖12、2 交通燈的ASM圖數(shù)控制端,CO是進(jìn)位輸出端,D0D3是并行數(shù)據(jù)輸入端,Q0Q 3是數(shù)據(jù)輸出端。由兩片74LS163級聯(lián)組成的定時(shí)器電路如圖12、4所示。電路的工作原理請自行分析。 (a)圖12、3 74LS163的外引線排列圖和時(shí)序波形圖 (2)控制器 &
25、#160; 控制器是交通管理的核心,它應(yīng)該能夠按照交通管理規(guī)則控制信號燈工作狀態(tài)的轉(zhuǎn)換。從ASM圖可以列出控制器的狀態(tài)轉(zhuǎn)換表,如表12、3所示。選用兩個(gè)D觸發(fā)器FF1、FFO做為時(shí)序寄存器產(chǎn)生 4種狀態(tài),控制器狀態(tài)轉(zhuǎn)換的條件為TL和TY,當(dāng)控制器處于Q1n+1Q0n+1 00狀態(tài)時(shí),如果TL 0,則控制器保持在00狀態(tài);如果,則控制器轉(zhuǎn)換到Q1n+1Q0n+1 01狀態(tài)。這兩種情況與條件TY無關(guān),所以用無關(guān)項(xiàng)"X"表示。其余情況依次類推,同時(shí)表中還列出了狀態(tài)轉(zhuǎn)換信號ST。圖12、4 定時(shí)器電路圖表12、2 74LS163功能表|表12、3 控制器狀態(tài)轉(zhuǎn)
26、換表 根據(jù)表12、3、可以推出狀態(tài)方程和轉(zhuǎn)換信號方程,其方法是:將Q1n+1、Q0n+1和 ST為1的項(xiàng)所對應(yīng)的輸人或狀態(tài)轉(zhuǎn)換條件變量相與,其中"1"用原變量表示,"0"用反變量表示,然后將各與項(xiàng)相或,即可得到下面的方程: 根據(jù)以上方程,選用數(shù)據(jù)選擇器 74LS153來實(shí)現(xiàn)每個(gè)D觸發(fā)器的輸入函數(shù),將觸發(fā)器的現(xiàn)態(tài)值( )加到74LS153的數(shù)據(jù)選擇輸入端作為控制信號即可實(shí)現(xiàn)控制器的功能??刂破鞯倪壿媹D如圖12、5所示。圖中R、C構(gòu)成上電復(fù)位電路 。圖 12、5控制器
27、邏輯圖 (3)譯碼器 譯碼器的主要任務(wù)是將控制器的輸出 Q1、 Q0的4種工作狀態(tài),翻譯成甲、乙車道上6個(gè)信號燈的工作狀態(tài)??刂破鞯臓顟B(tài)編碼與信號燈控制信號之間的關(guān)系如表 12、4所示。實(shí)現(xiàn)上述關(guān)系的譯碼電路請讀者自行設(shè)計(jì)。四、實(shí)驗(yàn)儀器設(shè)備1 數(shù)字電路實(shí)驗(yàn)箱2 集成電路74LS74 1片,74LS10 1片,74LS00 2片,74LS153 2片,74LS163 2片,NE555 1片3 電阻 51K 1只,200 6只4 電容 10Uf 1只5 其它 發(fā)光二極管 6只五、實(shí)驗(yàn)容與方法 表12、4控
28、制器狀態(tài)編碼與信號燈關(guān)系表狀態(tài)AG AY ARBG BY BR001 0 0 0 0 1010 1 00 0 1100 0 11 0
29、60; 0110 0 10 1 01設(shè)計(jì)、組裝譯碼器電路,其輸出接甲、乙車道上的6只信號燈(實(shí)驗(yàn)時(shí)用發(fā)光二極管代替),驗(yàn)證電路的邏輯功能。2設(shè)計(jì)、組裝秒脈沖產(chǎn)生電路。 3組裝、調(diào)試定時(shí)電路。當(dāng) CP信號為 1Hz正方波時(shí),畫出CP、 Q0、 Q1、 Q2、Q3、Q4、TL、TY的波形,并注意它們之間一的時(shí)序關(guān)系。4組裝、調(diào)試控制器電路。5完成交通燈控制電路的聯(lián)調(diào),
30、并測試其功能。六路搶答器(KT230配套實(shí)驗(yàn))六路搶答器實(shí)驗(yàn)(KT230套件配套程序)*KT230學(xué)習(xí)套件適用,需外擴(kuò)八個(gè)小開關(guān)
31、160; 1、如果想調(diào)節(jié)搶答時(shí)間或答題時(shí)間,按"搶答時(shí)間調(diào)節(jié)"鍵或"答題時(shí)間調(diào)節(jié)"鍵進(jìn)入調(diào)節(jié)狀態(tài),此時(shí)會顯示現(xiàn)在設(shè)定
32、的搶答時(shí)間或回答時(shí)間值,如想加一秒按一下"加1s"鍵,如果想減一秒按一下"-1s"鍵,時(shí)間LED上會顯示改變后的時(shí)間,調(diào)整圍為0s99s, 0s時(shí)再減1s會跳到99,99s時(shí)再加1s會變到0s。
33、60; 2、主持人按"搶答開始"鍵,會有提示音,并立刻進(jìn)入搶答倒計(jì)時(shí)(預(yù)設(shè)15s搶答時(shí)間
34、),如有選手搶答,會有提示音,并會顯示其號數(shù)并立刻進(jìn)入回答倒計(jì)時(shí)(預(yù)設(shè)10s搶答時(shí)間),不進(jìn)行搶答查詢,所以只有第一個(gè)按搶答的選手有效。倒數(shù)時(shí)間到小于5s會每秒響一下提示音。
35、60;
36、60; 3、如倒計(jì)時(shí)期間,主持人想停止倒計(jì)時(shí)可以隨時(shí)按"停止"按鍵,系統(tǒng)會自動(dòng)進(jìn)入準(zhǔn)備狀態(tài),等待主持人按"搶答開始"進(jìn)入下次搶答計(jì)時(shí)。
37、60;
38、60; 4、如果主持人未按"搶答開始"鍵,而有人按了搶答按鍵,犯規(guī)搶答,LED上不斷閃爍FF和犯規(guī)號數(shù)并響個(gè)不停,直到按下"停止" 鍵為止。 *P1.0為開始搶答,P1.7為停止,p1.1-p1.6為六路搶答輸入 數(shù)碼管段選P0口,位選P2口,蜂鳴器輸出為P3.
39、6口。* OK EQU 20H;搶答開始標(biāo)志位;將P1口與P2口互換,P3.0-P1.0,P3.1-P1.7 RING EQU 22H;響鈴標(biāo)志位 ORG 0000H AJMP MAIN ORG 0003H AJMP INT0SUB ORG 000BH AJMP T0INT ORG 0013H AJMP INT1SUB ORG 001BH AJMP T1INT ORG 0040HMAIN: MOV R1,#0FH;初設(shè)搶答時(shí)間為15s
40、0; MOV R2,#0AH;初設(shè)答題時(shí)間為10s MOV TMOD,#11H;設(shè)置未定時(shí)器/模式1 MOV TH0,#0F0H MOV TL0,#0FFH;越高發(fā)聲頻率越高,越尖 MOV T
41、H1,#3CH MOV TL1,#0B0H;50ms為一次溢出中斷 SETB EA SETB ET0 SETB ET1 SETB EX0 SETB EX1;允許四個(gè)中斷,T0/T1/INT0/INT1
42、0; CLR OK CLR RING SETB TR1 SETB TR0;一開始就運(yùn)行定時(shí)器,以開始顯示FFF.如果想重新計(jì)數(shù),重置TH1/TL1就可以了;=查詢程序=START: MOV R5,#0BH MOV R4,#0BH &
43、#160; MOV R3,#0BH ACALL DISPLAY;未開始搶答時(shí)候顯示FFF P1.0,NEXT;ddddddd ACALL DELAY P1.0,NEXT;去抖動(dòng),如果"開始鍵"按下就向下執(zhí)行,否
44、者跳到非法搶答查詢 ACALL BARK;按鍵發(fā)聲 MOV A,R1 MOV R6,A;送R1->R6,因?yàn)镽1中保存了搶答時(shí)間 SETB OK;搶答標(biāo)志位,用于COUNT只程序中判斷是否查詢搶答 MOV R3,0AH;搶答只顯示計(jì)時(shí),滅號數(shù)
45、160; AJMP COUNT;進(jìn)入倒計(jì)時(shí)程序,"查詢有效搶答的程序"在COUNT里面NEXT: JNB P1.1,FALSE1 JNB P1.2,FALSE2 JNB P1.3,FALSE3 JNB P1.4,FALSE4 JNB P1.5,FALSE5 JNB P1.6,FALSE6 AJMP START;=非
46、法搶答處理程序=FALSE1: ACALL BARK;按鍵發(fā)聲MOV R3,#01H AJMP ERRORFALSE2: ACALL BARKMOV R3,#02H AJMP ERRORFALSE3: ACALL BARKMOV R3,#03H AJMP ERRORFALSE4: ACALL BARKMOV R3,#04H AJMP ERRORFALSE5: ACALL BARKMOV R3,#05H AJMP ER
47、RORFALSE6: ACALL BARKMOV R3,#06H AJMP ERROR;=INT0(搶答時(shí)間R1調(diào)整程序)=INT0SUB:MOV A,R1 MOV B,#0AH DIV AB MOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY;先在兩個(gè)時(shí)間LED
48、上顯示R1 JNB P3.4,INC0;P3.4為+1s鍵,如按下跳到INCO JNB P3.5,DEC0;P3.5為-1s鍵,如按下跳到DECO JNB P1.7,BACK0;P3.1為確定鍵,如按下跳到BACKO AJMP INT0SUBINC0: MOV A,R1 CJNE A,#63H,ADD0;如果不是99,R2加1,如果加到99了,R1就置0,重新加起。
49、160; MOV R1,#00H ACALL DELAY1AJMP INT0SUBADD0: INC R1 ACALL DELAY1 AJMP INT0SUBDEC0: MOV A,R1 JZ SETR1;如果R1為
50、0, R1就置99, DEC R1 ACALL DELAY1 AJMP INT0SUBSETR1: MOV R1,#63H ACALL DELAY1 AJMP INT0SUBBACK0: RETI ;=INT1(回答時(shí)間R2調(diào)整程序)=INT1SUB:MOV A,R2
51、0; MOV B,#0AH DIV ABMOV R5,A MOV R4,B MOV R3,#0AH ACALL DISPLAY JNB P3.4,INC1 JNB P3.5,DEC1 JNB P1.7,BACK1 AJMP INT1SUBINC1:
52、160; MOV A,R2 CJNE A,#63H,ADD1 MOV R2,#00H ACALL DELAY1AJMP INT1SUBADD1: INC R2 ACALL DELAY1 AJMP INT1
53、SUBDEC1: MOV A,R2 JZ SETR2 DEC R2 ACALL DELAY1 AJMP INT1SUBSETR2: MOV R2,#63H ACALL DELAY1 AJMP INT1SUBBACK1: RETI ;=倒計(jì)時(shí)
54、程序(搶答倒計(jì)時(shí)和回答倒計(jì)時(shí)都跳到改程序)=COUNT: MOV R0,#00H;重置定時(shí)器中斷次數(shù) MOV TH1,#3CH MOV TL1,#0B0H;重置定時(shí)器RECOUNT:MOV A,R6;R6保存了倒計(jì)時(shí)的時(shí)間,之前先將搶答時(shí)間或回答時(shí)間給R6 MOV B,#0AH DIV AB;除十分
55、出個(gè)位/十位 MOV 30H,A;十位存于(30H) MOV 31H,B;個(gè)位存于(31H) MOV R5,30H;取十位 MOV R4,31H;取個(gè)位 MOV A,R6 SUBB A,#07H JNC LARGER;大于5s跳到LARGER,小于等于5s會提醒 MOV A,R0
56、0; CJNE A,#0AH,FULL;1s中0.5s向下運(yùn)行 CLR RING AJMP CHECKFULL: CJNE A,#14H,CHECK;下面系1s的情況,響并顯示號數(shù)并清R0,重新計(jì) SETB RING MOV A,R6 JZ
57、 QUIT;計(jì)時(shí)完畢 MOV R0,#00H DEC R6;一秒標(biāo)志減1 AJMP CHECKLARGER: MOV A,R0 CJNE A,#14H,CHECK;如果1s向下運(yùn)行,否者跳到查"停/顯示" DEC R6;計(jì)時(shí)一秒R6自動(dòng)減1 MOV R0,#00HCHECK: JNB P1.7,QUIT;如按下停止
58、鍵退出 ACALL DISPLAY OK,ACCOUT;如果是搶答倒計(jì)時(shí),如是則查詢搶答,否者跳過查詢繼續(xù)倒數(shù)(這里起到鎖搶答作用) AJMP RECOUNTACCOUT:JNB P1.1,TRUE1 JNB P1.2,TRUE2 JNB P1.3,TRUE3 JNB P1.4,TRUE4 JNB P1.5,TRUE5 JNB P1.6,TRUE5
59、; AJMP RECOUNTQUIT: CLR OK;如果按下了"停止鍵"執(zhí)行的程序 CLR RING AJMP START;=正常搶答處理程序=TRUE1: ACALL BARK;按鍵發(fā)聲 MOV A,R2 MOV R6,A;搶答時(shí)間R2送R6 MOV R3,#01H CLR OK;因?yàn)榇痤}的計(jì)時(shí)不再查詢搶答,所以就鎖了搶答 AJMP
60、COUNTTRUE2:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#02H CLR OK AJMP COUNTTRUE3:ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#03H CLR OK AJMP COUNTTRUE4:ACALL BARK; MOV A,R2&
61、#160; MOV R6,A MOV R3,#04H CLR OK AJMP COUNTTRUE5: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#05H CLR OK AJMP COUNTTRUE
62、6: ACALL BARK; MOV A,R2 MOV R6,A MOV R3,#06H CLR OK AJMP COUNT;=犯規(guī)搶答程序=ERROR: MOV R0,#00H MOV TH1,#3CH
63、 MOV TL1,#0B0H MOV 34H,R3;犯規(guī)號數(shù)暫存與(34H)HERE: MOV A,R0 CJNE A,#0AH,FLASH;0.5s向下運(yùn)行->滅并停響 CLR RING MOV R3,#0AH MOV R4,#0AH MOV R5,#0AH;三燈全滅 AJMP CHECK1FLASH: CJNE A,#14H,CHECK1;下面系1s的情況,響并顯示號數(shù)并清R0,重新計(jì)
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于農(nóng)業(yè)資源整合的現(xiàn)代農(nóng)業(yè)發(fā)展協(xié)議
- 項(xiàng)目進(jìn)度統(tǒng)計(jì)表-互聯(lián)網(wǎng)項(xiàng)目進(jìn)度監(jiān)控
- 公司前臺接待與咨詢工作表格
- 以科技創(chuàng)新推動(dòng)農(nóng)業(yè)現(xiàn)代化智能化發(fā)展的路徑探索
- 歷史文物保護(hù)修復(fù)技術(shù)考試試題集
- 山中訪友:六年級自然美文欣賞教案
- 員工培訓(xùn)與技能評估記錄表
- 醫(yī)院場地租賃合同
- 中國古詩詞故事的欣賞感受
- 彩虹魚的顏色故事解讀
- 二DNA的結(jié)構(gòu)和復(fù)制課件
- XX省血液調(diào)配管理辦法
- 科創(chuàng)板問題測試題庫300題試題及答案
- 微信開放平臺網(wǎng)站信息登記表
- 商業(yè)銀行員工輕微違規(guī)行為積分管理辦法
- JJG 700 -2016氣相色譜儀檢定規(guī)程-(高清現(xiàn)行)
- 壓力容器安全檢查表
- 供應(yīng)商反向評估表
- 曲線帶式輸送機(jī)的設(shè)計(jì)
- 《國際關(guān)系學(xué)入門》課件第三章 國際關(guān)系理論
- 五金公司績效考核(共22頁)
評論
0/150
提交評論