亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲(chóng)蟲(chóng)首頁(yè)| 資源下載| 資源專(zhuān)輯| 精品軟件
登錄| 注冊(cè)

r3

  • 單片機(jī)系統(tǒng)的工作原理設(shè)計(jì)

    單片機(jī)系統(tǒng)的工作原理設(shè)計(jì) 單片機(jī)應(yīng)用系統(tǒng)的存儲(chǔ)器擴(kuò)充單片機(jī)應(yīng)用系統(tǒng)的存儲(chǔ)器擴(kuò)充單片機(jī)應(yīng)用系統(tǒng)的開(kāi)關(guān)量輸入...電路工作原理-接點(diǎn)K開(kāi)啟,電源Vdd經(jīng)電阻R1,R2和r3,向光二極管提供電流,光敏三...

    標(biāo)簽: 單片機(jī)系統(tǒng) 工作原理

    上傳時(shí)間: 2013-11-07

    上傳用戶(hù):daxigua

  • 單片機(jī)指令系統(tǒng)原理

    單片機(jī)指令系統(tǒng)原理 51單片機(jī)的尋址方式 學(xué)習(xí)匯編程序設(shè)計(jì),要先了解CPU的各種尋址法,才能有效的掌握各個(gè)命令的用途,尋址法是命令運(yùn)算碼找操作數(shù)的方法。在我們學(xué)習(xí)的8051單片機(jī)中,有6種尋址方法,下面我們將逐一進(jìn)行分析。 立即尋址 在這種尋址方式中,指令多是雙字節(jié)的,一般第一個(gè)字節(jié)是操作碼,第二個(gè)字節(jié)是操作數(shù)。該操作數(shù)直接參與操作,所以又稱(chēng)立即數(shù),有“#”號(hào)表示。立即數(shù)就是存放在程序存儲(chǔ)器中的常數(shù),換句話(huà)說(shuō)就是操作數(shù)(立即數(shù))是包含在指令字節(jié)中的。 例如:MOV  A,#3AH這條指令的指令代碼為74H、3AH,是雙字節(jié)指令,這條指令的功能是把立即數(shù)3AH送入累加器A中。MOV  DPTR,#8200H在前面學(xué)單片機(jī)的專(zhuān)用寄存器時(shí),我們已學(xué)過(guò),DPTR是一個(gè)16位的寄存器,它由DPH及DPL兩個(gè)8位的寄存器組成。這條指令的意思就是把立即數(shù)的高8位(即82H)送入DPH寄存器,把立即數(shù)的低8位(即00H)送入DPL寄存器。這里也特別說(shuō)明一下:在80C51單片機(jī)的指令系統(tǒng)中,僅有一條指令的操作數(shù)是16位的立即數(shù),其功能是向地址指針DPTR傳送16位的地址,即把立即數(shù)的高8位送入DPH,低8位送入DPL。 直接尋址 直接尋址方式是指在指令中操作數(shù)直接以單元地址的形式給出,也就是在這種尋址方式中,操作數(shù)項(xiàng)給出的是參加運(yùn)算的操作數(shù)的地址,而不是操作數(shù)。例如:MOV  A,30H  這條指令中操作數(shù)就在30H單元中,也就是30H是操作數(shù)的地址,并非操作數(shù)。 在80C51單片機(jī)中,直接地址只能用來(lái)表示特殊功能寄存器、內(nèi)部數(shù)據(jù)存儲(chǔ)器以及位地址空間,具體的說(shuō)就是:1、內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM低128單元。在指令中是以直接單元地址形式給出。我們知道低128單元的地址是00H-7FH。在指令中直接以單元地址形式給出這句話(huà)的意思就是這0-127共128位的任何一位,例如0位是以00H這個(gè)單元地址形式給出、1位就是以01H單元地址給出、127位就是以7FH形式給出。2、位尋址區(qū)。20H-2FH地址單元。3、特殊功能寄存器。專(zhuān)用寄存器除以單元地址形式給出外,還可以以寄存器符號(hào)形式給出。例如下面我們分析的一條指令 MOV  IE,#85H 前面的學(xué)習(xí)我們已知道,中斷允許寄存器IE的地址是80H,那么也就是這條指令可以以MOV  IE,#85H 的形式表述,也可以MOV  80H,#85H的形式表述。 關(guān)于數(shù)據(jù)存儲(chǔ)器RAM的內(nèi)部情況,請(qǐng)查看我們課程的第十二課。 直接尋址是唯一能訪問(wèn)特殊功能寄存器的尋址方式! 大家來(lái)分析下面幾條指令:MOV  65H,A       ;將A的內(nèi)容送入內(nèi)部RAM的65H單元地址中MOV  A,direct    ;將直接地址單元的內(nèi)容送入A中MOV  direct,direct;將直接地址單元的內(nèi)容送直接地址單元MOV  IE,#85H      ;將立即數(shù)85H送入中斷允許寄存器IE 前面我們已學(xué)過(guò),數(shù)據(jù)前面加了“#”的,表示后面的數(shù)是立即數(shù)(如#85H,就表示85H就是一個(gè)立即數(shù)),數(shù)據(jù)前面沒(méi)有加“#”號(hào)的,就表示后面的是一個(gè)地址地址(如,MOV 65H,A這條指令的65H就是一個(gè)單元地址)。 寄存器尋址 寄存器尋址的尋址范圍是:1、4個(gè)工作寄存器組共有32個(gè)通用寄存器,但在指令中只能使用當(dāng)前寄存器組(工作寄存器組的選擇在前面專(zhuān)用寄存器的學(xué)習(xí)中,我們已知道,是由程序狀態(tài)字PSW中的RS1和RS0來(lái)確定的),因此在使用前常需要通過(guò)對(duì)PSW中的RS1、RS0位的狀態(tài)設(shè)置,來(lái)進(jìn)行對(duì)當(dāng)前工作寄存器組的選擇。2、部份專(zhuān)用寄存器。例如,累加器A、通用寄存器B、地址寄存器DPTR和進(jìn)位位CY。 寄存器尋址方式是指操作數(shù)在寄存器中,因此指定了寄存器名稱(chēng)就能得到操作數(shù)。例如:MOV A,R0這條指令的意思是把寄存器R0的內(nèi)容傳送到累加器A中,操作數(shù)就在R0中。INC r3這條指令的意思是把寄存器r3中的內(nèi)容加1 從前面的學(xué)習(xí)中我產(chǎn)應(yīng)可以理解到,其實(shí)寄存器尋址方式就是對(duì)由PSW程序狀態(tài)字確定的工作寄存器組的R0-R7進(jìn)行讀/寫(xiě)操作。 寄存器間接尋址 寄存間接尋址方式是指寄存器中存放的是操作數(shù)的地址,即操作數(shù)是通過(guò)寄存器間接得到的,因此稱(chēng)為寄存器間接尋址。 MCS-51單片機(jī)規(guī)定工作寄存器的R0、R1做為間接尋址寄存器。用于尋址內(nèi)部或外部數(shù)據(jù)存儲(chǔ)器的256個(gè)單元。為什么會(huì)是256個(gè)單元呢?我們知道,R0或者R1都是一個(gè)8位的寄存器,所以它的尋址空間就是2的八次方=256。例:MOV  R0,#30H  ;將值30H加載到R0中    MOV  A,@R0    ;把內(nèi)部RAM地址30H內(nèi)的值放到累加器A中    MOVX A,@R0    ;把外部RAM地址30H內(nèi)的值放到累加器A中 大家想想,如果用DPTR做為間址寄存器,那么它的尋址范圍是多少呢?DPTR是一個(gè)16位的寄存器,所以它的尋址范圍就是2的十六次方=65536=64K。因用DPTR做為間址寄存器的尋址空間是64K,所以訪問(wèn)片外數(shù)據(jù)存儲(chǔ)器時(shí),我們通常就用DPTR做為間址寄存器。例:MOV   DPTR,#1234H  ;將DPTR值設(shè)為1234H(16位)    MOVX  A,@DPTR      ;將外部RAM或I/O地址1234H內(nèi)的值放到累加器A中 在執(zhí)行PUSH(壓棧)和POP(出棧)指令時(shí),采用堆棧指針SP作寄存器間接尋址。例:PUSH  30H    ;把內(nèi)部RAM地址30H內(nèi)的值放到堆棧區(qū)中堆棧區(qū)是由SP寄存器指定的,如果執(zhí)行上面這條命令前,SP為60H,命令執(zhí)行后會(huì)把內(nèi)部RAM地址30H內(nèi)的值放到RAM的61H內(nèi)。 那么做為寄存器間接尋址用的寄存器主要有哪些呢?我們前面提到的有四個(gè),R0、R1、DPTR、SP 寄存器間接尋址范圍總結(jié):1、內(nèi)部RAM低128單元。對(duì)內(nèi)部RAM低128單元的間接尋址,應(yīng)使用R0或R1作間址寄存器,其通用形式為@Ri(i=0或1)。 2、外部RAM 64KB。對(duì)外部RAM64KB的間接尋址,應(yīng)使用@DPTR作間址尋址寄存器,其形式為:@DPTR。例如MOVX A,@DPTR;其功能是把DPTR指定的外部RAM的單元的內(nèi)容送入累加器A中。外部RAM的低256單元是一個(gè)特殊的尋址區(qū),除可以用DPTR作間址寄存器尋址外,還可以用R0或R1作間址寄存器尋址。例如MOVX  A,@R0;這條指令的意思是,把R0指定的外部RAM單元的內(nèi)容送入累加器A。 堆棧操作指令(PUSH和POP)也應(yīng)算作是寄存器間接尋址,即以堆棧指針SP作間址寄存器的間接尋址方式。 寄存器間接尋址方式不可以訪問(wèn)特殊功能寄存器!! 寄存器間接尋址也須以寄存器符號(hào)的形式表示,為了區(qū)別寄存器尋址我寄存器間接尋址的區(qū)別,在寄存器間接尋址方式式中,寄存器的名稱(chēng)前面加前綴標(biāo)志“@”。 基址寄存器加變址寄存器的變址尋址 這種尋址方式以程序計(jì)數(shù)器PC或DPTR為基址寄存器,累加器A為變址寄存器,變址尋址時(shí),把兩者的內(nèi)容相加,所得到的結(jié)果作為操作數(shù)的地址。這種方式常用于訪問(wèn)程序存儲(chǔ)器ROM中的數(shù)據(jù)表格,即查表操作。變址尋址只能讀出程序內(nèi)存入的值,而不能寫(xiě)入,也就是說(shuō)變址尋址這種方式只能對(duì)程序存儲(chǔ)器進(jìn)行尋址,或者說(shuō)它是專(zhuān)門(mén)針對(duì)程序存儲(chǔ)器的尋址方式。例:MOVC  A,@A+DPTR這條指令的功能是把DPTR和A的內(nèi)容相加,再把所得到的程序存儲(chǔ)器地址單元的內(nèi)容送A假若指令執(zhí)行前A=54H,DPTR=3F21H,則這條指令變址尋址形成的操作數(shù)地址就是54H+3F21H=3F75H。如果3F75H單元中的內(nèi)容是7FH,則執(zhí)行這條指令后,累加器A中的內(nèi)容就是7FH。 變址尋址的指令只有三條,分別如下:JMP    @A+DPTRMOVC   A,@A+DPTRMOVC   A,@A+PC 第一條指令JMP @A+DPTR這是一條無(wú)條件轉(zhuǎn)移指令,這條指令的意思就是DPTR加上累加器A的內(nèi)容做為一個(gè)16位的地址,執(zhí)行JMP這條指令是,程序就轉(zhuǎn)移到A+DPTR指定的地址去執(zhí)行。 第二、三條指令MOVC   A,@A+DPTR和MOVC   A,@A+PC指令這兩條指令的通常用于查表操作,功能完全一樣,但使用起來(lái)卻有一定的差別,現(xiàn)詳細(xì)說(shuō)明如下。我們知道,PC是程序指針,是十六位的。DPTR是一個(gè)16位的數(shù)據(jù)指針寄存器,按理,它們的尋址范圍都應(yīng)是64K。我們?cè)趯W(xué)習(xí)特殊功能寄存器時(shí)已知道,程序計(jì)數(shù)器PC是始終跟蹤著程序的執(zhí)行的。也就是說(shuō),PC的值是隨程序的執(zhí)行情況自動(dòng)改變的,我們不可以隨便的給PC賦值。而DPTR是一個(gè)數(shù)據(jù)指針,我們就可以給空上數(shù)據(jù)指針DPTR進(jìn)行賦值。我們?cè)倏粗噶頜OVC   A,@A+PC這條指令的意思是將PC的值與累加器A的值相加作為一個(gè)地址,而PC是固定的,累加器A是一個(gè)8位的寄存器,它的尋址范圍是256個(gè)地址單元。講到這里,大家應(yīng)可明白,MOVC   A,@A+PC這條指令的尋址范圍其實(shí)就是只能在當(dāng)前指令下256個(gè)地址單元。所在,這在我們實(shí)際應(yīng)用中,可能就會(huì)有一個(gè)問(wèn)題,如果我們需要查詢(xún)的數(shù)據(jù)表在256個(gè)地址單元之內(nèi),則可以用MOVC   A,@A+PC這條指令進(jìn)行查表操作,如果超過(guò)了256個(gè)單元,則不能用這條指令進(jìn)行查表操作。剛才我們已說(shuō)到,DPTR是一個(gè)數(shù)據(jù)指針,這個(gè)數(shù)據(jù)指針我們可以給它賦值操作的。通過(guò)賦值操作。我們可以使MOVC   A,@A+DPTR這條指令的尋址范圍達(dá)到64K。這就是這兩條指令在實(shí)際應(yīng)用當(dāng)中要注意的問(wèn)題。 變址尋址方式是MCS-51單片機(jī)所獨(dú)有的一種尋址方式。 位尋址 80C51單片機(jī)有位處理功能,可以對(duì)數(shù)據(jù)位進(jìn)行操作,因此就有相應(yīng)的位尋址方式。所謂位尋址,就是對(duì)內(nèi)部RAM或可位尋址的特殊功能寄存器SFR內(nèi)的某個(gè)位,直接加以置位為1或復(fù)位為0。 位尋址的范圍,也就是哪些部份可以進(jìn)行位尋址: 1、我們?cè)诘谑n學(xué)習(xí)51單片機(jī)的存儲(chǔ)器結(jié)構(gòu)時(shí),我們已知道在單片機(jī)的內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM的低128單元中有一個(gè)區(qū)域叫位尋址區(qū)。它的單元地址是20H-2FH。共有16個(gè)單元,一個(gè)單元是8位,所以位尋址區(qū)共有128位。這128位都單獨(dú)有一個(gè)位地址,其位地址的名字就是00H-7FH。這里就有一個(gè)比較麻煩的問(wèn)題需要大家理解清楚了。我們?cè)谇懊娴膶W(xué)習(xí)中00H、01H。。。。7FH等等,所表示的都是一個(gè)字節(jié)(或者叫單元地址),而在這里,這些數(shù)據(jù)都變成了位地址。我們?cè)谥噶钪校蛘咴诔绦蛑腥绾蝸?lái)區(qū)分它是一個(gè)單元地址還是一個(gè)位地址呢?這個(gè)問(wèn)題,也就是我們現(xiàn)在正在研究的位尋址的一個(gè)重要問(wèn)題。其實(shí),區(qū)分這些數(shù)據(jù)是位地址還是單元地址,我們都有相應(yīng)的指令形式的。這個(gè)問(wèn)題我們?cè)诤竺娴闹噶钕到y(tǒng)學(xué)習(xí)中再加以論述。 2、對(duì)專(zhuān)用寄存器位尋址。這里要說(shuō)明一下,不是所有的專(zhuān)用寄存器都可以位尋址的。具體哪些專(zhuān)用寄存器可以哪些專(zhuān)用寄存器不可以,請(qǐng)大家回頭去看看我們前面關(guān)于專(zhuān)用寄存器的相關(guān)文章。一般來(lái)說(shuō),地址單元可以被8整除的專(zhuān)用寄存器,通常都可以進(jìn)行位尋址,當(dāng)然并不是全部,大家在應(yīng)用當(dāng)中應(yīng)引起注意。 專(zhuān)用寄存器的位尋址表示方法: 下面我們以程序狀態(tài)字PSW來(lái)進(jìn)行說(shuō)明 D7 D6 D5 D4 D3 D2 D1 D0 CY   AC  F0  RS1  RS0  OV    P  1、直接使用位地址表示:看上表,PSW的第五位地址是D5,所以可以表示為D5H   MOV  C,D5H 2、位名稱(chēng)表示:表示該位的名稱(chēng),例如PSW的位5是F0,所以可以用F0表示   MOV  C,F(xiàn)0 3、單元(字節(jié))地址加位表示:D0H單元位5,表示為DOH.5    MOV  C,D0H.5 4、專(zhuān)用寄存器符號(hào)加位表示:例如PSW.5    MOV C,PSW.5 這四種方法實(shí)現(xiàn)的功能都是相同的,只是表述的方式不同而已。 例題:   1. 說(shuō)明下列指令中源操作數(shù)采用的尋址方式。   MOV R5,R7 答案:寄存器尋址方式   MOV A,55H 直接尋址方式   MOV A,#55H 立即尋址方式   JMP @A+DPTR 變址尋址方式   MOV 30H,C 位尋址方式   MOV A,@R0 間接尋址方式   MOVX A,@R0 間接尋址方式 改錯(cuò)題   請(qǐng)判斷下列的MCS-51單片機(jī)指令的書(shū)寫(xiě)格式是否有錯(cuò),若有,請(qǐng)說(shuō)明錯(cuò)誤原因。   MOV R0,@r3 答案:間址寄存器不能使用R2~R7。   MOVC A,@R0+DPTR 變址尋址方式中的間址寄存器不可使用R0,只可使用A。   ADD R0,R1 運(yùn)算指令中目的操作數(shù)必須為累加器A,不可為R0。   MUL AR0 乘法指令中的乘數(shù)應(yīng)在B寄存器中,即乘法指令只可使用AB寄存器組合。

    標(biāo)簽: 單片機(jī)指令 系統(tǒng)原理

    上傳時(shí)間: 2013-11-11

    上傳用戶(hù):caozhizhi

  • SPCE061A的指令周期表.pdf

    SPCE061A的指令周期表 SPCE061A的指令周期表[注意]:表中目標(biāo)寄存器為PC時(shí),部分指令周期會(huì)發(fā)生改變;建議在非必要的情況下,盡量不用PC作為目標(biāo)寄存器。[符號(hào)約定]:表中符號(hào)代表的含義如下:R1,R2,r3,R4: 通用寄存器;BP(R5): 基址指針寄存器,也可以作為通用寄存器使用;SR: 段寄存器;SP: 堆棧指針寄存器;PC: 程序計(jì)數(shù)器;N: 負(fù)標(biāo)志;Z: 零標(biāo)志;S: 符號(hào)標(biāo)志;C: 進(jìn)位標(biāo)志;IM6: 6位立即數(shù)尋址;IM16: 16位立即數(shù)尋址;[A6]: 存儲(chǔ)器絕對(duì)尋址,用6位立即數(shù)表示地址;[A16]: 存儲(chǔ)器絕對(duì)尋址,用16位立即數(shù)表示地址;R: 寄存器尋址;[R]: 寄存器間接尋址;[BP+IM6]: 變址尋址,地址偏移量為6位立即數(shù);[BP+IM16]: 變址尋址,地址偏移量為16位立即數(shù);{}: 可選項(xiàng);D: 數(shù)據(jù)段基址,D:或省略都表示基址為0(在第0頁(yè));#: 算術(shù)邏輯運(yùn)算符(不能為乘除);n 移位操作時(shí)的移位位數(shù)。

    標(biāo)簽: SPCE 061A 061

    上傳時(shí)間: 2013-10-23

    上傳用戶(hù):nanshan

  • MCS-51單片機(jī)實(shí)用子程序庫(kù)實(shí)驗(yàn)(七)

    標(biāo)號(hào): FTOD 功能:格式化浮點(diǎn)數(shù)轉(zhuǎn)換成雙字節(jié)定點(diǎn)數(shù)入口條件:格式化浮點(diǎn)操作數(shù)在[R0]中。出口信息:OV=1時(shí)溢出,OV=0時(shí)轉(zhuǎn)換成功:定點(diǎn)數(shù)的絕對(duì)值在[R0]中(雙字節(jié)),數(shù)符在位1FH中,F(xiàn)0=1 時(shí)為整數(shù),CY=1時(shí)為一字節(jié)整數(shù)一字節(jié)小數(shù),否則為純小數(shù)。影響資源:PSW、A、B、R2、r3、R4、位1FH 堆棧需求: 6字節(jié)FTOD: LCALL MVR0 ;將[R0]傳送到第一工作區(qū)MOV A,R2JZ FTD4 ;階碼為零,純小數(shù)JB ACC.7,FTD4;階碼為負(fù),純小數(shù)

    標(biāo)簽: MCS 51 單片機(jī)實(shí)用 程序庫(kù)

    上傳時(shí)間: 2013-10-15

    上傳用戶(hù):洛木卓

  • MCS-51單片機(jī)實(shí)用子程序庫(kù)實(shí)驗(yàn)(三)

    入口條件:待轉(zhuǎn)換的雙字節(jié)BCD碼小數(shù)在R4、R5中。出口信息:轉(zhuǎn)換后的雙字節(jié)十六進(jìn)制小數(shù)在R2、r3中。*影響資源:PSW、A、R2~R6 堆棧需求: 2字節(jié)BHD2: MOV R6,#10H ;準(zhǔn)備計(jì)算兩個(gè)字節(jié)小數(shù)BHD3: MOV A,R5 ;按十進(jìn)制倍增

    標(biāo)簽: MCS 51 單片機(jī)實(shí)用 程序庫(kù)

    上傳時(shí)間: 2013-10-23

    上傳用戶(hù):zhang_yi

  • MCS-51單片機(jī)實(shí)用子程序庫(kù)實(shí)驗(yàn)(二)

    入口條件:被除數(shù)在R2、r3、R4、R5中,除數(shù)在R6、R7中。出口信息:OV=0時(shí)商在R2、r3中,OV=1時(shí)溢出。影響資源:PSW、A、B、R1~R7 堆棧需求: 5字節(jié)DIVS: LCALL MDS ;計(jì)算結(jié)果的符號(hào)和兩個(gè)操作數(shù)的絕對(duì)值PUSH PSW ;保存結(jié)果的符號(hào)LCALL DIVD ;計(jì)算兩個(gè)絕對(duì)值的商JNB OV,DVS1 ;溢出否?POP ACC ;溢出,放去結(jié)果的符號(hào),保留溢出標(biāo)志

    標(biāo)簽: MCS 51 單片機(jī)實(shí)用 程序庫(kù)

    上傳時(shí)間: 2013-11-09

    上傳用戶(hù):lht618

  • 用單片機(jī)AT89C51改造普通雙桶洗衣機(jī)

    用單片機(jī)AT89C51改造普通雙桶洗衣機(jī):AT89C2051作為AT89C51的簡(jiǎn)化版雖然去掉了P0、P2等端口,使I/O口減少了,但是卻增加了一個(gè)電壓比較器,因此其功能在某些方面反而有所增強(qiáng),如能用來(lái)處理模擬量、進(jìn)行簡(jiǎn)單的模數(shù)轉(zhuǎn)換等。本文利用這一功能設(shè)計(jì)了一個(gè)數(shù)字電容表,可測(cè)量容量小于2微法的電容器的容量,采用3位半數(shù)字顯示,最大顯示值為1999,讀數(shù)單位統(tǒng)一采用毫微法(nf),量程分四檔,讀數(shù)分別乘以相應(yīng)的倍率。電路工作原理  本數(shù)字電容表以電容器的充電規(guī)律作為測(cè)量依據(jù),測(cè)試原理見(jiàn)圖1。電源電路圖。 壓E+經(jīng)電阻R給被測(cè)電容CX充電,CX兩端原電壓隨充電時(shí)間的增加而上升。當(dāng)充電時(shí)間t等于RC時(shí)間常數(shù)τ時(shí),CX兩端電壓約為電源電壓的63.2%,即0.632E+。數(shù)字電容表就是以該電壓作為測(cè)試基準(zhǔn)電壓,測(cè)量電容器充電達(dá)到該電壓的時(shí)間,便能知道電容器的容量。例如,設(shè)電阻R的阻值為1千歐,CX兩端電壓上升到0.632E+所需的時(shí)間為1毫秒,那么由公式τ=RC可知CX的容量為1微法。  測(cè)量電路如圖2所示。A為AT89C2051內(nèi)部構(gòu)造的電壓比較器,AT89C2051 圖2 的P1.0和P1.1口除了作I/O口外,還有一個(gè)功能是作為電壓比較器的輸入端,P1.0為同相輸入端,P1.1為反相輸入端,電壓比較器的比較結(jié)果存入P3.6口對(duì)應(yīng)的寄存器,P3.6口在AT89C2051外部無(wú)引腳。電壓比較器的基準(zhǔn)電壓設(shè)定為0.632E+,在CX兩端電壓從0升到0.632E+的過(guò)程中,P3.6口輸出為0,當(dāng)電池電壓CX兩端電壓一旦超過(guò)0.632E+時(shí),P3.6口輸出變?yōu)?。以P3.6口的輸出電平為依據(jù),用AT89C2051內(nèi)部的定時(shí)器T0對(duì)充電時(shí)間進(jìn)行計(jì)數(shù),再將計(jì)數(shù)結(jié)果顯示出來(lái)即得出測(cè)量結(jié)果。整機(jī)電路見(jiàn)圖3。電路由單片機(jī)電路、電容充電測(cè)量電路和數(shù)碼顯示電路等 圖3 部分組成。AT89C2051內(nèi)部的電壓比較器和電阻R2-R7等組成測(cè)量電路,其中R2-R5為量程電阻,由波段開(kāi)關(guān)S1選擇使用,電壓比較器的基準(zhǔn)電壓由5V電源電壓經(jīng)R6、RP1、R7分壓后得到,調(diào)節(jié)RP1可調(diào)整基準(zhǔn)電壓。當(dāng)P1.2口在程序的控制下輸出高電平時(shí),電容CX即開(kāi)始充電。量程電阻R2-R5每檔以10倍遞減,故每檔顯示讀數(shù)以10倍遞增。由于單片機(jī)內(nèi)部P1.2口的上拉電阻經(jīng)實(shí)測(cè)約為200K,其輸出電平不能作為充電電壓用,故用R5兼作其上拉電阻,由于其它三個(gè)充電電阻和R5是串聯(lián)關(guān)系,因此R2、r3、R4應(yīng)由標(biāo)準(zhǔn)值減去1K,分別為999K、99K、9K。由于999K和1M相對(duì)誤差較小,所以R2還是取1M。數(shù)碼管DS1-DS4、電阻R8-R14等組成數(shù)碼顯示電路。本機(jī)采用動(dòng)態(tài)掃描顯示的方式,用軟件對(duì)字形碼譯碼。P3.0-P3.5、P3.7口作數(shù)碼顯示七段筆劃字形碼的輸出,P1.3-P1.6口作四個(gè)數(shù)碼管的動(dòng)態(tài)掃描位驅(qū)動(dòng)碼輸出。這里采用了共陰數(shù)碼管,由于AT89C2051的P1.3-P1.6口有25mA的下拉電流能力,所以不用三極管就能驅(qū)動(dòng)數(shù)碼管。R8-R14為P3.0-P3.5、P3.7口的上拉電阻,用以驅(qū)動(dòng)數(shù)碼管的各字段,當(dāng)P3的某一端口輸出低電平時(shí)其對(duì)應(yīng)的字段筆劃不點(diǎn)亮,而當(dāng)其輸出高電平時(shí),則對(duì)應(yīng)的上拉電阻即能點(diǎn)亮相應(yīng)的字段筆劃。

    標(biāo)簽: 89C C51 AT 89

    上傳時(shí)間: 2013-12-31

    上傳用戶(hù):ming529

  • 基于單片機(jī)的紅外門(mén)進(jìn)控制系統(tǒng)設(shè)計(jì)與制作(含源程序和原理圖)

    基于單片機(jī)的紅外門(mén)進(jìn)控制系統(tǒng)設(shè)計(jì)與制作:我們所做的創(chuàng)新實(shí)驗(yàn)項(xiàng)目“基于單片機(jī)的紅外門(mén)控系統(tǒng)”已基本完成,現(xiàn)將其工作原理簡(jiǎn)要說(shuō)明。該系統(tǒng)主要分為兩大部分:一是紅外傳感器部分。二是單片機(jī)計(jì)數(shù)顯示控制部分。基本電路圖如下:其中紅外傳感器部分我們采用紅外對(duì)管實(shí)現(xiàn),紅外對(duì)管平行放置,平常處于接收狀態(tài),經(jīng)比較器輸出低電平,當(dāng)有人經(jīng)過(guò)時(shí),紅外線(xiàn)被擋住,接收管接收不到紅外線(xiàn),經(jīng)比較器輸出高電平。這樣,當(dāng)有人經(jīng)過(guò)時(shí)便會(huì)產(chǎn)生一個(gè)電平的跳變。單片機(jī)控制部分主要是通過(guò)外部?jī)蓚€(gè)中斷判斷是否有人經(jīng)過(guò),如果有人經(jīng)過(guò),由于電平跳變的產(chǎn)生,進(jìn)入中斷服務(wù)程序,這里我們采用了兩對(duì)紅外傳感器接到兩個(gè)外部中斷口,中斷0作為入口,實(shí)現(xiàn)加1操作,中斷1作為出口,實(shí)現(xiàn)減1操作。另外,我們通過(guò)P0口控制室內(nèi)燈的亮暗,當(dāng)寄存器計(jì)數(shù)值為0時(shí),熄燈,不為0時(shí),燈亮。顯示部分,采用兩位數(shù)碼管動(dòng)態(tài)顯示,如有必要,可以很方便的擴(kuò)展為四位計(jì)數(shù)。精益求精!在實(shí)驗(yàn)過(guò)程中,我們走了非常多的彎路,做出來(lái)的東西根本不是自己想要的,我們本想做成室內(nèi)只有一個(gè)門(mén)的進(jìn)出計(jì)數(shù),原理已清楚,即在門(mén)的兩邊放置兩對(duì)紅外對(duì)管,進(jìn)出時(shí),擋住兩對(duì)對(duì)管的順序不同,因此,可判斷是進(jìn)入還是出去,從而實(shí)現(xiàn)加減計(jì)數(shù),編程時(shí),可分別在兩個(gè)中斷服務(wù)程序的入口置標(biāo)志位,根據(jù)標(biāo)志位判斷進(jìn)出,詳細(xì)內(nèi)容在程序部分。理論如此,但在實(shí)際過(guò)程中,還是發(fā)現(xiàn)實(shí)現(xiàn)不了上述功能,我們初步判定認(rèn)為是程序掌握得不夠好,相信隨著自己對(duì)單片機(jī)了解的深入,應(yīng)該會(huì)做出更好的 (因?yàn)槲覀兪桥R時(shí)學(xué)的單片機(jī)),程序的具體內(nèi)容如下: $MOD52    ORG   0000H         LJMP  MAIN         ORG   0003H         LJMP  0100H         ORG   0013H         LJMP  0150H         ORG   0050HMAIN:    CLR   A         MOV   30H , A           ;初始化緩存區(qū)         MOV   31H , A         MOV   32H , A         MOV   33H , A         MOV   R6  , A         MOV   R7  , A  SETB  EA  SETB  EX0  SETB  EX1  SETB  IT0  SETB  IT1  SETB  PX1NEXT1:   ACALL HEXTOBCDD        ;調(diào)用數(shù)制轉(zhuǎn)換子程序         ACALL DISPLAY          ;調(diào)用顯示子程序         LJMP  NEXT1          ORG   0100H  ;中斷0服務(wù)程序 LCALL  DELY mov 70h,#2 djnz 70h,next JBC  F0,NEXT         SETB F0        CLR P0.0 LCALL  DELY0 SETB   P0.0                  MOV   A , R7   ADD   A , #1   MOV   R7, A   MOV   A , R6         ADDC  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT:  RETI  ORG   0150H    ;中斷1服務(wù)程序 LCALL  DELY mov 70h,#2 djnz 70h,next2 JBC  F0,NEXT2 SETB  F0 CLR P0.0 LCALL  DELY0 SETB   P0.0    CLR C                     MOV   A , R7   SUBB   A , #1  MOV   R7, A  MOV   A , R6   SUBB  A , #0  MOV   R6 , A  CJNE  R6 , #07H , NEXT2  CLR   A  MOV   R6 , A  MOV   R7 , ANEXT2:  RETI   ORG   0200HHEXTOBCDD:MOV  A , R6               ;由十六進(jìn)制轉(zhuǎn)化為十進(jìn)制         PUSH  ACC         MOV   A , R7         PUSH  ACC  MOV   A , R2         PUSH  ACC  CLR   A         MOV   r3 , A  MOV   R4 , A  MOV   R5 , A  MOV   R2 , #10HHB3:     MOV   A  , R7              ;將十六進(jìn)制中最高位移入進(jìn)位位中         RLC   A  MOV   R7 , A  MOV   A  , R6  RLC   A  MOV   R6 , A  MOV   A  , R5              ;每位數(shù)加上本身相當(dāng)于將這個(gè)數(shù)乘以2  ADDC  A  , R5  DA    A  MOV   R5 , A  MOV   A  , R4  ADDC  A  , R4  DA    A                   ;十進(jìn)制調(diào)整  MOV   R4 , A  MOV   A  , r3  ADDC  A  , r3  DJNZ  R2 , HB3  POP   ACC   MOV   R2 , A  POP   ACC   MOV   R7 , A  POP   ACC  MOV   R6 , A  RET  ORG   0250HDISPLAY:  MOV   R0 , #30H         MOV   A  , R5  ANL   A  , #0FH  MOV   @R0 , A  MOV   A  , R5  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   A  , R4  ANL   A , #0FH  INC   R0  MOV   @R0 , A  MOV   A   , R4  SWAP  A  ANL   A  , #0FH  INC   R0  MOV   @R0 , A  MOV   R0 , #30H  MOV   R2 , #11111110BAGAIN:   MOV   A  , R2         MOV   P2 , A         MOV   A  , @R0  MOV   DPTR , #TAB  MOVC  A  , @A+DPTR  MOV   P1 , A  ACALL DELAY  INC   R0  MOV   A  , R2  RL    A  MOV   R2 , A  JB    ACC.4  , AGAIN   RETTAB:     DB    03FH , 06H , 5BH , 4FH , 66H , 6DH , 7DH , 07H , 7FH , 6FH   ;七段碼表DELY:    MOV   R1,#80D1:        MOV    R2,#100             DJNZ   R2,$ DJNZ    R1,D1 RET DELAY:   MOV   TMOD , #01H           ;延時(shí)子程序         MOV   TL0  , #0FEH         MOV   TH0  , #0FEH  SETB  TR0WAIT:    JNB   TF0  , WAIT         CLR   TF0  CLR   TR0  RETDELY0:   MOV  R1,  #200D3:  MOV  R2,#250          DJNZ  R2,$  DJNZ  R1,D3    RET          END       該系統(tǒng)實(shí)際應(yīng)用廣泛。可用在生產(chǎn)線(xiàn)上產(chǎn)品數(shù)量統(tǒng)計(jì)、公交車(chē)智能計(jì)數(shù)問(wèn)候(需添加語(yǔ)音芯片)、超市內(nèi)人數(shù)統(tǒng)計(jì)等公共場(chǎng)合。另外,添加串口通信部分便可實(shí)現(xiàn)與PC數(shù)據(jù)交換的功能。   由于,實(shí)驗(yàn)簡(jiǎn)化了,剩下不少零件和資金,所以我們又做了兩項(xiàng)其他的實(shí)驗(yàn)。

    標(biāo)簽: 單片機(jī) 紅外 控制系統(tǒng)設(shè)計(jì) 原理圖

    上傳時(shí)間: 2013-12-22

    上傳用戶(hù):tangsiyun

  • 自制微型51/AVR通用編程器

    微型51/AVR 編程器套件裝配說(shuō)明書(shū) 請(qǐng)您在動(dòng)手裝配這個(gè)編程器之前,務(wù)必先看完本說(shuō)明書(shū),避免走彎路。 1.收到套件后請(qǐng)對(duì)照元器件列表檢查一下,元件、配件是否齊全? Used  Part Type        Designator ==== ================ ========== 1    1k               R6         1    1uf 50V          C11        5    2k2              R2 r3 R4 R5 R11     1    10K*8            RN1        2    11.0592MHZ       Q1 Q2      1    12V,0.5W         D2         2    15k              R7 R8      2    21k              R9 R10     4    33p              C6 C7 C8 C9         1    47uf 25V         C10        1    74HC164          IC6        2    78L05            IC4 IC5    1    100uf 25V        C12        1    220R             R1         1    AT89C51          IC2        1    B40C800(W02)     D1         2    BS170            T1 T2      1    BS250            T3         1    DB9/F            J2         1    J1X2             J1         1    LED GN5          D3         1    LM317L           IC1        1    TLC2272          IC7        1    ZIF40            IC3        5    1uf              C1 C2 C3 C4 C5 另外,套件配有1.5米串行電纜一根和配套的PCB一塊,不含電源。編程器使用的15V交流電源或12V直流電源需要自己配套。2.裝配要點(diǎn):先焊接阻容元件,3個(gè)集成電路插座(IC2,IC7,IC6)其次是晶振, 全橋,穩(wěn)壓IC 等,然后焊接J2,最后焊接T1,T2,T3三只場(chǎng)效應(yīng)管。焊接場(chǎng)效應(yīng)管時(shí)務(wù)必按照以下方法:拔去電烙鐵的電源,使用電烙鐵余溫去焊接三只場(chǎng)效應(yīng)管,否則靜電很容易損壞管子。這是裝配成功的關(guān)鍵。這三只管子有問(wèn)題,最典型的現(xiàn)象是不能聯(lián)機(jī)。由于電源插座封裝比較特殊,國(guó)內(nèi)無(wú)法配套上,已改用電源線(xiàn)接線(xiàn)柱,可直接焊接在PCB板焊盤(pán)上,如下圖1所示(在下圖中兩個(gè)紅色圓圈內(nèi)指示的焊盤(pán)),然后在連接到套件中配套的電源插座上。最近有朋友反映用15V交流比較麻煩,還要另外配變壓器。如果要使用12V的直流電,無(wú)需將全橋焊上,將兩個(gè)接線(xiàn)柱分別焊接在全橋的正負(fù)輸出位置的焊盤(pán)上即可,如下圖2所示,藍(lán)色圓圈內(nèi)指示的焊盤(pán),連接電源的時(shí)候要注意正負(fù)極,不要接錯(cuò)了。方形焊盤(pán)是正極。40腳ZIF插座焊接前,應(yīng)該將BR1飛線(xiàn)焊接好。注意:由于焊盤(pán)比較小,注意焊接溫度,不要高溫長(zhǎng)時(shí)間反復(fù)焊接,會(huì)導(dǎo)致焊盤(pán)脫落。

    標(biāo)簽: AVR 51 編程器

    上傳時(shí)間: 2013-12-31

    上傳用戶(hù):caiguoqing

  • 基于AT89C2051的紅外遙控學(xué)習(xí)器源程序

    基于AT89C2051的紅外遙控學(xué)習(xí)器源程序6 源程序          ORG 0000H          AJMP MAIN          ORG 0003H          AJMP KEYPRESS          ORG 000BH           AJMP TIMEOUT          ORG 001BH          AJMP TIMEOUT           SENDDUAN   BIT P3.0          JIEDUAN    BIT P3.1          INTRPO     BIT P3.2          JIEXUAN    BIT P3.3          SENDLIGHT  BIT P3.4          JIELIGHT   BIT P3.5          CS         BIT P3.7          DATADUAN   BIT P1.6          CLK        BIT P1.7           JIANWEI    EQU R5          JIANMA     EQU R6          SHANGJIAN  EQU 07H;R7          OPENKEY    EQU 81H          CLOSEKEY   EQU 00H          CHUT0      EQU 11H          CHUT1      EQU 11H          BUFBEGIN   EQU 18H          OPENT1     EQU 88H          CLOSET1    EQU 00H          OPENT0     EQU 82H          CLOSET0    EQU 00H          DATABEG1   EQU 0AAH          DATABEG2   EQU 33H           ORG 0030HMAIN:     MOV  IE,#80H          MOV  IP,#00H          MOV  P3,#0FFH          CLR  CS          SETB P1.0          SETB P1.1          SETB P1.2          CLR  P1.3          CLR  P1.4          CLR  P1.5          CLR  P1.6          CLR  P1.7                    MOV  r3,#80H          MOV  R0,00HCYCLE1:   MOV  @R0,#00H          INC  R0          DJNZ r3,CYCLE1                    MOV  PSW,#00H          MOV  SP,#07H           MOV  TMOD,#11H          MOV  TCON,#00H START:    MOV  SP,#07H          SETB SENDDUAN          CLR  F0          SETB EXOWAITKEY:  MOV  C,F0          JNC  WAITKEY          CJNC JIANMA,#1BH,SEND          LCALL LEARNP          LJMP STARTSEND:     LCALL SENDP          LJMP START SENDP:    SETB SENDDUAN          CLR  F0          MOV  TMOD,#CHUT1

    標(biāo)簽: C2051 2051 89C AT

    上傳時(shí)間: 2013-10-15

    上傳用戶(hù):lyy1234

主站蜘蛛池模板: 金塔县| 西充县| 灵台县| 基隆市| 龙游县| 宁明县| 黑龙江省| 墨竹工卡县| 唐山市| 吴江市| 武安市| 金昌市| 宁城县| 福清市| 乐至县| 威海市| 颍上县| 门头沟区| 沐川县| 科技| 龙海市| 伊宁县| 泽州县| 新野县| 丰都县| 库车县| 石河子市| 辽宁省| 泰州市| 郎溪县| 山阴县| 永寿县| 黄龙县| 柳江县| 丰城市| 筠连县| 阿克苏市| 九江县| 沭阳县| 新河县| 岱山县|