WT5801M14模块使用说明书V1.1.doc-1

2026/4/27 17:28:36

广州唯创电子有限公司 WT5801M14使用说明书

one_line: ;////一线发码子程序

CLR SDA

MOV R6,#5 ;延时5MS LCALL DELAY1MS

MOV A,DAIFAZHI

LOOP: SETB SDA

RRC A

JNC DIDIANPIN ;高电平脉冲 高:低=3:1

LCALL DELAY200US LCALL DELAY200US

LCALL DELAY200US

CLR SDA

LCALL DELAY200US LJMP LOOP1

DIDIANPIN: ;低电平脉冲 高:低=1:3

LCALL DELAY200US

CLR SDA LCALL DELAY200US

LCALL DELAY200US

LCALL DELAY200US

LOOP1: DJNZ R5,LOOP

MOV R5,#08H

SETB SDA

RET

DELAY200US: MOV R6,#100 ;延时400US子程序

DJNZ R6,$

RET

;延时1ms子程序,可以给R6赋值修改延时时间

DELAY1MS:

L1: MOV R7,#248

DJNZ R7,$ DJNZ R6,L1 RET

END

-第 17 页-

广州唯创电子有限公司 WT5801M14使用说明书

10.2、一线串口控制C语言程序

说明:此程序为测试程序,请根据实际应用来更改MCU端IO口; #include

sbit KEY=P1^1; /*P1_1为P1口的第2位*/ sbit SDA=P3^0; /*P3_0为P3口的第4位*/

void delay1ms(unsigned char count) //1MS延时子程序 {

unsigned char i,j,k;

for(k=count;k>0;k--) for(i=2;i>0;i--) for(j=248;j>0;j--);

}

void delay100us(unsigned char count) //100US延时子程序 { unsigned char i;

unsigned char j;

for(i=count;i>0;i--) for(j=50;j>0;j--);

}

Send_oneline(unsigned char addr)

{

unsigned char i; SDA=0;

delay1ms(5); /* delay 5ms */ for(i=0;i<8;i++)

{SDA=1;

if(addr & 1)

{delay100us(6); /* 600us */

SDA=0;

delay100us(2); /* 200us */ }

else {

delay100us(2); /* 200us */

-第 18 页-

广州唯创电子有限公司 WT5801M14使用说明书

SDA=0;

delay100us(6); /* 600us */ }

addr>>=1; } SDA=1;

}

main()

{unsigned char FD=0;

P3=0XFF; while(1)

{

if(KEY==0)

{

delay1ms(10);

if(KEY==0) //通过按键P1.1来进行发码值的递增

{

Send_oneline(FD);

FD++;

if(FD==220) //一线串口时,语音段暂时最多为220段 } }

}

}

{ FD=0; }

while(KEY==0); //等待按键释放,以免一次按键误判成几次

10.3、三线串口控制汇编程序

说明:此程序为测试程序,请根据实际应用来更改MCU端IO口; ORG 0000H

KEY EQU P1.1 ;按键引脚 CS EQU P3.1 ;CS触发引脚

-第 19 页-

广州唯创电子有限公司 WT5801M14使用说明书

SCL EQU P3.2 ;时钟引脚 SDA EQU P3.0 ;数据引脚

DAIFAZHI EQU 50H ;发码值暂存地址

MOV DAIFAZHI,#0H;发码初始值为0

MAIN:

JB KEY,MAIN

MOV R6,#20 ;延时20MS LCALL DELAY1MS

JB KEY,MAIN ;按键去抖判断 JNB KEY,$ ;等待按键释放 LCALL THREE_LINE;调用三线发码子程序 INC DAIFAZHI ;发码值加1 MOV A,DAIFAZHI

CJNE A,#220,XX2 ;是否到达语音段最大值220 XX2: JC XX3

MOV DAIFAZHI,#0H XX3: LJMP MAIN

THREE_LINE: ;////三线发码子程序

CLR CS

MOV R6,#5 ;延时5MS LCALL DELAY1MS

MOV R5,#8 ;发码8位循环

MOV A,DAIFAZHI

LOOP:

CLR SCL

RRC A

MOV SDA,C LCALL DELAY50US SETB SCL

LCALL DELAY50US

DJNZ R5,LOOP MOV R5,#08H

-第 20 页-


WT5801M14模块使用说明书V1.1.doc-1.doc 将本文的Word文档下载到电脑
搜索更多关于: WT5801M14模块使用说明书V1.1.doc-1 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219