




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND基礎(chǔ)知識(shí):?jiǎn)纹瑱C(jī)編程基礎(chǔ)單片機(jī)的外部枷1、DIP40雙列直插:2、PO,Pl,P2,P3四個(gè)8位準(zhǔn)雙向I/O引腳;(作為I/O輸入時(shí),要先輸出高電平)3、電源VCC(PIN40)和地線GND(PIN20):4、高電平復(fù)位RESET(PIN9):(10uF電容接VCC與RESET,即可實(shí)現(xiàn)上電復(fù)位)5、內(nèi)置振蕩電路,外部只要接晶體至XI(PIN18)和XO(PIN19);(頻率為主頻的12倍6、程序配ffiEA(PIN31)接高電平VCC:(運(yùn)彳亍單片機(jī)內(nèi)部ROM中的程序)7、P3支持第二功能:RXD、TXD、INTO、INTI、T
2、O.T1單片機(jī)內(nèi)部I/O部件,(所為學(xué)習(xí)單片機(jī),實(shí)際上曄制以下I/O部件,完成指定任務(wù))1、四個(gè)8位通用I/O端口,對(duì)應(yīng)引腳PO、Pl.P2和P3:2、兩個(gè)16位定時(shí)計(jì)數(shù)器;(TMOD,TCON,TLO,THO,TL1,TH1)3、一個(gè)串行通信接口:(SCON,SBUF)4、一個(gè)中斷控制器;(IE,IP)針對(duì)AT89C52單片札頭文件AT89x52h給出了訊陳功能奇存器所有増口的定義.教科書(shū)的畑頁(yè)給出了針對(duì)ICS51茶列單片機(jī)的C語(yǔ)言擴(kuò)舷出理.c語(yǔ)1、十六進(jìn)制表示字節(jié)0 x5a:二進(jìn)制為0101101OB:0 x6E為01101110。2、如果將一個(gè)16位二進(jìn)數(shù)賦給一個(gè)8位的字節(jié)變雖,則H動(dòng)截
3、斷為低8位,而丟掉高8位。3、卄var表示對(duì)變雖var先増一:var表示對(duì)變雖后減一。4、x|=OxOf;表示為x=x|OxOf;5、TMOD=(TMOD&OxfO)|0 x05;表示給變in:TMOD的低四位賦值0 x5,而不改變TMOD的高四位。6、While(1);表示無(wú)限執(zhí)行該語(yǔ)句,即死循環(huán)。語(yǔ)句后的分號(hào)表示空循環(huán)體,也就是;在某引曲出高電平的編程方法*(比如pi3OnrO引妙ffincludevoidmain(void)該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含P1.3/void表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口XPl_3=1;Vhile(1);/給Pl
4、_3賦值1,引腳P1.3就能輸出高電平VCC死循壞,相當(dāng)LOOP:gotoLOOP;注童:P0的每個(gè)引腳要輸出高電平時(shí),必須外接上拉電阻(如4K7)至VCC電源。在某引urn出低電平的編程方法,(比如曲7引腳)ffincludevoidmain(void)該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含F(xiàn)2.7/void表示沒(méi)有輸入?yún)?shù).也沒(méi)有函數(shù)返值.這入單片機(jī)運(yùn)行的復(fù)位入口ffincludevoidmain(void)i該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含F(xiàn)31/void表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口iVhile(1)/非寥表示玫,如果為真則執(zhí)行下面
5、循環(huán)體的語(yǔ)句iP3_l=1;P3_l=0;給P3_l賦值1,引腳P3.1就能輸出高電平VCC給P3_l賦值0,引腳P3.1就能輸出低電平GND山于一直為真,所以不斷輸出高、低、高、低從而形成方波在某引出方波編程方法*at如P3引H)林引脾般入電后,從另f引耐出,(皈P0.4I0T(P1.1)include該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包禽P0.4和Pl.1voidmain(void)/void表示沒(méi)有輸入?yún)?shù).也沒(méi)有函數(shù)返值,這入單片機(jī)運(yùn)行的復(fù)位入口Pl_l=1;初始化。P1.1作為輸入,必須輸出高電平Vhile(1)/非零表示真,如果為真則執(zhí)行下而循環(huán)體的語(yǔ)句if(Pl_l=1
6、)讀取P1.1,就是認(rèn)為F1.1為輸入,如果P1.1輸入高電平VCCP0.4=0;給P0.4賦值0,引腳F0.4就能輸出低電平GNDelse否則P1.1輸入為低電平GND/P0_4=0P0_4=1;給P0_4賦值0,引腳P04就能輸出低電平GND給P0.4賦值1.引腳F0.4就能輸出高電平VCC由于一直為其,所以不斷根據(jù)Pll的輸入惜況,改變P0.4的輸出電平將粗口8個(gè)引入電平.低四位取朋.從另fit口8個(gè)引耐出*(HIP2-10T(P3)ffincludevoidmain(void)j該頭文檔中有單片機(jī)內(nèi)部資源的符號(hào)化定義,其中包含P2和P3/void表示沒(méi)有輸入?yún)?shù),也沒(méi)有函數(shù)返值,這入單
7、片機(jī)運(yùn)行的復(fù)位入口iP3=Oxff;Vhile(1)初始化。F3作為輸入,必須輸出高電平,同時(shí)給P3口的8個(gè)引腳輸出高電平/非寥表示真,如果為真則執(zhí)行下面循環(huán)體的語(yǔ)句取反的方法是異或1,而不収反的方法則是異或0P2=P3Px0f讀取P3,就是認(rèn)為P3為輸入,低四位異或者1,即取反,然后輸出/111于一直為真,所以不斷將P3取反輸出到P2注童:一個(gè)字節(jié)的8位D7、D6至D0,分別輸出到P37、P36至P30,比如P3=0 x0f則P37、P3.6、P3.5、P3.4四個(gè)引腳都輸出低迫平,而P3.3、F3.2、P3.1、P3.0四個(gè)引腳都輸岀高電平。同樣,輸入一個(gè)端口P2,即是將P2.7、P2.6
8、至P2.0.讀入到一個(gè)字節(jié)的8位D7、D6至D0。P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND第一節(jié):?jiǎn)螖?shù)碼管按鍵顯示單片機(jī)量小茶統(tǒng)的砒K理接錢(qián)圖*1、接電源:VCC(PIN40).GND(PIN20)。加接退耦電容0luF2、接晶體:XI(PIN18).X2(PIN19)o注意標(biāo)出晶體頻率(選用12MHz),還有軸助電容30pF3、接復(fù)位:RES(PIN9)接上電復(fù)位電路,以及手動(dòng)復(fù)位電路,分析復(fù)位工作腹理4、接配置:EA(PIN31)o說(shuō)明原因。發(fā)光二極的控控林單片機(jī)I/O*出將一發(fā)光二極管LED的正極(陽(yáng)極)接Pl.l,LED的負(fù)極(陰極)接地GND。只要Pl.1輸出
9、高電平VCC,LED就正向?qū)?導(dǎo)通時(shí)LED上的壓降大于IV),有電流流過(guò)LED,至發(fā)LED發(fā)亮。實(shí)際上由于P1.1高電平輸出電阻為10K,起到輸出限流的作用,所以流過(guò)LED的電流小于(5V-1V)/10K=0.4S只要Pl.1輸出低電平GND,實(shí)際小T0.3V,LED就不能導(dǎo)通,結(jié)果LED不亮。開(kāi)關(guān)雙健恤入入先輸出高ffincludedefineLEDPlJdefineKEY.ONPl飛defineKEY.OFFvoidmain(void)一個(gè)按鍵KEY.0N接在P1.6與GND之間,另一個(gè)按鍵KEY.OFF接F1.7與GND之間,按KEY.0N后LED亮.按KEY.OFF后LED火。同時(shí)按
10、下LED半亮,LED保持后松開(kāi)鍵的狀態(tài),即ON亮OFF幾/用符號(hào)LED代替Pl_l/用符號(hào)KEY_ON代替Pl_6/用符號(hào)KEY_OFF代替Fl_7單片機(jī)復(fù)位后的執(zhí)行入口.void表示空,無(wú)輸入?yún)?shù),無(wú)返回值KEY.ON=1;/作為輸入,首先輸出高,接下KEY_ON,Pl.6則接地為0,否則輸入為1KEY_OFF=1;Vhile(1)作為輸入,首先輸出高,接下KEY_OFF,P1.7則接地為0,否則輸入為1永遠(yuǎn)為真所以永遠(yuǎn)循環(huán)執(zhí)行如下括號(hào)內(nèi)所有語(yǔ)句if(KEY_ON=O)LED=1;是KEY_ON接下,所示Pll輸出高,LED亮if(KEY_OFF=0)LED=0;是KEY_OFF接下,所示P
11、l1輸出低,LED滅松開(kāi)鍵后,都不給LED賦值,所以LED保持最后按鍵狀態(tài)。同時(shí)按下時(shí),LED不斷亮滅,各占一半時(shí)間.交替頻率很快,山丁人眼慣性,看上去為半亮態(tài)一支七段數(shù)碼管實(shí)際山8個(gè)發(fā)光二極管構(gòu)成,其中7個(gè)組形構(gòu)成數(shù)字8的七段筆畫(huà),所以稱(chēng)為七段數(shù)碼管,而余下的1個(gè)發(fā)光二極管作為小數(shù)點(diǎn)。作為習(xí)慣,分別給8個(gè)發(fā)光二極管標(biāo)上記號(hào):a,b,c,d,e,f,g,h對(duì)應(yīng)8的頂上一畫(huà),按順時(shí)針?lè)较蚺牛虚g一畫(huà)為g.小數(shù)點(diǎn)為h。我們通常又將各二極與一個(gè)字節(jié)的8位對(duì)應(yīng),a(D0),b(Dl),c(D2),d(D3),e(D4),f(D5),g(D6),h(D7)相應(yīng)8個(gè)發(fā)光:極管正好與單片機(jī)一個(gè)端口Pn的8個(gè)
12、引腳連接,這樣單片機(jī)就可以通過(guò)引腳輸出高低電平控制8個(gè)發(fā)光:極的亮與火,從而顯示各種數(shù)字和符號(hào):對(duì)應(yīng)字節(jié),引腳接法為:a(PdO),b(Pn.l),c(Pn.2),d(Pn.3),e(Pn.4),f(Pn.5),g(Pn.6),h(Pn.7)oP2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND如果將8個(gè)發(fā)光二極管的負(fù)極(陰極)內(nèi)接在一起,作為數(shù)碼管的一個(gè)引腳.這種數(shù)碼管則被稱(chēng)為共陰數(shù)碼管,共同的引腳則稱(chēng)為共陰極,8個(gè)正極則為段極。否則,如果是將正極(陽(yáng)極)內(nèi)接在一起引出的,則稱(chēng)為共陽(yáng)數(shù)碼管,共同的引腳則稱(chēng)為共陽(yáng)極,8個(gè)負(fù)極則為段極。以單支共陰數(shù)碼管為例,可將段極接到某端口Pn,共
13、陰極接GND,則可編寫(xiě)出對(duì)應(yīng)十六進(jìn)制碼顯示宇符共明級(jí)緩選福其陽(yáng)敬綾選啊顯示*捋共陽(yáng)桜段選謁03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H84H466HWHPtJH2H56DH92HU3EHC1H67DH阿r33HCEH707HF8Hy6EH91H37FH80H8FFH00H9FH90H00HFFHA77HS8HB7CHP2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND的七段碼表字節(jié)數(shù)據(jù)如右圖:16鍵碼顯示的程序我們?cè)贔1端口接一支共陰數(shù)碼管SLED.在F2、F3端口接16個(gè)按鍵,分別編號(hào)為KEY_O、KEY_1到KEY_
14、F,操作時(shí)只能按一個(gè)鍵,按鍵后SLED顯示對(duì)應(yīng)鍵編號(hào)。include#defineSLEDPl#defineKEY_OP2P#defineKEYP2l#defineKEY_2P2*2defineKEY_3P2*3#defineKEY_4P2*4defineKEY_5P25#defineKEY_6P2飛#defineKEYP2=defineKEY_8P3,0#defineKEY_9P3l#defineKEY_AP3*2defineKEY_BP3*3#defineKEY_CP3tdefineKEY_DP35defineKEY_EP3飛defineKEY_FP3=CodeunsignedcharSe
15、g7Code16=/用十六進(jìn)數(shù)作為數(shù)紐下標(biāo),可直接取得對(duì)應(yīng)的七段編碼字節(jié)/0123456789AbCdEF0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x740 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;voidmain(void)unsignedchari=0;/作為數(shù)組下標(biāo)P2=Oxff;/P2作為輸入.初始化輸出高P3=Oxff;/P3作為輸入.初始化輸出高Vhile(1)if(if(if(if(if(if(if(if(KEY.0=0)i=0;if(KEY.1=0)i=l;KEY2=0)i=2;i
16、f(KEY3=0)i=3;KEY4=0)i=4;if(KEY5=0)i=5;KEY6=0)i=6;if(KEY7=0)i=7;KEY8=0)i=8;if(KEY9=0)i=9;KEYA=0)i=0 xA;if(KEYB=0)i=0 xB;KEYC=0)i=0 xC;if(KEYD=0)i=0 xD;KEYE=0)i=0 xE;if(KEYF=0)i=0 xF;P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDSLED=Seg7Codei;開(kāi)始時(shí)顯示0,根據(jù)i取應(yīng)七段編碼第二節(jié)雙敗碼管可調(diào)秒聯(lián)解:只要滿(mǎn)足題目要求.方法越簡(jiǎn)單越好。山丁單片機(jī)I/O資源足夠,所以雙數(shù)碼管可接成靜態(tài)顯示
17、方式,兩個(gè)共陰數(shù)碼管分別接在P1(秒十位)和P2(秒個(gè)位)口,它們的共陰極都接地,安排兩個(gè)按鍵接在F3.2(十位數(shù)調(diào)整)和P3.3(個(gè)位數(shù)調(diào)整)上,為了方便計(jì)時(shí),選用12)(Hz的晶體。為了達(dá)到耕確計(jì)時(shí),選用定時(shí)器方式2,每計(jì)數(shù)250重載一次,即250us.定義一整數(shù)變量計(jì)數(shù)重載次數(shù),這樣計(jì)數(shù)4000次即為一秒。定義兩個(gè)字節(jié)變呈S10和S1分別計(jì)算秒十位和秒個(gè)位。編得如下程序:ffincludeCodeunsignedcharSeg7Code16=/用十六進(jìn)數(shù)作為數(shù)組下標(biāo),可直接取得對(duì)應(yīng)的七段編碼字節(jié)/0123456789AbCdEF0 x3f,0 x06,0 x5b,0 x4f,0 x66,
18、0 x6d,0 x740 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;voidmain(void)unsignedintus250=0;unsignedcharslO=0;unsignedcharsi=0;unsignedcharkeylO=0;記憶按鍵狀態(tài),為1按下unsignedcharkeyl=0;記憶按鍵狀態(tài),為1按下/初始化定時(shí)器TimerOTMOD=(TMOD&OxFO)|0 x02;TH1=-250;對(duì)于8位二進(jìn)數(shù)來(lái)說(shuō),-250=6,也就是加250次1時(shí)為256.即為0/循環(huán)1/循環(huán)2TRI=1;whiled)Pl=Se
19、gTCodeslO;顯示秒十位P2=SegTCodesi;顯示秒個(gè)位vhile(1)計(jì)時(shí)處理if(TFO=1)10個(gè)單位時(shí)間,南北黃,東西紅:P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDTFO=0;if(卄us250=4000)us250=0;if(卄si=10)si=0;if(卄slO=6)slO=0;break;結(jié)束“循環(huán)2”,修改顯示按十位鍵處理P3.2=1;/P3.2作為輸入,先要輸出高電平if(keylO=L)等松鍵if(P3.2=1)keyl0=0;1else/未按鍵if(P3.2=0)keylO=1;if(卄slO=6)slO=0;break;結(jié)束“循環(huán)2”,
20、修改顯示/按個(gè)位鍵處理P3.3=1;/P3.3作為輸入,先要輸出高電平if(keyl=1)等松鍵if(P3.3=1)keyl=0;else未按鍵if(P3.3=0)keyl=1;if(卄si=10)si=0;break;結(jié)束“循環(huán)23修改顯示循環(huán)2end循環(huán)1end/nain,end第三節(jié),+字路口交通燈如果一個(gè)單位時(shí)間為1秒,這里設(shè)定的十字路口交通燈按如下方式四個(gè)步驟循環(huán)工作:60個(gè)單位時(shí)間,南北紅,東西綠:10個(gè)單位時(shí)間,南北紅,東西黃:60個(gè)單位時(shí)間,南北綠,東西紅:P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND南北方向紅燈/南北方向黃燈/南北方向綠燈/東西方向紅燈/東
21、西方向黃燈/東西方向綠燈voidDelay(unsignedintn)voidmain(void)for(;nl=0;n)DelaylUnit();解:用Pl端口的6個(gè)引腳控制交通燈,高電平燈亮,低電平燈滅。include/sbit用來(lái)定義一個(gè)符號(hào)位地址,方便編程,提高可讀性,和可移植性sbitSNRed二P1P;sbitSNYellow二Pl;sbitSNGreen二P2;sbitEIRed二P3;sbitEiYellow=P1*4;sbitEIGreen二P5;/*用軟件產(chǎn)生延時(shí)一個(gè)單位時(shí)間*/voidDelaylUnit(void)unsignedinti,j;for(i=0;i1000
22、;i+)for(j0;j1000;j卄);通過(guò)實(shí)測(cè),調(diào)整j循環(huán)次數(shù),產(chǎn)生1ms延時(shí)還可以通過(guò)生成匯編程序來(lái)計(jì)算指令周期數(shù),結(jié)合晶體頻率來(lái)調(diào)整j循環(huán)次數(shù),接近1ms/*延時(shí)n個(gè)單位時(shí)間*/P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDP2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDwhile(1)SNRe左0;SNYellov=0;SNGreen=l;EVRecl;EWYellov=0;EWGreen=0;Delay(60SNRe左0;SNYellov=l;SNGreen=0;EVRecl;EWYellov=0;SNRed=l;SNYellov=0;SNGree
23、n=0;EWRe左0;EWYellov=0;SNRed=l;SNYellov=0;SNGreen=0;EWRe左0;EWYellov=l;EWGreen=0;Delay(EWGreen=l;Delay(EWGreen=0;Delay(106010P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDP2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GND第四節(jié),數(shù)碼管驅(qū)動(dòng)顯示w12345678Pl端口接8聯(lián)共陰數(shù)碼管SLED8的段極:P1.7接段h,P1.0接段aP2端口接8聯(lián)共陰數(shù)碼管SLED8的段極:P2.7接左邊的共陰極,P2.0接右邊的共陰極方案說(shuō)明:晶振頻率fosc
24、=12MHz,數(shù)碼管采用動(dòng)態(tài)刷新方式顯示,在Ms定時(shí)斷服務(wù)程序中實(shí)現(xiàn)includeunsignedcharDisBuf8;/全局顯示緩沖區(qū),DisBuf0對(duì)應(yīng)右SLED,DisBuf7對(duì)應(yīng)左SLED,voidDisplayBrush(void)codeunsignedcharcathode8=0 xfe,Oxfd,Oxfb,0 xf7,Oxef,Oxdf,Oxbf,0 x7f;/陰極控制碼CodeunsignedcharSeg7Code16=用十六進(jìn)數(shù)作為數(shù)組下標(biāo),可直接取得對(duì)應(yīng)的七段編碼字節(jié)0 x3f,0 x06,0 x5b,Oxlf,0 x66,0 x6cl0 x7d,0 x07,0 x7
25、f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;staticunsignedchari=0;/(0Wi7)循環(huán)刷新顯示,ill丁是靜態(tài)變雖,此賦值只做一次。#include“key.h”defineKeyBufSize16/定義按鍵緩沖隊(duì)列字節(jié)數(shù)P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDP2=Oxff;顯示消隱.以免下一段碼值顯示在前一支SLEDPl=SegTCodeEDisBufti;從顯示緩沖區(qū)取出腹始數(shù)據(jù),査表變?yōu)槠叨未a后送出顯示P2=cathodei;將對(duì)應(yīng)陰極置低,顯示if(卄i=8)i=0;指向下一個(gè)數(shù)碼管和相應(yīng)數(shù)據(jù)vo
26、idTimerOIntRoute(void)internet1TLO=-1000;/lllTTLO只有8bits,所以將(-1000)低8位賦給TLOTHO=000)8;取(-1000)的高8位賦給THO,重新定時(shí)hnsDisplayBrushO;voidTimerOInit(void)TMOD=(TMOD&OxfO)|0 x01;初始化,定時(shí)器TO,工作方式1TLO=-1000:定時(shí)InsTHO=000)8;TRO=1;允許TO開(kāi)始計(jì)數(shù)ETO=1;允許T0計(jì)數(shù)溢出時(shí)產(chǎn)生中斷請(qǐng)求voidDisplay(unsignedcharindex,unsignedchardataValue)DisBuf
27、index=dataValue;voidmain(void)unsignedchari;for(i=0;i8;)Display8-i);/DisBuf0為右,DisBuf7為左TimerOInit();EA=1:/允許CPU響應(yīng)中斷請(qǐng)求Vhile(l);第五節(jié)Ifit盤(pán)驅(qū)動(dòng)指提供一些函數(shù)給任務(wù)調(diào)用,獲取按鍵信息,或讀収按鍵值。定義一個(gè)頭文檔,描述可用函數(shù),如下:#ifndef_KEY_H_防止重復(fù)引用該文檔,如果沒(méi)有定義過(guò)符號(hào)_KEY_H_,則編譯下面語(yǔ)句defineKEYH/只要引用過(guò)一次,即#include,則定義符號(hào)_KEY_H_unsignedcharkeyHit(void);如果按鍵
28、,則返回非0,否則返A(chǔ)l0unsignedcharkeyGet(void);/讀取按鍵值,如果沒(méi)有按鍵則等待到按鍵為止voidkeyPut(unsignedcharucKeyVal);/保存按鍵值ucKeyVal到按鍵緩沖隊(duì)列末voidkeyBack(unsignedcharucKeyVal);/退IE鍵值ucKeyVal到按鍵緩沖隊(duì)列首#endif定義函數(shù)體文檔KEY.C,如下:P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDunsignedcharKeyBufKeyBufSize;定義一個(gè)無(wú)符號(hào)字符數(shù)組作為按鍵緩沖隊(duì)列。該隊(duì)列為先進(jìn)/先出,循環(huán)存収,下標(biāo)從0到KeyBufS
29、ize-1unsignedcharKeyBufWp=O;/作為數(shù)組下標(biāo)變蛍,記錄存入位代unsignedcharKeyBufRp=O;作為數(shù)組下標(biāo)變壺記錄讀出位代如果存入位匿與讀出位理相同,則表明隊(duì)列中無(wú)按鍵數(shù)據(jù)unsignedcharkeyHit(void)if(KeyBufWp=KeyBufRp)return(0);elseretum(1);unsignedcharkeyGet(void)unsignedcharretVal;/暫存讀出鍵值vhile(keyHit0=0);等待按鍵,因?yàn)楹瘮?shù)keyHit0的返回值為0表示無(wú)按鍵retVal=KeyBufKeyBufRp;從數(shù)組中讀出鍵值if
30、(卄KeyBufRp=KeyBufSize)KeyBufRp=O;讀位理加1,超出隊(duì)列則循壞回初始位旌return(retVal);voidkeyPut(unsignedcharucKeyVal)KeyBufKeyBufWp=ucKeyVal;/鍵值存入數(shù)組if(卄KeyBufWp=KeyBufSize)KeyBufWp=O;存入位代加1超出隊(duì)列則循環(huán)Al初始位理/*山丁某種凍肉,讀出的按鍵,沒(méi)有用,但其它任務(wù)要用該按鍵,但傳送又不方便。此時(shí)可以退回按鍵隊(duì)列,就如収錯(cuò)了信件,有必要退回一樣*/voidkeyBack(unsignedcharucKeyVal)/*如果KeyBufRp=O;減1后
31、則為FFH,大TKeyBufSize,即從數(shù)組頭退回到數(shù)紐尾?;蛘呱蕉「蓴_使得KeyBufRp超出隊(duì)列位直,也要調(diào)整回到正常位迓,*/if(KeyBufRp=KeyBufSize)KeyBufRp=KeyBufSize-l;KeyBufKeyBufRp=ucKeyVal;回存鍵值下面漸進(jìn)講解鍵盤(pán)物理層的驅(qū)動(dòng)。電路共同點(diǎn):F2端口接一共陰數(shù)碼管,共陰極接GND,P2.0接a段、P2.1接b段、P2.7接h段。軟件共同點(diǎn):codeunsignedcharSeg7Code10是七段數(shù)碼管共陰編碼表。CodeunsignedcharSeg7Code16=/0123456789AbCdEF0 x3f,0
32、 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;-:戸10接一按矽|5,柵號(hào)為r6顯示按健.includeinclude“KEYvoidmain(void)Pl-0=1;作為輸入引腳,必須先輸出高電平vhile(1)永遠(yuǎn)為真,即死循環(huán)if(Pl_0=0)如果按鍵,則為低電平keyPut(6);/保存按鍵編號(hào)值為按鍵隊(duì)列hile(Pl_0=0);如果一直按著鍵,則不停地執(zhí)行該循環(huán),實(shí)際是等待松鍵if(kejdlitO!=0)/如果隊(duì)列中有按鍵P2=Seg7Codeke
33、yCetO;從隊(duì)列中取出按鍵值,并顯示在數(shù)碼管上例二在例一中考慮按健2E抖動(dòng)旬題includeinclude“KEY.R”voidmain(void)Pl_0=1;作為輸入引腳,必須先輸出高電平vhile(1)永遠(yuǎn)為真,即死循環(huán)if(Pl_0=0)如果按鍵,則為低電平delaygQas0;/延時(shí)2伽s,跳過(guò)接卞抖動(dòng)keyPut(6);/保存按鍵編號(hào)值為按鍵隊(duì)列hile(Pl_0=0);如果一直按著鍵,則不停地執(zhí)行該循環(huán),實(shí)際是等待松鍵deav20NS0;/延時(shí)20ms,跳過(guò)松開(kāi)扌斗動(dòng)if(kejdlitO!=0)/如果隊(duì)列中有按鍵P2=Seg7CodekeyCetO;從隊(duì)列中取出按鍵值,并顯示
34、在數(shù)碼管上例m在例二中考虔干擾問(wèn)息即小于20“的負(fù)脈沖干擾includeinclude“KEY.R”voidmain(void)Pl_0=1;作為輸入引腳,必須先輸出高電平vhile(1)永遠(yuǎn)為真,即死循環(huán)if(Pl_0=0)如果按鍵,則為低電平delay20ms();/延時(shí)20ns,跳過(guò)接下抖動(dòng)if(P10=2丿continue;假按鍵keyPut(6);/保存按鍵編號(hào)值為按鍵隊(duì)列hile(Pl_0=0);如果一直按著鍵,則不停地執(zhí)行該循環(huán),實(shí)際是等待松鍵delay20ms();/延時(shí)20jis,跳過(guò)松開(kāi)抖動(dòng)if(kejdlitO!=0)/如果隊(duì)列中有按鍵P2=Seg7CodekeyCetO
35、;從隊(duì)列中取出按鍵值,并顯示在數(shù)碼管上例四,狀態(tài)圖編程法.ift過(guò)2Z周期中新,掃描按!./*釆用晶體為121Hz時(shí).指令周期為IBS(即主頻為lKHz).這樣TO工作在定時(shí)參方式2,8位自動(dòng)計(jì)數(shù)值為20,即可產(chǎn)生2.的周期性中帕在中犧務(wù)程序中實(shí)現(xiàn)拠由描*/includeinclude“KEY.H”voidmain(void)TMOD=(TMOD&OxfO)THO=-20;TLO=THO;TRO=1;ETO=1;EA=1;10 x02;不改變T1的工作方式.TO為定時(shí)器方式2計(jì)數(shù)周期為20個(gè)主頻脈,即20ms先軟加載一次計(jì)數(shù)值允許T0開(kāi)始計(jì)數(shù)允許T0計(jì)數(shù)溢出時(shí)產(chǎn)生中斷請(qǐng)求允許CPU響應(yīng)中斷請(qǐng)求
36、vhile(1)永遠(yuǎn)為真即死循環(huán)if(keyHitO!=0)如果隊(duì)列中有按鍵P2=Seg7CodekeyCetO;從隊(duì)列中取出按鍵值,并顯示在數(shù)碼管上voidtimerOint(void)interrupt1/20ms:TO的中斷號(hào)為1staticunsignedcharsts=O;Pl-0=1;作為輸入引腳,必須先輸出高電平switch(sts)case0:if(Pl_0=0)sts=l;break;/按鍵則轉(zhuǎn)入狀態(tài)1case1:if(Pl_0=l)sts=O;假按錯(cuò),或干擾,回狀態(tài)0elsests=2;keyPut(6);確實(shí)按鍵,鍵值入隊(duì)列,并轉(zhuǎn)狀態(tài)2break;case2:if(Pl_
37、0=l)sts=3;break;如果松鍵,則轉(zhuǎn)狀態(tài)3case3:if(Pl_0=0)sts=2;假松鍵.回狀態(tài)2elsests=O;真松鍵,回狀態(tài)0,等待下一次按鍵過(guò)程佛五,燉圖編程法.如果采用鼻體為IN&時(shí),指令周期為試即知I為IHz),要產(chǎn)生2E左右的計(jì)時(shí),則計(jì)數(shù)值達(dá)到2000GT0工作必須為定時(shí)器方式1,16位非自動(dòng)皿,即可產(chǎn)生2Z的周期性中斷,在中斷服務(wù)程序中咖ftlteincludeinclude“KEY.H”P(pán)2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDvoidmain(void)TMOD=(TMOD&OxfO)TLO=-20000;THO=(-20000)8;T
38、RO=1;ETO=1;EA=1;vhile(1)/永遠(yuǎn)為真,if(keyHitO!=0)|0 x01;/不改變T1的工作方式.TO為定時(shí)器方式1計(jì)數(shù)周期為20000個(gè)主頻脈,動(dòng)取低8位右移8位,實(shí)際上是取高8位允許T0開(kāi)始計(jì)數(shù)允許T0計(jì)數(shù)溢出時(shí)產(chǎn)生中斷請(qǐng)求允許CPU響應(yīng)中斷請(qǐng)求即死循環(huán)P2=Seg7CodekeyGet()voidtinerOint(void)interrupt1staticunsignedcharsts=O;TLO=-20000;THO=(-20000)8;Pl-0=1;如果隊(duì)列中有按鍵;從隊(duì)列中収出按鍵值,并顯示在數(shù)碼管上/20ms:TO的中斷號(hào)為1方式1為軟件重載實(shí)際上是
39、取高8位右移8位,作為輸入引腳.必須先輸出高電平P2.7=0;給P2_7賦值0,引腳P2.7就能輸出低電平GNDswitch(sts)case0:if(Pl_0=0)sts=l;break;/按鍵則轉(zhuǎn)入狀態(tài)1case1:if(Pl_0=l)sts=O;假按錯(cuò),或干擾,回狀態(tài)0elsests=2;keyPut(6);確實(shí)按鍵,鍵值入隊(duì)列,并轉(zhuǎn)狀態(tài)2break;case2:if(Pl_0=l)sts=3;break;如果松鍵,則轉(zhuǎn)狀態(tài)3case3:if(Pl_0=0)sts=2;假松鍵.回狀態(tài)2elsests=O;真松鍵,回狀態(tài)0,等待下一次按鍵過(guò)程例六,4X4按健/仙網(wǎng)*神+*伙”卄卄卄計(jì)卄卄卄
40、卄啊仙艸由P1MI口的離4位和低4位構(gòu)成4X4的矩陣題,本程序只認(rèn)為單曲作為合法,同時(shí)按多健時(shí)劫:.這樣下面的X,Y的合法值為0 x7,Oib,OxdOxe,Oxf,通過(guò)表kgfe形射蚣可得按It值*/includeincludeKEY.H”unsignedcharkeyScan(void)返回0表示無(wú)按鍵,或無(wú)效按鍵,其它值為按鍵編碼值codeunsignedcharkeyCode16=/OxO,0 x1,0 x2,0 x3,0 x4,0 x5,0 x6,0 x7,0 x8,0 x9,OxA,OxB,OxC,OxD,OxE,OxF0,0,0,o,0,0,0,1,0,0,0,2,0,3,4,0
41、unsignedcharx,y,retVal;Pl=0 x0f;/低四位輸入,高四位輸出ox二Pl&OxOf;/Pl輸入后,清高四位,作為X值Pl=OxfO;/高四位輸入,低四位輸出0y=(Pl4)&OxOf;/P1輸入后移位到低四位,并清高四位,作為Y值retVal=keyCodex*4+keyCodey;根據(jù)木公式倒算按鍵編碼if(retVal=0)return(0);elsereturn(retVal-4);比如按鍵T,得X=0 x7,Y=0 x7,算得retVal=5,所以返回函數(shù)值1。雙如按鍵“廠得X=0 xb,Y=0 xd,算得retVal=lb所以返回函數(shù)值7。voidmain(
42、void)TMOD=(TMOD&OxfO)TLO=-20000:THO=(-20000)8;TRO=1;ETO=1;EA=1;0 x01;/不改變T1的工作方式,TO為定時(shí)器方式1計(jì)數(shù)周期為20000個(gè)主頻脈,|動(dòng)取低8位右移8位,實(shí)際上是取高8位允許T0開(kāi)始計(jì)數(shù)允許T0計(jì)數(shù)溢出時(shí)產(chǎn)生中斷請(qǐng)求允許CPU響應(yīng)中斷請(qǐng)求vhile(1)永遠(yuǎn)為真即死循環(huán)if(keyHitO!=0)如果隊(duì)列中有按鍵P2=Seg7CodekeyGetO;從隊(duì)列中取出按鍵值,并顯示在數(shù)碼管上voidtimerOint(void)interrupt1/20ns:TO的中斷號(hào)為1staticunsignedcharsts=O;
43、TLO=-20000;方式1為軟件重載THO=(-20000)8;右移8位,實(shí)際上是取高8位P1-0=1;作為輸入引腳,必須先輸出高電平switch(sts)case0:if(keyScanO!=0)sts=l;break;按鍵則轉(zhuǎn)入狀態(tài)1case1:if(keyScan()=0)sts=O;/假按錯(cuò),或干擾,回狀態(tài)0elsests=2;keyPut(keyScanO);確實(shí)按鍵,鍵值入隊(duì)列.并轉(zhuǎn)狀態(tài)2break;case2:if(keyScan()=0)sts=3;break;/如果松鍵.則轉(zhuǎn)狀態(tài)3case3:if(keyScanO!=0)sts=2;/假松鍵,回狀態(tài)2elsests=O;真
44、松鍵,回狀態(tài)0,等待下一次按鍵過(guò)程第六節(jié),低頻頻率計(jì)實(shí)例目的:學(xué)時(shí)定時(shí)器、計(jì)數(shù)器、中斷應(yīng)用說(shuō)明:選用24MHz的晶體,主頻可達(dá)2MHzo用T1產(chǎn)生100us的時(shí)標(biāo),T0作信號(hào)脈沖計(jì)數(shù)器。假設(shè)晶體頻率沒(méi)有誤基,而且穩(wěn)定不變(實(shí)際上可達(dá)萬(wàn)分之一):被測(cè)信號(hào)是周期性矩形波(正負(fù)脈沖寬度都不能小丁0.5us),頻率小T-1MHZ,大T-lHzo要求測(cè)雖時(shí)標(biāo)IS,測(cè)蚩:粘度為0.1%O解:從測(cè)嵐梏度要求來(lái)看,當(dāng)頻率超過(guò)1KHz時(shí),可采用1S時(shí)標(biāo)內(nèi)計(jì)數(shù)信號(hào)脈沖個(gè)數(shù)來(lái)測(cè)呈信號(hào)頻,而信號(hào)頻率低TlKHz時(shí),可以通過(guò)測(cè)雖信號(hào)的周期來(lái)求出信號(hào)頻率。兩種方法Fl動(dòng)轉(zhuǎn)換。對(duì)丁低TlKHz的信號(hào),信號(hào)周期最小為1ms,
45、也就是說(shuō)超過(guò)1000US,而我們用的定時(shí)器計(jì)時(shí)脈沖周期為0.5us,如果定時(shí)多計(jì)或少計(jì)一個(gè)脈沖,誤差為lus,所以相對(duì)誤差為1us/1000us=0.1%0信號(hào)周期越大,即信號(hào)頻率越低,相對(duì)誤墊就越小。從上而描述來(lái)看,當(dāng)信號(hào)頻率超過(guò)lKHz后,信號(hào)周期就少丁JOOSis.顯然采用上而的測(cè)呈方法,不能達(dá)到測(cè)嵐梏度要求,這時(shí)我們采用1S單位時(shí)間計(jì)數(shù)信號(hào)的脈沖個(gè)數(shù),最少能計(jì)到1000個(gè)脈沖,山丁信號(hào)頻率不超過(guò)1MHz,而我們定時(shí)脈沖為2MHz,最左多計(jì)或少計(jì)一個(gè)信號(hào)脈沖,這樣相對(duì)誤至為1/1000,可見(jiàn)信號(hào)頻率越高,相對(duì)誤羞越小。信號(hào)除輸入到T1(P3.5)夕卜,還輸入到INTI(P3.3)ouns
46、ignedintuslOO;對(duì)lOOus時(shí)間間隔單位計(jì)數(shù),即有多少個(gè)100usQunsignedcharSecond;unsignedintK64;對(duì)64K單位計(jì)數(shù),即有多少個(gè)64KunsignedcharoldTO;unsignedintoldus,oldK64,oldTl;unsignedlongfey;存放頻率值,單位為HzbitHighLov=l;voidInitialHigh(void)/l:表示信號(hào)超過(guò)lKHz;0:表示信號(hào)低T-lKHzoIE=0;IP=0;HighLow=l;TMOD=(TMOD&OxfO)|0 x02;TH0=-200;TLO=THO;PXO=1;T0=l;T
47、MOD=(TMOD&OxOf)|0 x50;TH1=O;TL1=O;Tl=l;ET1=1;Usl00=0;SeconO;K64=0;oldK64=0;oldTl=0;TCON|=0 x50;/同時(shí)理TRO=1;TR1=1;EA=1;voidInitialLov(void)IE=0;IP=0;HighLow=0;TMOD=(TMOD&OxfO)|0 x02;TH0=-200;TLO=THO;ETO=1;TRO=1;INTI=1;IT1=1;EX1=1;Usl00=0;SeconO;K64=0;oldK64=0;oldTl=0;EA=1;voidTOintr(void)internet1if(Hi
48、ghLow=0)卄uslOO;elseif(+US100=10000)unsignedinttmpl,tnp2;TR1=O;tnpl=CTH18)+(TL1);tmp2=K64;TR1=1;fcy=(tmp2-oldK64)16)+(tnpl-oldTl);oldK64=tnpl;oldTl=tnp2;Second;us100=0;voidTlintr(void)internet3+K64;voidXlintr(void)internet2staticunsignedcharsts=O;switch(sts)case0:sts=1;break;case1:oldTO=TLO;oldus=usl
49、00;sts=2;break;case2:unsignedchartmpl,5p2;TRO=0;tnpl=TL0;tmp2=usl00;TRO=1;fey=1000000L/(tJnp2-oldus)*100L+(256-tmpl)/2);Second卄;Sts=0;break;voidmain(void)if(HighLow=l)InitialHighO;elseInitialLowO;Vhiled)if(Second1=0)Second=0;/displayfey引用前而的數(shù)碼管驅(qū)動(dòng)程序,注意下面對(duì)TO中斷服務(wù)程序的修改unsignedchari;for(i=0;i8;i卄)Display
50、(i,fcy%10);fey/=10;if(HighLow=l)if(fcy1000L)InitalHighO;修改TO的中斷服務(wù)程序,讓它在完成時(shí)標(biāo)的功能時(shí),同時(shí)完成數(shù)碼管顯示刷新voidTOintr(void)internet1staticunsignedcharms=0;if(HighLow=0)卄uslOO;elseif(+US100=10000)unsignedinttmpl,tnp2;TR1=O;tiipl=(THl8)+(TL1);tmp2=K64;TR1=1;fcy=(tmp2-oldK64)16)+(tnpl-oldTl);oldK64=tnpl;oldTl=tnp2;Sec
51、ond;us100=0;if(+ms=10)ms=0;DisplayBrushO;/lms數(shù)碼管刷新第七節(jié):電子表單鍵可調(diào)電子表:主要學(xué)習(xí)編程方法。外部中斷應(yīng)用,中斷嵌解:電子表分為工作狀態(tài)和調(diào)整狀態(tài)。平時(shí)為工作狀態(tài),按鍵不足一秒,接鍵為換屏S。按鍵超過(guò)一秒移位則進(jìn)入調(diào)整狀態(tài)C,而且調(diào)整光標(biāo)在秒個(gè)位開(kāi)始。調(diào)整狀態(tài)時(shí),按鍵不足一秒為光標(biāo)移動(dòng),超過(guò)一秒則為調(diào)整讀數(shù),每0.5秒加一直到松鍵;如果10秒無(wú)按鍵則|動(dòng)回到工作狀態(tài)如果有年、月、口、時(shí)、分、秒。四聯(lián)數(shù)碼管可分三屏顯示,顯示格式為“年月”、“口.時(shí).”、“分.秒”,從小數(shù)點(diǎn)的位直來(lái)區(qū)分顯示內(nèi)容。(月份的十位數(shù)也可以用“-”和“-1”表示)。e
52、nuastatus=Work,Change,Add,Move,Screen/狀態(tài)牧舉計(jì)時(shí)和調(diào)整都是對(duì)下而時(shí)間數(shù)組Tine進(jìn)行修改unsignedcharTime12=(0,4,0,6,1,0,0,8,4,5,3,2:/04年06月0日08時(shí)45分32秒unsignedcharcursor=12;/指向秒個(gè)位,=0時(shí)無(wú)光標(biāo)unsignedcharYnDhMs=3;/指向分秒”顯示,=0時(shí)無(wú)屏顯staticunsignedcharsts=Work;/*如果cursor不為0,裝入DisBuf的對(duì)應(yīng)數(shù)位,按02秒周期閃爍,即設(shè)一個(gè)01秒計(jì)數(shù)器SOI,S01為奇數(shù)時(shí)滅,S01為偶數(shù)時(shí)亮。小數(shù)點(diǎn)顯示與Y
53、jaDhMs變昴:相關(guān)。*/voidDisScan(void)動(dòng)態(tài)刷新顯示時(shí)調(diào)用。沒(méi)編完,針對(duì)共陰數(shù)碼管,只給出控控制算法(/DisBuf每個(gè)顯示數(shù)據(jù)的高四位為標(biāo)志,最高位D7為負(fù)號(hào),D6為小數(shù)點(diǎn),D5為閃爍unsignedchartup;tmp=Seg7Code?x&Oxlf;設(shè)?x為顯示數(shù)據(jù),高3位為控制位,將低5位變?yōu)槠叨未aif(?x&0 x40)tmp|=0 x80;添加小數(shù)點(diǎn)if(?x&0 x20)if(S01&0 x01)tnp=0;/閃爍,S01奇數(shù)時(shí)不亮這里沒(méi)有處理負(fù)號(hào)位將tnp送出顯示,并控制對(duì)應(yīng)數(shù)碼管動(dòng)作顯示voidDisplay(void)/根據(jù)狀態(tài)進(jìn)彳亍顯示if(cursor!=0)YjnDhMs=(cursor+3)/4;/l.4=1;5.8=2;9.12=3for(i=(YmDhMs-l)*4;i(YmDhMs)*4;i卄)unsignedcharj=i%4;Disbufj=Tinei;if(i=(cursor-1)Disbufj|=0 x20;/閃爍cursor1=0時(shí)才閃爍(i=9)II小數(shù)點(diǎn):分個(gè)位(i=7)II小數(shù)點(diǎn):時(shí)個(gè)位(i=5)II小數(shù)點(diǎn):日個(gè)位(i=3)小數(shù)點(diǎn):
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 關(guān)于推進(jìn)項(xiàng)目進(jìn)度的工作簡(jiǎn)報(bào)
- 年度財(cái)務(wù)報(bào)表及審計(jì)結(jié)果
- 河南省駐馬店市部分學(xué)校2024-2025學(xué)年高三下學(xué)期3月月考地理試題(含答案)
- 基于區(qū)塊鏈技術(shù)的農(nóng)業(yè)溯源體系構(gòu)建方案
- 服裝設(shè)計(jì)與制造業(yè)務(wù)外包合作協(xié)議
- 個(gè)性化培訓(xùn)計(jì)劃實(shí)施效果分析表
- 網(wǎng)絡(luò)優(yōu)化服務(wù)升級(jí)合作協(xié)議
- 汽車(chē)采購(gòu)銷(xiāo)售合同書(shū)及保修條款
- 智能醫(yī)療項(xiàng)目合作協(xié)議
- 企業(yè)危機(jī)管理機(jī)制構(gòu)建與運(yùn)行
- 駕駛員的責(zé)任和義務(wù)
- 預(yù)防艾梅乙母嬰傳播課件
- 寶寶雙排牙介紹演示培訓(xùn)課件
- DB3402-T 59-2023 露天礦山無(wú)人駕駛礦車(chē)作業(yè)通用要求
- 2022中國(guó)腦性癱瘓康復(fù)指南(第一章)
- 糧油倉(cāng)儲(chǔ)企業(yè)一規(guī)定兩守則試題(新改版附答案)
- 肛腸外科運(yùn)用PDCA循環(huán)降低住院腸造口并發(fā)癥發(fā)生率品管圈QCC持續(xù)質(zhì)量改進(jìn)成果匯報(bào)
- GB/T 15558.5-2023燃?xì)庥寐竦鼐垡蚁?PE)管道系統(tǒng)第5部分:系統(tǒng)適用性
- 區(qū)塊鏈技術(shù)在政府?dāng)?shù)字化轉(zhuǎn)型中審計(jì)項(xiàng)目的應(yīng)用研究
- 拼多多民事起訴狀模板
- 廠房租賃合同糾紛起訴狀
評(píng)論
0/150
提交評(píng)論