|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
我都急得不行了 單片機(jī)自動判斷脈沖中的高電平寬還是低電平寬 |
| 作者:桐兒 欄目:單片機(jī) |
我都急得不行了,誰能幫幫我 怎樣才能讓單片機(jī)自動判斷脈沖中的高電平寬還是低電平寬,只要能夠判斷出來就行,在此先謝謝了 |
| 2樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/6/10 20:23:00 發(fā)布:
高電平的時(shí)候,打開計(jì)數(shù)器,數(shù)數(shù),存起來; 低電平,再打開計(jì)數(shù)器,數(shù)數(shù),再存起來; 把這2個(gè)數(shù),比較一下,就行了 |
|
| 3樓: | >>參與討論 |
| 作者: dopehc 于 2005/6/11 11:19:00 發(fā)布:
加個(gè)比較器 啊。 |
|
| 4樓: | >>參與討論 |
| 作者: hexiaoxiao 于 2005/6/11 11:20:00 發(fā)布:
看看有幫助嗎 MOV R0,#00H MOV R1,#28H MOV TMOD,#01H TK: JB P3.3,TK ;等待低電平到來 ;測低電平寬度 TK1: MOV TH0,#00H MOV TL0,#00H SETB TR0 TK2: JB TF0,TKE ;超時(shí)無效返回 JNB P3.3,TK2 CLR TR0 MOV A,TH0 MOVX @R0,A INC R0 MOV A,TL0 MOVX @R0,A INC R0 ;測高電平寬度 MOV TH0,#00H MOV TL0,#00H SETB TR0 TK3: JB TF0,TKE ;超時(shí)無效返回 JB P3.3,TK3 CLR TR0 MOV A,TH0 MOVX @R0,A INC R0 MOV A,TL0 MOVX @R0,A INC R0 DJNZ R1,TK1 ;循環(huán) TKE:RET |
|
| 5樓: | >>參與討論 |
| 作者: gordon_bo 于 2005/6/11 11:30:00 發(fā)布:
為什么要把R1設(shè)為28H?其它任意數(shù)可以么? 用DJNZ R1,TK1語句是不是要循環(huán)28H次? |
|
| 6樓: | >>參與討論 |
| 作者: gbchang 于 2005/6/11 11:48:00 發(fā)布:
請教:南方的老樹,是不是打開定時(shí)器?我想是不是這樣的。 先將定時(shí)器清零。 電平變化時(shí)啟動定時(shí)器,并記錄是高還是低。 電平再變化時(shí)記錄記錄定時(shí)值,將定時(shí)器清零。 電平再變化時(shí)再記錄記錄定時(shí)值,得到的兩值就分別是高低電平寬度。 |
|
| 7樓: | >>參與討論 |
| 作者: ptj_wing 于 2005/6/11 12:47:00 發(fā)布:
TO:hexiaoxiao 你真是熱心人.把源程序都寫出來了.贊一個(gè)! 想說一下的是,你的程序能測到的最大脈沖寬度是65536us吧. 如果在計(jì)數(shù)器溢出時(shí)再加個(gè)計(jì)數(shù)單元的話,是不是就可以測任意寬度的脈沖呢? |
|
| 8樓: | >>參與討論 |
| 作者: 南方的老樹 于 2005/6/11 13:52:00 發(fā)布:
是定時(shí)器,你說得是在定時(shí)器的范圍之內(nèi) 如果超出,這個(gè)方法就不行,常規(guī)的作法還是需要把溢出的數(shù)記下來,然后再相減 |
|
| 9樓: | >>參與討論 |
| 作者: hexiaoxiao 于 2005/6/11 14:21:00 發(fā)布:
回ptj_wing 你想記任意脈寬的電平,當(dāng)然可以啊!8051的128K RAM夠你用了,哈哈 程序也不是我寫的,偶然在網(wǎng)上看到的,就存了起來.以后用到就借鑒一下吧.. 這個(gè)程序也不是拿來就用的,可以舉一反三.靈活應(yīng)用吧! 大家多交流... |
|
| 10樓: | >>參與討論 |
| 作者: wnch 于 2005/6/11 16:50:00 發(fā)布:
我想可能還要告訴MM,什么時(shí)候打開計(jì)數(shù)器或者定時(shí)器計(jì)時(shí) 我想用兩個(gè)外部中斷應(yīng)該是可以的,應(yīng)該在中斷服務(wù)程序里面打開定時(shí)器計(jì)數(shù),且應(yīng)該在一個(gè)中斷服務(wù)程序里面將另一個(gè)中斷服務(wù)程序里面打開的定時(shí)器計(jì)數(shù)值讀出來。如果脈寬比較窄,定時(shí)器夠大,先不讀另一個(gè)定時(shí)器值,等到本定時(shí)器計(jì)數(shù)被中斷時(shí)做減法也是可以的,如果兩個(gè)外部中斷是同類型電平觸發(fā),那其中一個(gè)得接個(gè)反相器。 |
|
| 11樓: | >>參與討論 |
| 作者: gbchang 于 2005/6/11 16:51:00 發(fā)布:
“單片機(jī)內(nèi)部T1.T0只對下降沿計(jì)數(shù),我不明白” “我想要解決這個(gè)問題,必須對高電平,低電平分別計(jì)數(shù),而單片機(jī)內(nèi)部T1.T0只對下降沿計(jì)數(shù),我不明白” 首先,不是計(jì)脈沖數(shù),是在一個(gè)脈沖中間計(jì)時(shí); 可以用下降沿觸發(fā)檢測程序,然后就不用中斷了,在程序中用指令檢測上升沿;蛘呔筒挥弥袛,上/下沿都用指令檢測。 |
|
| 12樓: | >>參與討論 |
| 作者: 老怪物 于 2005/6/11 16:56:00 發(fā)布:
請我?guī)湍銛?shù). 1US數(shù)一次,數(shù)一次付我1分錢.哈哈 |
|
| 13樓: | >>參與討論 |
| 作者: ptj_wing 于 2005/6/12 11:05:00 發(fā)布:
呵呵,一般情況那也夠用了~~~ |
|
| 14樓: | >>參與討論 |
| 作者: hexiaoxiao 于 2005/6/13 8:03:00 發(fā)布:
D 樓主做得怎么樣了?怎么沒個(gè)音信? |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |