这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » PWM码简介及解码原理

共1条 1/1 1 跳转至

PWM码简介及解码原理

助工
2007-08-04 07:22:19     打赏

PWM 码是一种脉宽调制码,它的组成为9MS 高电平和4MS 低电平引导脉冲,16 位系统识别码,8 位数据正码和8 位数据反码。我们要解的就数据码。一个PWM码的0是由一个0.58ms的低电平和一个0.58ms的高电平87组成,1 是由一个0.58ms 的低电平地和一个1.58ms 的高电平组成。解码原理是这样的。首先通过延时来丢开引导 码,然后通过解码丢掉16 位系统识别码,最后解系统正码和反码。解开后将正码取反看是否与反码相同,如果相同,即解开保存其值。解码0 或1是这样的。在低电平的时候等待,直到为高了后,用一个0.882ms 的延时去量,量完后,如果为低了,证明前面是一个0.58ms 低电平和一个0.58ms 高电平地组成,即保存一个0.如果为高,则证明是由一个0.58ms 低电平地和一个1.58ms 高电平组成,即保存一个1 .为1则再调一个延时,让它延到低电平。等待到高电平后重复上述过程解码。

遥控器解码

程序介绍:通过上述的解码原理,利用单片机的中断

口来测PWM码的宽度,通过本实验仪配备的遥控,单片

机解码在数码管上显示(图20)。实际应用例如:红外遥

控。

图20

程序实例(disvcd.asm):

ORG 0000H

AJMP MAIN

ORG 0013H

AJMP INT

ORG 0030H

MAIN:

88

SETB EA ;开所有中断

SETB IT1

SETB EX1;

MOV 33H,#00H

TIN:

;显示/////////////////////////////////////////

MOV A,33H

ANL A,#0FH

MOV DPTR,#SETTAB

MOVC A,@A+DPTR

MOV SBUF,A

D4: JNB TI,D4

CLR TI

MOV A,33H

ANL A,#0F0H

SWAP A

MOV DPTR,#SETTAB

MOVC A,@A+DPTR

MOV SBUF,A

D5: JNB TI,D5

CLR TI

ACALL YS1

AJMP TIN

;/////////////////////////////////////////////

INT: ;中断解码

CLR EA ;关所有中断

MOV R6,#10

SB: ACALL YS1 ;延时882m

89

JB P3.3,EXIT ;为高退出

DJNZ R6,SB ;延时9ms

JNB P3.3,$ ;避开9ms高电平引导

脉冲

ACALL YS2 ;避开4ms低电平引导脉冲

MOV R7,#16 ;忽略16位系统码

JJJJA: JNB P3.3,$

LCALL YS1

MOV C,P3.3

JNC UUUA

LCALL YS3 ;延时1ms

UUUA: DJNZ R7,JJJJA

;解系统正码和反码,取反后比较相等保存//////////

MOV R1,#1AH

MOV R2,#2

PP: MOV R3,#8

JJJJ: JNB P3.3,$

LCALL YS1

MOV C,P3.3

JNC UUU

LCALL YS3

UUU: MOV A,@R1

RRC A

MOV @R1,A

DJNZ R3,JJJJ

INC R1

DJNZ R2,PP

MOV A,1AH

90

CPL A

CJNE A,1BH,EXIT

;/////////////////////////////////////////////

MOV 33H,1AH

EXIT: SETB EA

RETI

YS1: MOV R4,#20

D1: MOV R5,#20

DJNZ R5,$

DJNZ R4,D1

RET

YS2: MOV R4,#10

D2: MOV R5,#235

DJNZ R5,$

DJNZ R4,D2

RET

YS3: MOV R4,#2

D3: MOV R5,#248

DJNZ R5,$

DJNZ R4,D3

RET

SETTAB:

DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,

0FEH,0F6H

DB 0EEH,3EH,9CH,7AH,9EH,8EH

END




关键词: 简介     解码     原理     一个    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]