浊度传感器简单程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电气原理图

程序:

ORG 0050H

MAIN:

MOV P1, 00H; //为数码管赋初值

LOOP:

LCALL KEY1; //调用键盘程序1,判断开始键是否按下,测量是否开始

LCALL KEY2; //调用键盘程序2,判断采样键是否按下,采样是否结束

LCALL ADC; //调用A/D转换程序,采样

LCALL NTU; //调用浊度标定程序,实现电压浊度的转化

LCALL LED; //调用显示程序,LED显示浊度数据

KEY1:

MOV P2,#0FFH; //先将P2口置为高电平

MOV A, P2; //读取当前P2口的状态

CPL A; //对PO的状态取反

JZ KEY1; //判断A值,为零则重新扫描,不为零则执行下一步JNB ACC.3,KEY1; //判断开始键(W3)是否按下,否则重新扫描

RET;

KEY2:

MOV P2,#0FFH;

MOV P2,A;

CPL A;

JZ KEY2;

JNB ACC.4,KEY2; //判断采样键(W2)是否按下,否则重新扫描

RET;

ADC:

CLR A;

MOVX @DPTR, A; //启动转换

JNB P2.4, ADC;

CLR A;

MOVX A,@FPTR; //转换采样数据输入A中

MOV R0,A;//将累加器A中数据存入工作寄存器R0中

RET;

NTU:

MOV A, R0;

MOV R1,#0.3AH;//输入斜率值

MOV B, R1,;

MUL A B;//相乘

MOV R2,A; //存放积的低8位

MOV R3,B; //存放积的高8位

CLR A; //清零

CLR C; //清零

MOV C, #14H;//赋值被减数

MOV A, R3;

SUBB A, C;//执行减法

MOV R4,A; //将结果存入R4中

RET;

LED:

MOV R0,#7EH;

MOV R1,#04H;//位控制信号,开始显示最低位MOV A, R1;

MOV DPTR, #TAB;//将字形表首地址赋给DPTR LOOP1:

MOV P0,A;

MOV A, @R0;//取数据

MOVC A, @A+DPTR;//取字形码

MOV P1,A;

ACALL DIMS;//延时

INC R0;//数据位加1

MOV A, R1;

JB ACC.0,LOOP2;//判断结束否

RL A;//没有结束则左移一位

MOV R1,A;

LOOP2:

CLR A;

MOV R0,1004H;

MOV A, @R0;//取数据

MOVC A, @A+DPTR;//取字形码

MOV P1,A;

ACALL DIMS;//延时

INC R0;//数据位加1

MOV A, R1;

JB ACC.0,LOOP3;//判断整数位结束否

RL A;//没有结束则左移一位

MOV R1,A;

LOOP3:

RET;

TAB:

DB 3FH, 06H, 5BH, 4FH, 66H, 6DH,

DB 7DH, 07H, 7FH, 6FH, 77H, 7CH,

DB 39H, 5EH, 79H, 71H, 40H, 00H,

DIMS:

MOV R7,#02H;//延时1ms

END

相关文档
最新文档