将我做的一个项目的相关程序段摘录出来,提供给你一个思路,供你参考
;----------------红外接收WhatsApp中文官网下载处理----------------国内WhatsApp登录不了----------
IRDeal:
JB IRBIT,IRDeal1
SETB C
RET
IRDeal1:
MOV A,IR_DAT
LCALL IRCHANGE ;转换键值
MOV A,KEYVAL
CJNE A,#0FFH,IRDeal2
SETB C
RET
IRDeal2:
CLR IRBIT
CLR C
RET
;----------------红外接收数据转换为键盘兼容数据---------------------
IRCHANGE:
IRCHG0:
CJNE A,#16H,IRCHG1
MOV KEYVAL,#0
RET
IRCHG1:
CJNE A,#0CH,IRCHG2
MOV KEYVAL,#1
RET
IRCHG2:
CJNE A,#18H,IRCHG3
MOV KEYVAL,#2
RET
IRCHG3:
CJNE A,#5EH,IRCHG4
MOV WhatsApp 语音转文字KEYVAL,#3
RET
IRCHG4:
CJWhatsApp国内能用么?NE A,#08H,IRCHG5
MOV KEYVAL,#4
RET
IRCHG5WhatsApp是哪国的:
CJNE A,#1CH,IRCHG6
MOV KEYVAL,#5
RET
IRCHG6:
CJNE A,#5AH,IRCHG7
MOV KEYVAL,#6
RET
IRCHG7:
CJNE A,#42H,IRCHG8
MOV KEYVAL,#7
RET
IRCHG8:
CJNE A,#52H,IRCHG9
MOV KEYVAL,#8
RET
IRCHG9:
CJNEWhatsApp 退出登录 A,#4AH,IRCHG0A
MOV KEYVAL,#9
RET
IRCHG0A:
CJNE A,#19H,IRCHG0B
MOV KEYVAL,#0AH
RET
IRCHG0B:
CJNE A,#0DH,IRCHG0C
MOV KEYVAL,#0BH
RET
IRCHG0C:
CJNE A,#07H,IRCHG0D
MOV KEYVAL,#0CH
RET
IRCHG0D:
CJNE A,#15H,IRCHG0E
MOV KEYVAL,#0DH
RET
IRCHG0E:
CJNE A,#09H,IRCHG0F
MOV KEYVAL,#0EH
RET
IRCHG0F:
CJNE A,#44H,IRCHG10
MOV KEYVAL,#0FH
RET
IRCHG10:
CJNE A,#40H,IRCHG11
MOV KEYVAL,#10H
RET
IRCHG11:
CJNE A,#43H,IRCHG12
MOV KEYVAL,#11H
RET
IRCHG12:
CJNE A,#45H,IRCHG13
MOV KEYVAL,#12H
RET
IRCHG13:
CJNE A,#46H,IRCHG14
MOV KEYVAL,#13H
RET
IRCHG14:
CJNE A,#47H,IRCHG15
MOV KEYVAL,#14H
RET
IRCHG15:
CJNE A,#47H,IRCHG16
MOV KEYVAL,#15H
RET
IRCHG16:
CJNE A,#47H,IRCHG17
MOV KEYVAL,#16H
RET
IRCHG17:
CJNE A,#47H,IRCHG18
MOV KEYVAL,#17H
RET
IRCHG18:
MOV KEYVAL,#0FFH
RET
;******************************************************
; 外部中断服务子程序
;******************************************************
;-------------红外解码程序---------------------------
EXINT0:
PUSH ACC
PUSH PSW
PUSH 1
PUSH 2
PUSH 6
CLR EA ;暂时关闭中断请求
MOV R6,#10
EXINT10:
LCALL DELAY09MS ;调用900us延时子程序
JB IRIN,INTOUT1 ;判断P3.2是否有高电平,如果有就退出解码程序
DJNZ R6,EXINT10 ;循环10次,检测在900微妙中是否存在高电平。以上完成对遥控信号的9000微秒的初始低电平信号的识别。
JNB IRIN,$ ;等待高电平避开9毫秒低电平引导脉冲
LCALL DELAY45MS ;延时4.5毫秒
;-------------接受32位代码--------------------------
MOV R1,#IRUSERL
MOV R2,#04H
EXINT101:
MOV R6,#08H ;每组数据位8位
EXINT102:
JNB IRIN,$ ;等待地址码第一组数据的高电平信号
LCALL DELAY09MS ;高电平开始WhatsApp数据后延时判断信号此时的高/低状态
MOV C,IRIN ;将P3.2引脚此时的电平状态0或1存入C中
JNC INT1OUT ;如果为0跳出
LCALL DELAY1MS
INT1OUT:
MOV A,@RWhatsApp能传文件吗1
RRC A ;将C中的数据0/1移入A中最低位
MOV @R1,A ;将A中的数据暂存在R1
DJNZ R6,EXINT102 ;接受完8位代码
INC R1
DJNZ R2,EXINT101 ;接受完4组32位代码
;--------------数据码比较------------------------WhatsApp群采集-------
MOV A,IRDATAL
; LCALL SENDRXDAT
MOV A,IRDATAL
CPL A
CJNE A,IRDATAH,INTOUT1 ;判断数码正误,不等退出
MOV IR_DAT,IRDATAL ;相等则保存正确数据
MOV A,IR_DAT
; LCALL SENDRXDAT
SETB IRBIT
INTOUT1:
LCALL DELAY45MS
SETB EA ;允许中断
POP 6
POP 2
POP 1
POP PSW
POP ACC
RETI
说得太笼统了,是想采集红外遥控(38kHz)的信号?还是?
如果是红外遥控解码,一般要用定时器中断或者外部中断来做。
5V的单片机串口输出(TX)接max232芯片就能转换为232电平,和电脑的串口连接。
或WhatsApp 归档对话者连接ch341,pl2303之类的芯片,做成usb转串口的。
没有理解你说的按键使什么意思,
WhatsApp中文网页版 - WhatsApp官网请注明:WhatsApp中文网页版 - WhatsApp官网 » WhatsApp如何看动态 如何把串口信号生成一个按键?单片机不知道该怎么把红外信号转化