锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

基于CH372的单片机波形采集程序

时间:2024-05-20 05:07:10

电路图:

;*************************************
上位机软件及pcb文件下载地址:http://www.ruidan.com/bbs/dpj-19233-1.html
;STC89C51RC单片机,6M晶振
;P0.7为红外输入
;P0.6为无线电信号输入
;P0.5为外部信号输入
;*************************************
CSEQUP0.0
A0EQUP0.1
DXEQUP0.3
CEEQUP0.4
GETEQUP0.2
ORG0000H
LJMPAMIT
ORG0030H
AMIT:MOV,#0FBH
MOVP0,#0F
MOVP1,#0FFH
MOVP2,#0FFH
MOVP3,#0FFH
MOVR0,#08H
MOVR7,#68
MOVR2,#00H
CLRP0.7
MOVTMOD,#01H
MOVTL0,#00H
MOVTH0,#00H
CLRTR0
;********CH372复位*********
FW:MOVA,#05H
MOVP2,A
CS
SETBA0;写复位命令
CLRDX
NOP
NOP;50NS就可以
SETBDX
LCALLDYL
J:JBGET,$
MOVA,#22H;接受中断数据
ACALLXML;调用CH372写命令
ACALLDSJ;调用CH372读数据
CJNEA,#01H,G1
AJMPOUT1
G1:CJNEA,#0F2H,G2
ACALLOUT2;如果CH372返回0F2则读端口2的命令
AJMPCHKOF
G2:CJNEA,#0F5H,G3
AJMPD
G3:CJNEA,#0F6H,G4
AJMPLEEP
G4:CJNEA,#0F9H,G5
ACALLINO
AJMPJSCS
G5:CJNEA,#0FAH,JSCS
ACALLINO
AJMPJSCS
;*******采集子程序********
CHKOF:CJNEA,#0A1H,F1;捕获输入信号。
AJMPTIM
F1:CJNEA,#0A2H,F2;如果收到A2则复位主程序。
AJMPAMIT
F2:CJNEA,#0A3H,F3;红外输入。
AJMPHWX
F3:CJNEA,#0A4H,F4;无线电信号输入。
AJMPWXD
F4:CJNEA,#0A5H,JSCS;外部信号输入。
SETBP0.7
SETBP0.6
CLRP0.5
MOVR2,#02H
AJMPJSCS
HWX:SETBP0.5
SETBP0.6
CLRP0.7
MOVR2,#00H
AJMPJSCS
WXD:SETBP0.5
SETBP0.7
CLRP0.6
MOVR2,#01H
AML:AJMPJSCS
;***********判断输入端***********
TIM:CJNER2,#0F1H,TI1
AJMPWTT
TI1:CJNER2,#0F2H,TI2
AJTT
TI2:CJNER2,#0F0H,AML
;***********数据采集1红外输入************
CT:JNBGET,QH_1
JBP3.7,CT
SETBTR0
THO:JNBP3.7,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
JBP3.7,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
INCR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
INCR0
DJNZR7,THO
CLRTR0
AJMPFZ
QH_1:AJMPJSCS
;***********数据采集2无线输入************
WTT:JNBGET,QH_2
JBP3.6,WTT
SETBTR0
THA:JNBP3.6,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
JBP3.6,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
INCR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
INCR0
DJNZR7,THA
CLRTR0
AJMPFZCX
QH_2:AJMPJSCS
;************数据采集3外部输入************
UTT:JNBGET,QH_2
JBP3.5,UTT
SETBTR0
T:JNBP3.5,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
JBP3.5,$
CLRTR0
MOVA,TH0
MOVR1,TL0
MOVTL0,#01H
MOVTH0,#00H
SETBTR0
INCR0
MOV@R0,A
INCR0
MOVA,R1
MOV@R0,A
INCR0
DJNZR7,THB
CLRTR0
;*************数据发送***********
FZCX:MOVR7,#122
MOVR0,#08H
ZDDS:MOVA,#2AH;CH372中断命令通知PC机
ACALLXML
NOP
NOP
MOVA,#02H;可输入8个字节
ACALLXSJ
MOVA,@R0;送入要上传的数据
ACALLXSJ
INCR0
MOVA,@R0;送入要上传的数据
ACALLXSJ
INCR0
ACALLFYL
MOVA,#22H;接受中断数据
ACALLXML
ACALLDSJ
ACALLFYL
ACALLINO
DJNZR7,ZDDS
MOVR0,#08H
MOVR7,#61
AJMPJSCS
;********CH372读出数据**********
OUT2:MOVA,#28H;读端口2的命令
ACALLXML
ACALLDSJ
NOP
ACALLDSJ
NOP
RET
;****************
OUT1:NOP
PEND:NOP
LEEP:NOP
AJMPAMIT
;******释放缓冲区子程序*****
INO:MOVA,#2BH;释放当前USB缓冲区
ACALLXML
NOP
NOP
RET
;*******写入数据子程序*******
XSJ:CLRA0;写入数据
NOP
NOP;延时2US,根据主频来确定NOP的值
MOVP2,A
NOP
NOP;50NS就可以
SETBDX
NOP
NOP;延时1.2US根据主频调整
RET
;*********延时子程序******
DYL:MOVR6,#100
D1:MOVR5,#50
DJNZR5,$
DJNZR6,D1
RET
FYL:MOVR6,#2
FD1:MOVR5,#68
DJNZR5,$
DJNZR6,FD1
RET
END


-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章