资源描述:
《单片机报告-数字温度计.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、单片机原理与应用课程考试制作报告作品名称:数字温度计专业班级:学号:姓名:目录一、作品(功能)说明二、硬件设计三、软件设计四、实例测试五、经验总结主要内容一、功能说明:使用单线数字温度传感器DS18B20,把温度信号直接转换成数字信号输入单片机,经单片机处理后,将实时温度显示在两个7段LED数码管上。二、硬件设计:电路设计图单线数字温度传感器DS18B20的引脚2接单片机P2.5端口,用于串行数据通信。引脚3接电源+5V,引脚3与电源+5V之间接有一个4.7KΩ的上拉电阻,传感器引脚1接地。单片机的P0端口连接两个7段LED数码管,
2、显示温度值。三、程序设计:程序开始首先对温度传感器DS18B20进行复位,检测是否正常工作;接着读取温度数据,主机发出CCH指令与在线的DS18B20联系,接着向DS18B20发出温度A/D转换44H指令,再发出读取温度寄存器的温度值BE指令,并反复调用复位、写入及读取数据字子程序,之后再继续数据转换,由数码管显示出来,不断循环。1、流程图开始DS18B20复位读取温度数据传输显示结束2、汇编语言编写的数字温度计源程序AD14-4ASM代码如下:01A_BITEQU20H;存放个位数变量02B_BITEQU21H;存放十位数变量03
3、FLAGEQU38H;DS18B20是否存在标志04DQEQUP2.5;DQ引脚由P2.5控制05MAIN:;06ACALLRE_TEMP;调用读取温度子程序07ACALLTURN;数据转化子程序08ACALLDISPLAY;显示子程序09JMPMAIN;循环主程序1011RE_TEMP:;初始化及读取温度值12SETBDQ13ACALLRESET_1820;调用复位子程序14JBFLAG,ST;判断DS1820是否存在?15RET16ST:;DS18B20存在17MOVA,#0CCH;跳过ROM匹配18ACALLWRITE_182
4、0;调用写入数据子程序19MOVA,#44H;发出温度转换命令20ACALLWRITE_1820;调用写入数据子程序21ACALLRESET_1820;准备读温度前先复位22MOVA,#0CCH;跳过ROM匹配23ACALLWRITE_1820;调用写入数据子程序24MOVA,#0BEH;发出读温度命令25ACALLWRITE_1820;调用写入数据子程序26ACALLREAD_1820;调用读取数据子程序设置传感器27RET读取温度数据2829RESET_1820:;复位(有具体的时序要求)30SETBDQ31NOP32CLRDQ
5、33;――――――――――――34;主机发出复位低脉冲35MOVR1,#336DLY:MOVR0,#10737DJNZR0,$38DJNZR1,DLY39;――――――――――――40;然后拉高数据线41SETBDQ42NOP43NOP44NOP45;――――――――――――46;等待DS18B20回应47MOVR0,#25H48T2:JNBDQ,T349DJNZR0,T250JMPT451;――――――――――――52;标志位FLAG=1,表示DS1820存在53T3:SETBFLAG54JMPT555;――――――――――――5
6、6;标志位FLAG=0,表示DS1820不存在57T4:CLRFLAG58JMPT759;――――――――――――60;时序要求延时一段时间61T5:MOVR0,#11762T6:DJNZR0,T663;――――――――――――64T7:SETBDQ65RET复位子程序6667WRITE_1820:;写入DS18B20(有具体的时序要求)68MOVR2,#8;一共8位数据69CLRC;C=070WR1:71CLRDQ;总线低位,开始写入72MOVR3,#773DJNZR3,$;保持16微秒以上74RRCA;把字节DATA分成8个BI
7、T环移给C75MOVDQ,C;写入一个BIT76MOVR3,#2377DJNZR3,$;等待78SETBDQ;重新释放总线79NOP80DJNZR2,WR1;写入下一个BIT81SETBDQ82RET写入子程序8384READ_1820:;将温度高位和低位读出85MOVR4,#2;读出两个字节的数据86MOVR1,#29H;低位存入29H,高位存入28h87RE0:88MOVR2,#8;数据一共有8位89RE1:90CLRC91SETBDQ92NOP93NOP94CLRDQ;读前总线保持为低95NOP96NOP97NOP98SETB
8、DQ;开始读总线释放99MOVR3,#9100RE2:101DJNZR3,RE2;延时18微妙102MOVC,DQ;从总线读到一个BIT103MOVR3,#23104RE3:;105DJNZR3,RE3;等待50微妙106RRCA;把