您的位置 首页 厂商

根据ds18b20温度带上限程序–LCD1602液晶显示

这是用1602来显示的,程序是修改前面几个实验的,当温度40度时电风扇不转,当>=40度时电风扇转动,为参加电子比赛做的单片机系统实验。程序

这是用1602来显现的,程序是修正前面几个试验的,当温度<40度时电风扇不转,当>=40度时电风扇滚动,为参与电子竞赛做的单片机体系试验。程序为汇编语言(ASM),带详细注释,值得新手朋友参阅!

悉数程序:ORG 0000H;单片机内存分配声明!TEMPER_L EQU 29H;用于保存读出温度的低8位TEMPER_H EQU 28H;用于保存读出温度的高8位FLAG1       EQU 38H;是否检测到DS18B20标志位a_bit       equ 20h ;数码管个位数寄存内存方位b_bit       equ 21h ;数码管十位数寄存内存方位RS EQU P3.7;确认详细硬件的衔接方法RW EQU P3.6 ;确认详细硬件的衔接方法E EQU P3.5 ;确认详细硬件的衔接方法;主程序MAIN:LCALL GET_TEMPER;调用读温度子程序MOV A,29HMOV C,40H;将28H中的最低位移入CRRC AMOV C,41HRRC AMOV C,42HRRC AMOV C,43HRRC AMOV 29H,Aclr csetb p3.0;zhelikais从这儿开端是我填加的温度操控CJNE A,#28H,FITSETB P3.0AJMP DISLEDFIT:CPL CMOV P3.0,C;jiesu到这儿完毕DISLED:LCALL DISPLAY;调用数码管显现子程序AJMP MAIN;DS18B20复位初始化子程序INIT_1820:SETB P2.2NOPCLR P2.2;主机宣布延时537微秒的复位低脉冲MOV R1,#3TSR1:MOV R0,#107DJNZ R0,$DJNZ R1,TSR1SETB P2.2;然后拉高数据线NOPNOPNOPMOV R0,#25HTSR2:JNB P2.2,TSR3;等候DS18B20回应DJNZ R0,TSR2LJMP TSR4 ; 延时TSR3:SETB FLAG1 ; 置标志位,表明DS1820存在CLR P1.7;检查到DS18B20就点亮P1.7LED,与传感器通讯成功LJMP TSR5TSR4:CLR FLAG1 ; 清标志位,表明DS1820不存在CLR P1.1;未检查到DS18B20就点亮P1.1LED,与传感器通讯失利LJMP TSR7TSR5:MOV R0,#117TSR6:DJNZ R0,TSR6 ; 时序要求延时一段时间TSR7:SETB P2.2RET;读出转化后的温度值的子程序GET_TEMPER:SETB P2.2LCALL INIT_1820;先复位DS18B20JB FLAG1,TSS2CLR P1.2RET ; 判别DS1820是否存在?若DS18B20不存在则回来TSS2:CLR P1.3;DS18B20现已被检测到!MOV A,#0CCH ; 越过ROM匹配LCALL WRITE_1820MOV A,#44H ; 宣布温度转化指令LCALL WRITE_1820LCALL DISPLAY;这儿经过调用显现子程序完成延时一段时间,等候AD转化完毕,12位的话750微秒LCALL INIT_1820;预备读温度前先复位MOV A,#0CCH ; 越过ROM匹配LCALL WRITE_1820MOV A,#0BEH ; 宣布读温度指令LCALL WRITE_1820LCALL READ_18200; 将读出的温度数据保存到35H/36HCLR P1.4RET				   

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/317967.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部