基于單片機(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í),紅外線被擋住,接收管接收不到紅外線,經(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)線上產(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
微型計(jì)算機(jī)課程設(shè)計(jì)論文—通用微機(jī)發(fā)聲程序的匯編設(shè)計(jì)
本文講述了在微型計(jì)算機(jī)中利用可編程時(shí)間間隔定時(shí)器的通用發(fā)聲程序設(shè)計(jì),重點(diǎn)講述了程序的發(fā)聲原理,節(jié)拍的產(chǎn)生,按節(jié)拍改變的動(dòng)畫(huà)程序原理,并以設(shè)計(jì)一個(gè)簡(jiǎn)單的樂(lè)曲評(píng)分程序?yàn)橐樱治龀绦蛟O(shè)計(jì)的細(xì)節(jié)。關(guān)鍵字:微機(jī) 8253 通用發(fā)聲程序 動(dòng)畫(huà)技術(shù) 直接寫(xiě)屏
1. 可編程時(shí)間間隔定時(shí)器8253在通用個(gè)人計(jì)算機(jī)中,有一個(gè)可編程時(shí)間間隔定時(shí)器8253,它能夠根據(jù)程序提供的計(jì)數(shù)值和工作方式,產(chǎn)生各種形狀和各種頻率的計(jì)數(shù)/定時(shí)脈沖,提供給系統(tǒng)各個(gè)部件使用。本設(shè)計(jì)是利用計(jì)算機(jī)控制發(fā)聲的原理,編寫(xiě)演奏樂(lè)曲的程序。 在8253/54定時(shí)器內(nèi)部有3個(gè)獨(dú)立工作的計(jì)數(shù)器:計(jì)數(shù)器0,計(jì)數(shù)器1和計(jì)數(shù)器2,每個(gè)計(jì)數(shù)器都分配有一個(gè)斷口地址,分別為40H,41H和42H.8253/54內(nèi)部還有一個(gè)公用的控制寄存器,端地址為43H.端口地址輸入到8253/54的CS,AL,A0端,分別對(duì)3個(gè)計(jì)數(shù)器和控制器尋址. 對(duì)8353/54編程時(shí),先要設(shè)定控制字,以選擇計(jì)數(shù)器,確定工作方式和計(jì)數(shù)值的格式.每計(jì)數(shù)器由三個(gè)引腳與外部聯(lián)系,見(jiàn)教材第320頁(yè)圖9-1.CLK為時(shí)鐘輸入端,GATE為門(mén)控信號(hào)輸入端,OUT為計(jì)數(shù)/定時(shí)信號(hào)輸入端.每個(gè)計(jì)數(shù)器中包含一個(gè)16位計(jì)數(shù)寄存器,這個(gè)計(jì)數(shù)器時(shí)以倒計(jì)數(shù)的方式計(jì)數(shù)的,也就是說(shuō),從計(jì)數(shù)初值逐次減1,直到減為0為止. 8253/54的三個(gè)計(jì)數(shù)器是分別編程的,在對(duì)任一個(gè)計(jì)數(shù)器編程時(shí),必須首先講控制字節(jié)寫(xiě)入控制寄存器.控制字的作用是告訴8253/54選擇哪個(gè)計(jì)數(shù)器工作,要求輸出什么樣的脈沖波形.另外,對(duì)8253/54的初始化工作還包括,向選定的計(jì)數(shù)器輸入一個(gè)計(jì)數(shù)初值,因?yàn)檫@個(gè)計(jì)數(shù)值可以是8為的,也可以是16為的,而8253/5的數(shù)據(jù)總線是8位的,所以要用兩條輸出指令來(lái)寫(xiě)入初值.下面給出8253/54初始化程序段的一個(gè)例子,將計(jì)數(shù)器2設(shè)定為方式3,(關(guān)于計(jì)數(shù)器的工作方式參閱教材第325—330頁(yè))計(jì)數(shù)初值為65536. MOV AL,10110110B ;選擇計(jì)數(shù)器2,按方式3工作,計(jì)數(shù)值是二進(jìn)制格式 OUT 43H,AL ; j將控制字送入控制寄存器 MOV AL,0 ;計(jì)數(shù)初值為0 OUT 42H,AL ;將計(jì)數(shù)初值的低字節(jié)送入計(jì)數(shù)器2 OUT 42H,AL ;將計(jì)數(shù)初值的高字節(jié)送入計(jì)數(shù)器2 在IBM PC中8253/54的三個(gè)時(shí)鐘端CLK0,CLK1和CLK2的輸入頻率都是1.1931817MHZ. PC機(jī)上的大多數(shù)I/O都是由主板上的8255(或8255A)可編程序外圍接口芯片(PPI)管理的.關(guān)于8255A的結(jié)構(gòu)和工作原理及應(yīng)用舉例參閱教材第340—373頁(yè).教材第364頁(yè)的”P(pán)C/XT機(jī)中的揚(yáng)聲器接口電路”一節(jié)介紹了揚(yáng)聲器的驅(qū)動(dòng)原理,并給出了通用發(fā)聲程序.本設(shè)計(jì)正是基于這個(gè)原理,通過(guò)編程,控制加到揚(yáng)聲器上的信號(hào)的頻率,奏出樂(lè)曲的.2.發(fā)聲程序的設(shè)計(jì)下面是能產(chǎn)生頻率為f的通用發(fā)聲程序:MOV AL, 10110110B ;8253控制字:通道2,先寫(xiě)低字節(jié),后寫(xiě)高字節(jié) ;方式3,二進(jìn)制計(jì)數(shù)OUT 43H, AL ;寫(xiě)入控制字MOV DX, 0012H ;被除數(shù)高位MOV AX, 35DEH ;被除數(shù)低位 DIV ID ;求計(jì)數(shù)初值n,結(jié)果在AX中OUT 42H, AL ;送出低8位MOV AL, AHOUT 42H,AL ;送出高8位IN AL, 61H ;讀入8255A端口B的內(nèi)容MOV AH, AL ;保護(hù)B口的原狀態(tài)OR AL, 03H ;使B口后兩位置1,其余位保留OUT 61H,AL ;接通揚(yáng)聲器,使它發(fā)聲
標(biāo)簽:
微型計(jì)算機(jī)
發(fā)聲程序
論文
微機(jī)
上傳時(shí)間:
2013-10-17
上傳用戶(hù):sunjet