资源描述:
《简易数字温度计课程设计课程设计草稿程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、;温度检测TEMPER_LEQU29H;温度低8位TEMPER_HEQU28H;温度高8位FLAG0EQU35H;温度调整状态标志FLAG1EQU36H;是否检测到18B20标志位FLAG2EQU37H;报警标志位FLAG3EQU38H;高低温调整标志位FLAG4EQU39H;闪烁标志位F_BITEQU20H;符号位G_BITEQU21H;数码管个位S_BITEQU22H;数码管十位X_BITEQU23H;小数位H_TEMEQU24H;高温报警L_TEMEQU25H;低温报警DQBITP2.2;18B20数据线ORG0000H;后面程序或数据块的起始地址LJMPMAIN;64K内绝对转
2、移,跳转到主程序ORG0003HLJMPKEY_H;跳转到高温报警调整子程序ORG0013HLJMPKEY_L;跳转到低温报警调整子程序ORG0050HMAIN:MOVSP,#57H;堆栈指针SP赋值即栈底层赋初值MOVTCON,#00H;定义中断方式SETBEX0;允许外中断0中断SETBEX1;允许外中断1中断SETBEA;有各自允许位控制MOV24H,#35;送高温报警初值H_TEMMOV25H,#15;送低温报警初值L_TEMCLRFLAG2;清零,37H,报警标志位MAIN0:LCALLGET_TEMPER;读转换温度,64K内绝对调用MOVA,28HANLA,#0F0H;逻
3、辑与,对某字节清零,清零位为0JZZHENG;判断符号位,累加器A为0转移CLRC;清0MOVA,29HCPLA;取反INCA;加1MOV29H,AMOVA,28HCPLAJNCAAA;若(Cy)=0,转移INCA;A=(A)+1AAA:MOV28H,AMOVF_BIT,#10;20H,符号位赋值AJMPBBB;跳转到小数位子程序ZHENG:MOVF_BIT,#11BBB:MOVA,29HANLA,#0FH;逻辑与,对某字节清零,清零位为0MOVDPTR,#NUMTAB2;查表求得小数位值MOVCA,@A+DPTR;访问程序存储器的数据表格MOVX_BIT,A;23H,小数位MOVA,
4、29HMOVC,40HRRCA;累加器A带进位标志位C循环右移一位MOVC,41HRRCAMOVC,42HRRCAMOVC,43HRRCACJNEA,24H,BUD;高温报警,判断是否BUD:JCBELOW;若C为1,报警SETBP2.0;LED灯口,置1SETBP2.1;蜂鸣器口,置1AJMPDDD;跳转BELOW:CJNEA,25H,BUD0;低温报警,判断是否BUD0:JNCABOVE;若C为0,不报警SETBP2.0SETBP2.1AJMPDDDABOVE:CLRP2.0;LED灯口,清0CLRP2.1;蜂鸣器口,清0DDD:MOV29H,ACLRFLAG0;温度调整状态标志,
5、清0LCALLDISPLAY;调用显示子程序AJMPMAIN0;循环处理;DS18B20复位初始化INIT_18B20:SETBDQ;置1,P2.2,18B20数据线NOP;空操作,占用一个机器周期CLRDQ;清0,P2.2,18B20数据线MOVR1,#3;延时TSR1:MOVR0,#100DJNZR0,$;寄存器R0内容减1不为0转移,原地等待DJNZR1,TSR1SETBDQNOPNOPNOPMOVR0,#25TSR2:JNBDQ,TSR3;若DQ=0,则转移DJNZR0,TSR2LJMPTSR4TSR3:SETBFLAG1;置1,36H,是否检测到18B20标志位LJMPTSR
6、5TSR4:CLRFLAG1;18B20标志位LJMPTSR7TSR5:MOVR0,#100;延时TSR6:DJNZR0,TSR6TSR7:SETBDQRET;子程序返回;读出转换后的温度GET_TEMPER:SETBDQ;置1,P2.2,18B20数据线LCALLINIT_18B20;调用复位子程序JBFLAG1,TSS2;若FLAG1=1,则转移CLRDQRETTSS2:MOVA,#0CCHLCALLWRITE_18B20;调用写DS18B20子程序MOVA,#44HLCALLWRITE_18B20LCALLDISPLAY;调用显示子程序LCALLINIT_18B20MOVA,#0
7、CCHLCALLWRITE_18B20MOVA,#0BEHLCALLWRITE_18B20LCALLREAD_18B20;调用读DS18B20子程序RET;写DS18B20WRITE_18B20:MOVR2,#8CLRC;进位标志清0WR1:CLRDQ;DS18B20数据线口清0MOVR3,#5;延时DJNZR3,$RRCA;累加器A带进位标志位循环右移1位MOVDQ,CMOVR3,#21;延时DJNZR3,$SETBDQ;DS18B20数据线