基于汇编语言的八路温度采集
2017-03-16姜云鹏周连勇魏巍张可张冬杰
姜云鹏+周连勇+魏巍+张可+张冬杰
摘 要:本系统以AT89C52单片机为主控制器、8255为从控制器,由AD采集模块,数据处理转化模块,数码管显示模块,报警模块等构成。利用AD转换电路将电位器对应的电压模拟信号转换为数字信号,单片机使用汇编语言设计的数据采集系统,系统可以完成对8路温度信号的数据采集、处理,整个系统具有测温、显示、参数设置、报警功能。
关键词:汇编语言;单片机;温度采集
DOI:10.16640/j.cnki.37-1222/t.2017.05.115
1 程序设计
主程序代码如下:MAIN: MOV P1,#0FFH MOV WHZ,#0FFH MOV WLZ,#00H ;最高最低温度值初始值设置 MOV CLOCK,#0;定时初值设置MOV DPTR,#7FFFH ;8255A 控制口地址 MOV A,#89H ;8255控制字,PA为输出,PB为输出,PC口为输入MOVX @DPTR,A MOV TMOD,#01H;定时器0工作于方式1MOV TL0,#0B0H MOV TH0,#3CH;设定时时间为0.05秒,定时20次则一秒MOV TCON,#15H;对中断进行设置MOV IE,#87H MOV R1,#RESD MOV R2,#2H MOV R7,#8H MOV 52H,#0F7H MOV 53H,#0BFH。
1.1 测温功能设计
本设计的测量分辨率为0.5℃,温度由0-5V电压信号模拟,每个通道每隔1S采集1次。为了达到对应的分辨率,我们采用相应的数据转化模块,主要程序代码如下:D_1: CLR C MOV A,R4 SUBB A,#255 MOV R4,A MOV A,R6 SUBB A,#0 MOV R6,A JC D_RET INC R3 SJMP D_1双字节除单字节循环转化。模拟电压信号的采集主要包括两部分代码如下:MOV DPL,52H MOV DPH,53H MOVX @DPTR,A RET ;AD采集模块MOV DPL,52H MOV DPH,53H MOVX A,@DPTR MOV @R1,A ;送转化结果。时间的间隔采用定时器处理,中断采用软时钟。
1.2 显示功能
可以循环显示每一路的温度值,每一路显示1S;可以固定显示某一路的温度值。本设计是基于8255的动态显示程序,数码管显示需要显示三位数据,主要包括BCD码转化和双字节减法算法和循环显示。MOV ZHE,R3 MOV A,ZHE MOV B,#100 DIV AB MOV GA,A MOV A,B MOV B,#10 DIV AB MOV ZHO,A;对应十位 MOV DI,B;对应个位 MOV A,ZHE MOV B,#255 MUL AB MOV ZHGO,B MOV ZHDI,A ;BCD码转化程序设计CLR C MOV A,CHAO SUBB A,ZHGO MOV A,CHDI SUBB A,ZHDI MOV B,#25 DIV AB MOV XIA,A;对应小数 RET;双字节减法求余数。XIAOSHUXIANSHI: MOV DPTR,#TAB1 MOV A,@R0 MOVC A,@A+DPTR MOV DPTR,#7FFCH MOVX @DPTR,A ACALL DELAY INC R0 MOV A,R5 JB ACC.3,EXIT RL A MOV R5,A AJMP LOOP 循環显示。固定显示数值比较容易,我们是通过采集固定按键的状态决定。
1.3 报警参数设置功能
设置每一个通道的高低限报警值。首先在程序设计的最开始将相应的报警值输入到相应的存储器。采集的温度会和该温度进行比较,做出判断。INT_0: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#7FFEH ;送PC口地址MOVX A,@DPTR;读PC口状态 DJNZ R2,DE_SHK MOV WLZ, A SJMP EX;报警值模块设置。
1.4 温度超限报警功能
当每路温度值高于设置高限或低于低限值时,分别控制不同的发光二极管LED报警指示。温度高用红LED、低报警值用绿色LED。
PANDUAN: PUSH ACC MOV BAO,@R1 MOV ACC ,WHZ;取出最高报警值 CJNE A,BAO,BAOJINGH;与送到设置最高报警值的单元比较
BAOJINGH: JNB ACC.7,LEDH MOV ACC,WLZ ;取出最低报警值CJNE A,BAO,BAOJINGL;与送到设置报警值的单元比较BAOJINGL: JB ACC.7,LEDL SJMP WUJING LEDH: CLR P1.7;高于最高值报警 SJMP WUJING LEDL:SETB P1.7 CLR P1.6;低于最低值报警WUJING:POP ACC RET;;判读报警值。
2 仿真设计
Proteus是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,本设计基于Proteus仿真软件使用8051单片机处理。原理图如图1:
参考文献:
[1]李桢桢.浅谈单片机汇编程序的编写技巧[J].华章,2014(16).
[2]赵义强,康静,郭向亮.Proteus仿真软件在单片机设计中的应用[J].济南职业学院学报,2007(01):58-61.
[3]刘文光,张铭铭.单片机扩展8255控制LED数码管动态显示仿真教学[J].济南职业学院学报,2013(01):82-84.