51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机源码 > 详细内容
较完美的读取各种遥控器键值数据的S51(汇编)
发布时间:2009/6/4  阅读次数:748  字体大小: 【】 【】【

作者:未知       来源:http://honggeng.spaces.live.com/

较完美的读取各种遥控器键值数据的S51端程序
;+++++++++++++++++++++++++++++
;系统常量定义
;+++++++++++++++++++++++++++++
ZHILING EQU P3.4       ;指令类
YDMCANSU EQU 12H   ;有无引导码
CJGCANSU EQU 13H   ;有无长间隔
WEIPD EQU 14H         ;位判断中间值
WEICHANG EQU 15H   ;位长
DQRMID EQU 10H ;当前终端号存放地址
DQRMDATA EQU 11H ;当前遥控指令存放地址
YDMB EQU 12H ;待发信号引导码倍数
YDJSMB EQU 13H ;待发信号引导结束码倍数
DJGMB EQU 14H ;待发信号短间隔码倍数
ONEB EQU 15H ;待发信号1时长倍数
ZEROB EQU 16H ;待发信号0时长倍数
XHFM EQU 17H ;反码否1为反0为不反
CJGYDMB EQU 18H     ;长间隔引导码倍数
CJGMB EQU 19H     ;长间隔码倍数
LFYDMB EQU 1AH ;连发引导码
LFYSMB EQU 1BH ;连发延时码
DFRMID EQU 1CH ;待发信号设备码前八位
DFRMIDF EQU 1DH   ;待发信号设备码后八位
DFRMDATA EQU 1EH ;待发信号数据码前八位
DFRMDATAF EQU 1FH   ;待发信号数据码后八位
  
ORG 0000H
AJMP MAIN
ORG 0003H
AJMP   P32
ORG 0023H
AJMP RECE
ORG 0040H
MAIN:
MOV P3,#0FFH
CLR P3.3
CLR P3.4
START:
setb ea
setb es
MOV SCON,#50H;设置成串口1方式
MOV TMOD,#20H;波特率发生器T1工作在模式2上
MOV PCON,#80H;波特率翻倍为2400x2=4800BPS
MOV TH1,#0F4H;预置初值(按照波特率2400BPS预置初值)
MOV TL1,#0F4H;预置初值(按照波特率2400BPS预置初值)
SETB TR1;启动定时器T1
CLR P3.3
;系统运行等待区,P3.3为系统运行标志位
JNB P3.3,$
CLR P3.3
MOV A,R0
CJNE A,#16H,ZLMN
AJMP CSJS
ZLMN:
CLR P3.4
CLR EA
ACALL ZHUANFA
SETB EA
AJMP START
CSJS:
SETB EX0
AJMP START
P32:
CLR EX0
MOV A,YDMCANSU
CJNE A,#01H, BSBM
JNB P3.2,$   ;等待引导码低电平结束
JB   P3.2,$   ;等待引导结束码高电平结束
BSBM:
MOV R1,#20H
MOV R4,WEICHANG
SBMSJS:MOV R5,#08
SBMFJS:JNB P3.2, $
MOV R6,WEIPD
ACALL BZYS
MOV C,P3.2
JNC L1
JB P3.2,$
L1: MOV A,@R1
RLC A
MOV @R1,A
DJNZ R5,SBMFJS
INC R1
MOV @R1,#0H
DJNZ R4,SBMSJS
BCJGM:
MOV A,CJGCANSU
CJNE A,#01H, BSJM
JNB P3.2,$   ;等待长间隔引导码低电平结束
JB P3.2,$     ;等待长间隔延时码高电平结束
BSJM:
MOV R4,WEICHANG
SJMSJS:MOV R5,#08
SJMFJS:JNB P3.2, $
MOV R6,WEIPD
ACALL BZYS
MOV C,P3.2
JNC L2
JB P3.2,$
L2: MOV A,@R1
RLC A
MOV @R1,A
DJNZ R5,SJMFJS
INC R1
MOV @R1,#0H
DJNZ R4,SJMSJS
MOV R6,#0FFH
ACALL BZYS
MOV R6,#0FFH
ACALL BZYS
MOV R6,#0FFH
ACALL BZYS
MOV R6,#0FFH
ACALL BZYS
MOV P1,21H
;发送遥控数据到PC
MOV R1,#20H
MOV R4,#04
FASONG:
MOV A,@R1
ACALL SEND
INC R1
DJNZ R4,FASONG
SETB EX0
RETI

SEND:
MOV SBUF,A
JNB TI,$
CLR TI
ret
BZYS:MOV R7,#50
DJNZ R7,$
DJNZ R6,BZYS
RET

  CHONGFA:
  
  MOV R6,A
  ACALL BZYS
  MOV R6,A
  ACALL BZYS
  MOV LFYSMB,#0H
;+++++++++++++++++++++++++++++
;转发
;+++++++++++++++++++++++++++++
ZHUANFA:
;以下是准备发送
YDM:
MOV A,YDMB
JZ SBMH
MOV R7,YDMB
ACALL ONE38KHZ
MOV R7,YDMB
ACALL ONE38KHZ
YDJSM:
MOV A,YDJSMB
JZ SBMH
;SETB P3.7
MOV R6,YDJSMB
ACALL BZYS
SBMH:
MOV A,DFRMID
ACALL LF
SBML:
MOV A,XHFM
JZ CJG
MOV A,DFRMIDF
ACALL LF
CJG:
MOV A,CJGMB
JZ SJM
MOV R7,CJGYDMB
ACALL ONE38KHZ
;SETB P3.7
MOV R6,CJGMB
ACALL BZYS
SJM:
MOV A,DFRMDATA
ACALL LF
SJMF:
MOV A,XHFM
JZ XHEND
MOV A,DFRMDATAF
ACALL LF
XHEND:
MOV R7,LFYDMB
ACALL ONE38KHZ
MOV A,LFYSMB
CJNE A,#0H,CHONGFA
SETB P3.7
XHJS:
RET

;此段为串行PC控制数据入口
RECE:
CLR EA ;暂时关闭CPU的所有中断请求
CLR RI
MOV A,SBUF
MOV 0EH,A
CJNE A,#0FEH,RECEPCEND
mov a,0fh
cjne a,#00h,chu1
MOV R0,#12H
mov 0fh,#01h
ajmp chu2
chu1:cjne a,#01h, chu2
MOV 0FH,#00H
SETB P3.3
chu2:
;acall send
SETB EA
RETI

RECEPCEND:
mov a,0fh
cjne a,#01h,CHU3
MOV A,0EH
MOV @R0,A
INC R0
CHU3:
SETB EA
RETI

;-----------------------------------------
;系统共用子程序
;-----------------------------------------
ONE:MOV R6,ONEB
ACALL BZYS
AJMP OKOK
ZERO:MOV R6,ZEROB
ACALL BZYS
AJMP OKOK

LL:RLC A
CLR P3.3
MOV R6,#5
ACALL BZYS
SETB P3.3
JNC Z0
JC O1
NEXTOK:DJNZ R3,LL
RET
LF:MOV R3,#8
FF:RLC A
MOV R7,DJGMB
ACALL ONE38KHZ
JNC ZERO
JC ONE
OKOK:DJNZ R3,FF
RET

Z0:
MOV R6,#5
ACALL BZYS
AJMP NEXTOK
O1:
MOV R6,#12
ACALL BZYS
AJMP NEXTOK

;38KHZ单周期
ONE38KHZ:SETB P3.7
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
CLR P3.7
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R7,ONE38KHZ
RET

我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
所有评论[0]
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号