No.7784 作者:Kiven216 邮件:everbright0216@yahoo.com.cn ID:84601 登陆:1次 文章数:1篇 最后登陆IP:219.153.62.118 最后登陆:2007/7/21 12:46:21 注册:2007/7/21 12:41:38 财富:105 发帖时间:2007/7/21 12:46:21 发贴者IP:219.153.62.118 标题:Kiven216:请教:关于STC89C51单片机解码UPD6121G的问题 摘要:No.7784请教:关于STC89C51单片机解码UPD6121G的问题 我现在调试一个红外键盘,现在买到uPD6121G芯片的遥控器,用STC89C51单片机(和AT的语言指令一模一样)解码的时候,始终没有成功。我用的解码程序是这样的: ORG 0000H AJMP MAIN;转入主程序 ORG 0003H ;外部中断P3.2脚INT0入口地址 AJMP INT ;转入外部中断服务子程序(解码程序) ;以下为主程序进行CPU中断方式设置 MAIN:SETB EA ;打开CPU总中断请求 SETB IT0 ;设定INT0的触发方式为脉冲负边沿触发 SETB EX0 ;打开INT0中断请求 ;以下对单片机的所有引脚进行初始化,全部设置成高电平 MOV P1,#11100111B AJMP $ ;以下为进入P3.2脚外部中断子程序,也就是解码程序 INT: CLR EA ;暂时关闭CPU的所有中断请求 MOV R6,#10 SB: ACALL YS1;调用882微秒延时子程序 JB P3.2,EXIT;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序 DJNZ R6, SB;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序 ;以上完成对遥控信号的9000微秒的初始低电平信号的识别。 JNB P3.2, $ ;等待高电平避开9毫秒低电平引导脉冲 ACALL YS2 ;延时4.74毫秒避开4.5毫秒的结果码 MOV R1,#1AH ;设定1AH为起始RAM区 MOV R2,#4 PP: MOV R3,#8 JJJJ: JNB P3.2,$;等待地址码第一位的高电平信号 LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.2;将P3.2引脚此时的 ......
>>返回讨论的主题
|
老古网执行:31毫秒 最大:7276毫秒 查询6次
|
|