返回主页 单片机教程  XL2000开发板  单片机学习 自制编程器 单片机资料  电子技术  产品介绍  如何购买 进入论坛

 

<>51单片机学习网热心版主单片东东,收集整理的单片机教程课程(例子程序, 特别推荐!)转载请保留连接!
单片机简介与单片机的发展历史I/O 口功能实例流水灯和方波试验
定时器实例(1秒报警,200hz输出 200-250变化输出)

数码管0—9999 的循环显示

ADC0809模拟输入电压,在数码管上显示出来

ADC0809输入的两个不同电压数相加显示出来

软件滤波十六进制六位数加法(数码显示)求六位和中的最大值和最小值(数码显示)
求减去最大和最小值后的值(数码显示)除4所得软件滤波值(数码显示)
软件模拟一个振动传感器软件搜频的全过程在显示频率输出的同时显示AD值(数码显示)
过程检定(数码显示)

DA 转换三角波 正旋波 梯形波(dac0832)

串口通信,看到画面——“我爱单片机”。

按键数显,数码管显示加一
PWM码简介及解码原理--红外遥控原理与解码程序
智能定时的4位电子钟(带定时控制)智能红外工业控制器

51单片机学习网热心版主单片东东,收集整理的单片机教程课程(例子程序, 特别推荐!)转载请保留连接!

<>如果您有任何不明白的地方请参加51单片机学习网论坛讨论:

11.2 PWM码简介及解码原理

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则再调一个延时,让它延到低电平。等待到高电平后重复上述过程解码。

11.3 遥控器解码

程序介绍:通过上述的解码原理,利用单片机的中断口来测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