




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、武漢理工大學(xué)單片機(jī)應(yīng)用與實(shí)踐課程設(shè)計任務(wù)書課程設(shè)計任務(wù)書學(xué)生姓名: 黃 蓉 專業(yè)班級:電信1204班 指導(dǎo)教師: 陳德軍 工作單位:信息工程學(xué)院 題 目: 基于定時器/計數(shù)器的單片機(jī)實(shí)驗(yàn)和C語言開發(fā) 初始條件:具備單片機(jī)的理論知識;具備proteus仿真能力;了解定時器及計數(shù)器應(yīng)用;提供仿真所需要的計算機(jī)一臺要求完成的主要任務(wù):(包括課程設(shè)計工作量及其技術(shù)要求,以及說明書撰寫等具體要求)1、用定時器中斷方式或查詢定時器溢出標(biāo)志方式從P口輸出給定周期的方波2、我們在此基礎(chǔ)上擴(kuò)展實(shí)現(xiàn)了矩陣鍵盤調(diào)節(jié)方波頻率和占空比時間安排:一周,其中3天程序設(shè)計,2天程序調(diào)試指導(dǎo)教師簽名: 年 月 日系主任(或責(zé)任
2、教師)簽名: 年 月 日目 錄摘 要I1. 概述12. 設(shè)計方案22.1 方案簡介22.2 方波發(fā)生器原理與功能23. 系統(tǒng)硬件設(shè)計43.1 STC89C52RC簡介43.2 時鐘電路43.3 復(fù)位電路53.4 按鍵接口電路54. 系統(tǒng)軟件設(shè)計74.1 系統(tǒng)初始化程序74.2 定時器中斷子程序84.3 鍵盤掃描程序94.4 主函數(shù)125. 軟件仿真135.1 keil編譯器生成HEX文件135.2 proteus軟件仿真136. 硬件調(diào)試166.1電路板焊制及測試166.2 電路板調(diào)試167. 心得體會17參考文獻(xiàn)18附錄:源程序代碼19摘 要本次單片機(jī)課程設(shè)計是基于定時計數(shù)器的單片機(jī)實(shí)驗(yàn)與C
3、語言開發(fā),要求用定時器中斷方式或查詢定時器溢出標(biāo)志方式從P口輸出給定周期的方波。以此為基礎(chǔ),我們進(jìn)行了一些拓展,通過4乘2矩陣鍵盤,使其能實(shí)現(xiàn)輸出方波的頻率和占空比可調(diào)。通過兩個按鍵調(diào)節(jié)頻率,兩個按鍵調(diào)節(jié)占空比,以此實(shí)現(xiàn)定時器中斷方式從P口輸出給定周期的方波。關(guān)鍵字:定時器 方波 中斷 占空比武漢理工大學(xué)單片機(jī)應(yīng)用與實(shí)踐課程設(shè)計任務(wù)書1. 概述單片機(jī)(Microcontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計數(shù)器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路
4、轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的微型計算機(jī)系統(tǒng),在工業(yè)控制領(lǐng)域廣泛應(yīng)用。從上世紀(jì)80年代,由當(dāng)時的4位、8位單片機(jī),發(fā)展到現(xiàn)在的300M的高速單片機(jī)。單片機(jī)(Microcontrollers)誕生于1971年,經(jīng)歷了SCM、MCU、SoC三大階段,早期的SCM單片機(jī)都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上發(fā)展出了MCS51系列MCU系統(tǒng)。基于這一系統(tǒng)的單片機(jī)系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領(lǐng)域要求的提高,開始出現(xiàn)了16位單片機(jī),但因?yàn)樾詢r比不理想并未得到很廣泛的應(yīng)用。90年代后隨著消費(fèi)電子產(chǎn)品大發(fā)展,單片機(jī)技術(shù)得到了巨大提高。
5、隨著INTEL i960系列特別是后來的ARM系列的廣泛應(yīng)用,32位單片機(jī)迅速取代16位單片機(jī)的高端地位,并且進(jìn)入主流市場。單片機(jī)(Microcontrollers)有兩種基本結(jié)構(gòu)形式:一種是在通用微型計算機(jī)中廣泛采用的,將程序存儲器和數(shù)據(jù)存儲器合用一個存儲器空間的結(jié)構(gòu),稱為普林斯頓結(jié)構(gòu)。另一種是將程序存儲器和數(shù)據(jù)存儲器截然分開,分別尋址的結(jié)構(gòu),一般需要較大的程序存儲器,目前的單片機(jī)以采用程序存儲器和數(shù)據(jù)存儲器截然分開的結(jié)構(gòu)為多。 本課題討論的方波發(fā)生器的核心是目前應(yīng)用極為廣泛的 51系列單片機(jī)。其內(nèi)部包括:(1) 一個8位的CPU;(2) 4KB程序存儲器ROM;(3) 128字節(jié)RAM數(shù)據(jù)
6、存儲器;(4) 兩個16位定時/計數(shù)器;(5) 可尋址64KB外部數(shù)據(jù)存儲器和64KB外部存儲空間的控制電路;(6) 32條可編程的I/O線(4個8位并行I/O端口);(7) 一個可編程全雙工串行口;(8) 具有兩個優(yōu)先級嵌套接口的5個中斷源2. 設(shè)計方案2.1 方案簡介本方案中,微處理器模塊使用STC89C52RC。通過鍵盤掃描,輸入四輸入與門,實(shí)現(xiàn)外部中斷0的中斷。本設(shè)計中用到兩個定時器,定時器0和定時器1,其中定時器0工作在定時方式1下,通過掃描鍵盤S1,S2是否按下及按下次數(shù)調(diào)節(jié)方波頻率;定時器1同樣工作在定時方式1下,用于設(shè)定占空比。鍵盤的操作是通過外中斷與單片機(jī)共同來控制的,鍵盤操
7、作來完成按要求對頻率與占空比進(jìn)行調(diào)節(jié)。P2.0為方波輸出口,它連接一個示波器即可觀察輸出的方波了。2.2 方波發(fā)生器原理與功能方波發(fā)生器原理框圖如圖2.1所示:頻率與占空比調(diào)節(jié)輸出方波 示波器AT89C51 單片機(jī) 鍵盤圖2.1 方波發(fā)生器原理框圖由于系統(tǒng)的要求不高,比較單一的,再加上我們是通過定時器來調(diào)節(jié)頻率的,而非電阻,因此實(shí)現(xiàn)起來就相對簡化了。僅用鍵盤、AT89C51及示波器便可完成設(shè)計,達(dá)到所要求實(shí)現(xiàn)的功能。初始化后,主程序掃描鍵盤,將設(shè)置信息輸入,處理后,輸出到示波器顯示。單片機(jī)的晶振為11.0592MHz,用到了兩個定時器,即定時器0與定時器1,分別進(jìn)行頻率與占空比的定時,兩個定時
8、器都是工作在方式1。根據(jù)計算定時器初值的公式: (式2-1)計算出定時器0與定時器1所要裝入的初值,然后將工作方式控制字寫入TMOD寄存器,再將和寄存器賦初值,最后啟動定時器,即將置位。同時打開外部中斷0。置位EA(中斷總開關(guān))及(允許定時/計數(shù)器中斷),并編中斷服務(wù)程序。鍵盤是由一個狀態(tài)鍵,四個功能鍵(調(diào)節(jié)頻率與占空比的增減)組成,其特殊之處在于利用外部中斷實(shí)現(xiàn)鍵盤掃描。當(dāng)按下S0時,輸出頻率為10HZ;按下S1時,頻率加1HZ,當(dāng)頻率大于1000HZ時,恢復(fù)方波頻率為10HZ;按下S2時,頻率減1HZ,當(dāng)頻率小于10HZ時,恢復(fù)方波頻率為1000HZ;按下S3時,占空比加1%,當(dāng)占空比大于
9、50%時,將占空比置為1%;按下S4時,占空比減1%,占空比小于1%時,恢復(fù)占空比為50%。3. 系統(tǒng)硬件設(shè)計3.1 STC89C52RC簡介圖3.1 STC89C52RC管腳圖單片機(jī)是在一塊芯片中集成了CPU、RAM、ROM、定時/計數(shù)器和多功能I/O口等計算機(jī)所需要的基本部件的大規(guī)模集成電路,又稱MCU。其以體積小、功能全、性價比等諸多優(yōu)點(diǎn)而獨(dú)具特色,在工業(yè)控制、尖端武器、通信設(shè)備、家用電器等嵌入式應(yīng)用領(lǐng)域中獨(dú)占鰲頭。如果說C語言程序設(shè)計課程設(shè)計的基礎(chǔ)課,那么單片機(jī)以其系統(tǒng)硬件構(gòu)架完整、價格低廉、學(xué)生能動手等特點(diǎn),成為工科學(xué)生硬件設(shè)計基礎(chǔ)課。其管腳圖如圖3.1所示。 3.2 時鐘電路8XX
10、51單片機(jī)的時鐘信號通常用兩種電路形式得到:內(nèi)部振蕩方式和外部振蕩方式。因?yàn)榇舜握n設(shè)我們用到的是內(nèi)部振蕩方式,所以只對前者進(jìn)行簡單介紹。如圖3.2所示,在引腳XTAL1和XTAL2外接晶體振蕩器或陶瓷振蕩器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器,并產(chǎn)生振蕩時鐘脈沖。晶振通常選用6MHz、12MHz、24MHz。圖中C2和C3起穩(wěn)定振蕩頻率,快速起振的作用。電容值一般為530pF。圖3.2 內(nèi)部振蕩電路3.3 復(fù)位電路圖3.3 復(fù)位電路復(fù)位操作完成單片機(jī)內(nèi)電路的初始化,使單片機(jī)從一確定的狀態(tài)開始運(yùn)行。當(dāng)8XX51單片機(jī)的復(fù)位引腳RST出現(xiàn)5
11、ms以上的高電平時,單片機(jī)就完成了復(fù)位操作。如果RST持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài),而無法執(zhí)行程序,因此要求單片機(jī)復(fù)位后能脫離復(fù)位狀態(tài)。圖3.3所示的為上電且開關(guān)復(fù)位電路,上電后電容充電,使RST持續(xù)一段時間的高電平,從而實(shí)現(xiàn)上電且開關(guān)復(fù)位的操作。通常選擇。3.4 按鍵接口電路小鍵盤如圖3.4所示。它包括8個鍵,系統(tǒng)中用到的鍵只有5個,分別為S0鍵,S1鍵,S2鍵,S3鍵,S4鍵。其中S0鍵是初始鍵,按下時初始頻率為10HZ;另外4個鍵為功能鍵,是用來調(diào)節(jié)頻率與占空比的。小鍵盤中引出的6根線依次分別接單片機(jī)的P1.0、P1.1、P1.2、P1.3、P1.4、P1.5口。其中P1.0P
12、1.3是為鍵盤列線,P1.4和P1.5是鍵盤行線。當(dāng)某個鍵按下時,由行掃描值和列回饋信號共同形成鍵編碼。圖3.4 按鍵接口電路如上所介紹的,按鍵接口電路采用的是外部中斷控制,如圖3.5所示,P1.0P1.4為4輸入與門輸入端,輸出端接外部中斷0控制端,當(dāng)有某一鍵按下時,由于輸入端電平的變化會導(dǎo)致進(jìn)入的電平也發(fā)生變化,由此將會產(chǎn)生外部0中斷,達(dá)到按鍵控制的作用。圖3.5 按鍵控制外部中斷電路4. 系統(tǒng)軟件設(shè)計方波發(fā)生器的軟件設(shè)計包括主程序、延時子程序、系統(tǒng)初始化程序、鍵盤掃描程序、定時器中斷子程序。其中主程序用來控制整個程序的執(zhí)行,它與各子程序緊密相聯(lián),共同實(shí)現(xiàn)方波發(fā)生器各種功能的執(zhí)行。4.1
13、系統(tǒng)初始化程序void init( )KEY=0x0f;TIME0_L=176;TIME0_H=60;TL0=176;TH0=60;TMOD=0x11;/定時計數(shù)器0與定時計數(shù)器1均工作在方式1ET1=1;EX0=1;/外部中斷0允許ET0=1;EA=1;TR0=1;TR1=1;在系統(tǒng)初始化程序中,給鍵盤掃描口賦初值、設(shè)定定時計數(shù)器0與定時器1的工作方式,寫入計數(shù)初值,啟動了定時器0與定時器1,打開了外部中斷。4.2 定時器中斷子程序void Timer0() interrupt 1/定時器0中斷TL0=TIME0_L;TH0=TIME0_H;TR1=1;OutPut=1;void Timer
14、1() interrupt 3/定時器1中斷TH1=TIME1_H;TL1=TIME1_L; TR1=0; OutPut=0;定時器中斷子程序中有定時器0與定時器1中斷,定時器0中與定時器1控制頻率與占空比流程圖分別如圖4.1和圖4.2所示。其過程為:(1)定時器0遇中斷執(zhí)行的操作有復(fù)位,啟動自身進(jìn)行頻率定時,同時啟動定時器1,進(jìn)行占空比定時,輸出高電平。(2)定時器1遇中斷,停止自身的計時,輸出低電平。如此循環(huán)進(jìn)行從而達(dá)到輸出方波的目的。定時器1中斷入口TR1=0重裝定時初值輸出低電平結(jié)束圖4.2 占空比定時器0中斷流程定時器0中斷入口TR1=1重裝定時初值輸出高電平結(jié)束圖4.1 頻率定時器
15、0中斷流程 4.3 鍵盤掃描程序void KeyScan() interrupt 0/鍵盤掃描uchar scancode,keycode,i;float TC0,TC1,temp;EX0=0;/關(guān)外部中斷0delayms(5);scancode=0xef;while(scancode!=0xff)KEY=scancode;keycode=KEY;if(keycode&0x0f)!=0x0f) break; /有鍵按下,breakscancode=(keycode<<1)|0x0f; /無鍵按下,掃描下一行keycode=keycode;/取反得鍵值for(i=0;i<
16、;8;i+)if(tabl2i=keycode) break;/掃描鍵表,與鍵值比較,找到則breakif(i=0) fre=10;/按下S0,設(shè)置初始頻率為10HZif(i=1) /按下S1,頻率加1fre+;if(fre>1000)/大于1000HZ時恢復(fù)10HZfre=10;if(i=2)/按下S2,頻率減1fre-;if(fre<10)/小于10HZ,恢復(fù)頻率1000HZfre=1000;if(i=0|1|2)/按下S0,S1,或S2時TC0=(length-fosc/(24*fre);/計算定時器0計數(shù)初值TIME0_H=(uint) TC0/256;TIME0_L=(u
17、int) TC0%256;TC1=(1-zkb/100.0)*length+TC0*zkb/100.0;/計算定時器1計數(shù)初值TIME1_H=(uint)TC1/256;TIME1_L=(uint)TC1%256;if(i=3)/按下S3時,占空比加1%zkb+;if(zkb>50) zkb=1;/占空比大于50%時,恢復(fù)占空比為1if(i=4)/按下S4時,占空比減1%zkb-;if(zkb<1) zkb=50;/占空比小于1%時,恢復(fù)占空比為50%if(i=3|i=4)/當(dāng)按下S3或S4時,計算定時器1計數(shù)初值,裝入初值temp=length-fosc/24.0/fre;TC1
18、=(1-zkb/100.0)*length+temp*zkb/100.0;TIME1_L=(uint)TC1/256;TIME1_H=(uint)TC1%256;KEY=0x0f;EX0=1;鍵盤掃描用外中斷0實(shí)現(xiàn),采用的是線反法,鍵盤掃描采用逐行掃描的方法。當(dāng)頻率可調(diào)時,占空比保持原狀不變,反之亦然,只能進(jìn)行單一變量的調(diào)節(jié),當(dāng)按下S0,S1,S2可以進(jìn)行初始化、加1Hz、減1Hz操作。如果按住某個鍵不放,便會執(zhí)行連續(xù)加值或減值操作。這里的頻率的最大值為1000Hz,當(dāng)頻率增至最大值時,還按增值鍵,此時頻率會自動跳到10Hz開始繼續(xù)增加。同理,頻率的最小值為10Hz,當(dāng)減頻率減至最小值時,再按
19、減頻率鍵,則頻率會跳到1000Hz。頻率保持不變,進(jìn)行占空比調(diào)節(jié)。只可進(jìn)行加1與減1操作,分別由S3鍵、S4鍵控制。要注意的是占空比的初值是50,我們定義的zkb為50(百分比的分子部分,為一整數(shù)),故調(diào)節(jié)占空比時,zkb會進(jìn)行加1,減1操作。zkb的最大值為50,當(dāng)增到最大值時,便會返回到值1,如此循環(huán)。為了減輕單片機(jī)的工作量,在軟件設(shè)計中采取了這樣的措施,在修改參數(shù)確定后才進(jìn)行定時器初值TC0、TC1的計算。鍵盤中斷處理子程序流程圖與鍵處理流程圖分別如圖4.3、圖4.4所示:圖4.3 鍵盤中斷處理子程序流程圖YNEA=0軟件延時消抖外部中斷0入口鍵盤掃描,得到鍵碼查表取鍵值i實(shí)時顯示鍵盤口
20、初始化EA=1結(jié)束鍵處理是否為抖動NYi=1 ZKB+i=2 ZKB-邊界處理Flag=2?NYi=0?Flag+=1鍵處理Y Yi=3 PL+=100i=4 PL-=100i=2 PL-i=1 PL+邊界處理NFlag=1?YNFlag=3?Flag=0,計算定時器0和1的初值鍵處理結(jié)束 圖4.4 鍵處理流程圖4.4 主函數(shù)void main()init();/初始化while(1);/等待按鍵,外部中斷5. 軟件仿真5.1 keil編譯器生成HEX文件由于這次能力拓展使用的C語言編程,所以不能用WAVE軟件進(jìn)行仿真,于是我們選用keil編譯器進(jìn)行仿真。主要介紹C程序生成hex文件的方法:(
21、1) 雙擊打開Keil uVision3,選擇project新建工程并保存,在出現(xiàn)的CPU對話框中選擇ATMEL中的AT89C51芯片。(2) 點(diǎn)擊確定生成工程,在file菜單中選擇新建,新建一個文件,在里面輸入自己寫的程序代碼,并保存。(3) 在左面的工程上右擊選擇add files to group,將剛開的文件添加的工程,然后同樣右鍵target選擇options for target,打開設(shè)置,在output選項(xiàng)中選擇create hex fil這一項(xiàng)。(4) 點(diǎn)擊編譯,以及它后面的生成選項(xiàng),便可在工程目錄下生成hex文件。5.2 proteus軟件仿真在生成*.HEX文件后,進(jìn)入Pr
22、otues軟件,此時軟件已自動打開一新建項(xiàng)目。我們可直接在其中構(gòu)建電路圖,點(diǎn)擊板面左側(cè)按鍵P,在彈出的Pick devices對話框中進(jìn)行元器件的選擇,文件要求必須是HEX文件。然后可以點(diǎn)擊運(yùn)行觀察現(xiàn)象,看與自己設(shè)置的符合否,如果不相符在查找錯誤進(jìn)行修改,一般的錯誤都是程序中的,所以要認(rèn)真的讀取程序的每一個部分。在元器件都找到后,我們可以先進(jìn)行排版再按照電路圖連接,如連接好后如下圖所示:圖5.1 仿真電路圖當(dāng)完成以上步驟后,就可以點(diǎn)擊開始按鈕進(jìn)行仿真了,原始方波輸出如圖5.3所示:圖5.3 輸出原始波形圖當(dāng)仿真開始后,按一次S1,可以進(jìn)行頻率的調(diào)整,頻率調(diào)整后波形輸出如下圖所示:圖5.3 頻率
23、調(diào)整后的波形輸出再按S1將Flag狀態(tài)調(diào)整為狀態(tài)2,此時可以對波形的占空比進(jìn)行調(diào)整,調(diào)整占空比后的波形如下圖所示:圖5.5 占空比調(diào)整后的輸出波形6.硬件調(diào)試6.1 電路板焊制及測試元器件焊接順序依次為:電阻器,電容器,二極管,三極管,集成電路,大功率管,其他元器件為先小后大。焊接時,要使焊點(diǎn)周圍都有錫,將其牢牢焊住,防止虛焊。焊接完成后,檢查是否所有線已連接,并用萬用表檢查。6.2 電路板調(diào)試 將程序燒寫入STC89C52RC芯片,接入+5V電源,將示波器探頭接到P2.0口,按鍵盤,觀察輸入波形,分別如下: 圖6.1 原始波形 圖6.2 頻率增加波形 圖6.3 頻率減小波形 圖6.4 占空比
24、改變后波形7.心得體會完成本次課程設(shè)計的過程,是一個從無到有的過程,經(jīng)歷了興奮、自信、失落、奮發(fā)、所悟、完成幾個過程。剛做做課程設(shè)計時,仔細(xì)閱讀設(shè)計的題目和要求,以為沒什么困難的,所用的知識書上都有。可是當(dāng)我動手開始做的時候,才發(fā)現(xiàn)其中的算法,設(shè)計是那么繁瑣。經(jīng)過一天的努力,毫無結(jié)果。失落的心情油然而生。于是,再到圖書館和網(wǎng)上查找資料,在經(jīng)過借鑒很多類似的資料,文獻(xiàn)后,總算是有點(diǎn)眉目了。埋頭苦干的過程是痛苦的,尤其是在思考算法和程序框架時,迷茫,煩躁,特別是當(dāng)苦思出來一個結(jié)果,又被自己推翻,心痛的無法言繪。在痛苦中掙扎,建立,推翻,參考別人的思路,建立,再次在推翻,在這不斷循環(huán)中,終于最后完善
25、了程序。其中的煎熬是很痛苦的,深刻明白攻克自己“未知領(lǐng)域”的困難。但當(dāng)課程設(shè)計完成時,那感覺是甜蜜的,沒有耕耘,哪來得收獲的喜悅,不懂付出怎么能知道回報的快樂,一分耕耘一分收獲,有付出才會有回報,就在這樣的痛與快樂的交換中,我學(xué)到了知識, 學(xué)到了做人的道理。單片機(jī)設(shè)計是一門很實(shí)用,很難的設(shè)計。這個設(shè)計用到了單片機(jī),電路等方面的知識,通過這次課程設(shè)計,使我對單片機(jī)及其附屬電路有了一定的了解,對課本上的知識有了近一步的掌握,也深刻明白了自己的不足。參考文獻(xiàn)1 何立民.MCS51單片機(jī)應(yīng)用系統(tǒng)設(shè)計M.北京:北京航空航天大學(xué)出版社,2003.2 徐君毅.單片微型機(jī)原理與應(yīng)用M.上海:上海科技出版社,1
26、9953 公茂法.單片機(jī)人機(jī)接口實(shí)例集M.北京:航空航天大學(xué)出版社,1998.4 沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計與實(shí)現(xiàn)M.北京:電子工業(yè)出版社, 2005.5 李廣弟,朱月秀等.單片機(jī)基礎(chǔ)M.北京:北京航空航天大學(xué)出版社, 2003.附錄:源程序代碼#include<reg51.h>#define uchar unsigned char#define uint unsigned int#define KEY P1 sbit OutPut=P20;float fosc=12000000;float length=65536;long int fre=10,zkb=50;uchar
27、TIME0_L,TIME0_H,TIME1_L,TIME1_H;uchar code tabl218=0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28;void delayms(uint n) uint i,j;for(i=n;i-;i>0)for(j=110;j-;j>0);void init( )KEY=0x0f;TIME0_L=176;TIME0_H=60;TL0=176;TH0=60;TMOD=0x11;/定時計數(shù)器0與定時計數(shù)器1均工作在方式1ET1=1;EX0=1;/外部中斷0允許ET0=1;EA=1;TR0=1;TR1=1;void Ke
28、yScan() interrupt 0/鍵盤掃描uchar scancode,keycode,i;float TC0,TC1,temp;EX0=0;/關(guān)外部中斷0delayms(5);scancode=0xef;while(scancode!=0xff)KEY=scancode;keycode=KEY;if(keycode&0x0f)!=0x0f) break; /有鍵按下,breakscancode=(keycode<<1)|0x0f; /無鍵按下,掃描下一行keycode=keycode;/取反得鍵值for(i=0;i<8;i+)if(tabl2i=keycode) br
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電力買賣安裝合同協(xié)議
- 疫情期間供貨合同協(xié)議
- 畫師合同協(xié)議書范本
- 2025至2030年中國男式光頭數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國玻璃清潔防霧劑數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國烤肉盤數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國海綿清潔球數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國正方鐵罐數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國柔潤美白滋養(yǎng)晚霜數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國木制吊床支架數(shù)據(jù)監(jiān)測研究報告
- 競爭優(yōu)勢:透視企業(yè)護(hù)城河
- 教學(xué)課件:《新時代新征程》
- 【蘇州市冷鏈物流發(fā)展現(xiàn)狀、問題和優(yōu)化建議分析(后后附問卷)11000字(論文)】
- 旋極信息:北京旋極百旺科技有限公司資產(chǎn)評估報告
- 婦產(chǎn)科學(xué)-第九章-妊娠合并內(nèi)外科疾病
- 【基于杜邦分析法的寧德時代企業(yè)財務(wù)分析案例報告13000字(論文)】
- 空調(diào)維保投標(biāo)方案(技術(shù)方案)
- 幼兒園中班語言繪本《來喝水吧》微課件
- 允許一切發(fā)生:過不緊繃松弛的人生
- 三農(nóng)產(chǎn)品直播帶貨策劃方案-
- 《囊螢夜讀》-課件
評論
0/150
提交評論