最新温度巡检仪源程序

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

/*内存分配定义*/

TIME_CONT EQU 33H /*定时时间*/

TIME_COUNT EQU 34H /*100ms中断次数*/

KEY_CODE EQU 35H /*按键代码*/

KEY_VAL EQU 36H /*按键数值*/

CHAN_NUM EQU 37H /*当前采样通道号*/

SAMP_NUM EQU 38H /*采样次数*/

CHAN_NUM1 EQU 39H /*当前显示通道号*/

TEMP1 EQU 40H /*1通道温度*/

TEMP2 EQU 41H /*2通道温度*/

TEMP3 EQU 42H /*3通道温度*/

TEMP4 EQU 43H /*4通道温度*/

TEMP5 EQU 44H /*5通道温度*/

TEMP6 EQU 45H /*6通道温度*/

TEMP7 EQU 46H /*7通道温度*/

TEMP8 EQU 47H /*8通道温度*/

SAMP_MAX EQU 48H /*当前通道10次采样最大值*/

SAMP_MIN EQU 49H /*当前通道10次采样最小值*/

SAMP_SUMH EQU 4AH /*当前通道10次采样累加值高位*/

SAMP_SUML EQU 4BH /*当前通道10次采样累加值低位*/

SAMP_AVG EQU 4CH /*当前通道去掉最大值和最小值后8次采样平均值*/ SAMP_VAL EQU 4DH /*当前通道采样值*/

TEMP_VAL EQU 4EH /*当前通道温度值*/

DIS_BUF1 EQU 50H /*显示缓冲区1*/

DIS_BUF2 EQU 51H /*显示缓冲区2*/

DIS_BUF3 EQU 52H /*显示缓冲区3*/

DIS_BUF4 EQU 53H /*显示缓冲区4*/

DIS_BUF5 EQU 54H /*显示缓冲区5*/

DIS_BUF6 EQU 55H /*显示缓冲区6*/

DIS_NUM EQU 57H /*显示通道号寄存器*/

DIS_CONH EQU 58H /*CH451操作命令高位*/

DIS_CONL EQU 59H /*CH451操作命令低位*/

ST_FLAG BIT 20H.0 /*系统启动标志*/

XJ_FLAG BIT 20H.1 /*巡回检测标志*/

KEY_FLAG BIT 20H.2 /*有键按下标志*/

T_1S BIT 20H.3 /*1秒时间到*/

SAMP_1 BIT 20H.4

SAMP_END10 BIT 20H.5 /*10次采样结束标志*/

SAMP_NO1 BIT 20H.6 /*每通道采样开始标志*/

DD_FLAG BIT 20H.7 /*定点检测标志*/

CHAN_ADD0 EQU 0FF80H /*温度检测通道首地址*/

AD_ADD0 EQU 0FE00H /*AD通道首地址*/

AD_END BIT P3.2 /*AD转换结束标志*/

DIS_DOUT BIT P3.3 /*按键输入*/

DIS_LOAD BIT P1.0 /*命令输入有效*/

DIS_DIN BIT P1.1 /*显示命令输出*/

DIS_DCLK BIT P1.2 /*显示时钟输出*/

ORG 0000H

START: LJMP MAIN

ORG 0003H /*AD转换结束中断入口*/

NOP

NOP

NOP

NOP

LJMP ERR

ORG 000BH /*定时器0中断入口*/

LJMP TIME0

NOP

NOP

LJMP ERR

ORG 0013H /*键盘中断入口*/

LJMP KEY_IN

NOP

NOP

LJMP ERR

ORG 0040H

MAIN: MOV SP,#60H

MOV TMOD,#21H /*定时器0为方式1工作,定时器2为方式2工作*/ MOV TH0,#3CH /*定时器0定时值为500ms*/

MOV TL0,#0AFH

MOV TH1,#0FDH /*通信波特率为4800b/s*/

MOV TL1,#0FDH

MOV SCON,#01000000B /*串口方式为工作方式1*/

MOV A,30H

CJNE A,#0AAH,NRAM

MOV A,31H

CJNE A,#55H,NRAM /*判断是否上电复位*/

SJMP DISP_INIT

NRAM: MOV R0, #7FH /*RAM低128B清零*/

NRAM1: MOV @R0,#00H

DJNZ R0,NRAM1

MOV 30H,#0AAH /*置上电标志*/

MOV 31H,#55H

NOP

NOP

DISP_INIT:NOP

MOV 20H,#00H /*内部状态位清零*/

MOV DIS_BUF1,#0111001B

MOV DIS_BUF2,#1110011B

MOV DIS_BUF3,#0111110B

MOV DIS_BUF4,#1000000B

MOV DIS_BUF5,#1101101B

MOV DIS_BUF6,#0000110B /*cpu-51写入显示缓冲区*/

SETB DIS_DIN /*CH451串口方式设为四线制*/

NOP

NOP

CLR DIS_DIN

NOP

NOP

SETB DIS_DIN

MOV TIME_CONT,#1H

MOV SAMP_NUM,#00H

MOV CHAN_NUM,#00H

MOV CHAN_NUM1,#01H

MOV TIME_COUNT,TIME_CONT/*定时时间设为100毫秒*/

SETB IT1 /*键盘中断设为边沿触发方式*/

SETB PX1 /*键盘中断设为高优先级*/

SETB ET0 /*允许定时器0中断*/

SETB EA /*开中断*/

SETB TR0 /*启动定时器0*/

SETB SAMP_NO1

MOV SAMP_NUM,#00H

MAIN1: JNB T_1S,MAIN1 /*快速检测1通道温度值*/

CLR T_1S

LCALL SAMP /*采样一次*/

MAIN2: JNB SAMP_END10,MAIN1 /*采完10次*/

CLR SAMP_END10

MOV DIS_CONH,#5H /*设定显示参数,不译码,扫描6位*/ MOV DIS_CONL,#60H

LCALL DISP_WRITE

MOV DIS_CONH,#4H /*设定系统参数,启用显示及键盘功能*/ MOV DIS_CONL,#03H

LCALL DISP_WRITE

相关文档
最新文档