|
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
了解遙控器的請(qǐng)幫忙:PIC能定義一個(gè)32個(gè)字節(jié)的變量嗎? |
作者:music513 欄目:單片機(jī) |
我要作一個(gè)遙控器,要存遙控編碼,我找了一些資料,紅外的好象都有32位碼和兩位引導(dǎo)碼,我想用一個(gè)32位的變量來(lái)表示一組編碼,然后通過(guò)移位輸出。對(duì)應(yīng)的1,0用相應(yīng)采集到的格式輸出, 這只是我的一個(gè)設(shè)想,我感到我的壓力挺大的,請(qǐng)各位大俠多多指點(diǎn)! 還有:大家有沒(méi)更好的辦法來(lái)解決這個(gè)自學(xué)習(xí)遙控器。程序也好,流程也好! |
2樓: | >>參與討論 |
作者: etter 于 2003/8/5 9:18:00 發(fā)布:
你可以用c來(lái)定義 |
3樓: | >>參與討論 |
作者: imwangyi 于 2003/8/5 9:55:00 發(fā)布:
32位不就是4個(gè)8位么? 很簡(jiǎn)單的,就是用移位就可以了,很簡(jiǎn)單的,無(wú)需用C語(yǔ)言。 |
4樓: | >>參與討論 |
作者: Wxy8030 于 2003/8/5 10:18:00 發(fā)布:
暈——C能做到的,匯編就不能做到? 樓主的題目沒(méi)看明白——到底是32個(gè)字節(jié),還是32個(gè)位? |
5樓: | >>參與討論 |
作者: chinasg001 于 2003/8/5 16:30:00 發(fā)布:
C51系列可以用 LONG 來(lái)定義一個(gè)32位的變量 |
6樓: | >>參與討論 |
作者: music513 于 2003/8/5 19:19:00 發(fā)布:
32位!我知道了,用指針來(lái)定義! |
7樓: | >>參與討論 |
作者: PIIICPU 于 2003/8/5 19:29:00 發(fā)布:
到底用什么進(jìn)行PIC單片機(jī)編程呀? |
8樓: | >>參與討論 |
作者: music513 于 2003/8/5 19:34:00 發(fā)布:
我是用匯編!PIC特有的那種 |
9樓: | >>參與討論 |
作者: zwn001 于 2003/8/6 10:50:00 發(fā)布:
不比煩惱 紅外編碼芯片你不管它它有多少為編碼,它的0和1的編碼方式一般如下 1----用3個(gè)連續(xù)高脈沖和一個(gè)低脈沖表示 0----用3個(gè)連續(xù)低脈沖和一個(gè)高脈沖表示 這種方式也可以理解為占空比為4/1數(shù)字調(diào)制,你只需用啟用中斷,紅外接受引腳聯(lián)MCU某一下降延中斷引腳即可,中斷后打開(kāi)計(jì)數(shù)器,每次電平翻轉(zhuǎn)時(shí)把計(jì)數(shù)器的值入寄存器保護(hù),所有接收后,可以通過(guò)串口松給計(jì)算機(jī)分析得出他的編碼就可 |
10樓: | >>參與討論 |
作者: liuming 于 2003/8/6 11:18:00 發(fā)布:
哦 |
11樓: | >>參與討論 |
作者: music513 于 2003/8/7 18:29:00 發(fā)布:
zwn001,我想再和你聊一下! 好象很多紅外的編解碼芯片的0,1是不一樣的。我見(jiàn)過(guò)的還有: 0:高低,1:高低低低 如:UPD6121G 0:1/3占空比,1:2/3占空比 如:HT6P20 還有你說(shuō)在每次電平翻轉(zhuǎn)時(shí)把計(jì)數(shù)器的值入寄存器保護(hù),那不是一串編碼就要32*2=64個(gè)字節(jié),好像是很占空間啊!有沒(méi)有一個(gè)辦法收集到0和1的編碼,然后用8位*4=4個(gè)字節(jié)來(lái)表示一串編碼呢? 請(qǐng)不吝賜教! |
12樓: | >>參與討論 |
作者: wpyan 于 2003/8/8 0:54:00 發(fā)布:
你可以這樣的~ 你可以只是在開(kāi)始時(shí)候識(shí)別引導(dǎo)碼,然后只要分析高電平或低電平,這樣就可以做到一位代表一個(gè)碼了,那就是32位了,我的6121就是這樣解碼的,呵呵 |
13樓: | >>參與討論 |
作者: zwn001 于 2003/8/8 9:00:00 發(fā)布:
大膽做 要了解一個(gè)未知的遙控器,首先要分析其脈沖流,從而了解其脈沖波形特征(以何種方式攜帶“0”、“1”信息),進(jìn)而了解其編碼規(guī)律 就向你說(shuō)的不管那一種器件,0和1的表示方式如何,但他的原理都是以樣的。脈沖流的分析應(yīng)從分析脈沖的高、低電平寬度入手如果沒(méi)有紅外遙控信號(hào)到來(lái),接收器的輸出端口PO保持高電平;當(dāng)接收到紅外遙控信號(hào)時(shí),接收器件信號(hào)轉(zhuǎn)換成脈沖序列加到CPU的中斷輸入引腳。用軟件測(cè)試引腳的邏輯電平,同時(shí)啟動(dòng)TC計(jì)時(shí)器,測(cè)量該引腳分別為邏輯“0”和邏輯“1”情況下的時(shí)間值,存儲(chǔ)起來(lái),然后打印、分析;或者一個(gè)解碼工裝,可以顯示解碼結(jié)果或帶有串口,把數(shù)據(jù)存到計(jì)算機(jī),然后根據(jù)新片資料的出每一中按鍵的解碼,在正式的應(yīng)用中只需把解碼列表,同樣的解碼程序,這時(shí)只要把接收的信息同列表對(duì)比是那一編碼就去執(zhí)行相應(yīng)命令。 例:有一款紅外編碼芯片1用3個(gè)高脈沖1個(gè)低脈沖 0用1個(gè)高脈沖3個(gè)低脈沖 一個(gè)脈沖的時(shí)間位42us |
14樓: | >>參與討論 |
作者: zongyi 于 2003/8/8 14:27:00 發(fā)布:
? 做自學(xué)習(xí)紅外遙控器最需要了解兩點(diǎn): 1、用什么MCU ? 2、需要學(xué)習(xí)固定格式的紅外遙控碼還是萬(wàn)能遙控? 固定格式的碼好辦解碼存儲(chǔ)就可以了(占很少的RAM和EEROM). 萬(wàn)能紅外學(xué)習(xí)遙控如果MCU資源比較好的話也很好辦一般是通過(guò)學(xué)習(xí)脈寬的辦法 我以前用PIC12CE518作了一個(gè)萬(wàn)能紅外學(xué)習(xí)遙控調(diào)光調(diào)速開(kāi)關(guān)(并不是所有的遙控碼比如自定義的>64BIT的碼等),由于RAM和EEROM有限,學(xué)習(xí)的數(shù)據(jù)經(jīng)過(guò)了壓縮,實(shí)際上效果還不是很好.我想改成PIC12F629可能好做一點(diǎn)! |
15樓: | >>參與討論 |
作者: MUSIC513 于 2003/8/8 20:19:00 發(fā)布:
再問(wèn)一下! 我很急的,我答應(yīng)別人11號(hào)之前要寫(xiě)完程序,AD轉(zhuǎn)換,鍵盤(pán)掃描我都完成了,就是編碼采集這一塊還是不太清楚。比如UPD6121G是用10表示0,1000表示1,那具體要怎么采集和壓縮呢?先謝了!我用的是PIC16F877。 |
16樓: | >>參與討論 |
作者: MUSIC513 于 2003/8/8 20:58:00 發(fā)布:
謝謝大家的幫忙! |
17樓: | >>參與討論 |
作者: music513 于 2003/8/10 20:32:00 發(fā)布:
vb yu ! vb yu ! |
18樓: | >>參與討論 |
作者: wuliao 于 2003/9/2 20:31:00 發(fā)布:
wpyan wpyan 你好!能把你的遙控解碼程序給我一分嗎?謝謝!!romking@163.com |
|
|
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào) |