單片機(jī)原理及應(yīng)用-基于Proteus和Keil-C林立版課后習(xí)題答案_第1頁
單片機(jī)原理及應(yīng)用-基于Proteus和Keil-C林立版課后習(xí)題答案_第2頁
單片機(jī)原理及應(yīng)用-基于Proteus和Keil-C林立版課后習(xí)題答案_第3頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1 計(jì)算機(jī)體系結(jié)構(gòu):哈佛結(jié)構(gòu)、馮諾依曼結(jié)構(gòu)的區(qū)別?RAMROMRAMROM2MSC51答:(1) 電源及晶振引腳VCC(40:+5VVSS(20XTAL1(19 腳);外接晶振引腳(內(nèi)置放大器輸入端) XTAL2(18 腳):外接晶振引腳(內(nèi)置放大器輸出端)控制引腳RST/V9/ 備用電源引腳ALE/PROG(30)為地址鎖存使能輸出/ 編程脈沖輸入PSEN(29):輸出訪問片外程序存儲(chǔ)器讀選通信號(hào)EA/ VPP (31):外部ROM 允許訪問/ 編程電源輸入并行I/O)P0P1.0P1.7(18)P1)P2P3.0P3.7(1017)P33. AT89C51RAM如何?其內(nèi)部功能部件有:控制

2、器:是對(duì)取自程序存儲(chǔ)器中的指令進(jìn)行譯碼,在規(guī)定的時(shí)刻發(fā)出各種操作所需的控制信號(hào),完成指令所規(guī)定的功能;運(yùn)算器:根據(jù)控制器發(fā)來的信號(hào),執(zhí)行算術(shù)邏輯運(yùn)算操作; 存儲(chǔ)器:包括程序存儲(chǔ)和數(shù)據(jù)存儲(chǔ)器;定時(shí)器計(jì)數(shù)器:216/中斷系統(tǒng):可響應(yīng)三個(gè)內(nèi)部中斷源和兩個(gè)外部中斷源的中斷請(qǐng)求;輸入輸出接口:4 個(gè) 8 位并行口和一個(gè)全雙工串行口;64KB64KB空間。片內(nèi) RAM 可分成劃分為三個(gè)部分:(00H-1FH,四組可位尋址區(qū)20H-2FH)RAM 7PSW答:程序狀態(tài)字寄存器 PSW 各位的定義如下:PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYCYCACAF0FRSR

3、S1RS0RSOVOF1FPPSW.7:進(jìn)/借位標(biāo)志CY,加法有進(jìn)位時(shí)置 1,減法有借位時(shí)置 1; PSW.6:輔助進(jìn)位標(biāo)志AC,加法運(yùn)算低四位向高上四位有進(jìn)位時(shí)置 1; PSW.5、PSW.1:用戶標(biāo)志位F0 和用戶標(biāo)志位 F1,保存用戶的位數(shù)據(jù);PSW.4PSW.3:工作寄存器選擇控制位RS1 和RS0,0011OV255BA01PSW.0:奇偶標(biāo)志位P,累加器A 中 1 的個(gè)數(shù)為奇數(shù)時(shí)置 1。4什么是復(fù)位?單片機(jī)復(fù)位電路有哪幾種,工作原理分別是什么? 答:復(fù)位使單片機(jī)恢復(fù)原始默認(rèn)狀態(tài)的操作。229P0P1P2P39. 并行口P0、P1、P2、P3 的作用與用法、準(zhǔn)雙向口的含義。答:P01

4、21(XMUXI/O/8P111V2輸出口P212118P31211作用是用作輸入輸出口或第二功能。時(shí)序:振蕩周期、狀態(tài)周期、機(jī)器周期、指令周期的含義PMCS-51完成一個(gè)最基本的動(dòng)作。狀態(tài)周期:震蕩脈沖經(jīng)過二分頻后的周期機(jī)器周期:由 12 個(gè)時(shí)鐘周期構(gòu)成,完成一個(gè)基本操作指令周期:是執(zhí)行一條指令所需的時(shí)間,根據(jù)指令的復(fù)雜性,可由 14 個(gè)機(jī)器周期構(gòu)成。1080C51ALE80C51ALEALEP0880C51器時(shí),ALEfosc/6。中斷源、中斷優(yōu)先級(jí)、中斷類型號(hào)、中斷向量5串行口。外部中斷源是由引腳的觸發(fā)信號(hào)引起的中斷,定時(shí)器中斷源是由于定時(shí)器計(jì)數(shù)器的溢出引發(fā)的中斷,串行口是由于串行通信的

5、發(fā)送或接收引發(fā)的中斷。將中斷事件按輕重緩急分若干級(jí)別叫中斷優(yōu)先級(jí)。允許中斷優(yōu)先級(jí)高的中斷源中斷正在執(zhí)行的低優(yōu)先級(jí)的中斷服務(wù)程序叫中斷嵌套。0T01T1,串行口五個(gè)中斷源的中斷向量地址依次為:0003H, 000BH,0013H,001BH,0023H。1MCS-51 系列的 8051 單片機(jī)內(nèi)有幾個(gè)定時(shí)/計(jì)數(shù)器?每個(gè)定時(shí)/計(jì)數(shù)器有幾種工作方式?如何選擇?答:MCS-5180512/T0T1,每個(gè)都可以編程為定時(shí)器或計(jì)數(shù)器, T00131162-838T0TMODT1,低四位選擇T0。23MHz,/計(jì)數(shù)器TO012少?答:如果采用的晶振頻率為 3MHz,機(jī)器周期為 121/(3*106)=4us

6、,由于定時(shí)/計(jì)數(shù)器 TO 工作在方式 0、128192、65536256081924us 32.768ms1655364us262.144ms22564us1024us。3定時(shí)/計(jì)數(shù)器TO 作為計(jì)數(shù)器使用時(shí),其計(jì)數(shù)頻率不能超過晶振頻率的多少?/TOCPU樣一次引腳,當(dāng)前一次采樣為高電平,后一次采樣為低電平,則為一次有效計(jì)數(shù)脈沖,所以如果晶振頻率fosc,則其采樣頻率fosc/12fosc/24。4簡單說明定時(shí)/計(jì)數(shù)器在不同工作模式下的特點(diǎn)。013/THx8TLx5116/計(jì)數(shù)器, THx8TLx828/計(jì)數(shù)器,TLx1,THx3T0,是將T08/8 位的TH0T1TR1TF182答:定時(shí)器工作

7、在方式 2 時(shí)是一個(gè)可自動(dòng)裝入時(shí)間常數(shù)初值的 8 位定時(shí)/計(jì)數(shù)器,TLx 為加 1 計(jì)數(shù)器,THx2精確的定時(shí)。一個(gè)定時(shí)器的定時(shí)時(shí)間有限,如何采用兩個(gè)定時(shí)器的串行定時(shí)來實(shí)現(xiàn)較長時(shí)間的定時(shí)?答:一個(gè)定時(shí)器的定時(shí)時(shí)間有限,可采用兩個(gè)定時(shí)器的串行定時(shí)來實(shí)現(xiàn)較長時(shí)間的定時(shí),比如,當(dāng)12MHz/165.536ms,此時(shí)若用另一個(gè)定時(shí)/1 進(jìn)行溢出次數(shù)計(jì)數(shù),在定時(shí)器溢出中斷時(shí),給計(jì)數(shù)器發(fā)一個(gè)計(jì)數(shù)脈沖,且兩者均為方式一,則兩者串行可達(dá)到的定時(shí)時(shí)間為 6553665.536ms=4294967.296ms。13. C 語言變量定義的存儲(chǔ)類型有哪些?不同類型表示的含義如何?四個(gè)物理存儲(chǔ)空間和三個(gè)邏輯存儲(chǔ)空間的具

8、體含義。答:C 語言的變量定義格式如下:存儲(chǔ)種類 數(shù)據(jù)類型 存儲(chǔ)類型 變量名其中:存儲(chǔ)種類包括:自動(dòng)型(auto)、外部型(extern)、靜態(tài)型(static)、寄存器型(register)。C(char),整型(int),長整型(long),浮點(diǎn)型(float精度型(double(bit(sfr),SFR(sbit)。RAM(data)RAM頁尋址區(qū)(pdata),片外RAM(xdataROM(code)。有四個(gè)物理存儲(chǔ)空間(片內(nèi) RAM、片內(nèi)ROM,片外RAM,片外ROM),三個(gè)邏輯地址空間(片內(nèi)RAM,片外RAM,ROM),而且有多種尋址方式(直接尋址、間接尋址、頁面尋址、位尋址)所致

9、,所以在定義變量時(shí), 要根據(jù)其所在位置和尋址方式明確指定存儲(chǔ)類型。第 3 章 單片機(jī)的匯編語言與程序設(shè)計(jì) 習(xí)題1MCS-51 單片機(jī)有哪幾種尋址方式?適用于什么地址空間?答:MCS-517尋址、相對(duì)尋址。直接尋址RAMA,68HMOVMOVA,PSW寄存器尋址方式:指令給出的是寄存器的編碼,操作數(shù)在編碼指定的寄存器中,適用于片內(nèi) 00H 至 1FH32R0,R7PSWRS1RS0328A,以及乘除法指令中的A 和BC;MOV MUL INCA,R1 AB DPTR寄存器間接尋址方式:指令給出的是寄存器的編碼,操作數(shù)地址在編碼指定的寄存器中,適用于片內(nèi)RAM的全部空間,其中52系列中的80H至F

10、FH只能用寄存器間接尋址;如MOVA,R1MOVX A,DPTRA,R0立即尋址8RAM16DPTRMOV MOVA,#0E2H DPTR,#2000H變址尋址DPTRPCA寄存器的內(nèi)容相加形成操作數(shù)的實(shí)際地址的一種尋址方式,變址尋址方式適用于程序存儲(chǔ)器 ROM條指令如下:MOVC A,A+DPTR MOVC A,A+PCJMPA+DPTR位尋址RAM20H2FH1612880HFFH8SFRMOV MOV MOVC,7FH F0,C C,ACC.7相對(duì)尋址至127SJMP STARTHERE:SJMPHERE;等效于:SJMP$MCS-51PSW 程序狀態(tài)字中無ZERO(零)標(biāo)志位,怎樣判斷

11、某內(nèi)部數(shù)據(jù)單元的內(nèi)容是否為零? PSWZEROAARAM20H-30HRAMR020HAARAM130H17程序 1:MOVR0,#20H;設(shè)地址指針初值CLRA;累加器清 0CONT:MOVR0,A0INCR0;地址指針加 1CJNE R0,#31H,CONT ;指針未超過終點(diǎn)則繼續(xù)SJMP$;暫停程序 2:MOV CLRR0,#20H ;設(shè)地址指針初值A(chǔ);累加器清CONT:MOV MOV INCR7,#17 R0,A R0;計(jì)數(shù)器賦初值,從 20H 到 30H 共 17 個(gè)字節(jié);置 0 指針?biāo)竼卧?地址指針加 1DJNZ R7, CONT ;計(jì)數(shù)器減 1,非 0,則繼續(xù)SJMP$;暫停R

12、AM32H41H0AAH50H50H解:設(shè)一個(gè)片內(nèi)RAMR0,32HR0#0AAH50H0FFHR0141H50H00H程序 1:MOVR0,#32H;設(shè)地址指針初值CONT:CJNER0,#0AAH,NEXT;比較查找值與指針?biāo)竼卧闹?,不相等轉(zhuǎn)移MOVA,#0FFH;相等,則準(zhǔn)備好要賦的標(biāo)志值 0FFHSJMPDOWN;轉(zhuǎn)存到保存結(jié)果處NEXT:INC;修改地址指針CJNE R0,#42H,CONT ;若指針未越過終點(diǎn),則繼續(xù)DOWN:MOV MOV SJMPENDA,#00H 50H,A;查找失敗,則將 00H 存入結(jié)果標(biāo)志單元;將比較結(jié)果標(biāo)志存入 50H 單元;暫停MOVR7,#16

13、20H30H16MOVR0,#32H;設(shè)地址指針初值CONT:CJNER0,#0AAH,NEXT;比較查找值與指針?biāo)竼卧闹?,不相等轉(zhuǎn)移MOVA,#0FFH;相等,則準(zhǔn)備好要賦的標(biāo)志值 0FFHSJMPDOWN;轉(zhuǎn)存到保存結(jié)果處NEXT:INC;修改地址指針DJNZR7,CONT10,則繼續(xù)DOWN:MOV MOV SJMPENDA,#00H 50H,A;查找失敗,則將 00H 存入結(jié)果標(biāo)志單元;將比較結(jié)果標(biāo)志存入 50H 單元;暫停20H4FH00H50H20H4FH48MOVR7,#48;字節(jié)計(jì)數(shù)器賦初值MOVR0,#20H;設(shè)地址指針初值CONT:CJNER0,#00H,NEXT ;比

14、較查找值與指針?biāo)竼卧闹担幌嗟绒D(zhuǎn)移NEXT:INCINC;相等,0 的個(gè)數(shù)計(jì)數(shù)器加 1;修改地址指針DJNZR7,CONT10,則繼續(xù)MOV SJMPEND50H,R6END;保存 O 的個(gè)數(shù)計(jì)數(shù)值到 50H 單元;暫停A=83H,R0=17H,(17H)=34H,寫出下列程序段執(zhí)行之后的AANL A,#17HORL 17H,AXRL A,R0CPL A END答:ANLA,#17H;A=03HORL17H,A;(17H)=0011 0100 0000 0011=0011 0111XRLA,R0;A= 0000 0011 0011 0111 =0011 0100CPLA;A=1100 10

15、1112MHz0.1s1s1us0.1s100ms100000us1000001S,可0.110DELAY100MS:MOVR6,#200;1 個(gè)機(jī)器周期D1:MOVR7,#250;1 個(gè)機(jī)器周期D2:NOP;1 個(gè)機(jī)器周期DJNZR7,D2;2 個(gè)機(jī)器周期,3*251=753DJNZR6,D1;2 個(gè)機(jī)器周期,(1+753+2)*132=99792RET;21+99792+2=99795100msDELAY1S:MOVR7,#10;計(jì)數(shù)10次1LOOP:ACALLDELAY100MS100ms99795+2DJNZ R7,LOOP ;未達(dá)到 10 次則繼續(xù) 10*(2+99795+2)RET

16、2+10*(2+99795+2)=997992內(nèi)部RAM20HODH7E01H7E00H解:從 20H 的指針用R0,從外部RAM7E01 開始的指針用DPTR,計(jì)數(shù)器用 R7MOVR7,#0;字節(jié)計(jì)數(shù)器賦初值MOVR0,#20H;設(shè)片內(nèi) RAM 地址指針初值MOVDPTR,#7E01HRAMCONT:MOVA,R0;取片內(nèi) RAM 中的一個(gè)字節(jié)MOVXDPTR,ARAMINC INC INCR7 R0 DPTR;長度計(jì)數(shù)器加 1;片內(nèi) RAM 地址指針加 1;片外 RAM 地址指針加 1CJNEA,#0DH,CONT;未達(dá)到結(jié)束標(biāo)志MOVA,R7;取塊計(jì)數(shù)長度值MOVXSJMP$END;保存

17、;暫停內(nèi)部RAMDATA10SUM 和單元。解:R7 計(jì)數(shù),R6 保存累加和高 8 位,R0 用作地址指針ORG0000HLJMP MAINORG100HSUMEQU30HDATAAEQU40HMAIN:MOVR7,#10;字節(jié)計(jì)數(shù)器賦初值MOVR0,#DATAA;設(shè)片內(nèi) RAM 地址指針初值CLRA;累加器清 0MOVR6,A;累加結(jié)果的高 8 位CONT:ADDA,R0RAMACCDAAJNCNEXT;若無進(jìn)位則不用管高 8 位INCR6;有進(jìn)位,高 8 位加 1NEXT:INCR0;片內(nèi) RAM 地址指針加 1DJNZR7,CONT;未完繼續(xù)MOV MOV SJMPENDSUM,A SU

18、M+1,R6;保存低 8 位;保存高 8 位;暫停RAMDATA1DATA2LEN0FFH 寫入RESULT0RESULT解:從 DATA1 開始的指針用R0,從 DATA2 開始的指針用R1,計(jì)數(shù)器用R7LENEQU10DATA1EQU30HDATA2EQU40HRESULTEQU50HMOVR7,#LEN;字節(jié)計(jì)數(shù)器賦初值MOVR0,#DATA1;設(shè)片內(nèi) RAM 地址指針初值MOVR1,#DATA2;設(shè)片外 RAM 地址指針初值CONT:MOVA,R0;取片內(nèi) RAM R0 所指的的一個(gè)字節(jié)MOV7FH,R1R1RAM7FHCJNEA,7FH,NOEQ INCR0INCR1;比較,不相等則

19、結(jié)束;DATA1 RAM1;DATA2 RAM1DJNZR7,CONT;未完,繼續(xù)NOEQ:MOVSJMPMOVA,#0FFH A,#0;相等,準(zhǔn)備寫入FFH;轉(zhuǎn)寫入結(jié)果處;不相等,準(zhǔn)備寫入 00HDOWN:MOV SJMPENDRESULT,A;保存比較結(jié)果標(biāo)志;暫停編制程序,將內(nèi)部RAM 中M1M2M3M4xlx2x3x4RO R1(R08解:M1EQU30HM2EQU40HM3EQU45HM4EQU4FHMOVA,M1;取第一個(gè)數(shù)ADDA,M2;與第二個(gè)數(shù)相加JNCNEXT1;如果無進(jìn)位,則轉(zhuǎn)移至第三個(gè)相加MOVR0,#1;有進(jìn)位,高 8 位置 1NEXT1:ADDA,M3;與第三個(gè)數(shù)相

20、加JNCNEXT2;沒有進(jìn)位,則轉(zhuǎn)至第四個(gè)數(shù)相加INCR0;有進(jìn)位,高 8 位加 1NEXT2:ADDA,M4;與第四個(gè)數(shù)相加JNCNEXT3;沒有進(jìn)位,則轉(zhuǎn)至結(jié)束INCR0;有進(jìn)位,高 8 位再加 1NEXT3:MOVR1,A;低 8 位保存到R1SJMP $;暫停END4C51 語言 習(xí)題2C51答:C 語言的變量定義格式如下:存儲(chǔ)種類 數(shù)據(jù)類型 存儲(chǔ)類型 變量名其中:存儲(chǔ)種類與標(biāo)準(zhǔn) C 語言相同,包括:自動(dòng)型(auto)、外部型(extern)、靜態(tài)型(static)、寄存器型(register)。C(char),整型(int),長整型(long),浮點(diǎn)型(float精度型(double

21、(bit(sfr),SFR(sbit)。RAM(data)RAM頁尋址區(qū)(pdata),片外RAM(xdataROM(code)。CMCS51、片內(nèi)ROM,片外RAM,片外ROMRAM,片外RAM,ROM),式(直接尋址、間接尋址、頁面尋址、位尋址)所致,所以在定義變量時(shí),要根據(jù)其所在位置和尋址方式明確指定存儲(chǔ)類型。#include main()a=C;int delay(10)void delay(); cgar i;for(i=O; i=255; ”+”);答:#include main()a=C; int delay(10)void delay();/a 和C 必須先定義才可使用/缺分號(hào)

22、,應(yīng)該提在使用前說明/延時(shí)子程序必須先定義,或先有函數(shù)原型說明/作為函數(shù)定義,有函數(shù)定義不能嵌套的問題,/即不能在一個(gè)函數(shù)內(nèi)定義另一個(gè)函數(shù),而且“”前不應(yīng)有分號(hào)/作為函數(shù)原型說明,應(yīng)該放在函數(shù)調(diào)用之前,且其后不應(yīng)該接函數(shù)體cgar i;/字符型應(yīng)該是unsigned charfor(i=O; i=255; ”+”);/ ”+”應(yīng)改成i+/主函數(shù)沒有結(jié)束,缺”a,b,caRAMbint 型 xdata 區(qū)的指針。答: char bdata a;float xdata b; int xdata *c;805120H35H解:方法一:用嵌入式匯編語言實(shí)現(xiàn)#include void main()#pr

23、agma MOV A,20H MOV B,35H MUL ABMOV DPTR,#1234H MOVX DPTR,AINCMOV DPTRMOVX DPTR,A#pragma endasmC#include#include int movdata(char); void main()unsigned int xdata x; unsigned char *ptr,a,b; ptr=0 x25;a=*ptr; ptr=0 x30; b=*ptr; x=a*b;25H010530H解:方法一:用 C 語言與匯編語言混合編程實(shí)現(xiàn)/用C 語言編寫的主函數(shù)#include #includechar ge

24、tdata(char); void main()char a=0 x25,c; float f; c=getdata(a); f=sqrt(c);R7R7回主函數(shù)。PUBLIC_GETDATA DESEGMENTRSEGDE_GETDATA:MOVA,R7;取地址參數(shù)EXIT:MOV MOV MOV RET ENDR0,A A,R0R7,A ;返回地址單元中的內(nèi)容方法二:單用 C 語言編程實(shí)現(xiàn)/MAIN.C#include #include int movdata(char); void main()char n; char float float f; ptr=0 x25; n=*ptr;

25、f=sqrt(n); ptr2=0 x30;*ptr2=f;RAM 10H15HRAM10H15HC/用C 語言編寫的主函數(shù)#includechar movdata(char,char); void main()char a=0 x10,b=0 x06; movdata(a,b);MOVDATA,其中第一個(gè)參數(shù)在R7R5節(jié)數(shù)PUBLIC_MOVDATA DESEGMENTRSEGDE_MOVDATA:MOVMOV A,R7R0,ALOOP:MOVXA,R0MOVR0,AEXIT:DJNZRETEND方法二:單用 C 語言編程實(shí)現(xiàn)/MAIN.C#include int movdata(char)

26、; void main()char n=6;char *ptr1=0 x10; char xdata *ptr2; ptr2=0 x20; while(n-)*ptr2+=*ptr1+;RAM 20H、21H22H、23H1624H單元。解 : 方 法 一 : #include void main()unsigned int *ptr; unsigned int x,y,z;/設(shè)置一個(gè)內(nèi)部RAM 指針ptr=0 x20; x=*ptr; ptr=0 x22; y=*ptr; z=(xy)?x:y; ptr=0 x24;*ptr=z;/指向 0 x20 單元/取第一個(gè)數(shù)/指向 0 x22 單元/

27、取第二個(gè)數(shù)/將兩數(shù)中的較大者賦給z/指向地址為 0 x24 的目標(biāo)單元/將大數(shù)存入目標(biāo)單元方 法 二 : #include #include void main()unsigned int x,y,z; x=DBYTE0X20*256+DBYTE0X21; y=DBYTE0X22*256+DBYTE0X23;z=(xy)?x:y;/將兩數(shù)中的較大者賦給DBYTE0X24=z/256;DBYTE0X25=z%256;方 法 三 : #include unsigned int x _at_ unsigned int y _at_ unsigned int z _at_ void main()z=(

28、xy)?x:y;第 5 章 單片機(jī)的中斷系統(tǒng) 習(xí)題3MCS-51 中斷的中斷響應(yīng)條件是什么? 答:(1) 中斷源有中斷請(qǐng)求;1,即中斷源可以向CPUCPUEA=1;4MCS-51答:(1) 將相應(yīng)的中斷優(yōu)先級(jí)狀態(tài)觸發(fā)器置 1,以阻斷后來的同級(jí)和低級(jí)中斷請(qǐng)求;由硬件清除相應(yīng)的中斷請(qǐng)求標(biāo)志,串行口的發(fā)送和接收中斷除外;執(zhí)行一條硬件LCALLPCPC;1解:void Int1_init()IT1=1;EA=1;EX1=1;/IE=0 x84;/ IE|=0 x84;有一外部中斷源,接入INT0CPURAM 30H50RAM1000H解:#include void main()IT0=1 ; EA=1

29、; EX0=1;while(1) ;void intx0() interrupt 0 using 1 char * ptr1=0 x30;char xdata * ptr2=0 x1000; for(i=0;i50;i+) *ptr2+=*ptr1+;fosc = 12MHz,利用定時(shí)器,TO2)P1.1O.4ms定時(shí)器溢出時(shí)采用中斷方式處理,請(qǐng)編寫,T0T020.4mS 400usT02256-200=56。在T0P1.1sbit P1_1=P11;void timer0()interrupt 1 using P1_1=!P1_1;void P1_1=0; TMOD=0 x02;TH0=56

30、;TL0=56;IE=0 x82;TR0=1;for(;)fosc6MHz,50ms,從內(nèi)部RAM30HRAM2000H50T12服務(wù)程序中完成。fosc = 6MHz=12/6*10=2us,T12512u50ms,100500us2500us250256-250=6#includechar intcnt=0; char movcnt=0; char *ptr1=0 x30;char xdata *ptr2=0 x2000;void timer1()interrupt 3 using 1 intcnt+;if(intcnt=100) if(mocnt50)*ptr2+=*ptr1+; mov

31、cnt+;else EX1=0; intcnt=0;void main() TMOD=0 x20; TH1=6; TL1=6; IE=0 x84; TR1=1;for(;)9805l8并說明如何確定各中斷源的優(yōu)先級(jí)。7時(shí),借助于P2INT0P00INT1P017。具體電路和程序如下:#include char led_mod=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07;void INT0_srv (void) interrupt 0 using 1/0P0=led_mod0;void INT1_srv (void) interrupt 2 u

32、sing 2/1char intnum; intnum=P2; switch(intnum)case 0 xfe:P0=led_mod1;break; case 0 xfd:P0=led_mod2;break; case 0 xfb:P0=led_mod3;break; case 0 xf7:P0=led_mod4;break; case 0 xef:P0=led_mod5;break; case 0 xdf:P0=led_mod6;break; case 0 xbf:P0=led_mod7;void main() EA=1; EX0=1; EX1=1; P0=0;while(1);第 6 章

33、 單片機(jī)的定時(shí)器/計(jì)數(shù)器 習(xí)題MCS-5112MHzP1.O20kHz解:fosc = 1us。20kHz1/(201000)=50us,25usP1.O查詢方式,也可以用中斷方式進(jìn)行編程實(shí)現(xiàn)。方法一:采用查詢方式實(shí)現(xiàn)#includesbit P1_0=P10;/定義輸出引腳變量void main()P1_0=0;/TMOD=0 x02; /T02TH0=256-25; /25256TL0=TH0;TR0=1;while(1)/啟動(dòng)T0/無限循環(huán)if(TF0) /查詢T0 溢出標(biāo)志TF0=0; /溢出標(biāo)志復(fù)位P1_0=!P1_0; /輸出求反方法二:采用中斷方式實(shí)現(xiàn)#includesbit P1_0=P10; /定義輸出引腳變量void main()P1_0=0;/TMOD=0 x02; /T02TH0=256-25; /25256TL0=TH0;IE=0 x82; TR0=1;/允許CPU 響應(yīng)中斷,允許T0 發(fā)中斷請(qǐng)求/啟動(dòng)T0for(;)/無限循環(huán)等待中斷timer0()interrupt 1 using 1 P1_0=!P1_0; /輸出求反采用定時(shí)/TO10O1msMCS-5l6MHzT0狀態(tài),請(qǐng)編寫出相應(yīng)程序。解:晶體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論